Column #col2

Schulungsbeschreibung: OOAD mit der UML und Patterns

1. Grundlagen der Objekttechnologie
Sie lernen Objekte und Klassen kennen und wie diese verwendet werden. Sie erfahren den Unterschied zwischen guten und schlechten Klassen, wie viele 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. 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.

4. 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.

5. 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?

6. 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.

7. 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).

8. 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.

9. 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.

10. Ü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.

11. 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.

12. Grundlagen der Softwarearchitektur
Nach einer Begriffsdefinition lernen Sie verschiedene Aspekte der Softwarearchitektur kennen. Sie erfahren, wie eine Softwarearchitektur durch architektonische Stile geprägt wird, und lernen die wichtigsten Stile kennen. Sie lernen, welchen Stellenwert die Strukturierung, der Einsatz gemeinsamer Mechanismen, Werkzeuge, Dokumentation und Teamaufbau für den Projekterfolg haben.

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. Sie erfahren, welche Auswirkungen eine Architektur auf den Teamaufbau und die Dokumentationsstruktur hat.

14. Muster (Patterns)
Hier lernen Sie die Grundlagen über Muster. Sie erfahren, was Sie beim Einsatz von Mustern beachten müssen und welche Arten von Mustern es gibt. Sie lernen, wie Sie Muster finden, anpassen und dokumentieren. Sie lernen die Probleme kennen, die durch den falschen Einsatz von Mustern auftreten können.

15. 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.

16. 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.

17. 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.

18. Softwarearchitekturen für Teilsysteme
In diesem Kapitel lernen Sie Softwarearchitekturen verschiedener Teilsysteme wie Klassenbibliotheken, Frameworks und Komponenten kennen, indem die Merkmale sowie die Vor- und Nachteile der verschiedenen Stile gezeigt werden. Darüber hinaus erfahren Sie, wie man die verschiedenen architektonischen Stile kombinieren kann.

19 .Typische Softwarearchitekturen
Hier lernen Sie die Merkmale typischer Softwarearchitekturen kennen. Sie erfahren, wie unterschiedliche Anforderungen eine Softwarearchitektur prägen. Sie lernen, welche Vorzüge Klassenbibliotheken, Frameworks, 3-Tier- und n-Tier-Architekturen haben, und sehen, wie diese für Web-Anwendungen und komponentenbasierte Systeme erweitert werden können.

20. Entwurfsmuster
Hier lernen Sie einige wichtige grundlegende Entwurfsmuster wie z. B. „Abstract Factory“, „Prototype“, „Composite“, „Decorator“ und „Builder“ kennen. Anhand von Beispielen wird gezeigt, wie diese Muster kombiniert und an unterschiedliche Situationen angepasst werden können. Sie erfahren, wie der systematische Einsatz von Mustern die Qualität Ihres Entwurfs entscheidend verbessern kann. Anschließend stellen wir Ihnen flexible Erzeugungsmuster (wie „Pluggable Factory“ und „Facade“) vor, und Sie erfahren anhand von Beispielen, wie Sie diese verwenden können.

21. JUNIT – ein Testframework mit Patterns
In diesem Kapitel lernen Sie, wie man durch konsequente Anwendung von Patterns ein Testframework robust und einfach entwerfen und seine Funktionalität schrittweise erweitern kann.

22. Druckarchitektur für .NET mit Patterns
Am Beispiel von .NET zeigen wir Ihnen in diesem Kapitel, wie Sie die existierende Druckarchitektur mit Patterns so erweitern können, dass auch sehr große und anspruchsvolle Dokumente gedruckt werden können.