7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language

Ähnliche Dokumente
Aufgabe. Ansatz: Abstrakte Klasse Kämpfer, die Gemeinsamkeiten enthält und individuelle Aktionen abstrakt vorgibt. Prof. Dr.

7. Konkretisierungen im Feindesign 7.1 Zustandsdiagramme 7.2 Object Constraint Language

7. Konkretisierungen im Feindesign

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

Einführung: Zustandsdiagramme Stand:

State diagrams (Zustandsautomaten)

7. Konkretisierungen im Feindesign

UML Grundlagen, Zustandsautomat. Zustandsautomaten bilden eine Erweiterung der endlichen Automaten

OOA-Dynamische Konzepte

UML - Zustandsdiagramm

Sommersemester Analyse II: Verhalten (Zustandsautomaten)

Zustände Zustandsdiagramme

Softwaretechnik. Kapitel 11 : Zustandsdiagramme. Statecharts / State Machines Historisches. State Machines in UML Verwendung in OO

Statecharts in UML Grundlagen und Übersetzung in Colored Petri Nets

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 8 -

UML - Zustandsdiagramm

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Zustandsdiagramm - Begriffe

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

Zustände umsetzen Enumerations (Aufzählungen) Zustandsobjekte

4. Modellieren und Diagrammarten

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

UML 1.4 Referenz. Matthias Niete Dirk M. Sohn Orientation in Objects GmbH Weinheimer Str Mannheim

13 Automaten und formale Sprachen

Interaktionsdiagramme in UML

Klausur. Softwareentwurf. 22. März 2011 Bearbeitungszeit: 120 Minuten

Benutzerhandbuch Koala Editor

Software-Engineering

Testen mit Use Cases. Chris Rupp Dr. Stefan Queins

2. Übung zu Software Engineering

8. Stateflow Grundlagen. Daniel Schrammel - BA Stuttgart -

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS

124 Kompetenzorientierte Aufgaben im Informatikunterricht

UML (Unified Modelling Language) von Christian Bartl

Das aktuelle Objekt der Klasse AMPEL gibt an die Objekte gruen, gelb und rot der Klasse LAMPE die Botschaft, die Methode aus() aufzurufen.

Object-Oriented Analysis and Design Klausur Wintersemester 2006/2007

Besteht aus Aktoren (actors) und use-cases sowie deren Verbindungen.

RUP Analyse und Design: Überblick

Klausur. Softwareentwurf. 13. März 2013 Bearbeitungszeit: 120 Minuten

Softwaretechnik 1 Tutorium

Vorlesung Informatik II

Kapitel 4 Spezifikation von Kommunikationssystemen

1.4 Spezifikation. Inhalte einer. Spezifikation

Vorlesung Software Engineering I

Unified Modelling Language

Electronic Design Automation (EDA) Spezifikation

Strategien zur Testfallgenerierung aus UML-Zustandsautomaten

ANWENDUNGSFALLDIAGRAMM:

1 Endliche Automaten mit Ausgabe

Dipl.-Inform. Lars Ebrecht

1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0;

INSPIRE - Modellierung

Kapitel 8: UML - Dynamische Modellierung

Analyse und Design mituml2

Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML2 glasklar. UNIFIED MODELING LANGUAGE l HANSER

Analyse und Design mituml2.1

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Theoretische Grundlagen der Informatik

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering

NACHRICHTENTECHNISCHER SYSTEME

Verhaltensbeschreibung und Spezifikationssprachen

Das UML Benutzerhandbuch

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

Diplomarbeit: Erweiterung von KIEL um Stateflow-Charts. Adrian Posor

Datenbanken. Teil 2: Informationen. Kapitel 7: Objektorientierte Sicht. UML-Diagramme. Vorstellung der unterschiedlichen UML-Diagramme

Softwaretechnik SS 2006

Beispielklausur B MPGI 3

Kernprozess zur System- und Software- Entwicklung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Formale Modellierung Vorlesung vom : Beyond JML

Teil II: OOP und JAVA (Vorlesung 9)

Software-Engineering

Unified Modeling Language (UML)

Modellierung mit UML

Objektorientierter Entwurf. Grundlagen des Software Engineerings

DGQ Regionalkreis Hamburg Anforderungsmanagement ins SW-Projekten. 08. Juni 2011

Objektorientierte Analyse (OOA) Inhaltsübersicht

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

Automatisierung industrieller. Workflows. Teil B: Die Spache UML

Übersetzung von Statecharts nach AspectJ

MPGI 3 Muster-Schriftliche Leistungskontrolle B

Sommersemester Iteration

Einführung in Computer Microsystems Sommersemester Vorlesung Dr.-Ing. Wolfgang Heenes

Informatik 2-stündig

Theoretische Informatik I

CARL HANSER VERLAG. Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML 2 glasklar

Zustandsautomaten in Embedded Software Beispiel Ampelschaltung. Michael Leuker, Stanislaw Ustinow

Labor Modellgestütztes Software Engineering. Versuch 3

Die Unified Modeling Language UML

Lexikalische Programmanalyse der Scanner

DLR SchoolLab Lektion 1 Erste Schritte

VORDIPLOMSPRÜFUNG FÜR ELEKTROINGENIEURE. Einführung in die Informatik III

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

Aufgabe S1: Einmal quer durch s Skript

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Transkript:

7. Konkretisierungen im Feindesign 7.1 Zustandsdiagramme 7.2 Object Constraint Language 173

Verfeinerte Modellierung Durch die verschiedenen Sichten der Systemarchitektur wird der Weg vom Anforderungsmodell zur Implementierung beschrieben Es bleiben offene Themen: Wie bekomme ich ein gutes Klassendesign (nächstes Kapitel)? Wie kann man das komplexe Verhalten von Objekten noch beschreiben (Klassendiagramme sind statisch, Sequenzdiagramme exemplarisch)? Antwort: Zustandsdiagramme Wie kann man bei der Klassenmodellierung Randbedingungen formulieren, was in Klassendiagrammen (Bedingungen in geschweiften Klammern) nur bedingt möglich ist? Antwort: Object Constraint Language 174

Zustandsdiagramme 7.1 generell wird der Zustand eines Objekts durch die Werte seiner Exemplar- und Klassenvariablen beschrieben Häufig wird der Begriff Zustand auch für eine spezielle Exemplarvariable genutzt, die z. B. über eine Enumeration realisierbar ist z. B. : Ampel: rot, rotgelb, gelb, grün z. B. : Projekt: vorbereitet, grob geplant, Mitarbeiter zugeordnet, verschoben, in Bearbeitung, in Endabnahme, in Gewährleistung, beendet Die Übergänge zwischen den Zuständen werden durch Ereignisse, zumeist Methodenaufrufe, veranlasst Die Übergänge lassen sich durch ein Zustandsdiagramm (ursprünglich Statechart nach D. Harel) spezifizieren Zustandsautomaten spielen auch in der theoretischen und technischen Informatik eine zentrale Rolle 175

Struktur von Zustandsdiagrammen Zustandsdiagramm gehört zu einem Objekt einer Klasse alle Angaben für Zustände und Transitionen sind Optional Transition wird ausgeführt, wenn Ereignis eintritt und Bedingung erfüllt ist ohne Ereignis und Bedingung wird Transition dann ausgeführt, wenn Entry, Do, und Exit durchlaufen Einfacher Automat muss deterministisch sein 176

Beispiel: Zustandsdiagramm eines Projekts man erkennt: nach Planung keine Planungsänderung 177

Hierarchische Zustände 178

Parallele Unterzustände unabhängige Teilzustände können in parallelen Zuständen bearbeitet werden ohne Parallelität müsste Kreuzprodukt der Zustände der parallelen Automaten betrachtet werden 179

Beispiel: Uhr 180

Zustandsmodellierung und Realzeitsysteme in klassischen OO- Programmen gibt es meist wenige zentrale Klassen, für die sich eine Zustandsmodellierung anbietet In Systemen mit Zeit kann Zustandsmodellierung Zeitbedingungen beinhalten auch warte(5 sek) 181

Event [Condition] / Action Transitionsbeschriftung Ereignis[Bedingung]/Aktion Was ist Ereignis? Hängt von Applikation ab Methodenaufruf Ereignis im Programm (Variable wechselt Wert) technische Systeme: Signale typisches Beispiel: Steuersysteme erhalten Signale (->Ereignisse) von Sensoren wenn etwas passiert (z. B. ein-/ausgeschaltet) lesen Werte anderer Sensoren, Teilsysteme (-> Bedingung), die Entscheidungen beeinflussen senden Signale (-> Aktion) an andere Systeme 182

Beispiel: Start-Stopp-Automatik (1/2) zentrale Aufgabe: Start-Stopp-Automatik stellt den Motor immer dann selbstständig aus, wenn dieser nicht mehr benötigt wird (z. B. Halt an Ampel) Randbedingung: keine Abschaltung bis maximal 3 Grad und ab minimal 30 Grad Ablauf: Zündschlüssel einstecken, Motorstartknopf drücken, dann startet Automatik Motorein- und Abschaltung wird anhand der Kupplung erkannt einmal Motorabschaltknopf zum Verlassen der Automatik, zweimal zum Stoppen des Autos [Frage: was fehlt alles zur Realität] 183

Beispiel: Start-Stopp-Automatik (2/2) Klärung, welche Sensoren senden Signale: Zündschloss: ein Motorein-/ und Abschaltung: ein und aus Kupplung: leerlauf und treten Klärung, welchen Sensoren können abgefragt werden: Temperaturwert temp 184

Umsetzung von Zustandsdiagrammem Abhängig davon, wie formal die Zustände und Transitionen spezifiziert sind, kann aus Zustandsdiagrammen Programmcode erzeugt werden Typisch: Iteratives Vorgehen: informelle Beschreibungen werden schrittweise durch formalere ersetzt Ereignisse können für folgendes stehen Methodenaufrufe externe Ereignisse des GUI (-> Methodenaufruf) Teilsituation, die bei der Abarbeitung einer Methode auftreten kann Automat wird zunächst zu komplexer Methode, die z. B. anhand der Zustände in Teilmethoden refaktoriert werden kann 185