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

Slides:



Advertisements
Ähnliche Präsentationen
Relative Clauses.
Advertisements

Blue J.
Objektorientierte Programmierung
Modellierung sozio-technischer Systeme SeeMe - Semi-strukturierte, sozio-technische Modellierungsmethode.
Frame-Logik Eine Einführung Andreas Glausch.
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Verbs Used Impersonally With Dative Deutsch I/II Fr. Spampinato.
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Java: Objektorientierte Programmierung
Sebastian Grahn Sebastian Kühn
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Grundkurs praktische Philosophie 13. Dezember 2004 Politische Philosophie: wozu Staaten gut sind Text: A. John Simmons, Philosophical Anarchism, in: J.
Explizite und editierbare Metainformationen für Software Muster.
Kundenspezifische Anpassungen - Ändern von Objekten
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
1000 Km bis zum Meer. “1000 Km to the sea” Luxuslärm
Durch die Nacht “through the night” Silbermond
Ich bau eine Stadt für dich “I am building a city for you”
You need to use your mouse to see this presentation © Heidi Behrens.
You need to use your mouse to see this presentation © Heidi Behrens.
Powerpoints bestellen - Mail an: My Family Photo. On the left is my wife, in the middle is my Mother in Law, besides her.
You need to use your mouse to see this presentation © Heidi Behrens.
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Dynamische Datentypen
Perspektiven – “Perspectives” – Herr Wallace
The most obvious or direct use of auch is to mean also. Ich möchte auch Gitarre lernen. Auch ich möchte Gitarre lernen. I would like to learn Guitar. Someone.
Java Programmierung.
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Do you know the names for all of the pieces of furniture on your table?
Der formelle Imperativ – the Imperative
Coordinating Conjunctions Why we need them & how to use them deutschdrang.com.
Lust auf Lesen Treffpunkt Deutsch Sixth Edition. Relative Pronoun object of a preposition Recall from chapter 9 that relative clauses describe people,
Synchronization: Multiversion Concurrency Control
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
What is a “CASE”? in English: pronouns, certain interrogatives
What is a “CASE”? in English: pronouns, certain interrogatives
Ordering Food A Guide. Im Restaurant An actual restaurant is the chance to use more formal ordering. “Ich hätte gern eine Pizza.” “Ich möchte eine Cola.”
type / function / form type of words:
Schreiben Sie fünf Sätze aus diesen Elementen. [Beispiel
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
COMMANDS imperative There are three command forms: formal familiar singular familiar plural.
COMMANDS imperative 1. you (formal): Sie 2. you (familiar plural): ihr
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
© Crown copyright 2011, Department for Education These materials have been designed to be reproduced for internal circulation, research and teaching or.
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
Here‘s what we‘ll do... Talk to the person sitting in front of you. Introduce each other, and ask each other questions concerning the information on your.
GERM 1023 Kapitel 9 3 modals / infinitive completion with and without “zu”
Kapitel 9 Grammar INDEX 1.Formal Sie- Command 2.There Is/There Are 3.Negation: Nicht/Klein.
Als ich mein Gesicht As I my face In der Wasserspiegelung sah, In the water’s reflection saw, Lachte ich über die Erinnerungen, I laughed about the memories.
On the case of German has 4 cases NOMINATIVE ACCUSATIVE GENITIVE DATIVE.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
1Crypto AG / P_M_HC-2650-Course-Notes-d_0833_rd.PPT Training and Education HC-2650 Kursunterlagen.
What’s the weather like?. Look at the question above Turn it around and you have Das Wetter ist.... The phrase Das Wetter ist.... or Es ist.... can be.
1 Presenter Screen for OOo Design Studies ● Matthias Müller-Prove – User Experience Engineer ● Sun Microsystems 1.
Fitness. An english presentation.
Volume 1, Chapter 8.
you: ihr ( familiar plural ) you: du ( familiar singular)
you: ihr ( familiar plural ) you: du ( familiar singular)
Relative Clauses Frau Lizz Caplan-Carbin.
Telling Time in German Deutsch 1 Part 1.
Past tense As confusing as it may be, there are different kinds of past tense. Both simple past and present perfect are used to talk or write about the.
type / function / form type of words:
- moodle – a internet based learning platform
 Präsentation transkript:

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

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

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

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.

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

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

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

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

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

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

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

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

F Steimann Fernuniversität in Hagen Modellierung mit Zustandstypen

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.

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

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!

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

F Steimann Fernuniversität in Hagen Vereinfachung durch abschnittsweise Definition

F Steimann Fernuniversität in Hagen

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

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

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

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

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

F Steimann Fernuniversität in Hagen Automatische Generierung =

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

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

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

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