Klassendiagramm

Klassendiagram UML

Klassendiagram UML


Kartei Details

Karten 28
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 14.01.2017 / 19.01.2022
Weblink
https://card2brain.ch/box/20170114_klassendiagramm
Einbinden
<iframe src="https://card2brain.ch/box/20170114_klassendiagramm/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Analysemuster

  • unterstützt Identifikation von Klassen und Modellierung der Beziehungen zwischen Klassen
  • abstrahieren Problemlösungsmodelle eines Einzelfalls
  • Muster zur Abbildung häufig vorkommender Strukturen in einer Anwendungsdomäne

Was ist eine Klasse?

Bauplan (Schablone) für Objekte

 

definiert Attribute (Daten)

 

Zusammenfassung gleichartiger Objekte

 

Objekte stellen Ausprägung der Schablone dar ( Instanz der Klasse )

 

definiert Methoden (Verhalten)

Was ist eine Assoziationsklasse?

Definition von Attributen für Assoziationen möglich (Eigenschaften im Kontext der Beziehung zwischen zwei Klassen)

 

 

Modellierung der Eigenschaften als Assoziationsklasse

 

kein semantischer]Unterschied zwischen Assoziation und Assoziationsklasse

Welche Arten (Kategorien) von Klassen gibt es in der Anforderungsdefinition?

  • Fachliche Klassen
  • Basisklasse (Peimitivdatentyp, Komplexer Datentyp, Aufzählungstyp(Enumeration))

Was wird mit einem Klassendiagramm abgebildet?

 

  • Strukturelle Aspekte des Geschäftssystems
  • Klassen mit Attributen und Operatione
  • Beziehungen zwischen Klassen

Welche Analysemuster kennen Sie?

  • Liste
  • Exemplartyp
  • Baugruppe
  • Stückliste
  • Koordinator
  • Rolle
  • Wechselnde Rolle
  • Historie
  • Gruppe
  • Gruppenhistorie

Attribut 

  • bilden gemeinsam den Zustand des Objekts
  • in jedem Objekt der Klasse enthalten, jeweils durch individuellen Wert repräsentiert
  • besteht mind. aus Name und Attributtyp (Datentyp)
  • Einschränkung des zulässigen Wertebereichs mit Zusicherungen
  • definieren Daten, die für ein Objekt gespeichert werden

Welche stärkere Form der Aggregation kennen Sie?

Komposition

Aggregation

  • Beziehung zwischen Objekten, die durch Rangordnung gekennzeichnet ist
  • keine exakte Definition in UML: eigener Modellierungsstandard zu erarbeiten

Komposition

  • starke Form der Aggregation
  • jedes Objekt der „Teil“-Klasse zu einem Zeitpunkt nur Komponente eines einzigen Objekts der Aggregatklasse
  • Löschen des „Ganzen führt zu automatischer Löschung der Teile

Objekt

  • Bildet Gegenstand der realen Welt ab

  • besitzt eindeutige Identiät

  • klare Abgrenzung und präzise Bedeutung im Anwendungsbereich

  • nach außen beobachtbares Verhalten (leistungsangebot); interne Abläufe verborgen

  • hat einen Zustand

  • können untereinander kommunizieren

Instanzen

  • Objekte entstehen durch Instanziierung einer Klasse

  • mit Instamziierung beginnt Lebenszyklus des Objekts

Methoden

  • definieren Verhalten eines Objekts

  • Objekt zeigt Verhalten nur nach Aufforderung per Nachricht durch anderes Objekt

  • ausführbare Tätigkeit(Dienstleistung) für nutzende Objekte

  • Operationen für alle Objekte identisch

  • Beschreibung durch Methodensignatur(Name, Parameter, Rückgabetyp)

  • nähere Spezifikation mit Zusicherungen möglich

  • direkter Zurgiff auf Attribute in Methodenimplementierung möglich

Fachliche Klasse

  • definieren Geschäftsobjekte

  • haben Basisklassen als Datentyp von Attributen

  • weisen Beziehungen zu anderen fachlichen Klassen auf(Assoziation, Generalisierung)

Basisklassen

  • Primitivdatentyp: definieren einfache Datentypen mit Pendants in Programmiersprachen/Frameworks

  • Aufzählungstypen(Enumeration): defineren festen Vorrat an möglichen Wertebelegungen einer Variable/eines Attributs

  • Komplexe Datentypen: definieren verschiedene Attribute, die in Kombination häufig benötigt werden; fachlich neutral

Konzeptionelle Sicht(Definitionsphase)

  • Definition der relevanten Bestandteile (fachliche Klassen) aus Sicht des Anwenders (fachliche Sicht)

  • Verwendung von Analysemustern

Spezifizierende Sicht(Entwurfsphase):

 

  • Darstellung der internen Strukturen eines Systems

  • Modellierung der in der Implementierungsphase zur realisierenden Klassen

  • Erstellung auf Basis fachlichen Klassen, Anreichung um technische Klassen

  • Verwensung von Entwurfsmustern

Implementierende Sicht:

Umsetzung der Klassen aus Entwurfsphase in Code der Zielsprache

Generalisierung

  • zentrales Konzept der objektorientierten Modellierung

  • Klasse A (Basisklasse, Superklasse) ist Verallgemeinerung der Klasse B (Unterklasse, Subklasse)

  • Umkehrung: Spezialisierung

  • Definition von Vererbungshierachien möglich

  • Subklasse übernimmt Attribute und Operationen der Superklasse und erweitert diese

  • Verhalten kann durch Überschreibun der Operationen verändert werden

Assoziation

  • Beziehungstyp auf Instanzniveau

  • Menge aller Verknüpfungen mit gleicher Struktur und Semantik zwischen Objekten zweier Klassen

  • Bezeichnung beschreibt inhaltliche Bedeutung der Assoziation

  • Rollennamen geben Rolle einer Klasse aus der Sicht der anderen Klasse an (optional)

  • Multiplizitäten geben Anzahl der möglichn Referenzen an

Schnittstellen

  • Spezifikation des externen Verhaltens von Klassen oder anderen Elementen (Komponenten, Randsystemen)

  • Schnitstellen werden je nach Sicht bereitgestellt (realisiert; realise) oder angefordert (benötigt;use)

  • keine Instanziierung möglich

  • zwei alternative Darstellungsformen   

Modellierung der Struktur

  • Domänen modell(Klassendiagramm) bildet das Wesentliche des Anwendungsbereiches ab: Geschäftsobjekte als Klassen aus fachlicher Sicht

  • Ableitung fachlicher Klassen anhand Anwendungsbereiche

  • Basis der Definition fachlicher Klassen ist Fachwissen über Anwendungsbereich

  • Reale-Welt-Suche: z.B Formulare, Belege,etc. Ermittlung Klassenkanidaten

  • Textanalyse aus Beschreibungen: Studien, Prozessanalysen

  • CRC-Karten-Technik (Class-Responsibility-Collaboration)

Konzeptionelle Sicht (Definitionsphase)

  • Definition der relevanten Bestandteile (fachliche Klassen) aus Sicht des Anwenders (fachliche Sicht)
  • Verwendung von Analysemustern

Spezifizierende Sicht (Entwurfsphase)

  • Darstellung der internen Strukturen eines Systems
  • Modellierung der in der Implementierungsphase zu realisierenden Klassen
  • Erstellung auf Basis fachlicher Klassen, Anreichung um technische Klassen
  • Verwendung von Entwurfsmustern

Multiplizitäten

Attributierte Assoziation

  • Definition von Attributen für Assoziationen möglich(Eigenschaften im Kontext der Beziehung zwischen zwei Klassen)
  • Modellierung der Eigenschaften als Assoziationsklasse
  • kein semantischer Unterschied zwischen Assoziation und Assoziationsklasse

Architekturmuster

  • Muster zur Gestaltung eines Anwendungssystems
  • Abbildung der Beziehungen zwischen System-Komponenten
  • Modellierung der Systemstruktur

Entwurfsmuster

  • implementierungsorientiert
  • Bestandteil der objektorientierten Softwareentwicklung