Kapitel 3: Analyse
							
								
								
									
										
											BIN
										
									
								
								Assets/Softwaretechnik_ Analyseformen1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 620 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Assets/Softwaretechnik_ Analyseformen2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 371 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Assets/Softwaretechnik_Anforderungsentwicklung.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 241 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Assets/Softwaretechnik_Bruegge1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 140 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Assets/Softwaretechnik_Bruegge2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 141 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Assets/Softwaretechnik_Kano1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 270 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Assets/Softwaretechnik_Kano2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 68 KiB | 
| @ -325,8 +325,452 @@ Nachteile UML | ||||
| - Grundlage zur Codegenerierung | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # Analyse | ||||
| - Einordnung in den Projektablauf | ||||
| - Was ist eine Anforderung? | ||||
|   - Merkmal, Eigenschaft, Bedingung oder Einschränkung eines Systems | ||||
|   - Notwendig für die Akzeptanz vom Kunden | ||||
|   - Definition (IEEE 610.12-1990) | ||||
|     - Dokumentierte Darstellung einer Fähigkeit oder Eigenschaft  | ||||
|     - von Anwender benötigt zur Problemlösung bzw. um Ziel zu erreichen | ||||
|     - Muss von System oder Komponente erfüllt werden, um Vertrag oder Standard zu erfüllen | ||||
| 
 | ||||
| - Funktionale Anforderungen - Was soll es tun? | ||||
|   - „...Legt eine vom Softwaresystem oder einer seiner Komponenten bereitzustellende Funktion oder Service dar“ [Balzert] | ||||
|   - Was leistet das System | ||||
|   - Welche Funktionen bietet es | ||||
|   - Wie interagiert es mit der Umgebung | ||||
|   - Anforderungen an: | ||||
|     - Verhalten | ||||
|     - Struktur | ||||
|     - (Alternativ: Statik, Dynamik, Logik) | ||||
| - Nichtfunktionale Anforderungen – Wie? | ||||
|   - „...legen qualitative oder quantitative Eigenschaften des Softwareprojektes oder einer Komponente fest“ [Balzert] | ||||
|   - Auch Bezeichnet als: | ||||
|     - Quality of Service | ||||
|     - Qualitätsanforderungen | ||||
|   - Arten - FURPS (ISO 9126): | ||||
|     - Functionality (Funktionalität) | ||||
|     - Usability (Benutzbarkeit) | ||||
|     - Reliability (Zuverlässigkeit) | ||||
|     - Performance (Effizienz) / Portability (Übertragbarkeit) | ||||
|     - Supportability (Änderbarkeit/ Wartbarkeit) | ||||
| 
 | ||||
| - Funktionalität | ||||
|   - Angemessen, Genauigkeit | ||||
|   - Sicherheit: Vertraulichkeit, Informationssicherheit, Datenintegrität, Verfügbarkeit | ||||
|   - (Nicht ausreichend spezifizierte funktionale Anforderung) | ||||
| - Benutzbarkeit | ||||
|   - Verständlichkeit, Erlernbarkeit, Bedienbarkeit, Attraktivität | ||||
| - Zuverlässigkeit | ||||
|   - Reife (Fehler-Anzahl), Fehlertoleranz, Wiederherstellbarkeit | ||||
| - Effizient/ Leistungsanforderungen | ||||
|   - Zeitverhalten, Verbrauchsverhalten, Wirtschaftlichkeit | ||||
| - Portabilität | ||||
|   - Anpassbarkeit, Installierbarkeit, Koexistenz, Austauschbarkeit | ||||
| - Wartbarkeit | ||||
|   - Analysierbarkeit, Änder- und Erweiterbarkeit, Stabilität (bei Änderungen), Testbarkeit | ||||
| - Weitere: | ||||
|   - Konformität zu Konventionen und Bestimmungen | ||||
|   - Interoperabilität zu anderen Systemen | ||||
|   - Implementierungsanforderungen | ||||
|   - Schnittstellenanforderungen | ||||
|   - Skalierbarkeit (Änderungen des Problemumfangs) | ||||
|   - Betriebliche und rechtliche Rahmenbedingungen | ||||
|   - Liefer- und Verpackungsanforderungen | ||||
| 
 | ||||
| ### Nichtfunktionale Anforderungen | ||||
| Schwierigkeit nichtfunktionaler Anforderungen | ||||
| - Hängen oft von Verhalten ab: daher komplex und nicht direkt sichtbar | ||||
| - „Das Auto hat vier Räder“ (Struktur) | ||||
| - „Wenn der Blinker betätigt wird, blinkt das Auto dreimal wenn die Zündung an ist; ansonsten wird das Standlicht einseitig eingeschaltet“ (Korrektes Verhalten) | ||||
| - „Das Motorsteuergerät darf innerhalb von 5 Jahren und 150.000km Laufleistung höchstens mit 0.1% Wahrscheinlichkeit ausfallen“ (Zuverlässigkeit) | ||||
| 
 | ||||
| Umgang mit nichtfunktionalen Eigenschaften | ||||
| - Nicht direkt „by construction“ zu realisieren | ||||
| - Naive Herangehensweise: Ignorieren! | ||||
|   - Entwerfen und Implementieren der Software ohne | ||||
|   - Berücksichtigung nichtfunktionaler Eigenschaften | ||||
|   - Testen der nichtfunktionalen Eigenschaften | ||||
|   - Wenn nicht erfüllt: Entwurf und Implementierung ändern! | ||||
| - Funktioniert nur bei sehr einfachen Systemen, bzw. wenn nichtfunktionale Eigenschaften nicht wichtig sind! | ||||
| 
 | ||||
| Sinnvoller Umgang mit nichtfunktionalen Eigenschaften | ||||
| - Untersuchung der Projektrisiken bereits in der Analysephase | ||||
|     - größte Risiken zuerst betrachten! | ||||
|   - Immer fragen: Geht das so überhaupt? | ||||
|   - Festlegungen des Entwurfs möglichst früh gegen Anforderungen prüfen – aber wie? | ||||
| - Modellbasierter Entwurf | ||||
|   - Modellierung des Systems und seiner Umwelt | ||||
|   - Bewertung des Modells (Simulation) | ||||
|   - Lehrveranstaltungen Systementwurf, KIS, LTS | ||||
| 
 | ||||
| Randbedingungen | ||||
| - „... Eine Randbedingung ist eine organisatorische oder technologische Vorgabe, die die Art und Weise einschränkt, wie das betrachtete System realisiert werden kann.“  | ||||
| - Werden nicht umgesetzt | ||||
| - Schränken Lösungsraum ein | ||||
| - Beispiele: | ||||
|   - Kosten | ||||
|   - Durchlaufzeit: Time to Market | ||||
|   - Vorgaben durch Marketing und Vertrieb | ||||
|   - Technische Randbedingungen (nichtfunktionale Anforderung) | ||||
| 
 | ||||
|  | ||||
|  | ||||
| 
 | ||||
| Geforderte (Meta-)Eigenschaften | ||||
| - Vollständig: alle Szenarien sind beschrieben | ||||
| - Konsistent: keine Widersprüche | ||||
| - Eindeutig: nur eine Interpretation möglich | ||||
| - Korrekt: genaue und richtige Darstellung | ||||
| - Realistisch: unter geg. Einschränkungen implementierbar | ||||
| - Überprüfbar: durch Tests am Endprodukt nachweisbar | ||||
| - Rückverfolgbar: Auswirkungen bis zur Implementierung nachvollziehbar (Testfälle, Auswirkung von Änderungen) | ||||
| - Klassifizierbar (Risiko, Priorität, Dringlichkeit, Nutzen ...) | ||||
| - Validierung mit dem Kunden | ||||
| 
 | ||||
| - Requirements Engineering | ||||
|   - Ermittlung, Analyse und Verwaltung von Anforderungen | ||||
|   - Ausgangspunkt: Projektidee | ||||
| - Anforderungsermittlung | ||||
|   - requirements elicitation, requirements definition | ||||
|   - Bestimmen und dokumentieren der Anforderungen an das geplante System | ||||
|   - Beteiligt: Entwickler, Kunde, Benutzer | ||||
|   - Ergebnis: Anforderungsspezifikation - Glossar, Vertrag, Lastenheft | ||||
| - Anforderungs-Analyse | ||||
|   - requirements analysis, system modeling | ||||
|   - Beschreibung im Detail und formal strukturiert | ||||
|   - Beteiligt: Entwickler | ||||
|   - Ergebnis: funktionale Spezifikation - Produktdefinition, Analysemodell, Pflichtenheft | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| | | Anforderungsermittlung | Systemmodellierung | | ||||
| | -- | -- | -- | | ||||
| | Ergebnis | Anforderungsspezifikation im Lastenheft, Glossar, Lastenheft | funktionale Spezifikation in Produktdefinition, Analysemodell, Pflichtenheft | | ||||
| | Notation | Text | Text + (semi-) formales Modell | | ||||
| | Kommunikation | mit dem Kunden | zwischen Entwicklern | | ||||
| | Sichtweise | des Anwenders | äußere Systemaspekte | | ||||
| Vor allem: Kommunikationsleistung! | ||||
| 
 | ||||
| Bedeutung: | ||||
| - Falsche Anforderungen führen zu falschem System | ||||
| - Frühe Fehler im Entwicklungsprozess sind teuer! | ||||
| 
 | ||||
| Fehlerentstehung und Fehlerquellen bei Anforderungserfassung | ||||
| - 83% sprachliche Fehler (Un- bzw. Missverständlich) | ||||
| - 75% Logische Fehler (Widersprüchlichkeit, Redundanz) | ||||
| - 73% Inhaltliche Fehler (Falsche Sachverhalte, Unvollständig) | ||||
| 
 | ||||
| ## Ermiteln von Anforderungen | ||||
| Woher kommen Anforderungen? | ||||
| - Ausgangspunkt | ||||
|   - Projektidee, schriftliche Skizze | ||||
|   - Kurz und knapp | ||||
|   - Stichpunkte der wichtigsten Funktionen | ||||
|   - Lastenheft (falls schon existiert) | ||||
| - Interessenhalter (stakeholder) | ||||
|   - Identifizieren, Wichtigkeit bewerten (berücksichtigen?) | ||||
|   - Ansprechpartner? Interessen und Erwartungen | ||||
|   - Fachexperten, Verantwortliche, Betroffene | ||||
| 
 | ||||
| Beteiligte Rollen | ||||
| - Endbenutzer | ||||
|   - Aufnahme Ist-Zustand, Domänenwissen, Anforderungen | ||||
| - Kunde | ||||
|   - Definiert Ziel des Systems, Vertragsverhandlung | ||||
| - Konfigurationsmanager | ||||
|   - Revisionsgeschichte der Dokumente, Nachvollziehbarkeit | ||||
| - Architekt | ||||
|   - Integration von Anwendungsfall- und Objektmodellen | ||||
| - Analytiker  | ||||
|   - Modelliert das System und erstellt Anwendungsfälle | ||||
| - Redakteur | ||||
| - Prüfer | ||||
| 
 | ||||
| Wie ermittelt man Anforderungen? | ||||
| - Problem: Entwickler müssen sich in Begriffs- und Denkwelt des Kunden einarbeiten, sonst Kommunikationsprobleme | ||||
| - Systematische Vorgehensweise | ||||
| - Kommunikation mit Kunden | ||||
| - Geschäftsprozess (business process) | ||||
|   - fachlicher Ablauf, der Wert oder Kosten verursacht | ||||
| - Akteur (actor) | ||||
|   - Benutzer, Schnittstelle nach außen | ||||
| - Szenario (scenario) | ||||
|   - Interaktion mit System als Ablauf | ||||
| - Anwendungsfall (use case) | ||||
|   - Automatisierter Arbeitsschritt, vom System ausgeführt | ||||
| - Interviews mit Fachanwendern | ||||
|   - Mitschrift, später strukturierter Text und Tabelle | ||||
| - Strukturierte Spezifikation | ||||
|   - Vorlagen / sprachliche Anforderungsschablonen | ||||
|   - Formulare | ||||
|   - Reduzierung sprachlicher Mehrdeutigkeiten | ||||
| - Anwendungsfalldiagramm (Use-Case-Diagramm) | ||||
|   - Arbeitsschritt eines Geschäftsprozesses, der durch das System ausgeführt wird | ||||
|   - Anforderungen an das System modellieren – was soll das System leisten | ||||
|   - Systemgrenzen / Systemkontext festlegen | ||||
|   - Systembeteiligte modellieren | ||||
|   - Planbare Einheiten als Schritte für die Entwicklung | ||||
|   - Verwendung bereits ab Projektbeginn | ||||
|   - Keine Modellierung eines Ablaufs! | ||||
| - Umgang mit Szenarien und Anwendungsfällen | ||||
|   - Zunächst nur zum Verständnis kurz aufstellen | ||||
|   - Systemgrenze definieren | ||||
|   - Beschreibungen verfeinern | ||||
|   - Änderungen mit Kunden abstimmen | ||||
|   - Prototypen nur zur visuellen Unterstützung | ||||
|   - Benutzungsschnittstelle erst beginnen, wenn funktionale Anforderungen in etwa klar sind | ||||
| 
 | ||||
| Leitfaden für Anwendungsfälle | ||||
| - Benennen mit Verbalphrasen, die Anwendersicht beschreiben (Simuliere) | ||||
| - Akteure mit Substantiven benennen (Anwender) | ||||
| - Systemgrenzen klären. Arbeitsschritte von Akteuren und System kennzeichnen | ||||
| - Schritte im aktiven Stil beschreiben (Auto bremst) | ||||
| - Ursächliche Beziehung zwischen Folgeschritten | ||||
| - 1 Anwendungsfall = 1 vollständige Transaktion | ||||
| - Normalfall darstellen; Ausnahmen gesondert beschreiben | ||||
| - Nicht die Benutzungsschnittstelle beschreiben (statt dessen visuellen Prototypen verwenden) | ||||
| - Übersichtlichkeit (max. 2-3 Seiten), sonst zerlegen | ||||
| 
 | ||||
| - Typische Probleme | ||||
|   - Kommunikations- und Verständnisprobleme | ||||
|   - Viele verschiedene Beteiligte | ||||
|   - Kunden wissen nicht, was sie genau wollen und was geht | ||||
|   - Verwendung von Fachsprachen | ||||
|   - Widersprüchliche Anforderungen, verschiedene Interessen | ||||
|   - Nicht-technische organisatorische, historische oder rechtliche Rahmenbedingungen | ||||
|   - Zusätzliche Beteiligte können auftauchen | ||||
|   - Anforderungen ändern sich während der Entwicklung | ||||
| - Anforderungsänderungen | ||||
|   - Sind die Regel | ||||
| - Tätigkeiten der Anforderungsanalyse | ||||
|   - Anforderungen strukturieren | ||||
|   - Eigenschaften der Anforderungen bestimmen | ||||
|   - Anforderungen priorisieren | ||||
|   - Anforderungen in Textform, Grafiken, Modellen dokumentieren | ||||
|   - Anforderungen modellieren | ||||
|   - Anforderungen auf inhaltliche Qualität prüfen | ||||
|   - Auf Übereinstimmung mit den Zielen prüfen | ||||
|     - Ziel Abnahme der Anforderung | ||||
|   - Hängt mit Analyse des Systems zusammen | ||||
| - Anforderungen strukturieren | ||||
|   - Unterteilung | ||||
|     - Funktional, Nichtfunktional | ||||
|     - Muss, Kann,... oder Haupt- und Nebenanforderung | ||||
|   - Hierarchische Zerlegung | ||||
|     - Unterteilen, Verfeinern | ||||
|   - Ordnung festlegen, eindeutig Nummerieren | ||||
|     - auf Einmaligkeit achten | ||||
|   - Beziehungen festhalten | ||||
|   - Verwendung von Werkzeugen | ||||
|     - MS-Project, Doors, Git issues, Trac, Bugzilla, MKS,... | ||||
|     - Modellierungswerkzeuge | ||||
| - Eigenschaften bestimmen | ||||
|   - Wahl der Eigenschaften firmen- bzw. projektspezifisch | ||||
|   - Wichtige Eigenschaften | ||||
|     - Identifikationsnummer | ||||
|     - Kurzbezeichnung | ||||
|     - Beschreibung (Text, ggf. Grafik, Modell) | ||||
|     - Aufwand | ||||
|     - Priorität der Anforderung | ||||
|     - Bearbeitungsstatus / Restaufwand | ||||
|     - Zugeordnet (wer ist verantwortlich / bearbeitet) | ||||
|     - Querverbindungen zu anderen Anforderungen | ||||
|     - Ggf. zusätzliche Dokumente oder Bemerkungen | ||||
|     - Stabilität der Anforderung (Änderungswkt.) | ||||
|     - Kritikalität der Anforderung: Schäden bei Fehlern? | ||||
|     - Entwicklungsrisiko: Erfolgsaussichten der Umsetzung | ||||
|     - Abnahmekriterien / Erfüllungsnachweis durch? | ||||
|     - Anforderungstyp: Funktional, nicht funktional ,... | ||||
|     - Anforderungssicht: Dynamik, Statik, Logik, Struktur, Funktion | ||||
|     - Mögliche Konflikte | ||||
|     - Autor | ||||
|     - Quelle: Wer möchte die Anforderung umgesetzt haben? | ||||
|     - Status der Beschreibung: Idee, grober Inhalt, detailliert | ||||
|     - Anforderungsversion | ||||
| - Anforderungen priorisieren | ||||
|   - MuSCoW-Priorisierung | ||||
|   - Muss-, Kann-, Optional, Nicht (Abgrenzungskriterien) (must, should, could, won‘t) | ||||
|   - Ad-hoc: Stakeholder priorisiert Anforderungen | ||||
|   - Priorisierungsmatrix / Kosten-Wert-Analyse | ||||
|     - Eigenschaften bewerten (Punkte vergeben) | ||||
|     - Werte gewichten | ||||
|     - Priorität berechnen $Prioritäten = \frac{Nutzen - Nachteil}{Kosten + Risiko}$ | ||||
|   - Kano-Klassifikation | ||||
|     - Basiseigenschaften: Werden vorausgesetzt (fehlen stört, wenig zusätzliche Zufriedenheit) | ||||
|     - Leistungseigenschaften: Sonderwünsche | ||||
|     - Begeisterungseigenschaften: Wird nicht erwartet | ||||
|     - Abfragen per Fragenkatalog | ||||
|   - Reihenfolge festlegen | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
|  | ||||
| 
 | ||||
| ## Objektorientierte Analyse und Systemmodellierung | ||||
| - Übersicht | ||||
|   - Aufgabe: Systemmodell erstellen, funktionale Spezifikation | ||||
|   - Beschreibung der Systembenutzung und des Verhaltens | ||||
|   - Was, nicht wie – Implementierungsaspekte ausklammern | ||||
|     - Nicht: Datenhaltung, Verteilung, Technologien, Architektur, .. | ||||
|   - Zusammenhang mit Anforderungsspezifikation | ||||
|   - OO: Modell des Anwendungsbereichs | ||||
| - Analysemodell | ||||
|   - Korrekt, vollständig, konsistent und nachprüfbar | ||||
|   - Struktur und Verhalten | ||||
|   - Verschiedene Sichten (OO, Strukturiert, ...) | ||||
| - Eingangsdokumente | ||||
|   - Lastenheft, Anforderungsspezifikation | ||||
| - Typische Ergebnisse | ||||
|   - Funktionales Modell | ||||
|     - Geschäftsprozesse und Anwendungsfälle | ||||
|   - Objektmodell | ||||
|   - Dynamisches Modell – Systemverhalten | ||||
|     - Zustands- und Sequenzdiagramme | ||||
|   - Vor- und Nachbedingungen von Systemoperationen | ||||
|   - Prototyp / Spezifikation Benutzungsschnittstelle | ||||
|   - Pflichtenheft | ||||
| - Objektorientierte Analyse nach [Brügge / Dutoit] | ||||
|   - Verdeutlicht iterativen Ablauf | ||||
|   - Unterteilung des Analysemodells in: | ||||
|     - Funktionales Modell (Anwendungsfälle) | ||||
|     - Objektmodell (Klassen und Objektdiagramme) | ||||
|     - Dynamisches Modell (Zustands- und Sequenzdiagramme) | ||||
|     - Unterscheidung der Objekttypen | ||||
| 
 | ||||
|  | ||||
|  | ||||
| 
 | ||||
| - Heuristik Sprache $\rightarrow$ OO-Modell | ||||
| - Objektarten im Systemmodell | ||||
|   - Entitätsobjekte – vom System verwaltete Informationen | ||||
|   - Grenzobjekte – Interaktion zwischen System und Akteuren | ||||
|   - Steuerungsobjekte – Durchführung der Anwendungsfälle | ||||
| - Identifizierung von Entitätsobjekten | ||||
|   - Begriffe, die klargestellt werden müssen | ||||
|   - Wiederkehrende Substantive in Anwendungsfällen | ||||
|     - Heuristiken | ||||
|   - Reale Objekte, die das System kennen muss | ||||
|   - Reale Prozesse, die das System verfolgen muss | ||||
|   - Anwendungsfälle | ||||
|   - Datenquellen und -senken | ||||
|   - Artefakte, mit denen der Nutzer interagiert | ||||
| - Identifizierung von Grenzobjekten | ||||
|   - Elemente der Benutzungsschnittstelle | ||||
|   - Formulare für Eingaben | ||||
|   - Nachrichten, Rückmeldungen | ||||
|   - Endgeräte | ||||
|   - In der Begriffswelt des Anwenders bleiben! | ||||
|   - Schnittstellen grafisch skizzieren bzw. Prototyp! | ||||
| - Identifizierung von Steuerungsobjekten | ||||
|   - Koordination von Grenz- und Entitätsobjekten | ||||
|   - Abarbeitung von Anwendungsfällen | ||||
|     - Reihenfolge von Schritten | ||||
|     - Informationen übernehmen und weiterleiten | ||||
|     - Oft ein Steuerungsobjekt pro Anwendungsfall | ||||
|   - Beispiel: Simulationsszenario | ||||
|   - Verhaltensmodell sinnvoll! Im folgenden: dynamische Modelle | ||||
| 
 | ||||
| - Abläufe der Anwendungsfälle modellieren | ||||
|   - Ziel - Objekte finden | ||||
|   - Klassen identifizieren | ||||
|   - Verhalten / Operationen finden | ||||
| - Use Case durch Interaktion verfeinern | ||||
|   - einfacher kurzer Ablauf: textuelle Beschreibung, Aktivitätsdiagramm | ||||
|   - Ablauf mit Verzweigungen, Parallelitäten: Aktivitätsdiagramm (Kontrollflussmodellierung) | ||||
|   - datengetriebener Ablauf: Aktivitätsdiagramm (Objektflussmodellierung) | ||||
|   - Interaktion zwischen den Objekten wichtig: Kommunikationsdiagramm, Aktivitätsdiagramm (Aktivitätsbereiche), Sequenzdiagramm | ||||
|   - zeitliche Abfolge steht im Mittelpunkt: Sequenzdiagramm | ||||
|   - Zustandswechsel / zeitliche Abfolge von Zuständen: Zustandsdiagramm / Timing-Diagramm | ||||
|   - komplexe Abläufe mit Verzweigungen und Parallelitäten: Interaktionsübersichtsdiagramm | ||||
|   - komplexe Abläufe ohne Verzweigungen und Parallelitäten: weitere Verfeinerung durch Use-Case-Diagramm | ||||
|   - komplexer strukturierter Ablauf: Kollaboration aus dem Kompositionsstrukturdiagramm | ||||
| 
 | ||||
| - Dynamische UML-Modelle | ||||
|   - Abläufe | ||||
|     - Aktivitätsdiagramm (activity diagram) | ||||
|     - Kommunikationsdiagramm (communication diagram) | ||||
|     - Sequenzdiagram (sequence diagram) | ||||
|     - Zeitdiagramm (timing diagram) | ||||
|   - Zustandsabhängiges Verhalten von Objekten | ||||
|     - Zustandsautomat (state chart diagram) | ||||
| 
 | ||||
| - Aktivitätsdiagramm | ||||
|   - Aktion – einzelner Schritt | ||||
|   - Aktivität | ||||
|     - Beschreibt einen Ablauf / repräsentiert ein Verhalten | ||||
|       - Beinhaltet eine Folge Aktionen, Kontroll- oder Objektknoten | ||||
|     - Schachtelung von Aktivitäten und Aktionen | ||||
|       - Aktionen in Aktivitäten enthalten | ||||
|       - Aktionen durch Aktivitäten verfeinerbar | ||||
|     - Aktivitäten beschreiben / verfeinern | ||||
|       - Aktionen, Use Cases, Interaktionen, Operationen ... | ||||
|   - Ein- und Ausgabeparameter in Form von Objekten | ||||
|     - Parameterknoten entsprechend Pins der aufrufenden Aktion | ||||
|     - Alternativ: Parameterangabe mit Name und Typ | ||||
|   - Angabe von Vor- und Nachbedingungen möglich | ||||
|   - Optional: Parameter unter Aktivitätsnamen | ||||
| 
 | ||||
| - Verfeinerung der Aktionen durch Aktivitäten | ||||
| - Aktion durch Interaktionen verfeinern | ||||
|   - Detaillierte Diagramme | ||||
|   - Meist entwurfsnah | ||||
| - Verfeinerung der Aktionen durch StateChart | ||||
| - Objekte zusammenstellen und klassifizieren | ||||
|   - Toolunterstützung (Möglichkeiten stark toolabhängig) | ||||
|   - Objekte Ergebnis der Verhaltensmodellierung | ||||
|   - Ergebnis Verhaltensdiagramm: Operationen der Klassen | ||||
|   - Klassen generalisieren / spezialisieren $\rightarrow$ Klassenhierarchie | ||||
| - Übergang zum Entwurf | ||||
|   - Klassenstruktur festlegen | ||||
| - Spezifikation von Benutzungsschnittstellen | ||||
|   - Skizzieren, Prototyp generieren, Spezialwerkzeuge | ||||
|   - Klassen und Operationen in Funktionen | ||||
|   - Gestaltung MMI, style guides, Standards | ||||
| 
 | ||||
| ## Dokumentation von Anforderungen | ||||
| - Lastenheft | ||||
|   - Gesamtheit der Forderungen eines Auftraggebers (AG) an die Lieferungen und Leistungen eines Auftragnehmers (AN), manchmal Vertragsbasis | ||||
|   - Muss-Kriterien, Kann-Kriterien, Abgrenzungskriterien | ||||
| - Pflichtenheft | ||||
|   - Entwurf aus AN-Sicht, Umsetzung des Lastenhefts | ||||
|   - Meist Vertragsbasis | ||||
| - Inhalt Anforderungsspezifikation | ||||
|   - Zielsetzung | ||||
|   - Allgemeine Beschreibung | ||||
|     - Umgebung, generelle Funktion, Restriktionen, Benutzer | ||||
|   - Spezifische funktionale Anforderungen | ||||
|     - möglichst quantitativ (z.B. Tabellenform) | ||||
|     - eindeutig identifizierbar (Nummern) | ||||
|   - Spezifische nicht-funktionale Anforderungen | ||||
|     - z.B. Antwortzeit, Speicherbedarf, HW/SW-Plattform | ||||
|     - Entwicklungs- und Produkt-Standards | ||||
|   - Qualitäts-Zielbestimmung | ||||
|   - Zu erwartende Evolution des Systems, Versionen | ||||
|   - Abkürzungsverzeichnis, Glossar, Index, Referenzen | ||||
| 
 | ||||
| 
 | ||||
| Pflichtenheft (Beispiel) | ||||
| 1. Einleitung, Zielbestimmung | ||||
| 2. Übersicht | ||||
|     - Einsatzbereich, Zielgruppen | ||||
|     - Produkt-Umgebung | ||||
|     - Produkt-Funktionen | ||||
|     - Restriktionen | ||||
|     - Annahmen und Abhängigkeiten | ||||
|     - Vorhandenes System (ggf.) | ||||
| 3. Vorgeschlagenes System | ||||
|     - Übersicht | ||||
|     - Funktionale Anforderungen | ||||
|     - Benutzungsschnittstelle | ||||
|     - Nichtfunktionale Anforderungen | ||||
|     - Systembeschreibung | ||||
|       - Szenarien | ||||
|       - Anwendungsfälle | ||||
| 4. Glossar | ||||
| 
 | ||||
| 
 | ||||
| # Grobentwurf | ||||
| # Feinentwurf | ||||
| # Implementierung | ||||
|  | ||||