Software Engineering 3. Analyse und Anforderungsmanagement
Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung Konfigurationsmanagement Testen Abnahme, Einführung, Wartung und Pflege
Pflichtenheft: Muster für Grob-Gliederung 1. Zielbestimmung Muss-, Wunsch- und Abgrenzungskriterien 2. Produkteinsatz Anwendungsbereiche, Zielgruppen, Betriebsbedingungen 3. Produktübersicht 4. Produktfunktionen Inkl. Use Case Diagramm + Beschreibungen 5. Produktdaten Inkl. Mengengerüste 6. Benutzungsoberfläche z. B. Style Guides, Zugriffsrechte 7. Nichtfunktionale Anforderungen 8. Rahmenbedingungen 9. Entwicklungs- und Produktionsanforderungen 10. Produktumgebung Software, Hardware, Schnittstellen, Organisatorischer Rahmen 11. Ergänzungen
Arten von Anforderungen Funktional Geben Antwort auf die Frage "Was soll das System machen?" Nichtfunktional Beschreiben Bedingungen, beziehen sich oft auf funktionale Anforderungen Werden häufig vernachlässigt Sind nur schwer zu spezifizieren und nachzuweisen Sind aber wesentlich für den Erfolg der Systementwicklung Die verschiedenen Arten von nichtfunktionalen Anforderungen tauchen in den meisten Projekten auf Können übernommen und angepasst werden
Qualitätsmerkmale für SW (ISO 9126)
Arten nichtfunktionaler Anforderungen Quelle: Sommerville, Software Engineering
Metriken für nichtfunktionale Anforderungen
Aufgaben des Anforderungsmanagements Anforderungen Ermitteln Dokumentieren Validieren und Verifizieren Verwalten
Anforderungen ändern sich Pro Monat zwischen Beginn Systemanalyse und Einsatz des Systems ändern sich 3% aller Anforderungen Nach einem Jahr sind 1/3 aller Anforderungen überholt! Bei großen Projekten sollte auch die Detail-Analyse inkrementell durchgeführt werden Änderungsmanagement erforderlich
Der Spezifikationsprozess Ziele: Gewinnung von Anforderungen Darstellung von Anforderungen Prüfung der Anforderungen Vorgehensweise: iterativ ständiger und enger Kontakt mit dem Auftraggeber
Der Spezifikationsprozess
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
Dokumentationstechniken
Spezifikation von Anforderungen Merkmale einer guten formulierten Anforderung Inhaltlich korrekt und angemessen Vollständigkeit Verständlichkeit Auch für Entwickler, die nicht bei der Anforderungsermittlung dabei waren Widerspruchsfreiheit Eindeutigkeit, kein Interpretationsspielraum Prüfbarkeit Kundenorientierung Umsetzbar Zeitlich und von den Kosten her
Formulierung von Anforderungen Kurze Sätze Sätze im Aktiv formulieren Anforderungen in Hauptsätze formulieren Nebensätze nur zur Vervollständigung Pro Einzelanforderung ein Satz Vermeidung von "und" und "oder" Nicht mehrere Anforderungen in eine Anforderung packen Einfaches Vokabular Insbesondere bei internationalen Projekten Eindeutig definierte Begriffe verwenden Aus Projekt-Glossar Nummerierung damit man in anderen Dokumenten darauf verweisen kann Messbare Kennzahlen Es muss später überprüft werden können, ob die Anforderung erfüllt wurde Anforderungsdefinition dient als Grundlage für die Definition von Testfällen Definition von Abnahmekriterien
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
Prüfung von Anforderungen Zeitpunkt nach Fertigstellung einer ersten Version Zwischenprüfungen bei komplexen Spezifikationen Verfahren Reviews Simulation Prototypen
Management von Anforderungen Änderungsmanagement zur Verfolgung von Anforderungsänderungen Anforderungsdokumente unterliegen dem Konfigurationsmanagement Traceability Wichtig für Änderungen und die Verfolgung von Anforderungen Verbindungen zwischen Anforderungen welche Anforderungen haben welche anderen (Teil-)Anforderungen zur Folge? In welchen weiteren Dokumenten/Modellen/Systemkomponenten wurde die Anforderung umgesetzt?
Dokumentation von Anforderungen mit Klassendiagrammen: Analysemuster
Analysemuster Muster (Patterns) beschreiben wiederkehrende Problemstellungen und ihre Lösungen Unterstützen Wiederverwendung Sammlungen von OO-Mustern existieren hauptsächlich für Entwurfs-Modelle, aber auch für Analyse sinnvoll Ein Analysemuster umfasst eine Gruppe von Klassen mit fest stehenden Verantwortlichkeiten und Interaktionen Typen von Analysemustern: Anwendungsspezifische (z. B. für Finanzsystemen) Allgemeine Im folgenden werden einige allgemeine Muster vorgestellt (entnommen aus Heide Balzert: Lehrbuch der Objektmodellierung, teilweise modifiziert)
Muster Liste
Muster Exemplartyp
Muster Baugruppe Verwendung der Aggregation, da keine Existenzabhängigkeit
Muster Stückliste (1) Einzelne Exemplare Mit dieser Darstellung kann z. B. der konkrete Aufbau eines bestimmten PCs incl. Grafikkarte, Festplatte usw. jeweils mit Seriennummern abgebildet werden (Betrachtung von Exemplaren).
Muster Stückliste (2) Wert Menge * Komponenten- Typ, nicht die einzelnen Exemplare Komponententyp Materialnr Bezeichnung 0..1 Mit dieser Darstellung kann z. B. beschrieben werden, aus welchen Bestandteilen sich ein bestimmter PC-Typ zusammensetzt (als Vorschrift für den Aufbau konkreter PCs)
Muster Stückliste (3) Verwendung der Komposition, da Existenzabhängigkeit: Wird das Verzeichnis gelöscht, wird auch der Inhalt gelöscht.
Muster Koordinator Koordinator, hat meist nur wenige Attribute aber viele Assoziationen - merkt sich, wer wen kennt. Die beiden Darstellungen sind streng genommen nicht gleichwertig. Im rechten Fall könnten mehrere Teilnahmen für die gleiche Kombination von Prüfung, Student und Professor angelegt werden.
Muster Rollen { Zuhörer Vortragender }
Muster Wechselnde Rollen Abstrakte Rolle - Zu unterschiedlichen Zeiten nimmt der Arzt unterschiedliche Rollen ein. Konkrete Rolle - Mit verschiedenen Attributen, daher Spezialisierung.
Historie Augenblickliche Tätigkeit Bei einem Wechsel der Tätigkeit geht die Information über frühere Tätigkeiten verloren { Zu jedem Zeitpunkt darf einem Angestellten nur eine Tätigkeit zugeordnet sein }
Muster Gruppe
Muster Gruppenhistorie { Zu jedem Zeitpunkt darf ein Angestellter nur einer Abteilung angehören }