Was ist der Unterschied zwischen Klassen- und Implementationsdiagramm?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Im Grunde bezeichnen beide Begriffe denselben Diagrammtyp: Das Klassendiagramm. Es werden also alle wesentlichen Klassen eines Systems aufgeführt und beschrieben (Welche Attribute gibt es? / Welche Beziehungen herrschen untereinander? / etc.).

Nun kann man ein Klassendiagramm noch in zwei spezifischere Typen/Phasen unterteilen: Dem Entwurfs- und dem Implementationsdiagramm. Die korrekten Fachbegriffe (aus der UML-Spezifikation) wären Analyse- und Designdiagramm. Die beiden anderen wurden von irgendeiner (vermutlich dt.) Schulinstitution geschaffen.

Das Entwurfs-/Analysediagramm ist die erste grobe Phase, um das System zu beschreiben. Es gibt noch keine Festlegung auf irgendeine Programmiersprache (die einzige Einschränkung ist, dass sie OOP-Konzepte wie Vererbung unterstützt), ferner werden Angaben zu Modifikatoren, Parametern oder bestimmte Datentypen weggelassen.

Dazu ein Beispiel:

------------------
|      Dog       |
------------------
| height: Number |
| name: Text     |
------------------
| bark           |
| eat            |
------------------            

Die Box, die eine Klasse beschreiben soll, besteht aus Klassenname, Attributen (bei denen nur abstrakt definiert wird, welchen Typ sie wohl später annehmen werden) und Methoden.

Das Implementations-/Designdiagramm baut auf dem Entwurf auf, trifft allerdings spezifischere Entscheidungen. So wird eine Programmiersprache gewählt, an der sich das Diagramm ausrichten soll. Daraufhin können Modifikatoren, Parameter und generell Datentypen ergänzt werden.

Hier ein Beispiel mit Ausrichtung auf die Programmiersprache Java:

----------------------------
|            Dog           |
----------------------------
| - height: float          |
| - name: String           |
----------------------------
| + bark(): void           |
| + eat(food: Food): void  |
----------------------------

Die Sichtbarkeit der Elemente wurde nun festgelegt (Attribute sind private, Methoden sind public), für die Programmiersprache spezifische Datentypen wurden gewählt (float, String) sowie Parameterlisten und die Angabe des Rückgabetyps für die Methoden ergänzt.

Alleskoenner11 
Fragesteller
 19.12.2021, 14:14

Also hab ich das dann richtig verstanden, dass der Überbegriff "Klassendiagramm" ist und man das Klassendiagramm (je nachdem wie weit man in der Planung ist) auf 2 verschiedene Weisen schreiben kann?

0