7. Analyse-Phase: Datenmodellierung Software Engineering Hochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm Hochschule Darmstadt, 20. November 2006
Einordnung in den Kontext der Vorlesung 1. Einführung 2. Projektmodell 3. Vorgehensmodelle 4./5. Unified Modeling Language (UML) 6. Analyse-Phase: Geschäftsprozesse 7. Analyse-Phase: Datenmodellierung 9. Design-Phase 10. Design-Phase: Architektur im Großen 11. Programmierungs-Phase 12. Test- / Integrations-Phase, Einführung 13. Projektmanagement 14. Qualitätsmanagement 8. Analyse-Phase: Benutzeroberfläche 20.11.2006, Seite 2
Agenda Agenda Übersicht Datenmodell-Elemente Kontrollfragen 20.11.2006, Seite 3
Übersicht Das Datenmodell ist das Fundament Geschäftsprozesse Anwendungsfall A Batches Druckausgaben Anwendungsfall B Dialoge Anwendungsfall C Datenmodell 20.11.2006, Seite 4
Übersicht Für wen ist das Datenmodell gedacht? Fachbereich IT-Abteilung des Kunden Kollegen (Kommunikation im Team) SW-Entwickler in nachfolgenden Phasen informell formal Idealerweise versteht der Fachbereich das Datenmodell. Die Darstellung darf also nicht zu formal sein. Das Datenmodell ist wichtiger Input für Aufwandsschätzungen! 20.11.2006, Seite 5
Agenda Agenda Übersicht Datenmodell-Elemente Kontrollfragen 20.11.2006, Seite 6
Beispiel Beispiel: Fitness Center cd Kundenverwaltung Fitnesscenter Dienstleistung Kundenverwaltung Besuch - ende: DateTime - start: DateTime +Besuch 1 +Besuche Besuch * +Kunde 1 Kunde - Adresse: int - Kontonummer: int - Mitgliedsnummer: - Name: int Vertragsabschluss +Kunde 1..* +Vertrag 1 Vertrag - Datum: int - Laufzeit: +Vertrag 1 +Leistungen * Leistung - Artikel: String - Betrag: int Buchhaltung +Rechnungen * Rechnung 20.11.2006, Seite 7
Komponenten Gruppieren fachlich zusammenhängende Entitäten Dienen der Übersicht Können später getrennt implementiert werden UML-Notation: Pakete cd Kundenverwaltung Fitnesscenter Dienstleistung Besuch - ende: DateTime - start: DateTime +Besuch 1 +Besuche Besuch * +Kunde 1 Kundenverwaltung Kunde - Adresse: int - Kontonummer: int - Mitgliedsnummer: - Name: int Vertragsabschluss +Kunde 1..* +Vertrag 1 Vertrag - Datum: int - Laufzeit: +Vertrag 1 +Leistungen * Leistung - Artikel: String - Betrag: int Buchhaltung +Rechnungen * Rechnung 20.11.2006, Seite 8
Datenmodell-Elemente Entitätstypen Merkmale: Jeder Entitätstyp ist autonom: Für sich alleine lebensfähig (Gegenbeispiel: Saldo eines Kontos). unverzichtbar: Wenn ich ihn weglasse, kann ich bestimmte Abläufe nicht mehr darstellen. Man kann ihn anlegen und löschen. Man kann ihn zählen. Man kann und will ihn durch Attribute beschreiben. UML-Notation: Klasse cd Kundenverwaltung... Kunde - Adresse: String - Kontonummer: int - Mitgliedsnummer: int - Name: String Der Name von Entitätstypen ist immer ein Singular ( Kunde, Konto ) Man kann sich hinter jedem Entitätstyp die Menge der Entitäten vorstellen: Kunde: Maier, Huber,.. 20.11.2006, Seite 9
Datenmodell-Elemente Beziehungen zwischen Entitäten Beziehungen bestehen zwischen zwei Entitätstypen beziehungsweise deren Objekten Typen von Beziehungen: Generalisierung/Spezialisierung ist-ein, is-a: Ein Fahrrad ist ein Fahrzeug Assoziation Beziehung: Ein Angestellter arbeitet für eine Firma Komposition (spezielle Assoziation) umfasst : Löschen des Ganzen löscht auch die Teile. Beispiel: Ein Vertrag besteht aus Vertragspositionen Aggregation (spezielle Assoziation) besteht aus": Löschen des Ganzen löscht nicht die Teile. cd Kundenverwaltung Fitnesscenter Dienstleistung Besuch - ende: DateTime - start: DateTime +Besuch 1 +Leistungen * Leistung - Artikel: String - Betrag: int Assoziation Beispiel: Ein Team besteht aus Mitarbeitern" 20.11.2006, Seite 10
Attribute Beschreiben die Eigenschaften von Entitäten, zum Beispiel Adresse eines Kunden Haben einen Datentyp, zum Beispiel int Sind alleine nicht lebensfähig, zum Beispiel macht der Betrag von EUR 42 ohne den Kontext der Überweisung keinen Sinn cd Kundenverwaltung... Kunde - Adresse: String - Kontonummer: int - Mitgliedsnummer: int - Name: String 20.11.2006, Seite 11
Datenmodell-Elemente Datentypen Ein Datentyp definiert die Struktur von (ggf. mehreren) Attributen. Ein Datentyp kann einfach sein... String, Integer eine Einschränkung einfacher Datentypen positive Ganzzahlen, Strings wie z.b. IP-Adresse, ISBN eine Struktur (= zusammengesetzter DT) Datum, Adresse eine Enumeration Wochentag Allgemein: eine Menge von zulässigen Werten 20.11.2006, Seite 12
Agenda Agenda Übersicht Datenmodell-Elemente Kontrollfragen 20.11.2006, Seite 13
Kontrollfragen Kontrollfragen Für wen ist das Datenmodell gedacht? Was sind Entitäten? Nennen Sie Beispiele Was sind Attribute? Nennen Sie Beispiele Welche Beziehungen zwischen Entitäten existieren? Was sind Datentypen? Nennen Sie Beispiele Welche Notation wird für Datenmodelle verwendet? 20.11.2006, Seite 14