Vorwort und Quellen
Dieser Artikel entstand im Rahmen meiner IREB-Zertifizierung zum Certified Professional for Requirements Engineering und beinhaltet eine verdichtete, prüfungsrelevante Zusammenfassung und Ausschnitte des IREB-Werkes „Basiswissen – Requirements Engineering“ von Rupp / Pohl.
Grundlagen
Gründe für Requirements Engineering
- Budgetüberschreitung
- völliges Scheitern eines Projektes
- 60 Prozent der Fehler in der Entwicklung sind aufgrund mangelnder Anforderungen
- Fehler, die bereits in den Anforderungen entstehen, verursachen bei zunehmendem Projektfortschritt höhere Kosten und sollte möglichst früh beseitigt werden.
- Symptome bei mangelhaftem RE sind fehlende und unklare Anforderungen
Gründe für mangelhaftes Requirements Engineering
- Die Stakeholder denken, dass vieles selbstverständlich ist
- Kommunikationsprobleme und Konflikte aufgrund von unterschiedlichem Wissen und unterschiedlichen Erfahrungen
- Projektdruck: Der Auftraggeben will möglichst schnell ein sichtbares Ergebnis präsentiert bekommen
Die vier Haupttätigkeiten des RE
- Anforderungen erheben
- Anforderungen dokumentieren
- Anforderungen abstimmen und prüfen
- Anforderungen verwalten
Die Rolle der Kommunikation im RE
Das Verwenden von natürlicher Sprache ist das wichtigste Hilfsmittel im Requirements Engineering. Das Kommunikationsmedium (also ob eine Anforderung schriftlich oder mündlich erfasst wird) spielt ebenfalls eine große Rolle. Es muss eine gemeinsame Begriffswelt zwischen Entwicklung und Realität geschaffen werden und Unklarheiten möglichst besieitigt werden.
Eigenschaften eines Requirements Engineeers
- Selbstbewusstsein
- Empathie
- Analytisches Denken
- Überzeugungsfähigkeit
- Konfliktlösungsfähigkeit
- Moderationsfähigkeit
- Kommunikationsfähigkeit
Drei Arten von Anforderungen
- Funktionale Anforderungen
- Qualitätsanforderungen
- Randbedingungen
Rolle der Qualitätsanforderungen
Qualitätsanforderungen müssen dokumentiert werden. Folgende Aspekte sind insbesondere zu beachten:
- Detailierung der Funktionalität (z.B. Sicherheit/Genauigkeit einer Berechnung)
- Zuverlässigkeit
- Benutzbarkeit
- Effizienz
- Änderbarkeit
- Übertragbarkeit
System und Systemkontext abgrenzen
Ursprung und Rechtfertigung von Anforderungen
Die Quelle aller Anforderungen liegt üblicherweise im Systemkontext. Zu den möglichen Aspekten im Systemkontext gehören u.a.
- Personen
- Systeme im Betrieb
- Prozesse
- Ereignisse
- Dokumente
Die Systemgrenze ist häufig erst gegen Ende des RE Prozesses eindeutig festgelegt, und hat während dieser Zeit eine Grauzone (beweglich).
Anforderungen ermitteln
Arten von Anforderungsquellen
- Stakeholder (Kunden, Marketing, Servicetechniker, Entwickler…)
- Dokumente (rechtliche Vorschriften Normen…)
- Systeme (Vorbild ist ein Fremsystem als Input)
- Prozesse (?)
- Ereignisse (?)
Bedeutung von Anforderungsquellen
Die Hauptaufgabe des Requirements Engineering ist das Ermitteln von Anforderungen an ein geplantes System. Die Anforderungen werden aus unteschiedlichen Anforderungsquellen gesammelt.
Probleme bei unberücksichtigten Anforderungsquellen
Sollte es vorkommen, dass bestimmte Anforderungsquellen nicht berücksichtigt werden, kann sich dieser Zustand mit negativen Folgen auf den gesamten Projektverlauf auswirken.
Dokumentation der Anforderungsquelle „Stakeholder“
Die Dokumentation der Stakeholder sollte mindestens die folgenden Informationen enthalten:
- Nachname, Vorname
- Funktion / Rolle / Aufgabe
- Kontaktdaten
- Verfügbarkeit während der Projektlaufzeit
- zeitlich (07:40h bis 17:00h)
- räumlich (Werk 1 Gebäude 2)
- Relevanz des Stakeholders
- Ziele und Interessen bezogen auf das Projekt
Umgang mit Stakeholdern
Mündliche oder schriftlich wird eine Stakeholdervereinbarung festgehalten, in der die Stakeholder Rechte und Pflichten festgelegt sind.
Beispiele:
- Stakeholder Rechte: Weisungsbefugnisse, Verantwortungsbereiche
- Stakeholder Pflichten: Aufgaben
KANO-Modell
Bedeutung
KANO stellt in einem 2-Dimensionalen Koordinatensystem gegenüber, wie sich der Realisierungsgrad einer Anforderung auf die Zufriedenheit des Stakeholders auswirkt und stellt dabei fest, dass es 3 Klassen gibt.
Inhalt
Das KANO-Modell kategorisiert, wie sich eine Anforderung auf die Zufriedenheit der Stakeholder ausübt, in 3 Klassen:
- Basisfaktoren
- Leistungsfaktoren
- Begeisterungsfaktoren
Begeisterungsfaktoren sind z.B. Produktmerkmale, die komplett innovativ sind und vom Kunden mit Begeisterung aufgenommen werden. Der Kunde selbst hatte ursprünglich nicht den Anspruch an das Produkt (z.B. Bilder per WhatsApp verschicken mit dem SmartPhone).
Leistungsfaktoren erwartet der Kunde grundsätzlich von dem Produkt wenn er es kauft. Die Liste der Leisungfaktoren hat der Kunde präsent und kann direkt aufzählen was er erwartet.
Basisfaktoren sieht der Kunde als selbstverständlich und als nicht nennenswert an. Sollten diese Merkmale aber nicht vorhanden sein, wird der Kunde sehr unzufrieden sein. Aus diesem Grund nennt er nicht unbeding, dass er diese Produkt-Eigenschaft haben möchte.
Im Laufe der Zeit werden Begeisterungsfaktoren zu Leistungsfaktoren und Leistungsfaktoren zu Basisfaktoren.
Bsp: Die Anforderung SMS VERSENDEN
In der damaligen Zeit war das Versenden von SMS ein High-Tec Feature, welches durch die modernen Handys möglich wurde (Begeisterungsfaktor)
Nachdem die Handys mittlerweile jedes Kinderzimmer erreicht hatten, wurde das Schreiben von SMS zu einer nicht mehr wegzudenkenden Leistung der modernen Geräte (Leistungsfaktor). Jeder befragte äußerte die Forderung „Ich muss SMS schreiben können!“.
Die heutige Smartphone Generation benutzt SMS nur noch in den seltensten Fällen, da Apps wie „WhatsApp“, welche sogar Bilder und Ton versenden können und das Nutzen von Multiuserchats ermöglichen. Es wird keiner mehr explizit erwähnen, das er SMS versenden möchte. Wäre ein Smartphone nicht dazu in der Lage SMS zu versenden oder zu empfangen, würde dies aber zu extremer Unzufriedenheit beim Kunden führen (Basisfaktor).
Anwendung
Für die Auswahl der zu verwendenden Ermittlungstechniken wird u.a. auch die Betrachtung des KANO Modells genutzt.
Ermittlungstechniken
Bedeutsame Ermittlungstechniken von Anforderungen
- Befragungstechniken
- Interview
- Fragebogen
- Kreativitätstechniken (Begeisterungsfaktoren nach KANO)
- Brainstorming
- Brainstorming paradox
- Perspektivwechsel
- Analogietechnik
- dokumentenzentrierte Techniken (Basisfaktoren nach KANO)
- Systemarchäologie
- Perspektivenbasiertes Lesen
- Wiederverwendung von Anforderungen
- Beobachtungstechniken
- Feldbeobachtung
- Apprenticing
- unterstützende Techniken
- Mind Mapping
- Workshops
- CRC-Karten
- Audio- und Videoaufzeichnung
- Use-Case-Modellierung
- Protoyping
Einflussfaktoren für die Wahl der Ermittlungstechnik
- Risikofaktoren
- menschliche Einflüsse
- organisatorische Einflüsse
- fachlich-inhaltliche Einflüsse
- angestrebter Detailierungsgrad der Anforderung
Der Einsatz geeigneter Ermittlungstechniken kann projektentscheidend sein. Die besten Ergebnisse werden durch Kombination verschiedener Ermittlungstechniken erzielt.
Dokumentation von Anforderungen
Dokumentationstechnik
Als Dokumentationstechnik bezeichnet man jegliche Arten der Darstellung von Anforderungen
Wozu dokumentieren?
Die Dokumentation nimmt bei der Kommunikation eine zielgerichtete, unterstützende Funktion ein.
- Anforderungen sind langlebig
- Anforderungen sind rechtlich relevant
- Anforderungen sollten allen zugänglich sein
Funktionale Anforderungen
3 Perspektiven
Üblicherweise umfassen Anforderungsdokumente mindestens die folgenden drei Perspektiven eines Systems
- Strukturperspektive
- Verhaltensperspektive
- Funktionsperspektive
Effektiv einsetzbare Formen der Dokumentation
- Natürlichsprachige Anforderungsdokumentation
- Anforderungsmodelle wie Use-Case-Diagramme, Klassendiagramme, Aktivitätsdiagramme, Zustandsdiagramme
- Mischformen von Anforderungsdokumentationen
Vor- und Nachteile für Anforderungsdokumentation in natürlicher Sprache
- Vorteile
- für alle Beteiligten verständlich
- für Anforderungen jeglicher Art geeignet
- für alle drei Perspektiven geeignet
- zwingend notwendig um Komplexität von Anforderungen zu erfassen
- Nachteile
- oftmal zweideutig da nicht formal
- Transofrmationseffekte
- Vermischung der Perspektiven möglich
Modellbasierte Dokumentationsformen von Anforderungen
- Use-Case-Diagramme
- Klassendiagramme
- Aktivitätsdiagramme
- Zustandsdiagramme
- …
Vorteile von standardisierter Dokumentenstruktur
Nimmt man vorgefertigte Dokumentenstrukturen, hat man die Gewissheit, dass es sich zumeist um vollständige, flexible praxiserprobte Strukturierungen handelt. Zumeist erleichtert es die Verwendung des Anforderungdokumentes in späteren Entwicklungstätigkeiten / Projektphasen (Definition von Testfällen…).
Eine verbreitete standardisierte Dokumentenstruktur
Eine verbreitete Referenzstruktur für Anforderungsdokumente ist IEEE 830-1998 (Referenzstruktur für „Software Requirements Specification“ (SRS).
Wichtige Punkte einer angepassten Standardstruktur
Referenzstrukturen können für gewöhnlich nicht 1:1 übernommen werden, da sie an
- domänenspezifische
- projektspezifische
- unternehmenspezifische
Gegebenheiten angepasst werde müssen.
Aufgaben, die auf Anforderungsdokumenten aufbauen
Im Laufe des Projektes dienen Anforderungsdokumente als Grundlage für diverse Aufgaben.
- Planung
- Architekturentwurf
- Implementierung
- Test
- Änderungsmanagement
- Systemnutzung und Systemwartung
- Vertragsmanagement
Qualitätskriterien für Anforderungsdokumente
Da Anforderungsdokumente eine Grundlage für alle weiteren Entwicklungsschritte bilden, muss das Dokument bestimmten Qualitätskriterien genügen.
- Eindeutigkeit und Konsistenz
- Klare Struktur
- Modifzierbarkeit und Erweiterbarkeit
- Vollständigkeit
- Verfolgbarkeit
Qualitätskriterien für Anforderungen
- Abgestimmt
- Bewertet
- Eindeutig
- Gültig und aktuell
- Korrekt
- Konsistent
- Prüfbar
- Realisierbar
- Verfolgbar
- Vollständig
- Verständlich
Die zwei wichtigsten Stilregeln für Anforderungen
- kurze Sätze und Absätze
- nur eine Anforderung pro Satz formulieren
Bedeutung eines Glossars
Ein Glossar ist eine Sammlung von Begriffsdefintionen für das RE.
Inhalte eines Glossars
- Kontextspezifische Fachbegriffe
- Abkürzungen und Akronyme
- Alltägliche Begriffe, die im gegebenen Kontext eine spezifische Bedeutung haben
- Synonyme (Mehrere Worte haben eine Bedeutung)
- Homonyme (Ein Wort hat mehrere Bedeutungen)
Probleme die ohne Glossar auftreten
Eine häufige Ursache von Konflikten, die im RE auftritt, liegt im unterschiedlichen Begriffsverständnis der beteiligten Personen. Um diese Probleme zu vermeiden, ist es notwendig, dass alle relevanten Begriffe in einem Glossar definiert sind.
Regeln für den Umgang mit dem Glossar
- Das Glossar muss zentral verwaltet werden
- Es müssen Verantwortlichkeiten zur Glossarpflege definiert werden
- Das Glossar muss projektbegleitend gepflegt werden
- Das Glossar muss allgemein zugänglich sein
- Das Glossar muss verbindlich verwendet werden
- Die Herkunft der Begriffe sollte im Glossar enthalten sein
- Das Glossar muss mit den Stakeholdern abgestimmt sein
- Die Einträge des Glossars müssen eine einheitliche Struktur aufwesen
Es ist vorteilhaft, möglichst frühzeitig mit der Erstellung des Glossars anzufangen. Dadurch reduziert sich der spätere Angleichungsaufwand.
Natürlichsprachige Dokumentation von Anforderungen
5 Transformationsprozesse bei der Wahrnehmung und Darstellung von natürlicher Sprache
Natürliche Sprache ist oft mehrdeutig und kann unterschiedlich interpretiert werden. Die 5 Transformationsprozesse gehorchen gewissen Regeln, welche man nutzen kann um herauszufinden, was der Autor einer Anforderung wirklich gemeint hat.
- Nominalisierung
- Substantive ohne Bezugsindex
- Universalquantoren
- Unvollständig spezifierte Bedingungen
- Unvollständig spezifierte Prozesswörter
5 Schritte zur Formulierung von Anforderungen mittels einer Satzschablone
Satzschablonen dienen der Reduzierung sprachlicher Effekte während der Anforderungsformulierung. Der Autor wird effektiv dabei unterstützt, qualitativ hochwertige Anforderungen zu erstellen.
Um mit einer Satzschablone Anforderungen zu formulieren, hält man die folgenden Schritte ein:
- Festlegen der rechtlichen Verbindlichkeit
- Verben
- muss/shall (Pflicht)
- Rechtlich verbindlich
- muss erfüllt sein, sonst kann die Abnahme verweigert werden
- sollte/should (Wunsch: Nice-To-Have)
- Wäre schön wenn…
- Stakeholder besteht nicht drauf
- wird/will (Absicht)
- Pläne für die Zukunft
- System zukunftssicher konzipieren
- kann/can (Vorschlag)
- Kommentare
- Auch Einsatz eines Attributes möglich
- Z.B. in Doors kann jedem Objekt/Jeder Anforderung ein Attribut zugewiesen werden
- Benennen des Kerns der Forderung
- Charakterisieren der Aktivität des Systems
- Objekte einfügen
- Formulieren von logischen und zeitlichen Bedingungen
Satzschablonen sollten optional sein und lediglich als Hilfsmittel dargestellt dienen, da sich so die besten Erfolge erzielen lassen.
Anforderungen modellbasiert dokumentieren
Definition Modell
Ein Modell ist ein abstrahiertes Abbild einer existierenden Realität oder Vorbild einer zu schaffenden Realität.
3 Eigenschaften von Modellen
Durch die Verwendung von Modellen erreicht man ein verbessertes und schnelleres Auffassen von Sachverhalten und deren Zusammenhängen.
- Abbildungseigenschaft: Modelle bilden eine Realität ab
- Verkürzende Eigenschaft: Modelle verkürzen die abgebildete Realität
- Pragmatische Eigenschaft: Modelle werden für eine spezifische Verwendung konzipiert
2 Definitionselemente von konzeptuelle Modelle
Beschreiben die abzubildende Realität durch eine Menge grafischer Elemente. Zur Modellierung werden konzeptuelle Modellierungssprachen eingesetzt, die über deren
- Syntax (das sind die Modellierungselemente wie Use Case, Aktion…. und deren gültige Kombinationen)
- Semantik (Bedeutung der Modellierungselemente)
definiert werden.
Vorteile von Anforderungsmodellen
- Bildhaft dargestellte Informationen können schneller erfasst werden und prägen sich schneller ins Gedächtnis ein
- Es kann eine bestimmte Perspektive auf Anforderungen modelliert werden
- Es können zweckmäßige Abstraktionen der Realität durch die Definition der Modellierungssprache festgelegt werden
Eine Kombination von natürlicher Sprache und Anforderungsmodellen vereinigt die Vorteile beider Dokumentationsarten
Die Bedeutung von Zielen im Requirements Engineering
Ein Ziel ist die intentionale Beschreibung eines von Stakeholdern gewünschten charakteristischen Merkmals des zu entwickelnden Systems, bzw. des zu entwickelnden Entwicklungsprojektes.
Dokumentationsformen von Zielen
Ziele können natürlichsprachig als auch in Form von Modellen dokumentiert werden. Als wesentlichen Bestandteil beim Formulieren von Zielen werden sogenannte Dekompositionsbeziehung für die Definition über- und untergeordneter Ziele verwendet.
Zwei Arten von Zieldekomposition
- UND-Dekompoisiton (alle Teilzile müssen erfüllt sein, um das übergeordnete Ziel zu erfüllen)
- ODER-Dekomposition (mindestens ein Teilziel muss erfüllt sein, um das übergeordnete Ziel zu erfüllen)
Modellierung von Zielbeziehungen in Und-Oder-Bäumen
Einsatzziele von Use Cases
Ziel von Use Cases ist, Funktionalitäten eines geplanten oder existierenden Systems aus einer Nutzungssicht auf das System zu untersuchen und dokumenterien zu können.
Dokumentationstechniken von Use Cases
- Use Case Diagramme
- Use Case Spezifikationen
Vorteile von Use Case Diagrammen
- leicht verständlich
- Dokumentation des Systemkontextes
- Funktionen
Modellierung von Use Case Diagrammen
Use Cases bestehen aus
- Akteuren (die Männchen)
- der Systemgrenze (hier Bibliothekssystem)
- Use Cases (die Elipsen)
- verschiedenen Typen von Modellierungselemten (extend / include)
- <<include>> zeigt auf einen Anwendungsfall, der vom ausgehenden einbezogen wird. Dies wird häufig zwecks Wiederverwendung eines Use Cases gemacht
- <<extend>> ist eine optional bedingte Erweiterung eines Use Cases. Der Pfeil zeigt vom erweiternden Use Case auf den abstrakten. Im Beispiel unten wäre das wie das derive, was „Katalog durchsuchen“ konkretisiert.
Anmerkung: Die Pfeilbezeichnung „derive“ ist keine Standardspezifikation von UML Use Cases und sollte hier durch <<EXTEND>> oder <<INCLUDE>> ersetzt werden. Die Pfeillinien sollten gestrichelt sein.
Spezifikation von Use Cases
Als Ergänzung für die Use Case Diagramme werden Use Case-Spezifikationen genutzt, um die wesentlichen Eigenschaften einzelner Use Cases zu beschreiben. Für jeden festgehaltenen Use Case wird separat eine vorgegebene Schablone ausgefüllt.
Die Abschnitte der Schablone
- eindeutiger Bezeichner des Use Case (z.B. Katalog einfach durchsuchen)
- Name des Use Cases
- Beschreibung des Use Case
- auslösendes Ereignis
- Akteure
- Ergebnis
- Vor- und Nachbedingungen
- Verschiedene Arten von Szenarien
- Beschreiben exemplarische Ereignisfolgen, die zur erfolgreichen Ausführung des Use Case führen (Hauptszenarien und Alternativszenarien) oder explizit beschreiben, wie innerhalb der Ausführung des Use Case auf Ausnahmesituationen rreagiert werden soll (Ausnahmeszenarien).
Drei Perspektiven auf die Anforderungen
Anforderungen werden im Rahmen der modellbasierten Dokumentation in drei überlappenden Modellierungsperspektiven modelliert
- Strukturperspektive
- Entity Relationship Diagram
- UML Klassendiagramm
- Funktionsperspektive
- Datenflussdiagramme
- UML Aktivitätsdiagramme
- Verhaltensperspektive
- endliche Automaten
- Statecharts
Fokus der Strukturperspektive auf Anforderungen
- Struktur von Daten
- Nutzungs- und Abhängigkeitsbeziehungen im Systemkontext
ER-Diagramme
Traditionell wird die Strukturperspektive durch ER Diagramme modelliert, die aus 3 Beziehungen bestehen:
- Entitätstypen (Rechtecke)
- Beziehungstypen (Linien)
- .. enthalten Kardinalitäten (unten 1 oder N/M, bzw. *), die die Häufigkeit der Instanz in der Beziehung zeigen
- Ein Angestellter leitet mehrere Projekte
- EIn Projekt wird nur von einem Angestelltem geleitet
- Attribute (Elipsen)
UML-Klassendiagramme
Ein weiterer verbreiteter Ansatz um Anforderungen in der Strukturperspektive zu modellieren, ist das Verwenden von UML Klassendiagrammen.
Häufig verwendete Modellelemente von UML Klassendiagrammen sind
- Klassen
- Assoziationen (mit Multiplizitäten und Rollen)
- Aggregations- und Kompositionsbeziehungen
- Generalisierungsbeziehungen
Fokus der Funktionsperspektive auf Anforderungen
- Verarbeitung von Eingabedaten aus der Umgebung
- Ausgabedaten für die Umgebung
Konzeptuelle Modelle in der Funktionsperspektive
- Datenflussdiagramme
- UML Aktivitätsdiagramme
Datenflussdiagramme (Synonym: Kontextdiagramme)
- Prozesse (Unten das System)
- Datenflüsse (die Pfeile sind betitelt, im Kontext muss es sich nicht ausschließlich um Daten handeln die fließen, es kann auch etwas physikalisches fließen)
- Datenspeicher (im RE eher unüblich, da man hier den Kontext beschreiben möchte, aber unten wäre es die Datenbank mit Strich oben, Strich unten)
- Termintatoren (Rechtecke – unten der Customer i.d.R. Quellen und Senken)
Da die Datenflussdiagramme genutzt werden um den Systemkontext zu beschreiben oder eine Kontextabgrenzung vorzunehmen, werden Speicher i.d.R. nicht verwendet da diese technischer Natur sind und sich eher innerhalb des Systems befinden (dies bezieht sich nur auf Kontextabgrenzungen im Requirements Engineering).
Nachteile Datenflussdiagramme
Datenflussdiagramme zeigen nicht, unter welchen Bedingungen welche Prozesse ausgeführt werden. Sie eignen sich eher um mit Hilfe der Terminatoren Ein- und Ausgabeparameter im Systemkontext zu dokumentieren.
Um den Kontrollfluss (also den Programm-Verlauf/Ablauf) zu erfassen, müssen Datenflussdiagramme um eine Minispefizikation erweitert werden. Der Kontrollfluss kann durch Aktivitätsdiagramme modelliert werden.
UML-Aktivitätsdiagramme
Bestehen aus folgenden Elementen:
- Aktion (Rechteck mit abgerundeten Ecken)
- Start- und Endknoten
- Kontrollfluss (Pfeil)
- Objektfluss (Rechteck – zumeist nach einer Aktion und beschreibt den Zustand [z.B. Zielort ERMITTELT] als Ergebnis der vorigen Aktion)
- Entscheidungsknoten (Raute mit ausgehenden Pfeilen)
- Zusammenführung alternativer Kontrollflüsse (Raute mit eingehenden Pfeilen)
- Fork (horizontaler dicker Balken auf den ein Kontrollfluss eingeht und mehrere wegfließen – Beginn von Parallelität/Nebenläufigkeit)
- Join (horizontaler docker Balken auf den mehrere Kontrollflüsse eingehen und einer wegfließt – Ende von Parallelität / Nebenläufigkeit)
- Hierarchisierungselemente
Fokus der Verhaltensperspektive von Anforderungen
Der Fokus liegt auf der Modellierung der Zustände, in denen sich ein System befinden kann und die Übergänge zwischen Zuständen (Transitions)
UML-Zustandsdiagramme
- Zustand (Rechteck mit abgerundeten Ecken)
- Start- und Endzustand (schwarzer Punkt und schwarzer Punkt mit Ring)
- Zustandsübergang (Pfeil mit Beschriftung des Ereignisses/der Aktion die zum Übergang führt)
- Nebenläufigkeit
Anforderungen prüfen und abstimmen
Bedeutung der Überprüfung von Anforderungen
Es wird geprüft ob Anforderungen festgelegten Qualitätskrieterien (z.B. Korrektheit oder Vollständigkeit) genügen. Fehler in den Anforderungen sollten möglichst frühzeitig erkannt und behoben werden. Der Aufwand zur Behebung eines Fehlers, der in den Anforderungen gemacht wurde, ist wesentlich höher je später er entdeckt wird. Das liegt daran, dass der Fehler in den Anforderungen Auswirkungen auf alle Artefakte des Systems haben kann (z.B. Systemarchitektur, Implementierung der Testfälle….)
Bedeutung von (Stakeholder) Konflikten bzgl. Anforderungen
Auswirkung
Konflikte, die nicht beseitigt wurden, können dazu führen, dass Anforderungen einer Stakeholdergruppe nicht umgesetzt werden können bzw. dass das System nicht oder unzureichend akzeptiert und genutzt wird.
Ziele der Abstimmung
Unter den relevanten Stakeholder muss ein gemeinsames und überinstimmendes Verständnis hinsichtlich der Anforderungen an das zu entwickelnde System erarbeitet werden.
Drei Qualitätsaspekte für Anforderungen
- Inhalt
- Dokumentation
- Abgestimmtheit
Prüfkriterien für die Qualitätsaspekte
8 Prüfkriterien für Inhalt
- Vollständigkeit des Anforderungsdokumentes
- Vollständigkeit der einzelnen Anforderungen
- Verfolgbarkeit
- Korrektheit / Adäquatheit
- Konsistenz
- Keine vorzeitige Entwurfsentscheidungen
- Überprüfbarkeit
- Notwendigekeit
5 Prüfkriterien für Dokumentation
- Konformität zum Dokumentationsformat
- Konfirmität zur Dokumentenstruktur
- Verständlichkeit
- Eindeutigkeit
- Konformität mit Dokumentationsregeln
3 Prüfkriterien für Abgestimmtheit
- Abstimmung
- Abstimmung nach Änderung
- Konflikte aufgelöst
Sechs Prinzipien der Prüfung von Anforderungen
Um möglichst viele Fehler in den Anforderungen zu identifieren, werden die folgenden Prinzipien eingehalten
- Beteiligung der richtigen Stakeholder
- Trennung von Fehlersuche und Fehlerkorrektur
- Prüfung aus unterschiedlichen Sichten
- Geeigner Wechsel der Dokumentationsform
- Konstruktion von Entwicklungsartefakten, die auf Anforderungen beruhen
- Wiederholte Prüfung
Techniken zur Prüfung von Anforderungen
- Stellungnahme
- Inspektion
- Walkthrough
Währenddessen kommen weitere Techniken zum Einsatz
- Perspektivenbasiertes Lesen
- Prüfung von Prototypen
- Einsatz von Checklisten
Prüftechniken Stellungnahme, Inspektion, Walkthrough, Perspektivbasiertes Lesen, Prüfung durch Prototypen, Einsatz von Checklisten
Aufgaben in der Abstimmung von Anforderungen
- Konfliktidentifikation
- Konfliktanalyse
- Konfliktauflösung
- Dokumentation von Konfliktlösungen
Arten von Konflikten bezüglich Anforderungen
- Sachkonflikt
- Interessenkonflikt
- Wertekonflikt
- Beziehungskonflikt
- Strukturkonflikt
Verschiedene Konfliktlösungstechniken
- Einigung
- Kompromiss
- Abstimmung
- Variantenbildung
- Ober-Sticht-Unter
- Consider-All-Facts
- Plus-Minus-Interesting
- Entscheidungsmatrix
Dokumentation der Konfliktlösung
Nach der Konfliktlösung sollte eine Dokumentation darüber stattfinden, wie der Konflikt gelöst wurde und die Gründe die für die daraus resultierende Entscheidung resultieren.
Anforderungen verwalten
Definition von Attributierungsschemata
Um die Attributstruktur für eine Anforderung (z.B. in Doors ein Objekt mit mehreren Spalten) festzulegen, werden Attributierungsschemata verwendet. Attributierungsschemata werden entweder tabellarisch oder in Form von eines Informationsmodells defniert.
Zweck von Attributierungsschemata
Zweck von Attributen ist es, dass die Anforderungen über den gesamten Lebenszyklus des Systems verwaltet werden können.
Wichtige Attributtypen für Anforderungen
- Identifikator (z.B. die erste Spalte eines Moduls in Doors)
- Name
- Beschreibung
- Quelle
- Stabilität
- Kritikalität
- Priorität
Auch die „rechtliche Verbindlichkeit“ kann anhand eines Attributes als zusätzliche Information zur Anforderung gespeichert werden.
Sichten auf Anforderungen
Sichten dienen der Reduktion von Anforderungskomplexität ist ein reduzierter Zugriff bzw. ein Filtern von Anforderungen in Abhängigkeit der Verwendung notwendig. Hierfür werden Sichten auf die Daten verwendet (z.B. in Doors Views).
- Selektive Sichten: Darstellung einer Teilmenge der Attributwerte über definierte Selektionskriterien
- Verdichtende Sichten: Darstellung verdichteter Informationen zu den über definierte Anforderungen ausgewählten Selektionskriterien
Vorgehen zur Priorisierung von Anforderungen
- Bestimmung der Ziele und Randbedingungen der Priorisierung
- Bestimmung der Priorisierungskriterien
- Bestimmung der relevanten Stakeholder
- Auswahl der zu priorisierenden Artefakte
Techniken zur Priorisierung von Anforderungen
- Ranking und Top-Ten-Technik
- Ein-Kriterium-Klassifikation
- Kano-Klassifikation
- Wiegers’sche Priorisierungsmatrix
Nutzen der Verfolgbarkeit von Anforderungen
- Vereinfachung der Nachweisbarkeit
- Identifikation von unnötigen Eigenschaften im System
- Identifikation von unnötigen Anforderungen
- Unterstützung der Auswirkungsanalyse
- Unterstützung der Wiederverwendung
- Unterstützung der Festlegung der Zurechenbarkeit
- Unterstützung der Wartung und Pflege
Klassen von Verfolgbarkeitsbeziehungen
- Pre-Requirement-Specification-Traceability
- Post-Requirements-Specification-Traceability
- Traceability zwischen Anforderungen
Repräsentationsformen von Verfolgbarkeitsbeziehungen
- Textuelle Refernzen und Hyperlinks
- Verfolgbarkeitsmatrizen
- Verfolgbarkeitsgraphen
Versionierung von Anforderungen
Es wird ermöglicht verschiedene Entwicklungsstände und Anforderungsdokumente verfügbar zu halten. Die Versionsnummer einer Anforderungs besitzt dabei mindestens zwei Bestandteile
- Version
- Inkrement
Version 2.1 (<- Inkrement ist 1)
Bildung von Anforderungskonfigurationen
Anforderungskonfigurationen fassen eine definierte Menge logisch zusammengehörender Anforderungen zusammen. Jede Anforderung ist maximal in einer Version in der Anforderungskonfiguration enthalten.
Bildung von Anforderungsbasislinien
Die Bildung von Anforderungskonfigurationen wird entlang zweier Domensionen definiert:
- Produktdimension: die einzelenen Anforderungen der Anforderungsbasis
- Versionsdimension: die verschiedenen Versionsstände einer Anforderung
Bedeutung von Anforderungsänderungen
Über den gesamten Lebenszyklus eines Systems ändern sich Anforderungen. Diese Änderungen werden in einem systematischen Änderungsmanagementprozess verwaltet.
Aufgaben und Vertreter des Change-Control-Board
In einem Änderungsmanagementprozess ist das Change-Control-Board für die Bearbeitung eingehender Änderungsanträge verantwortlich. Die Aufgaben des Change-COntrol-Boards sind
- Klassifikation eingehender Änderungsanträge
- Bestimmung des Aufwands einer Änderung
- Beurteilung der Änderungsanträge hinsichtlich Aufwand/Nutzen
- Definition neuer Anforderugnen auf Basis eingehender Änderungsanträge
- Entscheidung über Annahme oder Ablehnung eines Änderungsantrags
- Priorisierung der angenommenen Änderungsanträge
- Zuordnung der Änderungen zu Änderungsprojekten
Aufbau eines Änderungsantrages für Anforderungen
- Identifikator des Änderungsantrages
- Titel des Änderungsantrages
- Beschreibung der notwendigen Änderung
- Begründung für die Notwendigkeit der Änderung
- Datum der Beantragung
- Antragsteller
- Prioriät der Änderung aus Sicht des Antragstellers
3 Klassen von Änderungsanträgen
- Korrektive Änderungen
- Adaptive Änderungen
- Ausnahmeänderungen
Vorgehen zur Bearbeitung von Änderungsanträgen
- Auswirkungsanalyse und Beurteilung des Änderungsantrages
- Priorisierung der Anforderugnsänderung
- Zuordnung der Änderung zu einem Änderungsprojekt
- Kommunikation der Annahme/Ablehnung des Änderungsantrages
Werkzeugunterstützung
Acht Eigenschaften eines Requirements Management Werkeugs
- Verschiedene Informationen verwalten
- Logische Beziehungen zwischen Informationen verwalten
- Jedes Artefakt eindeutig identifierzieren
- Informationen flexibel und sicher zugänglich machen
- Sichten auf die Informationen unterstützen
- Informationen organisieren
- Attributierung
- Hierarchiebildung
- Berichte über Infromationen erstellen
- Dokumente aus den Informationen generieren
Spezielle Tools für das Requirements Engineering sind IBM Doors oder Polarion.
Fünf Gesichtspunkte bei der Einführung von Requirements Engineering Werkzeugen
- Benötigte Ressourcen planen
- Risiken durch Pilotprojekte umgehen
- Evaluierung anhand von definierten Kriterien
- Über Lizenzkosten hinausgehende Kosten berücksichtigen
- Benutzer schulen
Sieben Sichten auf Requiremtns Engineering Werkzeuge
- Projektsicht (z.B. Unterstützung der Projektplanung)
- Benutzersicht (insbesondere Bedienung)
- Produktsicht (Funktionalität)
- Prozesssicht (methodische Unterstützung)
- Anbietersicht (z.B. Service des Anbieters)
- Technische Sicht (z.B. Interoperabilität, Skalierbarkeit)
- Betriebswirtschaftliche Sicht (Kosten)
Für jede Sicht sind klare Kriterien zu definieren.