1
Softwarequalität
Fachklassenmodellierung
Gerrit Beine, [email protected]
Prof. Dr. Wolfgang [email protected]
2
Ziele eines fachlichen Datenmodells
3
Ziele eines fachlichen Datenmodells
● Grundlage für die Kommunikation mit Domänenexperten● Wörterbuch für alle Projektbeteiligten
● Verstehen der fachlichen Strukturen und Zusammenhänge
● Bildet in Kombination mit Use Cases Basis einer fachlichen Architektur
● Abgrenzungen● Entsteht während der Anforderungsaufnahme
● Plattformunabhängig – keine technischen Datentypen
● Fachlich spezifisch – Datentypen werden fachlich exakt beschrieben
4
Elemente von Fachklassenmodellen
● Fachliche Entitäten● Klassen, deren Instanzen eine fachliche Identität besitzen
● Gleichheit wird an der Identität festgemacht
● Üblicherweise werden fachliche Entitäten persistiert
● Beispiel:Identifikation von Kunden im Online-Shop über E-Mail-AdressenKunden mit gleichem Namen und gleichem Geburtsdatum sind nicht identisch
● Fachliche Wertetypen● Klassen, deren Instanzen keine fachliche Identität besitzen
● Gleichheit wird am Wert festgemacht
● Es erfolgt keine explizite Persistierung, sondern nur implizite durch Entitäten
● Beispiel:Es gibt beliebig viele 2-Euro-Stücke, ihr Wert ist identisch. Fachlich sind sie gleich, es gibt aber keine Möglichkeit ihre Identität festzustellen.
5
Fachklassenmodellierung
6
Modellierung von fachlichen Wertetypen
● In UML auf drei Arten modelliert● Primitive Datentypen
● Wertetyp besitzt keine Attribute und kann auf Basisdatentyp (Boolean, Integer, Long, Float, Double, String) zurückgeführt werden
● Aufzählungstypen
● Wertetyp besitzt keine Attribute und die Wertemenge ist gering
● Sprachlich orientierte Werte eignen sich gut als Literale
● Beschreibung von Zuständen fachlicher Entitäten
● Komplexe Datentypen
● Als UML-Klassen modelliert
● Können sowohl Wertetypen als aus Entitäten referenzieren (Assoziationsklassen)
7
Beispiele zur Modellierung fachlicher Wertetypen
Primitive Typen Aufzählungstypen
Komplexe Typen
8
Modellierung von fachlichen Entitäten und Assoziationen
● Darstellung von fachlichen Entitäten als UML-Klassen● Fachliche Entitäten besitzen lediglich Attribute und Assoziationen, keine Methoden
● Attribute sind fachliche Wertetypen
● Attribute mit mehr als einem möglichen Wert werden als Wertetyp mit Multiplizität und Ausprägung {bag}, {ordered}, {sequence} modelliert
● Assoziationen können zu fachlichen Entitäten oder Wertetypen in der Rolle von Assoziationsklassen bestehen
● Modellierung von Assoziationen● Fachliche Multiplizitäten sollten erkennbar sein (z.B. 1..5, 0..7, 3..*)
● Navigierbarkeit sollte ersichtlich sein, leitet sich aus Anwendungsfällen oder funktionalen Zusammenhängen ab
● Fachliche Bidirektionale Assoziationen sind explizit erlaubt
● Statt Assoziationsklassen zu verwenden, sollten Assoziationsenden mit Ausprägungen {bag}, {ordered}, {sequence} versehen werden, sofern die Assoziation keine weiteren Attribute besitzt
9
Beispiele zur Modellierung fachlicher Entitäten
● Buch besitzt ISBN-Nummer, Erscheinungsjahr und gehört in Kategorie
● Buch hat mindestens einen Preis(Preise haben keine Identität)
● Buch hat mindestens einen Autor,gibt es mehrere Autoren, ist deren Reihenfolge wichtig
● Autoren haben einen Namen und Vornamen und keines oder mehrere Bücher geschrieben
● Funktional kann sowohl vom Autor auf die Bücher zugegriffen werden, als auch vom Buch auf den oder die Autoren
Fachliche Entitäten und Assoizationen (Auszug)
10
Verwendung dieser Unterlagen
● Wir stellen diese Unterlagen unter der Creative Commons Lizenz CC-BY-NC-SA zur allen am Thema Interessierten Verfügung.
● Es ist erlaubt, die Unterlagen unter gleichen Bedingungen zu● kopieren
● verteilen
● übertragen und
● adaptieren, wenn
● die ursprünglichen Autoren genannt werden und● die Verwendung nicht zu kommerziellen Zwecken stattfindet.
● Details zur Lizenz sind hier zu finden:http://creativecommons.org/licenses/by-nc-sa/3.0/