Objektorientierte Analyse und Design (OOAD) mit der Unified Modeling Language (UML) Flashcards
Definition Objektorientierung
Gegenstände der Realität werden als Objekte abgebildet
Polymorphismus
Verschiedene Arten von Objekten können auf die gleiche Nachricht reagieren, welche Methode tatsächlich ausgeführt wird, entscheidet sich erst zur Laufzeit (Late Binding)
Objekte haben…
- Zustand (Werte der Attribute)
- Verhalten (Methoden beschreiben, wie auf Nachrichten reagiert wird)
- Identität (zwei Objekte mit identischen Werten sind zwei einzigartige Objekte)
Kapselung
Informationen werden vor einem Teil der Applikation verborgen gehalten
Zweck OOAD
- Software soll funktionale Anforderungen erfüllen
- dazu kommen nicht-funktionale Anforderungen (Plattformen, Wartbarkeit, Erweiterbarkeit, Skalierbarkeit, Wiederverwendbarkeit…)
- techn. Anforderungen: z.B. Spaghetticode und Seiteneffekte vermeiden
- Anforderungen analysieren und Aufbau entwerfen, BEVOR Code geschrieben wird
3 mögliche(!) Schritte zu guter Software
1) Software macht, was Kunde möchte
2) Anwenden von OO-Prinzipien für Flexibilität (ein Konzept pro Klasse, keine leeren Attribute)
3) Anstreben eines wartbaren und wiederverwendbaren Designs (bei Änderungen möglichst wenige Klassen ändern müssen, delegieren von Aufgaben)
Separation of Concerns
Gesamtcode wird aufgeteilt, sodass jeder Teil für eine bestimmte Aufgabe zuständig ist
CRC-Cards
Class-Responsibility-Collaboration Cards trennen Zuständigkeiten von Klassen
Vorteile OOAD
- Kunde wird zufriedengestellt (Programm funktioniert und kann verändert werden)
- Programm kann für nächsten Kunden wiederverwendet werden
Unified Modeling Language (UML)
Graphisches Modell um Anforderungen an Softwaresystem und technischen Aufbau des Systems besser zu verstehen
Vorteile UML
Eindeutigkeit: Festlegen beim Zeichnen
Verständlichkeit: gibt komplexe Zusammenhänge wieder
Ausdrucksstärke: Fokus Gesamtsystem oder Teilaspekt
Standardisierung: vereinfach Kommunikation in Projekten
Plattformunabhängigkeit: keine Festlegung
Kriterien, welches der 14 UML-Diagrammtypen genutzt werden soll
Zweck: Wozu dient das Modell?
Zielgruppe: Für wen ist es gedacht?
Kosten/Nutzen-Verhältnis des Modells
UML-Diagrammarten
- Verhaltensdiagramme (weiter: Interaktionsdiagramme)
- Strukturdiagramme
Weitere Methoden, die bei Analyse und Design zum Einsatz kommen
- Screen-Prototypes (GUI für Anforderungsanalyse)
- Use-Case-Dokumente (verbal formuliert oder UML für Anwender oder Entwickler)
Objektorienterte Analyse
Verstehen der Kundenanforderungen durch Sprechen, Fragen stellen, Diskutieren, versch. Blickwinkel
Definition Use Case (Aufteilen der Gesamtaufgabe)
- Anwendungsfall
- Ein Akteur interagiert mit dem zu entwerfenden
System mit einer bestimmten Absicht - dafür: Semi-Strukturierte Methode der Dokumentation
Eigenschaften Use Case (4)
1) Bringt dem Anwender einen Nutzen
2) Hat definierten Anfang und definiertes Ende
3) Wird von einem Akteur außerhalb des Systems initiiert
4) Muss alle Pfade vom Ausgangspunkt bis zum Ziel enthalten
Inhalt Use Case Dokument
- Name (ID)
- Status
- Version
- Description
- Actors
- Basic Flow und Alternative Flow
- Trigger
- Pre- und Postconditions
- Related Use Cases
Prinzipien Use Case (Diagramme)
1) encapsulate what varies
2) understand requirements (Entwickler muss System verstehen)
3) code to interfaces rather that to an implementation (Code einer Klasse soll möglichst unabhängig vom Code anderer Klassen sein)
Domänenanalyse
- Beschreiben der Aufgabe in Sprache des Anwenders
- Sammeln von Informationen (Kunde, Anwender, existierende Systeme, Theorien und Techniken der Domäne)
Use-Case-Diagramme
- beschreiben auf hoher Ebene Funktionalität eines Systems (Was?, aber nicht Wie?)
- Abstrahieren von Details
- geben keine Reihenfolge der Use Cases vor
- Zweckmäßigkeit statt Vollständigkeit
Bestandteile Use Case Diagramm
- großes Rechteck definiert Systemgrenze
- Akteur (EXTERNER Benutzer oder EXTERNES System interagiert mit System)
- Anwendungsfall (Funktionalität des Systems, welches aus einer Menge von Aktionen besteht)
Assoziation
- Bezeichnung zwischen Akteur und Anwendungsfall
- gerichtet: mit Pfeilspitze und Multiplizität
- ungerichtet: lässt offen, ob Akteur den Use Case initiieren kann