+ All Categories
Home > Documents > Grundlagen der Software- Modellierung · der eine Menge von Dosen, Flaschen oder Kisten...

Grundlagen der Software- Modellierung · der eine Menge von Dosen, Flaschen oder Kisten...

Date post: 22-Aug-2019
Category:
Upload: duongdung
View: 214 times
Download: 0 times
Share this document with a friend
30
Grundlagen der Software- Modellierung 4. November 2014
Transcript

Grundlagen der Software-Modellierung

4. November 2014

Taentzer Einführung in die Softwaretechnik 98

Ü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 99

• 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.

Warum modellieren?

Taentzer Einführung in die Softwaretechnik 100

Original:

Abbild

Modell:

modellierte Eigenschaften

nicht modellierteEigenschaften

zusätzliche Eigenschaften

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.

(nach Stachowiak)

Modell und Original

Taentzer Einführung in die Softwaretechnik 101

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; Biologie/ Medizin: Körpermodelle; Soziologie: Gruppendynamik-Modelle

Beispiele für Vorbild-Modelle: Architektur: Hausbau; Hardware: Chip-Schaltplan; Verwaltung: Bebauungsplan

In der Software-Entwicklung haben (Anwendungs-) Modelle oft Vor- und Nachbild -Charakter.

Herkunft des Modellbegriffs:modulus (lat): Maß, Regel, Form, Muster, Vorbild

nach

vor

Modellbegriff / Modell als Vor- und Nachbild

Taentzer Einführung in die Softwaretechnik 102

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

Weitere Beispiele von Modellen

Übersicht über Anforderungen:Anwendungsfalldiagramme

Taentzer Einführung in die Softwaretechnik 103

Ausschnitt aus einem Anwendungs-falldiagramm:

Taentzer Einführung in die Softwaretechnik 104

Elemente von Anwendungsfalldiagrammen

Aktor,

Anwendunsgfall mit Bezeichner B,

Systemgrenze (mit Systembezeichner S),

Kommunikationsbeziehung (zwischenAktoren und Anwendungsfällen)

- Beziehung zwischen zwei Anwendungsfällen (s. nächste Folie).

- Vererbung zwischen Anwendungs-fällen oder zwischen Aktoren

B

S

<<extend>>, <<include>>

Taentzer Einführung in die Softwaretechnik 105

Beziehungen zwischen Anwendungsfällen Eine Ausführung von Anwendungsfall A schließt die

Ausführung von Anwendungsfall B ein. Bsp: "Auftrag bearbeiten" schließt "Zahlung veranlassen" ein.

Eine Ausführung von Anwendungsfall A kann (unter 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.

Anwendungsfall A generalisiert Anwendungsfall B, d.h. B steht für eine Menge von Spezialfällen von A. Bsp: "Auftrag bearbeiten" generalisiert "Kaufauftrag bearbeiten" und "Verkaufsauftrag bearbeiten"

<<extend>>

<<include>>A

B

A

B

A

B

Taentzer Einführung in die Softwaretechnik 106

Operator

Benutzer

Leergut-Automat

Stückzurückgeben

Stamm-daten ändern

Berichterstellen

Beispiel: ein einfaches Anwendungsfalldiagramm

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 107

Verwalter

Benutzer

Vorlesungsverzeichnis

Vorlesungsuchen

Dozenteintragen

Vorlesungeintragen

Beziehungen zwischen Aktoren

Ein Aktor kann von anderen Aktoren seine Anwendungfälle erben.Bsp: „Verwalter" erbt die Anwendungsfälle von „Benutzer“. Er istauch ein Benutzer.

Taentzer Einführung in die Softwaretechnik 108

<<include>>

<<include>>

<<include>>

Weiteres Beispiel: Anwendungsfalldiagramm

Taentzer Einführung in die Softwaretechnik 109

Aspekte der OO-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.

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.

Objektorientierte Modellierung

Taentzer Einführung in die Softwaretechnik 110

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.

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

Zentrale Konzepte der OO-Modellierung

Taentzer Einführung in die Softwaretechnik 111

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 Klassenbeziehungenbestimmt.

Klassen, Attribute, Operationen und Beziehungen werden in Form von UML-Klassendiagrammen dargestellt.

Von den Anforderungen zum OO-Modell

Taentzer Einführung in die Softwaretechnik 112

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 113

Anwendungsfall “Bestellung annehmen”

• Das Zentrum empfängt Bestellungen der Einzelhändlertelefonisch von 9 bis 17 Uhr (S7).

• Die eingehenden Bestellungen der Kunden werden vom Sachbearbeiter in Bestellformularen erfasst (S8).

• Eine Kundenbestellung kann aus mehreren Bestellpostenbestehen. Diese beziehen sich auf einzelne Produkte (S9).

• Jeder Bestellposten wird auf dem Formular in einer Zeile notiert (S10).

Klassen-Kandidaten

wird (hier) nicht als Klasse modelliert (Unikat)

Synonyme (müssen als solche erkannt werden!)

nicht im Kernmodell - ist erst für E/A wichtig

wird im Klassenmodell nicht benötigt (Akteur)

generalisieren?

Analyse der Anwendungsfälle (1)

Taentzer Einführung in die Softwaretechnik 114

Anwendungsfall “Bestellung bearbeiten”

• Der Anwendungsfall “Lagerbestand ermitteln” wird benutzt, um für jeden Posten der gerade bearbeiteten Kundenbestellung den aktuellen Lagerbestand des zugehörigen Produktes zu ermitteln (S11).

• Wenn das Zentrum eine Bestellung entgegennimmt, wird jeder Bestellposten in eine der beiden folgenden Karteieneingeordnet: (a) Lieferkartei, (b) Wartekartei (S13).

• 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 Wartekarteieingetragen (S15).

Syno-nym

(weitere) Klassen-

Kandidaten

Kandidat für Generali-sierung?

siehe oben!

Syno-nym ?

Analyse der Anwendungsfälle (2)

Taentzer Einführung in die Softwaretechnik 115

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 116

Anwendungsfall “Bestellung annehmen”

• Das Zentrum empfängt Bestellungen der Einzelhändler telefonisch von 9 bis 17 Uhr (S7).

• Die eingehenden Bestellungen der Kunden werden vom 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).

Enthaltenseins-beziehung: Bestellung -

Posten

Beziehung Bestellposten -Produkt

Analyse der Anwendungsfälle (3)

Taentzer Einführung in die Softwaretechnik 117

Anwendungsfall “Bestellung bearbeiten”

• Der Anwendungsfall “Lagerbestand ermitteln” wird benutzt, um für jeden Posten der gerade bearbeiteten Kundenbestellung den aktuellen Lagerbestand des zugehörigen Produktes zu ermitteln (S11).

• Wenn das Zentrum eine Bestellung entgegennimmt, wirdjeder Bestellposten in eine der beiden folgenden Karteien eingeordnet: (a) Lieferkartei, (b) Wartekartei (S13).

• 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).

Beziehung Lagerbestand-

Produkt

Beziehung Kartei -

Bestellung

Analyse der Anwendungsfälle (4)

Taentzer Einführung in die Softwaretechnik 118

Beispiel für ein erstes Klassendiagramm

Taentzer Einführung in die Softwaretechnik 119

• 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:

<< benutzt >> << erweitert >> << implementiert >>

Beziehungen zwischen Objektklassen

Taentzer Einführung in die Softwaretechnik 120

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 121

Klassen und Attribute Klassen sind Mengen von Objekten mit

gleichen Strukturmerkmalen (Attributen) gleichen Verhaltensmerkmalen (Operationen) gleichen Beziehungen zu anderen Objekten

Person

name: Stringvorname: Stringgeburtstag: Datumadresse: String

alterBerechnen()adresseDrucken()

Maier: Person

name = Maiervorname = Thomasgeburtstag = 31.12.1975 adresse = Krummbogen 29, 35037 Marburg

Klasse:Objekt:

Taentzer Einführung in die Softwaretechnik 122

• Der Attributtyp ist in der UML nicht weiter spezifiziert. Er kann z.B. ein Klassenbezeichner, ein primitiver Datentyp, ein Typ einer Implementierungssprache oder ein zusammengesetzter Typ sein.

• Attribute können (vor dem Attribut-bezeichner) bzgl. ihrer Sichtbarkeitgekennzeichnet werden.

Attributbezeichner : Attributtyp

Kennzeichner für Sichtbarkeit:+ öffentlich sichtbar# geschützt~ paketweit- nur privat sichtbar

Syntax:

Klassen und Attribute

Person

- name: String- vorname: String- geburtstag: Datum- adresse: Adresse

Taentzer Einführung in die Softwaretechnik 123

Operationen

Syntax: [Sichtbarkeit] Name ( Parameterliste ) : Typ Parameter:

Syntax: Richtung Name : Typ mögliche Richtungen: in, out, inout

Wie kommt man zu Operationen? Auf welche Fragen soll das Objekt

antworten können? Welche Aktionen soll es ausführen

können?

Person

+ alterBerechnen(): int+ datenDrucken(in d: Datei): void

Taentzer Einführung in die Softwaretechnik 124

Bestellformular für EinzelhändlerDatum: _____________Bestell-Nr: R _____________Einzelhändler: _______________________________Adresse: _______________________________Telefon: _____________Lfd-Nr. Produkt Menge______ _________ ______________ _________ ______________ _________ ________

Bestellformular für ProduzentenDatum: ___________Bestell-Nr: W ___________Produzent: ____________________________Adresse: ____________________________Telefon: ___________Lfd-Nr. Produkt Menge______ _________ ______________ _________ ______________ _________ ________

Beispiel: Bestellformulare

Taentzer Einführung in die Softwaretechnik 125

Beispiel: Verfeinertes Analysemodell

Taentzer Einführung in die Softwaretechnik 126

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.


Recommended