Die UML hat sich bereits seit einiger Zeit zur Standardnotation zur Beschreibung objektorientierter Systeme entwickelt. Dies verdankt sie neben den erfolgreichen Normierungsbemühungen durch die OMG vor allem ihrer guten Eignung zur Beschreibung eines weiten Spektrums von Anwendungsdomänen in den jeweils erforderlichen Detaillierungen. Statische Aspekte können genauso wie dynamische und architektonische Sachverhalte modelliert werden. Wenngleich in letzter Zeit Bemühungen sogar dahin gehen, die UML auch zur Beschreibung von Domänen zu verwenden, die keine Repräsentation in einem EDV-System finden, liegt der Fokus dieses Kurses jedoch eindeutig auf dem objektorientierten Softwareentwicklungsprozess. Es werden alle Diagrammarten der UML besprochen und in den Kontext der objektorientierten Entwicklung gebracht. Dafür werden Beispiele herangezogen, die gemeinsam geübt und diskutiert werden. Als methodisches Gerüst des Kurses dient der Software-Lifecycle. Die verschiedenen Phasen des SW-Lebenszyklus werden mit UML-Diagrammen vorbereitet und dokumentiert. Einen Schwerpunkt hat der Kurs in der Unterstützung der Analyse- und Designdisziplin. Dabei wird auch gezeigt, wie die UML in den Prozess der Softwareentwicklung eingebunden wird, schließlich gibt die UML lediglich eine Notation vor und bedarf eines geeigneten Vorgehensmodells. Die Erarbeitung des Themas erfolgt an einem durchgängigen Fallbeispiel.
Anmerkung:In mehreren Gruppenübungen vertiefen Sie Ihr Wissen. Als Tool steht Ihnen u.a. Poseidon for UML (Community Edition) von Gentleware AG zur Verfügung.
Voraussetzung
Erfahrung mit objektorientierter Programmierung empfehlenswert.
Inhalt
- Konzepte der Objektorientierung:
- Objekt, Klasse, Aggregation, Vererbung, Nachricht, Assoziation, Kollaboration, Rolle, Verantwortlichkeit, Zustand, Ereignis
- UML-Diagramme als Sprache der Modellierung:
- Statische Sicht
- Dynamische Sicht
- Verteilungssicht
- Implementierungssicht
- Design Patterns als Sprache des Designs
- Änderungen und Erweiterungen von UML 2 gegenüber der Version 1.4:
- Bessere Trennung Konzept - Diagramm
- Das UML-Metamodell
- Software-Lebenszyklus:
- Vorgehensmodell: was ist das
- die Bedeutung eines Vorgehensmodells für die Softwareentwicklung
- Objektorientierte Lebenszyklen und iterativer Entwurfsprozess
- Spezifikationsmethoden und Implementierung
- Ist parallele Entwicklung von Teilsystemen möglich?
- Risiko Management
- Ein anwendungsfallgetriebenes, iteratives und risikogesteuertes Vorgehensmodell, Ausblick auf den Rational Unified Process
- Anforderungsermittlung:
- Use-Cases, Use-Case-Diagramme, Beschreibung von Use Cases
- Aktivitätsdiagramme
- Nicht funktionale Anforderungen
- Glossar, Architekturdokument
- Analyse-Prozess
- Initialer Architekturentwurf
- Architekturbeispiele
- Was gehört in eine Architekturbeschreibung?
- Paketdiagramme, Verteilungsdiagramme, Komponentendiagramme, Kompositionsstrukturdiagramme
- Beschreibung von Benutzerschnittstellen
- Wie findet man Verantwortlichkeiten?
- Wie findet man Beziehungen?
- Domänenklassen, Klassendiagramm, CRC-Cards
- Weitere Analysemechanismen, Robustheitsanalyse
- Auswirkung der Analyseergebnisse für das Projektmanagement
- Design-Prozess
- Architekturverfeinerung
- Wie findet man Klassen?
- Wie findet man Methoden?
- Wie erfolgt der Übergang externe Sicht-interne Sicht?
- Die Bedeutung von Design-Wissen
- Design-Patterns und andere Design-Mechanismen
- Kommunikationsdiagramm, Kommunikationsdiagramm vs. Kollaborationsdiagramm
- Klassendiagramm: Spezifikationssicht, Implementierungssicht
- Schnittstellenkonzept in UML 2.0
- Sequenzdiagramme, Zustandsdiagramme, Zeitablaufdiagramme
- Sind UML-Diagramme konsistent?
- Interaktionsübersichtsdiagramm
- Subsysteme und Themenbereiche, Klassenbibliotheken
- Unterstützung durch Case-Tools?
- Reverse-Engineering
- Bemerkungen zum Refactoring, Bad Smells in UML-Diagrammen
Zielgruppe
Entwickler, die bereits objektorientiert programmieren und vom Standard der UML für die Modellierung profitieren möchten.
Dauer
3 Tage
Teilnehmer
4 bis 10 Personen