Grundlagen der Software-Modellierung - November 2014
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Grundlagen der Software- Modellierung 4. November 2014
Überblick Wozu modellieren wir in der Softwareentwicklung? Definition des Modellbegriffs in der Softwareentwicklung Welche Aspekte eines Softwaresystems werden modelliert? Was ist objektorientierte Modellierung? Wie kommen wir von Anforderungsbeschreibungen zu ersten Modellen? Welche Objektklassen können wir identifizieren? Welche Eigenschaften und Fähigkeiten haben die Objekte? Welche Beziehungen finden wir zwischen Objekten? Taentzer Einführung in die Softwaretechnik 98
Warum modellieren? • Menschliche kreative Tätigkeit ist ohne Modelle undenkbar: Die reale Welt steckt voller komplexer Zusammenhänge - ein Modell erlaubt es, verein- fachende, reduzierende Sichten auf einen Teil davon (das "Original") her- zustellen und sich daran zu orientieren. • Eine komplexe geistige Aufgabe ist nur dann lösbar, wenn man sich nach- einander auf ausgewählte Aspekte konzentrieren kann. Modelle ermöglich- en einen Überblick über sonst unüberschaubare, komplexe Strukturen. • Anhand von Modellen kann man Informationen und Erfahrungen sammeln, Schlüsse ziehen, Vergleiche anstellen, Alternativen bewerten, Entscheid- ungen treffen, Strategien entwickeln, etc - die für die Bearbeitung des Originals von Nutzen sind und sich an diesem selbst nicht (so leicht) vollziehen lassen. Taentzer Einführung in die Softwaretechnik 99
Modell und Original Modell: Idealisierte, vereinfachte, in gewisser Hinsicht ähnliche Darstellung eines Gegenstands, Systems oder sonstigen Weltausschnitts mit dem Ziel, daran bestimmte Eigenschaften des Originals besser studieren zu können. Original: Modell: modellierte Eigenschaften Abbild nicht modellierte Eigenschaften zusätzliche Eigenschaften (nach Stachowiak) Taentzer Einführung in die Softwaretechnik 100
Modellbegriff / Modell als Vor- und Nachbild Herkunft des Modellbegriffs: modulus (lat): Maß, Regel, Form, Muster, Vorbild Ein Modell kann als Vorbild oder Nachbild auftreten – je nachdem, ob es vor oder nach dem Original entsteht. Beispiele für Nachbild-Modelle: Geographie: Landschaft-Reliefs, Landkarten; nach Biologie/ Medizin: Körpermodelle; Soziologie: Gruppendynamik-Modelle Beispiele für Vorbild-Modelle: Architektur: Hausbau; Hardware: Chip-Schaltplan; vor Verwaltung: Bebauungsplan In der Software-Entwicklung haben (Anwendungs-) Modelle oft Vor- und Nachbild -Charakter. Taentzer Einführung in die Softwaretechnik 101
Weitere Beispiele von Modellen Außerhalb der Informatik: - Land-, See-, Himmelskarten - Blaupausen, Modelle für Gebäude und andere Bauwerke - Mathematische Modelle: Graphen, Verbände, algebraische Strukturen - Physikalische und chemische Modelle: Atomium, Molekularstrukturen, Molekularbewegung - Biologie: DNS-Struktur, Doppel-Helix - Mode: Ersatzperson - Spielzeug (Eisenbahnen, Autos, Puppenhäuser, ..) Innerhalb der Informatik: - Daten- und Prozessmodelle - Softwarearchitekturmodelle - Analyse- und Entwurfsmuster Taentzer Einführung in die Softwaretechnik 102
Übersicht über Anforderungen: Anwendungsfalldiagramme Ausschnitt aus einem Anwendungs- falldiagramm: Taentzer Einführung in die Softwaretechnik 103
Elemente von Anwendungsfalldiagrammen Aktor, Anwendunsgfall mit Bezeichner B, B S Systemgrenze (mit Systembezeichner S), Kommunikationsbeziehung (zwischen Aktoren und Anwendungsfällen) , - Beziehung zwischen zwei Anwendungsfällen (s. nächste Folie). - Vererbung zwischen Anwendungs- fällen oder zwischen Aktoren Taentzer Einführung in die Softwaretechnik 104
Beziehungen zwischen Anwendungsfällen A Eine Ausführung von Anwendungsfall A schließt die Ausführung von Anwendungsfall B ein. Bsp: "Auftrag bearbeiten" schließt "Zahlung veranlassen" ein. B Eine Ausführung von Anwendungsfall A kann (unter A bestimmten Bedingungen) durch eine Ausführung von Anwendungsfall B erweitert werden. Bsp: Beim "Auftrag bearbeiten" wird - falls eine Anfrage dafür vorlag - noch ein Katalog versandt. B A Anwendungsfall A generalisiert Anwendungsfall B, d.h. B steht für eine Menge von Spezialfällen von A. Bsp: "Auftrag bearbeiten" generalisiert "Kaufauftrag B bearbeiten" und "Verkaufsauftrag bearbeiten" Taentzer Einführung in die Softwaretechnik 105
Beispiel: ein einfaches Anwendungsfalldiagramm Leergut-Automat Stück Bericht zurückgeben erstellen Benutzer Stamm- daten ändern Operator Stück zurückgeben wird durch den Kunden (= Automatenbenutzer) ausgelöst, der eine Menge von Dosen, Flaschen oder Kisten zurückgeben will. Beschreibung des Ablaufs: Mit jedem zurückgegebenen Stück erhöht das System die Anzahl der registrierten Stücke sowie die Tagesgesamtanzahl für die betreffende Kategorie. Wenn der Kunde alle Stücke abgeliefert hat, drückt er einen Quittungsknopf und erhält eine Quittung über alle abgelieferten Stücke und deren Gesamtanzahl. Taentzer Einführung in die Softwaretechnik 106
Beziehungen zwischen Aktoren Vorlesungsverzeichnis Vorlesung Benutzer suchen Vorlesung eintragen Dozent eintragen Verwalter Ein Aktor kann von anderen Aktoren seine Anwendungfälle erben. Bsp: „Verwalter" erbt die Anwendungsfälle von „Benutzer“. Er ist auch ein Benutzer. Taentzer Einführung in die Softwaretechnik 107
Weiteres Beispiel: Anwendungsfalldiagramm Taentzer Einführung in die Softwaretechnik 108
Objektorientierte Modellierung • Objektorientierte Modellierung (OOM) gibt es als Begriff etwa seit dem Aufkommen der OO-Analyse (ca. 1988). • Hervorstechendes Ziel der OOM: Objektorientierung als durchgängiges Paradigma für die gesamte Softwareentwicklung. Aspekte der OO-Modellierung OO-Modellierung hat (mindestens) drei wichtige Aspekte: (a) ontologischer Aspekt: Die Welt wird als zusammengesetzt aus unterscheidbaren, identifizierbaren und im einzelnen beschreibbaren Objekten aufgefasst. (b) struktureller Aspekt: Es werden sowohl einfache als auch komplexe Objekte betrachtet. Letztere sind hierarchisch definiert, d.h. zusammen-gesetzt aus kleineren Bestandteilen, die selbst wieder Objekte sein können. (c) Verhaltensaspekt: Objekte werden sowohl durch statische Merkmale (= Attribute) als auch durch dynamische (= Operationen) beschrieben. Taentzer Einführung in die Softwaretechnik 109
Zentrale Konzepte der OO-Modellierung Klasse (auch “Objekttyp”): beschreibt die strukturellen und verhaltens- mäßigen Merkmale einer Menge gleichgearteter Objekte. Operationen (Methoden) gehören mit zum Objekt. “semantische” Standardbeziehungen (auf Klassen und Objekten) wie z.B. Instanziierung, Generalisierung/Spezialisierung, Gruppierung (Aggregation oder Komposition), Assoziation Einige Methoden gestatten zusätzlich die Formulierung von Constraints (Bedingungen), die etwa den Integritätsbedingungen bei Datenbanken entsprechen und z.B. die Ausprägungen von Attributen oder die Koexistenz von Beziehungen einschränken und regeln. Taentzer Einführung in die Softwaretechnik 110
Von den Anforderungen zum OO-Modell Nach OOSE werden parallel zur Bearbeitung der Anwendungsfälle Objektlisten für den Anwendungsbereich und daraus eine erste Version von Klassen- und Objektdiagrammen erstellt. Diese bilden zusammen mit den Anwendungsfällen das "Analysemodell". Aus den Objektlisten werden Klassenkandidaten ausgewählt und verschiedenen Klassenarten zugeordnet. Pro Klasse werden aus den Anwendungsfallbeschreibungen und Objekt-listen Attribute, Operationen und Klassenbeziehungen bestimmt. Klassen, Attribute, Operationen und Beziehungen werden in Form von UML-Klassendiagrammen dargestellt. Taentzer Einführung in die Softwaretechnik 111
Objektklassen im Analysemodell Identifizierung von Objekten: beteiligte Personen bzw. deren Rollen: Verkäufer, Ehefrau Objekte, welche Zustände eines Prozesses wiedergeben: Reparatur, Abfahrt, Vorstellung Objekte, die wichtige Sachgegenstände für den Prozess beschreiben: Vertrag, Rechnung, Fahrkarte Objekte des Alltags des Fachgebiets: Film, Zug, Hotel Objekte, die Infrastruktur beschreiben: Raum, Datum, Abteilung Analyse der Substantive in Anforderungsbeschreibungen Ähnliche Objekte werden in Klassen zusammengefasst. Ähnliche Klassen können zu gemeinsamen Oberklassen generalisiert werden. Taentzer Einführung in die Softwaretechnik 112
Analyse der Anwendungsfälle (1) wird (hier) nicht als Synonyme (müssen als Klasse modelliert (Unikat) solche erkannt werden!) Anwendungsfall “Bestellung annehmen” • Das Zentrum empfängt Bestellungen der Einzelhändler telefonisch von 9 bis 17 Uhr (S7). Klassen- • Die eingehenden Bestellungen der Kunden werden vom Kandidaten Sachbearbeiter in Bestellformularen erfasst (S8). • Eine Kundenbestellung kann aus mehreren Bestellposten bestehen. Diese beziehen sich auf einzelne Produkte (S9). • Jeder Bestellposten wird auf dem Formular in einer Zeile generalisieren? notiert (S10). wird im Klassenmodell nicht im Kernmodell - ist nicht benötigt (Akteur) erst für E/A wichtig Taentzer Einführung in die Softwaretechnik 113
Analyse der Anwendungsfälle (2) Anwendungsfall “Bestellung bearbeiten” siehe • Der Anwendungsfall “Lagerbestand ermitteln” wird benutzt, um für jeden Posten der gerade bearbeiteten (weitere) oben! Kundenbestellung den aktuellen Lagerbestand des Klassen- Kandidaten zugehörigen Produktes zu ermitteln (S11). Syno- • Wenn das Zentrum eine Bestellung entgegennimmt, wird jeder Bestellposten in eine der beiden folgenden Karteien Kandidat für nym Generali- eingeordnet: (a) Lieferkartei, (b) Wartekartei (S13). sierung? Syno- • Falls für einen Bestellposten genügend Waren auf Lager nym ? sind, dann wird dieser in die Lieferkartei eingetragen und der Lagerbestand entsprechend korrigiert (S14). Anderenfalls wird der Bestellposten in die Wartekartei eingetragen (S15). Taentzer Einführung in die Softwaretechnik 114
Beziehungen zwischen Objektklassen Datenabhängigkeiten zwischen Objekten: Ein Objekt stellt Informationen für ein Anderes zur Verfügung. Ein Objekt ist Teil eines anderen Objekts: Jedes Attribut, das mehr als einen Wert speichern soll (Listen, Mengen, etc.) wird als Assoziation modelliert. Funktionaler Zusammenhang: Ein Objekt benötigt eine bestimmte Funktion eines anderen Objekts. spezielle Assoziationen: Ganzes-Teil-Beziehungen Aggregation: Teile können auch ohne das Ganze existieren. Komposition: Teile können nicht ohne das Ganze existieren. Analyse der Beziehungen in Anforderungsbeschreibungen. Taentzer Einführung in die Softwaretechnik 115
Analyse der Anwendungsfälle (3) Anwendungsfall “Bestellung annehmen” • Das Zentrum empfängt Bestellungen der Einzelhändler Enthaltenseins telefonisch von 9 bis 17 Uhr (S7). -beziehung: Bestellung - • Die eingehenden Bestellungen der Kunden werden vom Posten Sachbearbeiter in Bestellformularen erfasst (S8). • Eine Kundenbestellung kann aus mehreren Bestellposten bestehen. Diese beziehen sich auf einzelne Produkte (S9). • Jeder Bestellposten wird auf dem Formular in einer Zeile notiert (S10). Beziehung Bestellposten - Produkt Taentzer Einführung in die Softwaretechnik 116
Analyse der Anwendungsfälle (4) Anwendungsfall “Bestellung bearbeiten” • Der Anwendungsfall “Lagerbestand ermitteln” wird benutzt, um für jeden Posten der gerade bearbeiteten Beziehung Kundenbestellung den aktuellen Lagerbestand des Lagerbestand- Produkt zugehörigen Produktes zu ermitteln (S11). • Wenn das Zentrum eine Bestellung entgegennimmt, wird jeder Bestellposten in eine der beiden folgenden Karteien Beziehung Kartei - eingeordnet: (a) Lieferkartei, (b) Wartekartei (S13). Bestellung • Falls für einen Bestellposten genügend Waren auf Lager sind, dann wird dieser in die Lieferkartei eingetragen und der Lagerbestand entsprechend korrigiert (S14). Anderenfalls wird der Bestellposten in die Wartekartei eingetragen (S15). Taentzer Einführung in die Softwaretechnik 117
Beispiel für ein erstes Klassendiagramm Taentzer Einführung in die Softwaretechnik 118
Beziehungen zwischen Objektklassen • In der UML werden verschiedene Arten von Beziehungen explizit unterschieden. Diese sind: Generalisierung / Spezialisierung, auch Vererbung genannt Assoziation (evtl. als Aggregation oder Komposition, s. unten) gerichtete Assoziation, Abhängigkeit Es lassen sich verschiedene Arten von Abhängigkeiten unterscheiden, die durch Stereotypen kenntlich gemacht werden: > > > Taentzer Einführung in die Softwaretechnik 119
Attribute und Operationen in Objektklassen Attribute als das Gedächtnis von Objekten: Summe der Attributwerte bilden den Zustand eines Objekts Operationen definieren die Fähigkeiten der Objekte: Objekte erzeugen und zerstören Speichern und Laden eines aktuellen Objektzustands Zustandsänderungen (Attributänderungen) Berechnungen, die auf dem aktuellen Zustand basieren Taentzer Einführung in die Softwaretechnik 120
Klassen und Attribute Klassen sind Mengen von Objekten mit gleichen Strukturmerkmalen (Attributen) gleichen Verhaltensmerkmalen (Operationen) gleichen Beziehungen zu anderen Objekten Person Klasse: name: String vorname: String Maier: Person geburtstag: Datum Objekt: adresse: String name = Maier vorname = Thomas alterBerechnen() geburtstag = 31.12.1975 adresseDrucken() adresse = Krummbogen 29, 35037 Marburg Taentzer Einführung in die Softwaretechnik 121
Klassen und Attribute Person Syntax: Attributbezeichner : Attributtyp - name: String - vorname: String - geburtstag: Datum - adresse: Adresse • Der Attributtyp ist in der UML nicht weiter spezifiziert. Er kann z.B. ein Klassenbezeichner, ein primitiver Kennzeichner für Datentyp, ein Typ einer Sichtbarkeit: Implementierungssprache oder ein + öffentlich sichtbar zusammengesetzter Typ sein. # geschützt • Attribute können (vor dem Attribut- ~ paketweit bezeichner) bzgl. ihrer Sichtbarkeit - nur privat sichtbar gekennzeichnet werden. Taentzer Einführung in die Softwaretechnik 122
Operationen Syntax: [Sichtbarkeit] Name ( Parameterliste ) : Typ Parameter: Syntax: Richtung Name : Typ mögliche Richtungen: in, out, inout Wie kommt man zu Operationen? Person Auf welche Fragen soll das Objekt antworten können? Welche Aktionen soll es ausführen + alterBerechnen(): int + datenDrucken(in d: Datei): void können? Taentzer Einführung in die Softwaretechnik 123
Beispiel: Bestellformulare Bestellformular für Einzelhändler Datum: _____________ Bestell-Nr: R _____________ Einzelhändler: _______________________________ Adresse: _______________________________ Telefon: _____________ Lfd-Nr. Produkt Menge Bestellformular für Produzenten ______ _________ ________ Datum: ___________ ______ _________ ________ Bestell-Nr: W ___________ ______ _________ ________ Produzent: ____________________________ Adresse: ____________________________ Telefon: ___________ Lfd-Nr. Produkt Menge ______ _________ ________ ______ _________ ________ ______ _________ ________ Taentzer Einführung in die Softwaretechnik 124
Beispiel: Verfeinertes Analysemodell Taentzer Einführung in die Softwaretechnik 125
Zusammenfassung In der Softwareentwicklung werden Modelle zur Abbildung eines Weltausschnitts (Analyse) und zum Entwurf eines Softwaresystems (Design) verwendet. Einen Überblick über die funktionalen Anforderungen geben Anwendungsfalldiagramme. Außerdem werden Datenstrukturen, Zugriffsmöglichkeiten, Abläufe und Architekturen von Softwaresystemen modelliert. Zur Erstellung eines ersten Klassenmodells wird die Anforderungsbeschreibung hinsichtlich Objektklassen, ihren Attributen und ihren Beziehungen untersucht. Taentzer Einführung in die Softwaretechnik 126
Sie können auch lesen