Klassen und Objekte
Klasse
- Zusammenfassung gleichartiger Objekte
- Bauplan für Objekte
- definieren Attribute
- definierten Operationen
Objekt
- bildet Gegenstand der realen oder vorstellbaren Welt ab
- besitzt eindeutige Identität
- klare Abgrenzung und klare Bedeutung
- besitzt ein beobachtbares Verhalten
- hat einen Zustand
Instanzen einer Klasse
- Objekte entstehen durch Instanziierung einer Klasse
- mit der Instanziierung beginnt Lebenszyklus
Attribute von Klassen
- definieren Daten
- bilden gemeinsam Zustand des Objekts
- in jedem Objekt enthalten
- jeweils durch individuellen Wert repräsentiert
- besteht mindestens aus Name und Datentyp
Attribute von Methoden und Klassen
- definieren Verhalten
- Objekt zeigt Verhalten nur nach Aufforderung per Nachricht durch anderes Objekt
- Operation für alle Objekte identisch
Domänemodell
Kategorien von Klassen
Sichten für Klassendiagramme
- konzeptionelle Sicht
- Definition der relevanten Bestandteile
- aus Sicht des Anwenders
- Verwendung von Analysemustern
- Spezifizierende Sicht
- Darstellung der internen Struktur
- Modellierung der Implementierungsphase
- Erstellung auf Basis der fachlichen Klassen
- Anreicherung um technische Klassen
- Verwendung von Entwurfsmustern
- Implementierende Sicht
- Umsetzung der Klassen in Code
Beziehungstypen
Generalisierung
- Zentrales Konzept
- Klasse A, Basisklasse, Superklasse
- ist Verallgemeinerung der Klasse B
- Umkehrung: Spezialisierung
- Definition von Vererbungshierarchien möglich
- Subklasse erweitert Attribute der Superklasse
Assoziation
- Beziehungstyp auf Instanzniveau
- Menge aller Verknüpfung mit gleicher Struktur und Semantik
- Bezeichnung beschreibt inhaltliche Bedeutung
- Rollennamen geben Rolle einer Klasse aus Sicht der Klasse an
- Multiplizitäten geben Anzahl der möglichen Referenz an
Attributierte Assoziation
Aggregation und Komposition
- Aggregation
- Beziehung zwischen Objekten
- durch Rangordnung gekennzeichnet
- keine exakte Definition der UML
- Komposition
- starke Form der Aggregation
- jedes Objekt der Teil-Klasse zu einem Zeitpunkt nur Komponente eines einzgen Objekts
- Löschen des Ganzen führt zu automatischer Löschung der Teile
Schnittstellen
- Spezifikation des externen Verhaltens von Klassen oder anderen Elementen
- Schnittstellen werden je nach Sicht bereitgestellt
- keine Instanziierung möglich
- zwei alternative Darstellungsformen
Muster in der Softwareentwicklung
Analysemuster
zur Abbildung häufig vorkommender Strukturen in der Anwendungsdomäne
unterstützt Identifikation von Klassen und Modellierung der Beziehungen zwischen Klassen
abstrahieren Problemlösungsmodelle eines Einzelfalls
Idee:
- Muster als bewährte ud wiederverwendbare Vorlage
darstellen von komplexen Zusammenhängen am Modell
nach Fowler:
- eine Idee die sich in einem praktischen Kontext als nützlich erwiesen hat und wahrscheinlich auch in anderen sein wird
nach Coad: .“[..] a template of objects with stereotypical responsibilities ans interactions, the template may be applied again and again, by analogy“
eine standardisierte Lösung für bestimme Probleme
unterstützt die Kommunikation
Beispiele für Analysemuster
- Liste
- Exemplartyp
- Baugruppe
- Stückliste
- Koordinator
- Rolle
- Wechselnde Rolle
- Historie
- Gruppe
- Gruppenhistorie
Analysemuster Liste
- Gruppierung gleichartiger Teile
- Geltungsbereich von Eigenschaften erstreckt sich üer alle Teile
- wiederholt auftretende Daten sollen nicht redundant gespeichert werden
- Test “kann das Ganze ohne die Teile existieren und die Teile ohne das Ganze?”
- Struktur:
- Ganzes-Teil-Beziehung als Komposition zwischen zwei Klassen
Analysemuster Exemplartyp
- für Sachverhalt/Gegenstand existieren mehrere Exemplare (Ausprägungen)
- Eigenschaften sind für alle Exemplare gleich
- Exemplar hat zusätzliche Eigenschaften
- Struktur:
- zwei Klassen mit Assoziationsbezeichnungen
- Exemplartyp kann zeitweilig auch ohne Exemplare existieren (Kardinalität 0…*)
Analysemuster Koordinator
- mehrere Dinge stehen in Sachverhalt zueinander
- Zusammenhang kann durch weiteres Objekt hergestellt werden
- Struktur
- Koordinator Klasse mite wenigen Attributen und Methoden
- Assoziation der Koordinator Klasse zu Klassen, die in Zusammenhang gebracht werden sollen
Analysemuster Rollen
- Objekt kann zu Zeitpunk in Bezug auf anderes Objekt verschiedene Rollen einnehmen
- Struktur:
- mehrere einfache Assoziationen zwischen zwei Klassen