Der Kurs Object-Oriented Analysis and Design using UML beinhaltet eine Anleitung und stützt sich auf praktische Erfahrungen, die sich schwerpunktmäßig auf die effektive Verwendung objektorientierter Technologien und die angemessene Verwendung von Softwaremodellierung in Software-Entwicklungsprozessen konzentrieren. Dieser von einem Schulungsleiter geleitete Kurs umfasst Lektion, Gruppendiskussionen und vom Moderator geführte Aktivitäten zur Darstellung eines praktischen und vollständigen objektorientierten Entwurfs- und Analysefahrplans von der Anforderungserfassung bis zur Systembereitstellung. Der Kurs bietet einen pragmatischen Ansatz zur objektorientierten Softwareentwicklung, der an bewährte objektorientierte Technologien, Prinzipien und Muster anknüpft, wie sie für objektorientierte Programmiersprachen wie beispielsweise JAVA(TM) gelten.
Der Kursteilnehmer erfahren die Vorteile der weit verbreiteten Modellierungssprache Unified Modeling Language (UML), Version 2.2, zur Unterstützung beim Kommunizieren von Konzepten und Entscheidungen, beim Verständnis von Problemen und vorgeschlagenen Lösungen sowie beim Umgang mit der Komplexität der Artefakte, die das Problem und die vorgeschlagene Lösung beschreiben. Der Kurs ist so strukturiert, dass er der generischen Form eines Software-Entwicklungsprozesses mit Schwerpunkt auf Analyse- und Entwurfsaspekten in objektorientieren Softwareprojekten folgt. Dieser generische Prozess kann problemlos an spezifische Prozesse angepasst werden, die später in diesem Kurs besprochen werden. In dem Kurs werden auch Muster und Frameworks behandelt, die die Erstellung flexiblerer und wiederverwendbarer Softwarekomponenten erleichtern.
Students who can benefit from this course
- Systemarchitekten, Softwareingenieure, Systemanalysten und Entwickler, die für die Konzeption und die Erstellung objektorientierter Softwareanwendungen zuständig sind
- In diesem Aufgabenbereich tätige Architekten können ebenfalls einen Nutzen aus diesem Kurs ziehen
Erforderliche Vorkenntnisse
- Demonstrieren eines allgemeinen Verständnisses des Programmierens, vorzugsweise unter Verwendung der Programmiersprache Java
- Verstehen objektorientierter Konzepte und Methoden
- Verstehen der Grundlagen des Systementwicklungsprozesses
- Java SE7 Programming
Kursziele
- Analysieren von Systemanforderungen zur Bestimmung der Anwendungsfälle und des Domänenmodells der Problemdomäne (Anforderungsmodell)
- Erstellen einer Systemarchitektur (Architekturmodell), die die nichtfunktionellen Anforderungen und Entwicklungshemmnisse unterstützt
- Erstellen eines Systementwurfs (Lösungsmodell), der die funktionellen Anforderungen unterstützt
- Beschreiben des Entwicklungsprozesses von objektorientierter Software, einschließlich objektorientierter Methoden und Arbeitsabläufe
- Erfassen von Systemanforderungen durch Interviews mit Interessengruppen
Kursthemen
Untersuchen objektorientierter Konzepte und Terminologie
- Beschreiben der wichtigen objektorientierten Konzepte
- Beschreiben der grundlegenden objektorientierten Terminologie
Einführung zum Modellieren und zum Software-Entwicklungsprozess
- Beschreiben des objektorientierten Software-Entwicklungsprozesses
- Beschreiben, wie die Modellierung den objektorientierten Software-Entwicklungsprozess unterstützt
- Beschreiben der Vorteile der Softwaremodellierung
- Erläutern von Zweck, Aktivitäten und Artefakten der folgenden Arbeitsabläufe der objektorientierten Softwareentwicklung (Disziplinen): Anforderungserfassung, Anforderungsanalyse, Architektur, Entw
Erstellen von Anwendungsfalldiagrammen
- Begründen der Notwendigkeit eines Anwendungsfalldiagramms
- Erkennen und Beschreiben der wesentlichen Elemente in einem UML-Anwendungsfalldiagramm
- Entwickeln eines Anwendungsfalldiagramms für ein Softwaresystem basierend auf den Zielen des Geschäftsinhabers
- Entwickeln ausgearbeiteter Anwendungsfalldiagramme basierend auf den Zielen aller Interessengruppen
- Erkennen und Dokumentieren von Anwendungsfallabhängigkeiten mithilfe einer UML-Notation für Erweiterungen (extend), Einschließungen (include) und Generalisierung
- Beschreiben, wie die Komplexität von Anwendungsfalldiagrammen durch die Erstellung von UML-verpackten Ansichten verwaltet wird
Erstellen von Anwendungsfallszenarien und -formularen
- Erkennen und Dokumentieren von Szenarien für einen Anwendungsfall
- Erstellen eines Anwendungsfallformulars, das eine Zusammenfassung der Szenarien in den Haupt- und alternativen Abläufen beschreibt
- Beschreiben, wie auf eingeschlossene und erweiternde Anwendungsfälle verwiesen wird
- Erkennen und Dokumentieren von nichtfunktionellen Anforderungen, Geschäftsregeln, Risiken und Prioritäten für einen Anwendungsfall
- Identifizieren des Zwecks eines zusätzlichen Spezifikationsdokuments
Erstellen von Aktivitätsdiagrammen
- Identifizieren der wesentlichen Elemente in einem Aktivitätsdiagramm
- Modellieren eines Anwendungsfallablaufs von Ereignissen mithilfe eines Aktivitätsdiagramms
Bestimmen der Schlüsselabstraktionen
- Identifizieren einer Gruppe potenzieller Schlüsselabstraktionen
- Identifizieren der Schlüsselabstraktionen durch CRC-Analyse
Erstellen des Problemdomänenmodells
- Identifizieren der wesentlichen Elemente in einem UML-Klassendiagramm
- Erstellen eines Domänenmodells mit einem Klassendiagramm
- Identifizieren der wesentlichen Elemente in einem UML-Objektdiagramm
- Validieren des Domänenmodells mit einem oder mehreren Objektdiagrammen
Übertragen von Analyse zu Entwurf mithilfe von Interaktionsdiagrammen
- Erläutern des Zwecks und der Elemente des Entwurfsmodells
- Identifizieren der wesentlichen Elemente eines UML-Kommunikationsdiagramms
- Erstellen einer Kommunikationsdiagrammansicht des Entwurfsmodells
- Identifizieren der wesentlichen Elemente eines UML-Sequenzdiagramms
- Erstellen einer Sequenzdiagrammansicht des Entwurfsmodells
Modellieren des Objektstatus mithilfe von Zustandsmaschinendiagrammen
- Modellieren des Objektstatus
- Beschreiben der wesentlichen Elemente eines UML-Zustandsmaschinendiagramms
Anwenden von Entwurfsmustern auf das Entwurfsmodell
- Definieren der wesentlichen Elemente eines Softwaremusters
- Beschreiben des zusammengesetzten Musters
- Beschreiben des Strategiemusters
- Beschreiben des Beobachtermusters
- Beschreiben des Abstract Factory-Musters
Einführung zu Architekturkonzepten und -diagrammen
- Unterscheiden zwischen Architektur und Entwurf
- Beschreiben von verschiedenen Schichten und systemischen Qualitäten
- Beschreiben des Architekturarbeitsablaufs
- Beschreiben der Diagramme der Schlüsselarchitekturansichten
- Auswählen des Architekturtyps
- Erstellen der Artefakte des Architekturarbeitsablaufs
Einführung zu Architekturschichten
- Beschreiben der Konzepte der Client- und der Präsentationsschicht
- Beschreiben der Konzepte der Geschäftsschicht
- Beschreiben der Konzepte der Ressourcen- und der Integrationsschicht
- Beschreiben der Konzepte des Lösungsmodells
Verfeinern des Klassenentwurfsmodells
- Verfeinern der Attribute des Domänenmodells
- Verfeinern der Beziehungen des Domänenmodells
- Verfeinern der Methoden des Domänenmodells
- Deklarieren der Konstruktoren des Domänenmodells
- Annotieren des Methodenverhaltens
- Erstellen von Komponenten mit Schnittstellen
Übersicht über Software-Entwicklungsprozesse
- Erläutern der besten Verfahrensweisen für Methoden der objektorientierten Softwareentwicklung
- Beschreiben der Funktionen mehrerer gängiger Methoden
- Auswählen einer Methode, die für Ihr Projekt am besten geeignet ist
- Entwickeln eines Iterationsplans
Übersicht über Frameworks
- Definieren eines Frameworks
- Beschreiben der Vor- und Nachteile der Verwendung von Frameworks
- Identifizieren mehrerer gängiger Frameworks
- Verstehen des Konzepts der Erstellung eigener Geschäftsdomänen-Frameworks
Kursrückblick
- Rückblick auf die Hauptfunktionen der Objektorientierung
- Rückblick auf die wichtigsten UML-Diagramme
- Rückblick auf die Anforderungsanalyse (Analyse) und der Entwurfsarbeitsabläufe