REQUIREMENTS ENGINEERING Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Virtuelle Forschungsumgebungen Dozent: Prof. Dr. phil. Manfred Thaller WS 2010/11 Referentin: Sanja Wiechmann
Gliederung Was ist Requirements Engineering? Erfolgsfaktoren für Projekte in der Projektentwicklung Risiken im Requirements Engineering Mögliche Lösungen Vertragliche Regelungen Was ist eine Anforderung? Sichten auf Anforderungen Arten von Anforderungen
Was ist Requirements Engineering? Wörtlich übersetzt: Anforderungserhebung Requirements Engineering (RE) ist das disziplinierte und systematische Vorgehen zur Ermittlung, Spezifikation, Analyse, Vereinbarung, Validierung und Verwaltung von Anforderungen, um Bedürfnisse und Ziele in ein Produkt umzusetzen Anforderungsdefinition (Requirements-Definition) Anforderungsverwaltung (Requirements-Management) Unterschiedlichste Anwendungsgebiete: Software und IT Hardware Systemtechnik und Serviceentwicklung RE versucht, eine gemeinsame Basis über die (zu Grunde liegenden) Anforderungen zwischen Benutzern und den Entwicklern eines Produkts zu erreichen Sowohl bei neuen Produkten als auch bei Änderungen bestehender Produkte Schlüsselrolle während der gesamten Produktentwicklung Projekte bestehen aus Zeitpunkten, Budgets, Ressourcen, Qualität etc.
Ziele werden konkretisiert, Wünsche geweckt und Realitäten geschafften Bedient sich Erfahrungen aus der Systemtechnik, Psychologie, Betriebswirtschaftslehre, Marketing, Produktmanagement und Informatik Ziele werden konkretisiert, Wünsche geweckt und Realitäten geschafften Ein Produkt ist dann erfolgreich, wenn es den Bedürfnissen seiner Benutzer und seiner Umgebung gerecht wird Anforderungen kommunizieren diese Bedürfnisse RE ist demnach die Disziplin, die die Behandlung von Anforderungsprozessen über den gesamten Lebenszyklus des Produkts hinweg umfasst Man muss dem Kunden liefern, was er will, nicht was er brauchen könnte RE ist die systematische Vorgehensweise, um alle relevanten Anforderungen zu ermitteln zu spezifizieren zu analysieren zu validieren zu vereinbaren und einem Projekt zuzuweisen im Projekt zu verwalten und Änderungen konsistent umzusetzen
Erfolgsfaktoren für Projekte in der Projektentwicklung Ergebnisorientierte Vorgaben Zielorientierte Prozesse Kompetentes Produkt- und Projektmanagement Standardisierte und optimierte Infrastruktur Fokus auf Anforderungen, Änderungen und Risiken im Projekt
Risiken im RE Fehlende Anforderungen Falsche Anforderungen Vor Beginn der Entwicklung muss genau geklärt werden, was der Kunde/Benutzer will, dabei ist nicht nur das Hauptziel von Bedeutung, sondern auch Randbedingungen und Qualitätsanforderungen Eine konkrete Definition der Bedürfnisse Falsche Anforderungen Falsche Formulierung oder unklare Zielsetzung führen zu unbefriedigenden Ergebnissen Vage, ungenaue Beschreibungen, Widersprüche, Lücken und natürliche Denkfehler Zu stark vereinfachte oder oberflächliche Spezifikationen führen im Ergebnis zu fehlender oder falscher Funktionalität Sich ändernde Anforderungen
Mögliche Lösungen Unvoreingenommene Tester Anforderungen immer kundenseitig absegnen lassen Klare Trennung von Kundenanforderung und Lösungsspezifikation Immer strikt an die Vorgaben des Kunden halten Mögliche Ausnahmen und Sonderfälle frühzeitig besprechen Feststellen, wer direkt mit dem Programm arbeiten muss Änderungswünsche einkalkulieren Vgl. Korrekturlesen einer Hausarbeit (man erkennt eigene Fahler nicht mehr) Was muss geliefert werden? Vs. Entwicklungsansätze für die Lösung Verschönerungen werden zu komplex und überfordern den Kunden -> keine Interpretation des Kundenwunsches Ständiger Kontakt zum Kunden Auf die Auswirkungen der Änderungswünsche hinweisen
Vertragliche Regelungen Vorab sollten folgende Punkte vertraglich geregelt werden Anforderungsqualität Mitarbeit des Kunden Änderungsmanagement Abstimmungsgespräche Eskalationsmöglichkeiten Auch zu viel Kundenbeteiligung kann schädlich sein -> zu viel Einmischung, zu wenig klare Absprachen, Verschiebung von Terminen
Was ist eine Anforderung? Einfach gesagt: Der Wunschzettel des Kunden Genauer: Die Anforderung beschreibt, was der Kunde/Benutzer vom Produkt erwartet Bedingungen Attribute Ziele Nutzen usw. Anforderungen müssen auf ihre Machbarkeit überprüft werden RE hat demnach die Aufgabe, verschiedene Sichtweisen und Interessen unter einen Hut zu bringen Ist die Anforderung machbar? Sind alle Inhalte gleichermaßen wichtig? Wurde die Anforderung verändert? Wenn ja, wer hat sie verändert?
Sichten auf Anforderungen Marktanforderung Anforderungen aus der Sicht des Kunden Oft Änderungen an Bestehendem Genaue Abstimmung der Bedürfnisse und Nutzen Produktanforderungen Anforderungen an ein Produkt aus Sicht der Realisierungen einer späteren Lösung Beschreiben, was verschiedene Benutzer mit dem Produkt machen können und wie Marktanforderungen und Kundenbedürfnisse in ein Produkt umgesetzt werden Definition des Lösungsraums und der Prioritäten Komponentenanforderungen Anforderungen an eine Komponente des Produkts Wie verbesserte diese Komponente das Ergebnis (Produkt) Rekursive Verfeinerung der Produktanforderung
Ergebnis aus Vertrag oder Von Verhandlungen Warum? Marktanforderungen Problemraum Analyse der Markt- Anforderungen und Lösungsmodell Was? Produktanforderungen Lösungsraum Abbildung auf konkrete Produktkomponenten, die implementiert werden Wie? Komponentenanforderungen
Arten von Anforderungen Funktionale Anforderung Qualitätsanforderungen Randbedingungen Kosten Marketing Durchlaufzeit Vertrieb und Verteilung Organisation Dokumentation Benutzersicht Benutzerschnittstelle Anwendungsfälle Dienstleistungen Benutzersicht Performanz Sicherheit Benutzbarkeit Funktionale Anforderungen -> beschreibt eine vom System oder einer Systemkomponente bereitzustellende Funktion (Was soll das System tun?) Qualitätsanforderung -> beschreibt eine qualitative Eigenschaft, die das betrachtete System oder einzelne Funktionen des Systems aufweisen müssen Randbedingungen -> ist eine organisatorische oder technische Anforderung, die die Art und Weise einschränkt, wie das betrachtete System realisiert werden kann (Einschränkungen) Entwicklungssicht Architektur Lastbalancierung Stromversorgung Entwicklungssicht Testbarkeit Wartbarkeit Portierbarkeit
Vielen Dank!
Quelle: Christof Ebert: Systematisches Requirements Engineering – Anforderungen ermitteln, spezifizieren, analysieren und verwalten. Heidelberg 2010.