Column #col2

Schulungsbeschreibung: OOAD mit der UML

1. Grundlagen der Objekttechnologie
Sie lernen Objekte und Klassen kennen und wie diese verwendet werden. Sie erfahren den Unterschied zwischen guten und schlechten Klassen, wieviele Klassen in einem Programm benötigt werden und was Polymorphismus bedeutet.

2. Grundlagen der UML
Sie lernen die UML als Sprache kennen, um komplexe Systeme zu modellieren. Dabei lernen Sie die Grundkonzepte der UML und Sie erfahren, wie sich die UML für neue Anforderungen durch verschiedene Mechanismen wie Stereotypen erweitern lässt.

3. Der Entwicklungsprozess
Hier lernen Sie die Motivation für einen iterativen Softwareentwicklungsprozess kennen. Er wird Ihnen aus zwei verschiedenen Perspektiven, aus der Managementsicht und aus der technischen Sicht, erklärt und seine Bedeutung für das Management, das Entwicklerteam, die Dokumentation und die eingesetzten Werkzeuge erläutert.

4. Aktivitäten
Für die Modellierung von Aktivitäten, von parallelen Abläufen sowie von Abläufen innerhalb einer Operation lernen Sie die Aktivitätsdiagramme kennen. Dabei lernen Sie, wie Sie Aktions- und Aktivitätszustände und Zustandsübergänge beschreiben können, wie Sie Verzweigungen, Gabelungen zur Darstellung von Parallelität, Synchronisation sowie das Senden und Empfangen von Signalen bei Zustandsübergängen modellieren können.

5. Anforderungsanalyse
Sie lernen die Unterschiede zwischen den funktionalen und nicht-funktionalen Anforderungen und die Probleme der Anforderungsanalyse kennen. Die funktionalen Anforderungen beschreiben Sie mit Hilfe des Konzepts der Anwendungsfälle (Use-Cases) und Akteure. Der Einsatz von Szenarien erlaubt Ihnen, die Anwendungsfälle weiter zu verfeinern.

6. Finden von Klassen
Sie lernen verschiedene Techniken zum Finden von Klassen kennen: CRC-Karten, Entwurfsmetaphern, Analyse von Szenarien, Fachwissen. Welche Methode ist die beste? Wie können die Methoden effektiv kombiniert werden? Wie können Sie Klassen dokumentieren?

7. Zusammenwirken von Objekten
Hier erfahren Sie, dass Sie Interaktionen zwischen Objekten mit Hilfe von Sequenz- und Kommunikationsdiagrammen beschreiben können und dabei die in Szenarien beschriebene Funktionalität modellieren sowie die Anwendungsfälle verfeinern können.

8. Beziehungen zwischen Klassen
Sie erfahren, wozu Beziehungen zwischen Klassen notwendig sind, welche Arten es gibt, was Sie bei der Namensgebung beachten sollten und wie Sie Beziehungen verfeinern können (Multiplizität, Navigierbarkeit).

9. Vererbung
Als spezielle Form der Beziehungen lernen Sie die Grundlagen der Vererbung, der Einfach- und Mehrfachvererbung und Polymorphismus im Zusammenhang mit der Vererbung kennen. Sie erhalten außerdem praktische Hinweise zum Einsatz der Vererbung.

10. Verhalten von Klassen und Objekten
Hier lernen Sie Zustandsübergangsdiagramme für die Modellierung dynamischer Abläufe kennen und insbesondere, wie man komplexe Diagramme durch Schachtelung von Zuständen vereinfachen kann. Dabei wird vertiefend auf die erweiterten Möglichkeiten der UML 2 zur Modellierung von komplexen Zustandsübergangsdiagrammen eingegangen.

11. Übergang zum Design
Beim Übergang zum Design lernen Sie, welche Probleme es bei der Erstellung des Analysemodells geben kann und wie man das Analysemodell konsolidiert. Außerdem erfahren Sie, welche Aufgaben im Design wichtig sind, wie man das Modell verfeinert und eine Softwarearchitektur erstellt.

12. Modulares Design
In diesem Kapitel lernen Sie die verschiedenen Möglichkeiten kennen, wie man ein Softwaresystem modular aufbauen kann, welche Konzepte die UML für die verschiedenen Ebenen der Modellierung zur Verfügung stellt und wie die Konzepte eingesetzt werden. Sie lernen neben Subsystemen und Paketen strukturierten Klassen und Komponenten samt Ports kennen.

13. Softwarearchitektur
Hier erfahren Sie, wie wichtig und für den Erfolg eines Projektes entscheidend die Softwarearchitektur ist. Sie lernen, dass die Architektur durch Pakete strukturiert wird und wie die Abhängigkeiten zwischen diesen Paketen verwaltet werden. Das 4+1-Sichten-Modell lernen Sie detailliert kennen. Dabei wird auf den Unterschied von logischer und physischer Modellierung eingegangen. Sie erfahren, welche Auswirkungen eine Architektur auf den Teamaufbau und die Dokumentationsstruktur hat.

14. Patterns (Entwurfsmuster)
Sie lernen hier Patterns und ihre verschiedenen Arten kennen. Sie lernen, wie Patterns die Architektur und das Design steuern können, wie Sie das richtige Pattern finden, instanziieren und im Design dokumentieren. Sie erfahren, was Sie beim Umgang mit Patterns beachten müssen.

Ergänzende Kapitel
15. Entwurf komponentenbasierter Systeme
Hier werden Ihnen die Grundlagen von Komponenten und komponentenbasierten Systemen vorgestellt. Sie lernen den Unterschied zwischen Klassen und Komponenten kennen und wie Sie Komponenten entwerfen. Sie erfahren, welche Flexibilität Sie mit Komponenten erzielen und wie Sie mit Web-Services offene Systeme und Service-orientierte Architekturen erzeugen können.

16. Verteilte Objekttechnologien
Sie erfahren, wie sich verteilte Systeme mit Hilfe von objektorientierten Technologien sehr elegant auf hohem Abstraktionsniveau aufbauen lassen und welche Technologien Ihnen hierzu zur Verfügung stehen. Sie lernen aber auch die Probleme kennen, die eine Verteilung mit sich bringt.

17. Verwalten von Objekten
Hier lernen Sie, welche Möglichkeiten es gibt, um Objekte persistent abzuspeichern. Sie erfahren, wie Objekte in relationalen und objektorientierten Datenbanken gespeichert werden. Sie lernen die Vor- und Nachteile der verschiedenen Ansätze kennen und bekommen Kriterien an die Hand, um für Ihr Projekt die richtige Entscheidung zu treffen.

18. Fehlerbehandlung
Sie erfahren, welche Methoden zur Fehlerbehandlung existieren und wie Sie diese vorteilhaft einsetzen. Sie lernen, wie Sie durch richtige Fehlerbehandlung die Qualität Ihrer Software erhöhen können.

19. Wiederverwendung
Hier lernen Sie, Wiederverwendung realistisch einzuschätzen und zu beurteilen. Sie lernen die Vorteile, die verschiedenen Ansätze und den Umfang der Wiederverwendung von Software kennen. Sie erhalten Hinweise, wie Wiederverwendung in der Praxis erreicht wird.

20. Design mit C++, Design mit Java bzw. Design mit C#
Sie erfahren, welche Besonderheiten beim Einsatz von C++, von Java bzw. von C# zu beachten sind. Sie lernen, wie sich Beziehungen zwischen Klassen in C++, Java bzw. C# realisieren lassen, welche Schwierigkeiten es beim Einsatz von Mehrfachvererbung geben kann und was bei der Verwendung von Exceptions zu beachten ist.