Klassendiagramm

Klassendiagram UML

Klassendiagram UML


S. S.
Diese Lernkarten behandeln die Grundlagen und fortgeschrittenen Konzepte von Klassendiagrammen auf Universitätsniveau. Sie decken Themen wie Klassen, Objekte, Assoziationen, Generalisierung, Attribute, Methoden und verschiedene Sichtweisen in der Softwareentwicklung ab. Die Karteikarten sind besonders nützlich für Studierende und Entwickler, die ihre Kenntnisse in der objektorientierten Modellierung vertiefen möchten, da sie sowohl theoretische Konzepte als auch praktische Anwendungen abdecken.
Karten
28
Lernende
3
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
14.01.2017 / 19.01.2022

Cartes-fiches

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

Étudier