OOD – Object Oriented Design II Komponenten-Design
Lernziele Sie können ... das Komponentendiagramm nach UML 2.0 lesen und erstellen. die einen Komponentendesign aus den Analyseartefakten ableiten.
Literatur Applikationen objektorientiert konzipieren: Kapitel 8.1 Lehrbuch der Objektmodellierung: LE 16 + LE 17 LE 11 – LE 13
Gesamtübersicht Analyse (OOA) Design (OOD) Implementation Anwendungsfall- modell Statisches Analysemodell Dynamisches Analysemodell Analyseprototyp Design (OOD) Architektur- design Komponenten- design Datenbank- Design Designprototyp Implementation lauffähiges System
Entwurf (Design) Modellierung des PSM (Platform Specific Model) 1:1-Abbild der zu implementierenden Realität Modellierungswerkzeuge bieten Code-Generierung MDD – Model Driven Development Forward – Reverse – Roundtrip - Engineering Basis: statischen und dynamischen Analysemodelle Architektur-Artefakte
Input: Resultate aus Architektur Äussere Architektur: Innere Architektur:
Komponente Es gibt verschiedene Komponentenmodelle: Eine Komponente ist ein Softwarebaustein mit klar definierter Schnittstelle festgelegtem Verhalten Qualitäts-Anforderungen: Wiederverwendbar Substituierbar Wartbar (optimale Grösse!) Es gibt verschiedene Komponentenmodelle: JavaBeans, EJB (Enterprise Java Beans) .NET-Assemblies MS COM (Component Object Model) UML-Notation:
Komponentenfestlegung I Berücksichtigen der Designprinzipien Komponente immer innerhalb einer Architektursichtweise: Schicht - Subsystem Zu angrenzenden Systemen: Fassaden-Komponente Repräsentanten externer Systeme (Proxy-Komp.) Zugriffs-Komponente Spezialfunktionen: Steuerung/Kontrolle Security-Handling Exception-Handling
Komponentenfestlegung II Fachkomponenten (nach MVC) View Präsentationskomponenten Control Prüfung-/Steuerungskomponenten Model Sitzungsorientierte Komponenten Nachrichtenorientierte Komponenten Persistenz Komponenten – Data-Access-Komponenten
Modellierung mit Profiles UML-Profile Ergänzung des UML-Metamodelles vordefinierte Stereotypen für J2EE, .NET etc. Bsp.:
Statische Konzepte Klassendiagramm detailliert ausarbeiten Interface und Control-Klassen modellieren Navigierbarkeit explizieren Vererbungsstruktur überarbeiten: Mehrfachvererbungen über Interface-Klassen auflösen möglichst flache Generalisierungshierarchie Wurzelklassen sollen abstrakt sein Gemeinsamkeiten so hoch wie möglich in der Generalisierungshierarchie einordnen Gemeinsame Attribute als Datentypen spezifizieren Gemeinsame Operationen als Oberklassen realisieren
Dynamische Konzepte Für komplexe Operationen: Für komplexe Szenarien: Aktivitätsdiagramme Für komplexe Szenarien: Sequenzdiagramme Für komplexe Lifecycles von Objekten: Zustands- bzw. Protokollautomaten
Detailliertes Klassendiagramm für die Komponente Reservationen
Schnittstelle (Interface ) Interaktion über Interfaces
Interne Details einer Komponente Visuelle Darstellung Textuelle Darstellung
Übungen UML-Übungen Übung 8 Fallstudie Nutz AG Auftrag 8