UML Modelle
This commit is contained in:
		
							parent
							
								
									0c42cf9ba9
								
							
						
					
					
						commit
						f8e5954ad6
					
				| @ -116,11 +116,219 @@ Modelle für: | |||||||
| ## Objektorientierung | ## Objektorientierung | ||||||
| - bessere Strukturierung für komplexe Zusammenhänge | - bessere Strukturierung für komplexe Zusammenhänge | ||||||
| - Abstraktere Sichtweise | - Abstraktere Sichtweise | ||||||
| - Objekt hat | - Grundprinzip: Zerlegung; Teile und Herrsche | ||||||
|  | - ein System besteht aus vielen Objekten | ||||||
|  | - ein Objekt hat | ||||||
|   - definiertes Verhalten |   - definiertes Verhalten | ||||||
|  |     - Menge genau definierter Operationen | ||||||
|  |     - Operation wird beim Empfang einer Nachricht ausgeführt | ||||||
|   - inneren Zustand |   - inneren Zustand | ||||||
|  |     - Zustand des Objekts ist Privatsache | ||||||
|  |     - Resultat einer Operation hängt vom aktuellen Zustand ab | ||||||
|   - eindeutige Identität |   - eindeutige Identität | ||||||
| - Klasse: gleichartige Objekte mit ggf versch Zu |     - Identität ist unabhängig von anderen Eigenschaften | ||||||
|  |     - Mehrere verschiedene Objekte mit identischem Verhalten und identischem inneren Zustand im gleichen System möglich | ||||||
|  | - Klasse | ||||||
|  |   - Gleichartige Objekte mit ggf. verschiedenen Zuständen | ||||||
|  |   - Verhaltensschema – Operationen | ||||||
|  |   - Innere Struktur – Attribute | ||||||
|  | 
 | ||||||
|  | Vorteile der Objektorientierung | ||||||
|  | - Zuständigkeitsbereiche | ||||||
|  |   - Daten, Operationen und Zustand: lokal und gekapselt | ||||||
|  | - Klare Schnittstellen | ||||||
|  |   - Definiertes Objektverhalten, Nachrichten | ||||||
|  | - Hierarchie | ||||||
|  |   - Vererbung und Polymorphie (Spezialisierung), Klassenschachtelung | ||||||
|  | - Baukastenprinzip | ||||||
|  |   - Benutzung vorgefertigter Klassenbibliotheken, Anpassung durch Spezialisierung (mittels Vererbung) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| ## Unified Modeling Language | ## Unified Modeling Language | ||||||
|  | - Grafisches Beschreibungsmittel für Aspekte des Softwareentwurfs diskreter Systeme | ||||||
|  |   - Spezifikation, Entwurf, Visualisierung, Konstruktion, Dokumentation von Software | ||||||
|  |   - Für OO-Softwareentwicklung und -prozess geeignet | ||||||
|  |   - UML ist weder Methode noch Prozess | ||||||
| 
 | 
 | ||||||
|  | Warum UML? | ||||||
|  | - Objektorientierung ist zur Zeit das vorherrschende Modellierungs-Paradigma, Industrie-Standard | ||||||
|  | - Kombination von Struktur-, Verhaltens-, Interaktions-, und Verteilungsmodellen | ||||||
|  | - Für Analyse, Entwurf, Implementierung und Test einsetzbar | ||||||
|  | - Gute Werkzeugunterstützung für Editieren, Versionierung, Codegenerierung | ||||||
|  | - Erweiterbarkeit der UML mit Stereotypen und Tags | ||||||
|  | - Semi-formale Modelle, z.T. verschiedene Interpretationen | ||||||
|  | - Offenheit: Erweiterung mit stereotypes, tags, constraints | ||||||
|  | 
 | ||||||
|  | Nachteile UML | ||||||
|  | - UML ist in vielen Facetten nicht präzise festgelegt | ||||||
|  | - Werkzeuge für Transformation, Analyse etc. fehlen noch | ||||||
|  | - UML ist keine „kleine Sprache“: Lernaufwand notwendig | ||||||
|  | - Komponenten sind nicht adäquat darstellbar | ||||||
|  | - Sprachen wie die UML werden erlernt durch Übung! | ||||||
|  | - Aber: LV SWT ist kein kompletter UML-Kurs | ||||||
|  | 
 | ||||||
|  | ### Überblick über Modelle | ||||||
|  | - 14 Diagrammarten | ||||||
|  | - Struktur-Diagramme | ||||||
|  |   - Klassen-, Objekt-, Komponenten-, Kompositions-Struktur-, | ||||||
|  |   - Paket- und Verteilungsdiagramm | ||||||
|  |   - Profildiagramm – zur UML-Erweiterung | ||||||
|  | - Verhaltens-Diagramme | ||||||
|  |   - Use-Case-, Aktivitäts- und Zustandsdiagramms | ||||||
|  |   - Interaktionsdiagramme: Sequenz-, Kommunikations-, Timing- und Interaktionsübersichts-Diagramm | ||||||
|  | 
 | ||||||
|  | #### Use-Case-Diagramm | ||||||
|  | - Beschreiben Systemfunktion aus Benutzersicht (Was, nicht Wie) | ||||||
|  | - Erste Anforderungsspezifikation (requirements) | ||||||
|  | - Planbare Einheiten als Inkremente für die Entwicklung | ||||||
|  | - Keine Modellierung eines Ablaufs! | ||||||
|  | - Erstellen von Testfällen (test case generation) | ||||||
|  | - Grundelemente | ||||||
|  |   - Anwendungsfall: Use Case | ||||||
|  |   - Beteiligte: Aktor | ||||||
|  | - Verfeinerung mittels Use-Case-Realisierung notwendig | ||||||
|  |   - Textuelle Beschreibung | ||||||
|  |   - Verhaltensdiagramme | ||||||
|  | 
 | ||||||
|  | #### Klassendiagramm | ||||||
|  | - Modellierung der Struktur (Aufbau) eines Systems | ||||||
|  | - Modellierung von statischen Aspekten | ||||||
|  | - Modellierung der Struktur von Daten | ||||||
|  | - Klasse im Mittelpunkt | ||||||
|  |   - Aufbau: Attribute, Operationen | ||||||
|  |   - Beziehungen zueinander: Assoziationen, Vererbung | ||||||
|  | - Verbreitetstes und bekanntestes Diagramm der UML | ||||||
|  | 
 | ||||||
|  | #### Objektdiagramm | ||||||
|  | - Struktur des Systems zur Laufzeit zu einem Zeitpunkt | ||||||
|  | - Tatsächliche Zusammenhänge und Belegungen von Attributen von Objekten zu einem Zeitpunkt | ||||||
|  | - Eine detaillierte Sicht auf einen Aspekt | ||||||
|  |   - Keine vollständige Beschreibung (zu komplex) | ||||||
|  |   - Für kompliziertere Abhängigkeiten (z.B. Rekursion) | ||||||
|  | - Objektdiagramm für alle Arten von Exemplaren | ||||||
|  |   - z.B.: Klasse (Objekt), Komponente, Knoten, ... | ||||||
|  | - Keine Exemplare von Operationen -> Ablauf -> Verhaltensdiagramme / Interaktionsdiagramme | ||||||
|  | - Kein Verlauf der Wertebelegung über die Zeit | ||||||
|  | 
 | ||||||
|  | #### Paketdiagramm | ||||||
|  | - Gliederung (Strukturierung) des Systems in Teile (Pakete) | ||||||
|  | - Zuordnung von Elementen zu einem Paket | ||||||
|  | - Bildung von Hierarchien (Enthält-Beziehung) | ||||||
|  | - Abhängigkeiten zwischen den Paketen | ||||||
|  |   - "Include" von Quellcode-Dateien (<<import>>) | ||||||
|  | - Anwendung: | ||||||
|  |   - Zum Grobentwurf von Systemen | ||||||
|  |   - Definition von Schichten | ||||||
|  | 
 | ||||||
|  | #### Komponentendiagramm | ||||||
|  | - Strukturierung des Systems durch Komponenten | ||||||
|  | - Komponente: Modulare, austauschbare Einheit (Substitution) | ||||||
|  | - Modellierung der Abhängigkeiten zwischen Komponenten | ||||||
|  | - Modellierung der inneren Struktur von Komponenten | ||||||
|  | - Definition von Schnittstellen | ||||||
|  | 
 | ||||||
|  | #### Kompositionsstrukturdiagramm | ||||||
|  | - Teile-Ganzes-Strukturen -> Kompositionsstruktur | ||||||
|  | - Strukturell statische Kompositionsstrukturen: | ||||||
|  |   - Kurzschreibweise bei vielen Kompositionen | ||||||
|  |   - Modellierung des Aufbaus komplexer Systeme | ||||||
|  | - Strukturell dynamische Kompositionsstrukturen: | ||||||
|  |   - Notwendige Strukturen zur Realisierung eines Verhaltens | ||||||
|  |   - Definition von Rollen, zur Lösung wiederkehrender Probleme -> Modellierung von Mustern | ||||||
|  | - Starke Verwandtschaft mit dem Klassendiagramm | ||||||
|  | - Spezialisierte Kompositionsbeziehung -> erweiterte Semantik | ||||||
|  | 
 | ||||||
|  | #### Aktivitätsdiagramm | ||||||
|  | - Modellierung von | ||||||
|  |   - Kontrollflüssen | ||||||
|  |   - Datenflüssen | ||||||
|  |   - Parallelem Verhalten | ||||||
|  |   - Verzweigungen, bedingten und gewichteten Abläufen | ||||||
|  | - Geschäftsprozessmodellierung möglich | ||||||
|  | - Abstrakte und detaillierte Verhaltensbeschreibung möglich | ||||||
|  | - Grundlage zur Codegenerierung | ||||||
|  | - Zur Verfeinerung von | ||||||
|  |   - Use-Cases | ||||||
|  |   - Operationen / Interaktionen | ||||||
|  |   - anderen Aktionen und Aktivitäten | ||||||
|  | 
 | ||||||
|  | #### Interaktionsdiagramme | ||||||
|  | - Modellierung von | ||||||
|  |   - Kommunikation zwischen Kommunikationspartnern (Lebenslinie) | ||||||
|  |   - Operationen (Modellierung eines Programms) | ||||||
|  |   - Informationsaustausch / Nachrichten | ||||||
|  | - Gemeinsames Grundkonzept der Interaktionsdiagramme | ||||||
|  | - Sehr detaillierte Diagramme | ||||||
|  |   - Meist nicht zur vollständigen Beschreibung eines Systems | ||||||
|  |   - Betrachtung eines wichtigen Teilaspekts | ||||||
|  | - Grundlage zur Codegenerierung | ||||||
|  | 
 | ||||||
|  | #### Sequenzdiagramm | ||||||
|  | - Genaue zeitliche Abfolge von Nachrichten | ||||||
|  | - Umfangreichstes Interaktionsdiagramm | ||||||
|  | - Kontrollelemente möglich (Schleifen, Verzweigungen) | ||||||
|  | 
 | ||||||
|  | #### Kommunikationsdiagramm | ||||||
|  | - Kommunikationsbeziehungen der Kommunikationspartner stehen im Vordergrund | ||||||
|  | - Welche Komponenten arbeiten wie zusammen, um eine Funktion zu erfüllen | ||||||
|  | 
 | ||||||
|  | #### Timing-Diagramm | ||||||
|  | - Genaue zeitliche Darstellung von Zustandsübergängen | ||||||
|  | - Kommunikation abhängiger Zustandsautomaten | ||||||
|  | - Modellierung einzelner Interaktion | ||||||
|  | 
 | ||||||
|  | ##### Prinzipieller Aufbau | ||||||
|  | - Zeitlicher Verlauf senkrecht | ||||||
|  | - Kommunikationspartner waagerecht (unsortiert) | ||||||
|  | - Lebenslinie | ||||||
|  |   - Rechteck mit gestrichelter senkrechter Linie | ||||||
|  |   - Start, Ende und Dauer der Ausführung einer Operation | ||||||
|  |   - Rekursive Aufrufe möglich | ||||||
|  | - Ereignisspezifikation | ||||||
|  |   - Stelle des Sendens / Empfangens der Nachricht | ||||||
|  |   - Definition der Reihenfolge des Auftretens | ||||||
|  |   - Trace: Folge von Sende- und Empfangsereignissen | ||||||
|  | 
 | ||||||
|  | ##### Weitere Elemente des Sequenzdiagramms | ||||||
|  | - Nachrichten ohne Sender | ||||||
|  |   - z.B. am Beginn einer Interaktion | ||||||
|  | - Verlorene Nachrichten (ohne Empfänger) | ||||||
|  |   - Nachricht ohne dargestellten Empfänger | ||||||
|  |   - z. B. am Ende einer Interaktion | ||||||
|  | - Erzeugen von Lebenslinien | ||||||
|  |   - Gestrichelte Linie mit geöffnetem Pfeil | ||||||
|  |   - Keine Rückgabenachricht | ||||||
|  |   - Zeitliche Einrückung des Rechtecks | ||||||
|  | - Zerstören von Lebenslinien | ||||||
|  |   - Durchgezogene Linie mit Dreieckende | ||||||
|  |   - Kann Rückgabenachricht erzeugen | ||||||
|  | 
 | ||||||
|  | ##### Nachrichten in Interaktionsdiagrammen | ||||||
|  | - Ereignis des Sendens bzw. Empfangens von Nachrichten | ||||||
|  | - Typen: | ||||||
|  |   - Operationsaufruf (synchron / asynchron) | ||||||
|  |   - Antwort Nachricht | ||||||
|  |   - Signal (asynchron), Create-/ Delete Message | ||||||
|  | - Operationsaufruf: Parameterliste muss kompatibel sein | ||||||
|  | - Nachrichtentypen | ||||||
|  | 
 | ||||||
|  | #### Zustandsdiagramm | ||||||
|  | - Modellierung des (vollständigen?) Verhaltens | ||||||
|  |   - Zustände von Klassen / Objekten / Komponenten | ||||||
|  |   - Übergänge zwischen den Zuständen | ||||||
|  |   - Ereignisse, die Zustandswechsel auslösen | ||||||
|  | - Modellierung von endlichen Automaten (Zustandsmaschinen) | ||||||
|  |   - Deterministische | ||||||
|  |   - Nichtdeterministische | ||||||
|  | - Verfeinerung von Zuständen möglich | ||||||
|  | - Modellierung von verteilten Systemen / parallelem Verhalten | ||||||
|  | - Grundlage zur Codegenerierung | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Analyse | ||||||
|  | # Grobentwurf | ||||||
|  | # Feinentwurf | ||||||
|  | # Implementierung | ||||||
|  | # Vorgehensweise | ||||||
|  | # Projektmanagement | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user