Spezifikation von Anforderungen Grundlagen: Anforderung: Bedingung oder Fähigkeit, die eine Software erfüllen oder besitzen muss, um einen Vertrag zu erfüllen Anforderungsspezifikation: Sammlung aller Anforderungen an eine Software Anforderungstechnik (Requirements Engineering): Systematisches Erfassen, Beschreiben und Prüfen von Anforderungen an Software Verstehen und Beschreiben, was die Kunden wollen Motivation Kostensenkung durch Senkung der Fehlerkosten (Anforderungsfehler) Software Engineering SS 2009
Spezifikation von Anforderungen Merkmale einer guten Spezifikation Adäquatheit Vollständigkeit Widerspruchsfreiheit Verständlichkeit Eindeutigkeit Prüfbarkeit Kundenorientierung Methodisches und zielgerichtetes Vorgehen Verwendung geeigneter Mittel Integration von Erstellung und Prüfung von Anforderungen Software Engineering SS 2009
Der Spezifikationsprozess Ziele: Gewinnung von Anforderungen Darstellung von Anforderungen Prüfung der Anforderungen Vorgehensweise: iterativ ständiger und enger Kontakt mit dem Auftraggeber Software Engineering SS 2009
Der Spezifikationsprozess Software Engineering SS 2009
Dokumentation von Anforderungen Klassifikation Projektanforderungen Produktanforderungen funktionale Anforderungen Attribute nicht funktionale Anforderungen Leistungsanforderungen Qualitätsanforderungen Randbedingungen Unterscheidung in Muss-Anforderungen Soll-Anforderungen Wunsch-Anforderungen Software Engineering SS 2009
Dokumentation von Anforderungen Inhalt und Aufbau einer Spezifikation Funktionaler Aspekt Daten: Struktur, Verwendung, Erzeugung, Speicherung, Übertragung,Veränderung Funktionen: Ausgabe, Verarbeitung, Eingabe v. Daten Verhalten: sichtbares, dynamisches Systemverhalten, Zusammenspiel der Funktionen Fehler: Normalfall, Fehlerfall Leistungsaspekt Datenmengen Verarbeitungszeiten Qualitätsaspekt: Zuverlässigkeit Bedienbarkeit Randbedingungsaspekt Schnittstellen Normen, Gesetze Datenschutz Vorgaben des Auftraggebers Software Engineering SS 2009
Gewinnung von Anforderungen Probleme Unterschiedliche Vertreter des Kunden haben unterschiedliche Vorstellungen Uneinheitliche Begriffsbildung Kunde kann seine Vorstellung nicht formulieren Kunde weiß überhaupt nicht so genau, was er will Techniken Begriffe klären in Glossar Soll-Prozessabläufe untersuchen Anwendungsszenarien bilden und durchspielen Anwendungsbereich modellieren „Interviews“ Fragebogen gemeinsame Arbeitstagungen Software Engineering SS 2009
Darstellung von Anforderungen Arten Deskriptive Darstellung: Das zu spezifizierende System ist ein schwarzer Kasten. Die Anforderungen werden durch Beschreibung der Zusammenhänge zwischen den geforderten Resultatdaten und den gelieferten Eingabedaten dargestellt. Konstruktive Darstellung: Modellierung des Systems als Menge interagierender Komponenten. Vorteile: anschaulich Zerlegung in überschaubare Teilaufgaben Modell ist bereits idealisierte Lösung Nachteil: Modellierung richtet sich zu stark an Implementierung Übernahme der Lösungsstruktur von der Anforderungsstruktur Software Engineering SS 2009
Darstellung von Anforderungen Spezifikationsmethoden Spezifikation mit natürlicher Sprache Algebraische Spezifikation Strukturierte Analyse (datenflussorientiert) Verhaltensspezifikation mit Automaten objektorientierte Spezifikation Spezifikation mit Anwendungsfällen Software Engineering SS 2009
Prüfung von Anforderungen Inhalt Feststellen der Abweichungen Klären von Fehlern Lücken Unklarheiten Mehrdeutigkeiten Validierung: Prüfung auf Adäquatheit, Vollständigkeit, Widerspruchsfreiheit (s.o.) Beteiligte Entwickler Vertreter des Kunden Software Engineering SS 2009
Prüfung von Anforderungen Zeitpunkt nach Fertigstellung einer ersten Version Zwischenprüfungen bei komplexen Spezifikationen Verfahren Reviews Simulation Prototypen Tools Software Engineering SS 2009