UML Klassendiagramme

Objektorientierte Analyse

Lastenheft (Anforderungen):  Anwendungsfalldiagramme, Aktivitätendiagramme image-1664262182770.png

Pflichtenheft (Analyse): Klassendiagramme, Sequenzdiagramme, Kollaborationsdiagramme

Entwurfsphase: Paketdiagramme, Klassendiagramme, Zustandsdiagramme, Sequenzdiagramme

Implementierungsphase: Komponentendiagramme, Verteidigungsdiagramme


Die Objektorientierte Analyse - Erstellen eines ersten Modells des Systems (Analysemodell)

Das Analysemodell dient dem Entwickler als Grundlage für den Entwurf

Formalisierung der Anforderungen: Entdecken, Nachverfolgen und Beseitigen von Fehlern und Problemen, Mehrdeutigkeiten, Widersprüchen und Lücken für die Anforderungsspezifikation,...

Bestandteile des Analysemodells (Fachmodell)
Statisches Fachmodell: Systemstruktur mittels Klassendiagramm
Dynamisches Fachmodell: Systemverhalten mittels Sequenzdiagramm oder Zustandsdiagramm

Vorgehen:
1. Identifizieren der Fachobjekte, Systemgrenzen und Steuerungsobjekte, z.B. als Typen von Klassen mittels Klassendiagrammen
2. Zuordnen der Objekte zu den Anwendungsfällen (z.B. mittels Sequenzdiagrammen)
3. Identifizieren von: Beziehungen (Abhängigkeiten, Assoziationen, Vererbung) | Attribute | Methoden

Objektorientierung

Darstellung von Objekten der realen Welt als Objekte in der Programmierung

Objekt hat ...
1. Eine Objektidentität, die es von anderen Objekten unterscheidet
2. Einen Kontext, d.h. ein Objekt kennt andere Objekte, zu denen es in Beziehung steht
3. Einen Objektzustand, bestimmt durch die Werte der Attribute eines Objekts und dessen Beziehungen zu anderen Objekten
4. Ein Objektverhalten, bestimmt durch eine Reihe von Methoden des Objektes

Der Zustand eines Objekts: Umfasst die Attribute und ihre aktuellen Werte und deckt die relativen Beziehungen ab
Das Verhalten eines Objekts: Wird durch Methoden definiert, Änderungen oder Abfragen nur durch Methoden möglich

Die Eigenschaft, die ein Objekt von allen anderen Objekten unterscheidet, wird als Identität bezeichnet.

drei Grundprinzipien der Objektorientierung: Datenkapselung | Vererbung | Polymorphie

Klassendiagramme

Klassendiagramme modellieren die statischen strukturellen Beziehungen zwischen den Komponenten eines Systems. 

Klassendiagramme sind der Hauptbaustein der objektorientierten Modellierung. image-1664266638154.pngimage-1664266692230.pngScopes und Multiplizität

Gültigkeitsbereich (scope):
Pfadnamen können in Klassendiagrammen verwendet werden, um den Gültigkeitsbereich (scope) der Klasse zu identifizieren,
z.B. org::openoffice::SpellChecker

Multiplizität von Klassen:image-1664267537828.png
In der oberen rechten Ecke einer Klasse kann die Multiplizität (d.h. Anzahl der Instanzen) einer Klasse sein:
Keine Zahl in der oberen rechten Ecke: mehr als eine Instanz einer Klasse möglich

Klassenattribute stellen die Eigenschaften (properties) einer Klasse dar.

Sichtbarkeit von Attributen
+ öffentlich: Unbeschränkter Zugriff
# geschützt: Zugriff von Klasse sowie von Unterklassen
privat: Nur die Klasse selbst kann das Attribut sehen
~ paketsichtbar: Innerhalb des Pakets sichtbar
Arten von Beziehungen
Dependency: Abhängigkeit zwischen zwei Klassen
Assoziation: lies “hat ein”
Aggregation: Spezieller Typ der Assoziation, lies “besitzt ein”
Komposition: Stärkste Beziehung zwischen Klassen, lies “besteht aus”
Generalisierung: Vererbungsbeziehung, lies “ist ein”
Realisierung: Implementierung einer Schnittstelle

image-1664268206260.pngimage-1664268514308.pngNutzungsabhängigkeit – Angabe, dass ein Element ein anderes Element oder eine Menge von Elementen für seine Implementierung benötigt.

Assoziation image-1664268662459.png– Angabe, dass Typinstanzen miteinander in Verbindung stehen oder logisch bzw. physisch miteinander zu einer Aggregation kombiniert werden können. z.B: Wrote:image-1664268808416.png

 

Navigierbarkeit von Assoziationen

Beide Enden der Assoziation haben eine nicht spezifizierte Navigierbarkeit:image-1664269027332.png

A2 hat nicht spezifizierte Navigierbarkeit, während B2 von A2 aus navigierbar ist:

image-1664269289802.png

A3 ist von B3 nicht navigierbar, wenn B3 nicht spezifizierte Navigierbarkeit hat:

image-1664269323035.png

A4 ist von B4 aus nicht navigierbar, während B4 von A4  navigierbar ist:

image-1664269339696.png

A5 ist von B5 aus navigierbar und umgekehrt:

image-1664269359890.png

A6 ist von B6 aus nicht navigierbar und umgekehrt

image-1664269384882.png

Stelligkeit von Assoziationen:image-1664270111177.png

Binäre Assoziationen: verbindet genau zwei Typen bzw. Klassen.image-1664270253739.png

n-äre Assoziationen mit mehr als zwei Assoziationsenden


Multiplizität (Kardinalität) - Definition Anzahl maximal Elemente durch inklusives Intervall nichtnegativer Ganzzahlen

Multiplizität  Option  Bedeutung
0..0  0 Keine Instanzen (leere Menge)
0..1    Keine oder eine Instanz
1..1  Genau eine Instanz
0..*  Null oder mehr Instanzen
1..*    Mindestens eine Instanz
5..5  5 Genau fünf Instanzen
m..n   

Mindestens , aber nicht mehr als Instanzen

Beispiel:
image-1664279701380.pngJeder Professor kann (als author) ein oder mehrere Bücher schreiben (kann sein lassen): 0..*
Jedes Buch (als textbook) ist von mindestens einem Professor geschrieben: 1..*

image-1664279792142.png

Multiplizität
Ordnung ( ordered oder unordered )
Einzigartigkeit der Elemente ( unique oder nonunique )
Standardgemäß sind Elemente eines Intervalls unordered und unique

Aggregation - Eine binäre Assoziation, die eine Teile-Ganzes Beziehung darstellt.

Asymmetrisch: nur ein Ende der Assoziation kann eine Aggregation sein
Transitiv: Aggregationsverknüpfungen sollten gerichteten, azyklischen Graph bilden, so dass keine Instanz Teil seiner selbst ist
Unabhängig: Wenn übergeordnete Instanzen gelöscht werden, können die untergeordneten Teile-Instanzen weiterbestehen

(shared) Aggregation
image-1664280033323.pngEin Dreieck hat drei einzigartige Liniensegmente, die als Seiten bezeichent werden.
Die Liniensegmente sind von Dreieck (Triangle) aus navigierbar.


Die Komposition

Komposition - Eine binäre Assoziation, die eine Teile-GanzesBeziehung darstellt und es gilt:

1. Ein Teil kann zu einem Zeitpunkt höchstens in einem Ganzen (engl. whole, composite) enthalten sein.   image-1664280683396.png
2. Wenn ein Ganzes gelöscht wird, werden alle seine Teile mit diesem gelöscht.


Die Generalisierungimage-1664280891735.png

Generalisierung - Eine binäre taxonomische Beziehung zwischen einem allgemeineren Typ


Realisierung

Realisierung odellelementen, von denen eine die Spezifikation und die andere deren Implementierung (Kunde) darstellt.

Spezielle Realisierung zwischen einem Klasse und einer Schnittstelle. image-1664281130770.png


Operation (engl. operation) -- Verhaltensmerkmal einer Schnittstelle, eines Datentyps oder Klasse

Datentyp -- Typ, dessen Instanzenimage-1664281473494.pngimage-1664281488584.png nur durch ihren Wert bestimmt sind

Aufzählung ( enumeration) -- Datentyp, dessen Werte benutzerdefinierte Literale sind

 

Ein Beispiel

image-1664281706204.png


image-1664285868774.png

Anwendungsfall zu Fachmodell

Entity: Objekte, die persistentes Wissen (d.h. Daten) repräsentieren; häufig aus dem Domänenmodell hergeleitet.
Boundary: Objekte, die eine Schnittstelle zu Systemakteuren bilden (z.B. einem Benutzer oder einem externen System).
Control: Objekte, die Prozesswissen repräsentieren (später ggf. als separate Klassen oder einfache Funktionen implementiert).

Kommunikationsregeln im ECB-Muster
1. Akteure können nur mit Grenzobjekten (boundary objects) sprechen.
2. Systemgrenzobjekte können nur mit Kontrollobjekten (control objects) und Akteuren sprechen.
3. Entitätsobjekte (entity objects) können nur mit Kontrollobjekten kommunizieren.
4. Kontrollobjekte können mit Grenzobjekten, Entitätsobjekten und Kontrollobjekten kommunizieren, nicht mit Akteuren

Entity Objects identifizieren:
image-1664285994106.png1. Ausdrücke, die geklärt werden müssen, damit der Anwendungsfall verständlicher wird
2. Wiederkehrende Substantive in Anwendungsfällen
3. Begriffe aus der Fachdomäne
4. Aktivitäten in der realen Welt, die befolgt werden müssen
5. Vorhandene Datenquellen oder Ergebnisse

Boundary Objects identifizieren
1. Jeder Akteur interagiert mit mindestens einem Boundary Object in jedem Anwendungsfall.
2. sammeln Benutzerinfos und übersetzen sie in Strukturen, die von Control / Entity Objects verarbeitet werden.
3. Grobe Abstraktion der Systemgrenze treffen, ohne Details der visuellen Darstellung
4. Begriffe verwenden, die der Anwender versteht
5. Geräte der Interaktion identifizieren, Benutzungsschnittstellen beschreibenimage-1664287455676.png

Control Objects identifizieren - Koordination von Entity und Boundary Objects
1. Empfange Informationen von den Boundary Objects.
2. Verteile diese in geeigneter Form an die Entity Objects.


Beispiel:

1. Der Außenbeamte aktiviert die ,,MeldeNotfall"-Funktion auf dem Terminal. Ereignis ablauf

2. FRIEND antwortet durch Bereitstellung eines Formulars. Das Formular enthält Menü über Art des Notfalls, Ortsbeschreibung und Felder für eine Beschreibung des Notfalls, für Betriebsmittelanforderungen und für den Eintrag von gefährlichen Gütern.

3. Außenbeamter füllt das Formular aus durch Kurzspezifizierung des Notfalltyps und der übrigen Beschreibungen. Außenbeamter kann auch mögliche Aktionen auf die Notfallsituation beschreiben und spezielle Betriebsmittel erbitten. Sobald das Formular ausgefüllt ist, übermittelt es der Außenbeamte durch Drücken der,,Sende Meldung"-Taste dem Dienstleiter.

4. Der Dienstleiter überprüft die Information, die vom Außenbeamten übermittelt wurde, und erzeugt einen Vorfall in der Datenbank, indem er den Eröffne Vorfall-Anwendungsfall aufruft. Alle Informationen, die im Formular des Außenbeamten enthalten sind, befinden sich automatisch im Vorfall. Der Dienstleiter wählt eine Antwort aus durch Zuweisen von Betriebsmitteln an das Ereignis (mit dem WeiseBetriebs mittelZu-Anwendungsfall) und bestätigt die NotfallMeldung durch Übersenden einer Nachricht an den Außenbeamten. Die Empfangsbestätigung zeigt dem Außenbeamten, dass die Notfall Meldung erhalten, ein Vorfall erzeugt und Betriebsmittel an den Vorfall zugeteilt wurden. In der Empfangsbestätigung sind die Betriebsmittel (z.B. Löschzug) und deren voraussichtliches Eintreffen angegeben.

5. Der Außenbeamte erhält die Bestätigung und die ausgewählte Antwort.


Entity Objects

Dienstleiter Polizeibeamter, der den Vorfall leitet. Ein Dienstleiter eröffnet, dokumentiert und schließt Vorfälle ab als Antwort auf Notfall Meldungen und andere Kommunikation mit dem Außenbeamten. Dienstleiter werden durch Dienstnummern identifiziert.
NotfallMeldung Anfangsbericht über einen Vorfall von einem Außenbeamten an einen Dienstleiter. Eine NotfallMeldung erfordert das Erstellen eines Vor fall durch den Dienstleiter. Eine NotfallMeldung besteht aus einer Notfallebene, einem Typ (Brand, Verkehrsunfall, Sonstiges), einem Ort und einer Beschreibung.
Außenbeamter Polizist oder Feuerwehrmann im Einsatz. Ein Außenbeamter kann zu jeder Zeit nur einem Vorfall zugewiesen sein. Außenbeamte werden durch die Dienstnummer identifiziert.
Vorfall Ereignis, das die Aufmerksamkeit eines Außenbeamten erfordert. Ein Vorfall kann von einem Außenbeamten dem System mitgeteilt wer den. Ein Vorfall besteht aus einer Beschreibung, einer Antwort, einem Status (offen, beendet, ...), einer Örtlichkeit und einer Anzahl von zugewiesenen Außenbeamten.

Boundary Objects

Empfangsbestätigung

Bestätigung, um dem Außenbeamten den Empfang der Meldung beim Dienstleiter anzuzeigen.

DienstleiterStation Vom Dienstleiter benutzter Rechner.
MeldeNotfall Taste Vom Außenbeamten benutzte Taste, um den MeldeNotfall-Anwen dungsfall zu initiieren.
NotfallMeldeformular Formular, das für die Eingabe von MeldeNotfall benutzt wird. Dieses Formular wird dem Außenbeamten auf der Mobilen Station angeboten, wenn die Melde Notfall"-Funktion gewählt wurde. Das NotfallMeldeformular enthält Felder, um alle Attribute einer NotfallMeldung zu spezifizieren und einen Knopf (oder etwas Ähnliches), um das ausgefüllt Formular abzuschicken.
MobileStation

Vom Außenbeamten benutzter mobiler Rechner.

Vorfall Formular Formular, das für die Erstellung eines Vorfalls benutzt wird. Die ses Formular wird dem Dienstleiter auf der DienstleiterStation angeboten, wenn die NotfallMeldung empfangen wurde. Dienstleiter benutzt dieses Formular auch, um Betriebsmittel zuzuweisen und den Bericht des Außenbeamten zu bestätigen.

Control Objects

MeldeNotfall Steuerung Verwaltet die Benachrichtigungsfunktion MeldeNotfall auf der MobilenStation. Dieses Objekt wird kreiert, wenn der Außenbeamte den,,Melde Notfall"-Knopt auswahlt. Es erzeugt dann ein Notfall Meldeformular und bietet es dem Außenbeamten ar.. Nach dem Abschi cken des Formulars sammelt dieses Objekt die Informationen des Formulars, erzeugt eine NotfallMeldung und leitet sie zum Dienst leiter. Das Steuerungsobjekt wartet dann auf eine Empfangsbestäti gung von der DienstleiterStation. Sobald die Empfangsbestätigung eingetroffen ist, erzeugt das MeldeNotfall Steuerung-Objekt eine Empfangsbestatigung und zeigt sie dem Außenbeamten an.
VerwalteNotfall Steuerung Verwaltet die Benachrichtigungsfunktion MeldeNotfall auf DienstleiterStation. Dieses Objekt wird erzeugt, wenn eine Not fallMeldung empfangen wird. Es erzeugt dann ein Vorfall Formular und bietet es dem Dienstleiter an. Sobald Dienstleiter Vorfall erzeugt, Betriebsmittel bereitgestele und Empfangs bestätigung eingegeben hat, leitet VerwalteNotfallSteuerung die Empfangsbestätigung an MobileStation weiter

image-1664284378109.png


image-1664285532910.pngEine Checkliste:
Identifikation von entity, boundary und control objects
Abbildung von Anwendungsfällen auf Objekte
Identifikation von Assoziationen zwischen Objekten
Identifikation von Aggregationen
Identifikation von Attributen der Objekte
Modellerung von zustandsabhängigem Verhalten Objekte
Aktualisierung des gesamten Analysemodells