Folie a: Name Fundamentals of Software Engineering 1 Grundlagen der Programmentwurfstechnik 1 Sommersemester 2012 Dr.-Ing. Stefan Werner Fakultät für Ingenieurwissenschaften Folie 1 Inhaltsverzeichnis 1. Einführung 2. Allgemeine - Klassische Konzepte des Software Engineering- 2.1 Das Kontextmodell 2.2 Entscheidungstabellen 2.3 Zustandsmodelle 2.4 Datenmodelle 2.4.1 Überblick Datenmodelle 2.4.2 Das Entity Relationship Modell 2.4.3 Das Entity Relationship Diagramm 3 Strukturierte Analyse 4. Strukturierter Entwurf (SE) 5. Benutzersschnittstellen 6. Softwaretest Folie 2 1
2. Allgemeine 2.4 Datenmodellierung Reale Welt Folie 3 2. Allgemeine 2.4 Datenmodellierung Ebenenarchitektur bei der Datenmodellierung Reale Welt Schnittstellen definition Ausgangspunkt für Datenhaltung Transformations regeln Transformations regeln Datenbanksystem Folie 4 2
2.4 Datenmodellierung - Betrachtungsebene für Daten - 1. Reale Welt rad Abstraktionsg 2. verbale Beschreibung der realen Welt 3. Modell der realen Welt 4. Konzeptionelles Datenmodell 5. Logisches Datenmodell 6. Gespeicherte Information 7. Speichermedium Folie 5 2. Allgemeine 2.4 Datenmodellierung 3-Ebenenmodell rad Abstraktionsg Externe Ebene Konzeptionelle Ebene Interne Ebene Prinzipielle Bedeutung dieses Schemas ist die Trennung von Datenhaltung und Benutzer. Folie 6 3
2.4 Datenmodellierung Transformationsregeln Transformations regeln Transformations regeln Folie 7 2.4 Datenmodellierung Konzeptionelles Schema Folie 8 4
2.4 Datenmodellierung Externes Schema Folie 9 2.4 Datenmodellierung Internes Schema Folie 10 5
2.4 Datenmodellierung - Vorteile der Ebenentrennung - Folie 11 2.4 Datenmodelle 2.4.1 Überblick Datenmodelle Das hierarchische Datenmodell hierarchisch definierte Baumstruktur ('Vater-Sohn'-Beziehung). sequentieller Zugriff auf die Daten, Beispiel: Struktur eines hierarchischen Datenmodells für den Aufbau einer Firma Der hierarchische Aufbau der Firma ist hier deutlich zu erkennen. Zuordnung eines Mitarbeiters zu mehreren Projekten jedoch nicht möglich => kompliziertere Beziehungen wie (m:m)-beziehungen sind nicht darstellbar. Folie 12 6
2.4 Datenmodelle 2.4.1 Überblick Datenmodelle Das Netzwerkmodell erlaubt die Modellierung von Datentypen, die mehreren Hierarchien zuzuordnen sind. Vorteil: Mehrfachbeziehungen sind modellierbar Nachteil: Zugriff auf die Daten nicht ausschließlich sequentiell Beispiel: Struktur eines Netzwerkmodells für den Aufbau einer Firma jetzt auch Zuordnung eines Mitarbeiters zu mehreren Projekten möglich Datenzugriff komplexer als beim HDM Folie 13 2.4 Datenmodelle 2.4.1 Überblick Datenmodelle Das Relationenmodell ähnliche Datentypen werden zu Tabellen zusammengefaßt Zeilen der Tabellen werden als Tupel bezeichnet, das durch seine Attribute gekennzeichnet ist (Spalten der Tabelle) Relationen werden solange in mehrere kleine Relationen zerlegt, bis keine Redundanz mehr vorhanden ist => Normalisierung bezeichnet => Hierbei geht die Struktur eines Datentyps verloren. Beispiel: Tabellen eines Relationenmodells für den Aufbau einer Firma Folie 14 7
2.4 Datenmodelle 2.4.1 Überblick Datenmodelle Das Relationenmodell Vorteile leichte Lesbarkeit: Der Mitarbeiter Herr Meier hat die Personalnummer 1427, bekommt ein Gehalt von 3.217,33DM Beziehungen: Mitarbeiter ist tin Abteilungen 3-1 1beschäftigt t Nachteile: Hoher Verlust an Semantik: Unterscheidung zwischen Objekten und Relationen nicht möglich => flache Darstellung Folie 15 2.4 Datenmodelle 2.4.1 Überblick Datenmodelle Das Entity Relationship Modell Erweiterung des Relationenmodells Das ERM erlaubt die Darstellung von Entitäten ("eindeutig identifizierbare i 'Dinge' unserer Vorstellungswelt" [CHE 76]) und deren Beziehungen (relationships) untereinander Insgesamt mehr Semantik Firma 1 hat Beispiel: ERM für den Aufbau einer Firma n 1 Abteilung 1 bearbeitet n Projekt n arbeitet in n Mitarbeiter 1 arbeitet für Folie 16 8
2.4 Datenmodelle 2.4.1 Überblick Datenmodelle Datenmodellierung mit UML (Unified Modelling Laguage) Modellierungssprache zur objektorientierten Modellierung eines Anwendungssystems für die Phasen Analyse und Design unterstützt mehrere Phasen des Software Life-Cycles: Analyse, Entwurf, Dokumentation besteht aus verschiedenen Sichten / Diagrammen (statische, dynamische) Einsatz bei der Datenmodellierung: konzeptionelle Datenmodellierung (basierend auf ähnliche Konzepten wie ERD) Folie 17 2.4.2 Das Entity Relationship Modell -Historie- Das Entity-Relationship-Modell kurz: ER-Modell bzw. ERM wurde 1976 von Peter Chen vorgeschlagen Standardmodell für frühe Entwurfsphasen in der Datenbankentwicklung mittlerweile existieren viele Varianten und Erweiterungen eingesetzt auch in anderen Bereichen der Informatik Eigenschaften Grundkonzepte Entity und Relationship werden als natürlich und trotz ihrer Einfachheit als ausreichend für viele Situationen empfunden unterstützt verschiedene Abstraktionsmechanismen (Klassifikation, Aggregation und Verallgemeinerung) starre Informationsstruktur, d. h., Ausrichtung auf große Datenmengen Definition von statischen Eigenschaften und Integritätsbedingungen Folie 18 9
2.4.2 Das Entity Relationship Modell -Elemente - 1. Entity, Entity Set, Entity-Typ, Objekt der realen oder einer virtuellen Welt, bzgl. dem Informationen zu speichern sind. Man abstrahiert ähnliche Objekte zu einem Entity-Typ. 2. Relationship, Relationship Set, Beziehungstyp Beziehung zwischen Entities. Man abstrahiert die Beziehung zwischen Entity-Typen zu einem Beziehungstyp. 3. Attribut Eigenschaft von Entities oder Beziehungen. Attribute sind von einem bestimmten Typ und haben Werte. 4. Rolle Dokumentiert die Rolle eines Objektes (Entity) in einer Beziehung (Relationship). Folie 19 2.4.2 Das Entity Relationship Modell - 1:1 Beziehungen - jedem Entity vom Typ E1 ist maximal eine Entity vom Typ E2 zugeordnet und umgekehrt Beispiel: Ein Mann ist mit maximal einer Frau verheiratet und jede Frau mit maximal einem Mann Folie 20 10
2.4.2 Das Entity Relationship Modell - 1:n Beziehungen - jedem Entity vom Typ E1 können beliebig viele Entities vom Typ E2 zugeordnet sein, aber zu jedem Entity aus E2 gibt es maximal ein Entity aus E1 Beispiel: ein Verlag ist Herausgeber von n Büchern, bzw. ein Buch wird von höchstens einem Verlag herausgeben Folie 21 2.4.2 Das Entity Relationship Modell - n:m Beziehungen - jedem Entity vom Typ E1 können beliebig viele Entities vom Typ E2 zugeordnet werden und jedem Entity vom Typ E2 können beliebig viele Entities vom Typ E1 zugeordnet werden Beispiel: In ein Buchladen können beliebig viele verschiedene Bücher verkauft werden und jedes Buch kann in beliebig vielen, verschiedenen Shops verkauft werden. Folie 22 11
2.4.2 Das Entity Relationship Modell - Erweiterte Kardinalitätsrestriktionen - Einschränkungen der bisher kennen gelernten Kardinalitäten: 1:1 bedeutet höchstens eins aber genau eins kann nicht ausgedrückt werden spezifische Restriktionen wie z.b. ein Kind hat genau zwei biologische Eltern oder ein Fahrzeug hat mindestens 2 aber maximal 4 Räder) können nicht ausgedrückt werden. Hierfür: Verwendung einer Min/Max-Notation i Folie 23 2.4.2 Das Entity Relationship Modell - (min, max)-beziehungen - die mögliche Anzahl von Instanzen der beteiligten Entity-Typen an einer Beziehung wird eingeschränkt, indem ein minimaler und ein maximaler Wert definiert wird Für e1є E1 und e2 Є E2 gilt: e1 nimmt an mindestens min1 und höchstens max1 Beziehungen vom Typ R teil e2 nimmt an mindestens min2 und höchstens max2 Beziehungen vom Typ R teil Beispiel: Jedes Rad eines Entity-Sets E1 gehört zu keinem oder genau einem Fahrzeug eines Entity-Sets E2. Jedes Fahrzeug des Entity Sets E2 besitzt 2 oder 4 Räder des Entity-Sets E1 Folie 24 12
2.4 Datenmodelle 2.4.3 Das Entity Relationship Diagramm Grafische Basissymbole des Entity Relationship Modells Folie 25 2.4.3 Das Entity Relationship Diagramm - IS-A und Hierarchie-Beziehung - Folie 26 13
2.4.3 Das Entity Relationship Diagramm -Beispiele: Einfache ERD- Folie 27 2.4.3 Das Entity Relationship Diagramm Beispiel/Übung 4: Bibliothek Aufgabe: Entwickeln Sie das ERD einer Bibliothek in der Bücher und Zeitschriften von den Benutzern ausgeliehen werden können. Die Bücher seien beschrieben durch ihre Buchkennung, ihren Titel, den Verlag und das Erscheinungsjahr. Zeitschriften werden ebenfalls als Bücher aufgefasst, es wird jedoch zusätzlich der Erscheinungszeitraum angegeben (täglich, wöchentlich etc.) Außerdem sollen Benutzerdaten erfasst werden und zwar der Name und Vorname, die Anschrift und das Datum seit dem der Benutzer über einen Benutzerausweis verfügt. Schließlich soll abgebildet werden, welche Bücher von einem Benutzer ausgeliehen sind, bzw. von welchem Benutzer ein Buch ausgeliehen ist. Folie 28 14
2.4.3 Das Entity Relationship Diagramm - Gleichwertigkeit der Darstellungen ERD <->ERM - ENTITY SET: Name : BUCH Attribute: Buchkng : - 1 - CHAR (7) Titel :-1 - CHAR (35) Verlag : - 1 - CHAR (35) Erscheinjahr: - 1 - INTEGER (4) KEY: BuchKng ENTITY SET: Name : ZEITSCHRIFTEN IS-A : BUCH Attribute: ErschgsZeitraum : - 1 - CHAR (15) KEY : BuchKng ENTITY SET Name : BENUTZER Attribute : BenutzerNr : - 1 - INTEGER Name : - 1 - CHAR (20) Vorname : - 1 - CHAR (20) Anschrift : - 1 - CHAR (50) MitgliedSeit: - 1 - DATE KEY : BenutzerNr RELATIONSHIP SET NAME : AUSGELIEHEN_VON ENTITY-SETS:BUCHBESTAND, BENUTZER TYP : n:1 Folie 29 2.4.3 Das Entity Relationship Diagramm Beispiel/ Übung 5: Klausuraufgabe SomSem 1993 Eine dreiköpfige Familie besteht aus den verheirateten Eltern und ihrem Sohn. Die Daten der einzelnen Familienmitglieder sind in den Entity-Sets PERSON, MANN und FRAU gespeichert. Zeichnen Sie in das ERD alle Beziehungskonstrukte, die zur Beschreibung der Beziehungen der einzelnen Familienmitglieder it untereinander nötig sind ein. Personal ausweisnr Name Vorname Geb. Datum IS-A Person IS-A Whdi Wehrdienst Mädchenname Mann Frau Folie 30 15
2.4.3 Das Entity Relationship Diagramm Beispiel/ Übung 6: Formel 1 Aufgabe: Es soll eine Formel 1 Saison mittels Entity Relationship Methode modelliert werden. Erfaßt werden sollen pro Rennen der Ort und das Datum, pro Fahrer der Name und die Startnummer, pro Team der Name. Gehen Sie davon aus, daß jedes Team bis zu zwei Fahrer hat und keine Fahrerwechsel innerhalb einer Saison zulässig sind. Pro Rennen soll die Plazierung jedes Fahrers festgehalten werden. Ergänzung: Das Datenmodell soll es erlauben, jederzeit den Stand der WM-Wertung(en) zu ermitteln (Punkte). Es gibt 10 Punkte pro Sieg, 6, 4, 3, 2, 1 für die Plätze 2, 3, 4, 5, 6. Folie 31 16