Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Abschnittsweise Modellierung (der richtige Titel war zu lang) F. Steimann & T. Kühne.

Ähnliche Präsentationen


Präsentation zum Thema: "Abschnittsweise Modellierung (der richtige Titel war zu lang) F. Steimann & T. Kühne."—  Präsentation transkript:

1 Abschnittsweise Modellierung (der richtige Titel war zu lang) F. Steimann & T. Kühne

2 F Steimann Fernuniversität in Hagen Die zwei Weltsichten der Modellierung BIS ES Klassendiagramme (generieren Klassendefinitionen) Statecharts (generieren C-Code) Fokus auf Funktion und (statischer) Struktur (Datenmodellierung!) Fokus auf Funktion und Verhalten (Echtzeitanforderungen) vollständige Modelle evtl. weglassen

3 F Steimann Fernuniversität in Hagen Die zwei Weltsichten der Modellierung Welt der Statik Klassifikation der Entitäten Deklaration von Attributen und Relationen (Assoziationen und Operationen) Dynamik als Änderung der Objektkonfigurationen und -zustände Welt der Dynamik zustandsabhängige Verhaltensspezifikation der Zustand bestimmt, was geht Zustand und Zustandsänderungen häufig rein abstrakt kein/wenig Bezug zu Objektkonfigurationen

4 F Steimann Fernuniversität in Hagen Problem strukturelle Dekomposition folgt nicht der funktionalen (schon in der Datenkapselung – Information hiding – à la Parnas angelegt) Funktionen (dazu erforderliches Verhalten) über mehrere Klassen verteilt jede Funktion wird damit zu einem Crosscutting concern der statischen Struktur ist zwar eine augenöffnende Beobachtung, gehört aber überhaupt nicht hier her.

5 F Steimann Fernuniversität in Hagen Welt der Dynamik zustandsabhängige Verhaltensspezifikation der Zustand bestimmt, was geht gleicher Stimulus bei gleichem Objekt führt zu verschiedene Antworten Antworten i.w. Zustandswechsel und Nachrichten an andere Objekte Zustand und Zustandsänderungen häufig rein symbolisch kein/wenig Bezug zu Objektkonfigurationen evtl. weglassen

6 F Steimann Fernuniversität in Hagen Welt der Struktur (hierarchische) Klassifikation der Entitäten Deklaration von Eigenschaften Attribute Zustandsraum und Beziehungen Assoziationen (Kenntnis von anderen Objekten) Funktionen (Kooperation mit bekannten Objekten) Beziehungen nicht notwendig an eine Stelle gebunden (OOP-Sicht); multi methods! Dynamik als Änderung der Objektkonfigurationen und -zustände evtl. weglassen

7 F Steimann Fernuniversität in Hagen Die mißverstandene Deklaration drucken: Dokument Drucker d Dokument, p Drucker: drucken(d, p) ist (irgendwie) definiert. drucken: Text Zeilendrucker drucken: Diagramm Plotter drucken: Text Plotter DokumentDrucker drucken

8 F Steimann Fernuniversität in Hagen Die mißverstandene Deklaration drucken: Dokument Drucker drucken Dokument Drucker Extension von fressen atmet Deklaration definiert obere Schranke nur wenn ich schon weiß, daß Texte nicht auf Plottern drucken … DokumentDrucker drucken

9 F Steimann Fernuniversität in Hagen Der Definitionsbereich hat Löcher! Text Zeilen- drucker Zeichnung Plotter Drucker Dokument

10 F Steimann Fernuniversität in Hagen Lösung Eliminierung der Definitionslöcher durch nicht-kartesische Definitionsbereiche spezielle Typsysteme z. B. Dependent types abschnittsweise Definition durch Überladen in allen Fällen drucken(d, p) ist nur für bestimmte d Dokument, p Drucker definiert

11 F Steimann Fernuniversität in Hagen Der Definitionsbereich hat trotzdem Löcher! Dokument Zeichnung Text Drucker Zeilen- drucker Plotter

12 F Steimann Fernuniversität in Hagen Der Definitionsbereich hat trotzdem Löcher! Dokument Zeichnung Text Drucker Zeilen- drucker Plotter leer

13 F Steimann Fernuniversität in Hagen Modellierung mit Zustandstypen

14 F Steimann Fernuniversität in Hagen Ein Beispiel A print manager prints documents on printers. There are two different kinds of documents, namely texts and diagrams, and two different kinds of printers, namely line printers and plotters. It is a restriction of the domain that texts can only be printed on line printers and that diagrams can only be printed on plotters. Texts consist of pages and are printed page by page, whereas each diagram is printed on a single page. A real print manager would maintain one or more spoolers in order to be able to accept printing jobs while a printer is busy, but we ignore this feature here. However, a printer can run out of paper in which case all printing attempts fail (i.e., signal an error), the only exception being the printing of an empty text (i.e., a text that has no pages). Later, we will be confronted with a niggling user who is dissatisfied with this particular feature; fortunately, pleasing him will turn out to be relatively easy.

15 F Steimann Fernuniversität in Hagen Statische Struktur print(Document, Printer) PrintManager Page 1* hasMorePages() : bool nextPage() : Page Text Diagram LinePrinter Plotter Document print(Document) Printer print

16 F Steimann Fernuniversität in Hagen Verhalten kombinatorische Explosion 12 mögliche Parameter- konstellationen hier auf 6 eingekocht äußerst fehleranfällig und das bei einem einfachen Beispiel!

17 F Steimann Fernuniversität in Hagen Überladen der Deklaration Page 1* hasMorePages() : bool nextPage() : Page Text Diagram LinePrinter Plotter Document print(Document) Printer print

18 F Steimann Fernuniversität in Hagen Vereinfachung durch abschnittsweise Definition

19 F Steimann Fernuniversität in Hagen

20 Einführung von Zustandssubtypen und entsprechenden Überladungen Text| HasMorePages Text|hasMorePages Plotter|empty Plotter| Empty LinePrinter|empty LinePrinter| Empty DocumentPrinter Text Diagram LinePrinter Plotter Page 10..* print 1 1..* print

21 F Steimann Fernuniversität in Hagen Weitere Vereinfachung durch abschnittsweise Definition (I)

22 F Steimann Fernuniversität in Hagen Weitere Vereinfachung durch abschnittsweise Definition (II)

23 F Steimann Fernuniversität in Hagen print DocumentPrinter DiagramPlotter print Integration von Statecharts automatische Generierung spezifiziert veränderlichen Definitionsbereich von Methoden DocumentPrinter DiagramPlotter print Plotter empty print(Diagram) Plotter|empty Plotter| Empty print

24 F Steimann Fernuniversität in Hagen Ableitung der Zustandssubtypen Zustände spezifizieren veränderlichen Definitions- bereich von Methoden Zustände können Wertebereiche von Attributen einschränken Zustandswechsel erfordern ggf. neue Bindung (Rekursion) Zustandsautomaten werden vererbt empty print(Diagram) empty print(Text) print(Text|hasMorePages) hasMoreP. nextPage() Plotter LinePrinter Text

25 F Steimann Fernuniversität in Hagen Automatische Generierung + + + =

26 F Steimann Fernuniversität in Hagen Modulare Erweiterbarkeit nachträgliches Definieren von undefinierten Fällen nachträgliches Aufdröseln nicht haltbarer Verallgemeinerungen pm:PrintManagerprn:LinePrinter|emptydoc:Text|hasMorePages print(doc)print(doc, prn) done doSomethingThatMakesSense

27 F Steimann Fernuniversität in Hagen Modellierung mit Ausnahmen dynamische Typen machen statische Typprüfung schwierig kaum Beachtung in der Programmierpraxis für den Zweck der Modellierung ungeeignet akzeptieren, daß Definitionen Lücken haben Deklarationen deklarieren Delta Transformation in Deklarationen mit Exceptions

28 F Steimann Fernuniversität in Hagen Diskussion Grenzen der Modularität Probleme aus regelbasierten Systemen und funktionalen Programmiersprachen bekannt verwandte Arbeiten jede Menge! statische und dynamische Typsysteme algebraische Spezifikationen mit Fehler- und Ausnahmebehandlung

29 F Steimann Fernuniversität in Hagen Vielen Dank! Fragen?


Herunterladen ppt "Abschnittsweise Modellierung (der richtige Titel war zu lang) F. Steimann & T. Kühne."

Ähnliche Präsentationen


Google-Anzeigen