Lizenzen für MagicDraw
- Kann vom Laboringenieur erworben werden
- Kann von der Herstellerseite über Registration erworben werden
Literatur
- Methodik (empfohlen)
- Objektorientierte Analyse & Design von Kopf bis Fuß ( Brett D. McLaughlin, G. Pollice, D. West )
- Methodische objektorientierte Software-Entwicklung ( Mario Winter )
- Werkzeuge
- UML2 für Dummies ( Chonoles, Schardt )
- UML2 glasklar ( Rupp, Queins, Zengler )
Vorgehensweisen
- Reale Welt abbilden
- Interaktionen erfassen
- Beziehungen bestimmen
- Geflecht der realen Welt in Struktur bringen und filtern (Abstraktion)
- Was ist wichtig?
- Was will ich darstellen?
- Wo fangen Objekte an, wo hören sie auf?
- Ein einzelnes Objekt betrachten und nur dieses bearbeiten
- Man geht davon aus, dass alle anderen Objekt in sich funktionieren
- „Wenn jeder an sich denkt, ist an jeden gedacht“
Beispiel für Abstraktion (Makler-Software)
- Eine Wohnung ist ein Teil von einem Haus
- Nicht alle Klassen teilen auch die gleichen Eigenschaften ( Haus hat einen Preis, der Interessent hingegen nicht )
- Objekte können beliebig viele Attribute / Eigenschaften besitzen
- Jedes Objekt bzw. die Klasse hat seine „individuellen“ Methoden
- Nicht alle reale Beziehungen werden 1:1 übertragen ( In der Software kann ein Haus die Methode „Anfragen“ haben, in der echten Welt hingegen nicht –> Abstraktion )
- Methoden können nur auf Objekte, sog. Instanzen von Klassen, angewandt werden, nicht auf die Klassen selbst
Kapselung
- Jedes Objekt schützt nur sich selbst
- Interne Realisierung ist nach außen hin nicht sichtbar
- Austausch interner Komponenten möglich für Portierbarkeit
- Werte können nur durch Methoden der Objekte verändert und gelesen werden
- Über Methoden lassen sich Datenschutz und Berechtigungen steuern
Beispiel für Klassendiagramm ( Person )
- Attribute sind nach außen hin nicht sichtbar
- Methoden bilden Schnittstellen
- Methoden können auch Berechnungen durchführen ( Über das Geburtsdatum das Alter (get_age) bestimmen
- Methoden können Gültigkeitsprüfungen als Vorbedingung durchführen
Wiederverwendung
- Klassen ermöglichen Wiederverwendbarkeit, da einzelne Komponenten schnell ausgetauscht werden können
Assoziationen ( Beziehungen )
- Beziehungen untereinander
- Aggregation ( Bestehen aus mehreren Objekten )
- Spezialisierung
- Generalisierung
- Hierarchie
Polymorphismus
- Wert / Variable kann mehrere Datentypen haben, je nach Objekt
- Vermeidung von Typ-basierten Fallunterscheidungen
- Templates
Objektorientierung
- Objektorientierte Programmierung hilft, nach dem Prinzip „Teilen und Herrschen zu programmieren.
- Die Welt wird in Objekte eingeteilt, welche interagieren
- = übersichtlicher
- = flexibler
Wichtige Fragen:
- Welche Informationen sind wichtig und müssen mit einbezogen werden?
- Wie spielen die Objekte zusammen?
Annahme: Wenn jedes Objekt sich nur um sich selbst kümmert, ist für alle gesorgt. –> Jedes Objekt nimmt an, das die anderen funktionieren Warum UML? Große Projekte sind ohne UML ziemlich unübersichtlich und nur sehr schwer zu strukturieren. Durch die UML werden auf höchster Ebene die wichtigsten Informationen klar. UML ist kein Vorgehensmodell, sondern ein Beschreibungsmittel / Beschreibungsmodell
Ende: Seite 47