Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Softwarepraktikum SS 2008 Vorlesung 02 – 23.04.08 Prof. Dr. Reinhard v. Hanxleden.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Softwarepraktikum SS 2008 Vorlesung 02 – 23.04.08 Prof. Dr. Reinhard v. Hanxleden."—  Präsentation transkript:

1 1 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Softwarepraktikum SS 2008 Vorlesung 02 – Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Institut für Informatik Christian-Albrechts-Universität zu Kiel

2 2 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Vorlesung 02 Entwurfsmuster, MVC Einführung in UML

3 3 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Entwurfsmuster Model View Controller Dieses Tutorial basiert auf Folien der AG Rechnerunterstützte Ingenieursysteme (Prof. Dr.-Ing. habil Georg Paul) der Universität Magdeburg

4 4 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwendung erfolgreicher Lösungen (Entwurfsmuster) –somit in OO Systemen oft wiederkehrende Muster von Klassen und kommunizierenden Objekten –Entwickler kann Muster auf vorliegende Probleme anwenden, ohne Lösung erneut zu suchen –Muster lösen spezifische Entwurfsprobleme –Muster machen Entwürfe flexibler, eleganter, wiederverwendbar

5 5 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Entwurfsmuster Entwurfserfahrungen als Entwurfsmuster aufgezeichnet (Musterkatalog) –durch verständliche Darstellung gut nutzbar –erleichtern Wahl von Entwurfsalternativen –können Dokumentation + Wartung existierender Systeme erleichtern –ermöglichen Entwurf schneller richtig zu machen Entwurfsmuster (C. Alexander): –beschreibt beständig wiederkehrendes Problem –erläutert Kern der Lösung für Problem –somit: Lösung beliebig oft, aber nicht jedesmal gleich, ausführbar

6 6 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Entwurfsmuster Entwurfmuster sind Muster bestimmter Abstraktionsebene –Zusammenarbeit Objekte + Klassen zur Lösung von Entwurfsproblemen in bestimmtem Kontext Benennen, Abstrahieren, Identifizieren relevanter Aspekte einer allgemeinen Entwurfsstruktur –Klassen, Objekte, ihre Rollen + Aufgaben + Interaktionen zwischen Rollen identifiziert –Entwurfsmuster für je ein bestimmtes Entwurfsproblem: wann einsetzbar + Konsequenzen

7 7 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Beschreibung von Mustern (I) (Musterbeschreibung nach Gamma) Mustername –kurzes Stichwort, um Problem + Lösung zu erläutern –hilft bei Kommunikation im Team + Dokumentation Problemabschnitt –beschreibt, wann Muster anzuwenden ist (Zweck, Motivation, Anwendbarkeit)

8 8 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Beschreibung von Mustern (II) Lösungsabschnitt –Elemente des Entwurfs, Beziehungen, Zuständigkeiten + Interaktionen (Struktur, Teilnehmer, Interaktionen) –kein bestimmter Entwurf, keine konkrete Implementierung, sondern auf viele Situationen anwendbare Schablone (Elemente z.B. Klassen + Objekte) Konsequenzabschnitt –Konsequenzen der Musteranwendung (Vor- und Nachteile) + bekannte Verwendungen

9 9 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme MVC (Name, Problem) Name –MVC: Model View Controller Motivation –Erleichtert Entwurf und Wartung grafischer Benutzerschnittstellen durch Modularisierung –Model: Daten + Kernfunktionalität –View: Präsentation Model –Controller: Kontrollfluss (welche Aktion, welche Logik, welche View)

10 10 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme MVC (Problem) –Views nicht zu verändern bei verändertem Controller –Model unabhängig von Veränderungen in View und Controller Anwendbarkeit –für große Anwendungen –wenn klare Rollenverteilung nötig (Designer, Programmierer) –wenn starke Wiederverwendung angestrebt

11 11 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme MVC (Lösung I) Struktur: Methodenaufrufe Ereignisse View ControllerModel BenutzeraktionenView-AuswahlÄnderungenStatus erfragen Status ändern V CM

12 12 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme MVC (Lösung II) Teilnehmer Model, View, Controller Interaktionen Views leiten Benutzeraktionen an Controller Controller legt fest, wie Eingaben zu verarbeiten (Befehle an Model schicken und View selektieren) Views können geänderte Werte des Models abfragen

13 13 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme MVC (Konsequenzen I) Konsequenzen +Gute Wiederverwendbarkeit +Mehrere Ansichten des selben Models möglich +Sichten und Controller sind austauschbar +Bessere Lesbarkeit gute Rollenverteilung +Designer, Programmierer +Gute Skalierbarkeit und Erweiterbarkeit -Erhöhte Komplexität -Längere Planung -Mehr Aufwand bei Implementierung

14 14 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme MVC (Konsequenzen II) Bekannte Verwendungen Smalltalk mit Benutzerschnittstellen-Framework MFC - Microsoft Foundation Classes Swing Web-Frameworks (Struts, Velocity, Tapestry)

15 15 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Beispiel (JavaServer Pages) Benutzeraktion: OKInstanziieren + Status ändern (setLogin(...)...) login passwort setLogin(...)... View-Wahl Eingabe OK Comicanwendung View-Wahl Eingabe NOK Instanziieren der Bean Status ändern prüfeEingabe() muster Login Passwort ****** OK Bitte ausfüllen! muster Login Passwort OK Passwort falsch! Status abfragen (getLogin()) V CM View1.jsp View2.jspBean.java Controller.java

16 16 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Example: The Bouncing Ball Applet Each click of the Step button advances the ball a small amount The step number and ball position are displayed in the status line This example is courtesy of David Matuszek, University of Pennsylvania, ek/cit /Lectures/mvc.ppt ek/cit /Lectures/mvc.ppt

17 17 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme The Ball Applet: Model The Ball Applet shows a ball bouncing in a window The Model controls the motion of the ball In this example, the Model must know the size of the window –so it knows when the ball should be made to bounce The Model doesnt need to know anything else about the GUI

18 18 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Class-Responsibility-Collaboration Cards Class Name Responsibilities Collaborators CRC cards are one brainstorming tool in OO design

19 19 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Model Set initial position Move one step No collaborators but provide access methods to allow view to see what is going on

20 20 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Model I import java.util.Observable; class Model extends Observable { final int BALL_SIZE = 20; int xPosition = 0; int yPosition = 0; int xLimit, yLimit; int xDelta = 6; int yDelta = 4; // more...

21 21 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Model II void makeOneStep ( ) { xPosition += xDelta; if (xPosition < 0) { xPosition = 0; xDelta = -xDelta; } // more...

22 22 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Model III if (xPosition >= xLimit) { xPosition = xLimit; xDelta = -xDelta; } // still more...

23 23 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Model IV yPosition += yDelta; if (yPosition < 0 || yPosition >= yLimit) { yDelta = -yDelta; yPosition += yDelta; } setChanged(); notifyObservers(); } // end of makeOneStep method } // end of Model class

24 24 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Model (repeated) Model Set initial position Move one step No collaborators but provide access methods to allow view to see what is going on

25 25 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme The Ball Applet: View The View needs access to the balls state (in this case, its x-y location) For a static drawing, the View doesnt need to know anything else

26 26 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme View Paint the ballGet necessary info from Model

27 27 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme View I import java.awt.*; import java.util.*; class View extends Canvas implements Observer{ Controller controller; Model model; int stepNumber = 0; // more...

28 28 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme View II public void paint (Graphics g) { g.setColor (Color.red); g.fillOval (model.xPosition, model.yPosition, model.BALL_SIZE, model.BALL_SIZE); controller.showStatus ("Step " + (stepNumber++) + ", x = " + model.xPosition + ", y = " + model.yPosition); } // end paint method

29 29 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme View III public void update(Observable obs, Object arg) { repaint(); } } // end class

30 30 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme View (repeated) View Paint the ballGet necessary info from Model

31 31 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme The Ball Applet: Controller The Controller tells the Model what to do The Controller tells the View when it needs to refresh the display The Controller doesnt need to know the inner workings of the Model The Controller doesnt need to know the inner workings of the View

32 32 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Controller Create Model Create View Give View access to Model Tell Model to advance Tell View to repaint Model View

33 33 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme public class Controller extends Applet { Panel buttonPanel = new Panel (); Button stepButton = new Button ("Step"); Model model = new Model (); View view = new View (); // more... import java.applet.*; import java.awt.*; import java.awt.event.*; import java.util.*; Controller I

34 34 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Controller II public void init ( ) { // Lay out components setLayout (new BorderLayout ( )); buttonPanel.add (stepButton); this.add (BorderLayout.SOUTH, buttonPanel); this.add (BorderLayout.CENTER, view); // more...

35 35 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Controller III // Attach actions to components stepButton.addActionListener( new ActionListener ( ) { public void actionPerformed (ActionEvent event) { model.makeOneStep (); } } ); // more...

36 36 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Controller IV // Tell the View about myself (Controller) // and about the Model model.addObserver(view); view.controller = this; } // end init method // more...

37 37 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Controller V public void start ( ) { model.xLimit = view.getSize( ).width - model.BALL_SIZE; model.yLimit = view.getSize( ).height - model.BALL_SIZE; repaint ( ); } // end of start method } // end of Controller class

38 38 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Controller (repeated) Controller Create Model Create View GiveView access to Model Tell Model to advance Tell View to repaint Model View

39 39 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Quellen Wille, S., Go To Java Server Pages, Addison-Wesley, München, 2001 Gamma, E., Helm, R., Jonson, R., Vlissides, J., Entwurfsmuster, Addison-Wesley, Bonn, 1996 (Gang of Four) Siemers, S.: MVC meets XML, Javamagazin, 03/2002, S.24 Turau, V. Saleck, K., Schmidt, M.: Java Server Pages und J2EE: Unternehmensweite Web-Basierte Anwendungen, dpunkt.verlag, Heidelberg (Basis dieser Folien)http://wwwiti.cs.uni-magdeburg.de/iti_ti/ETISUebung/uePattern.ppt wedel.de/~si/seminare/ws97/Ausarbeitung/3.Krutscher/archmu3.htm (Weiterführende Informationen zu MVC)http://www.fh- wedel.de/~si/seminare/ws97/Ausarbeitung/3.Krutscher/archmu3.htm

40 40 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme UML-Tutorial Unified Modelling Language Dieses Tutorial basiert auf Folien von Prof. Dr. Thomas Wilke, CAU Kiel, sowie auf einem Foliensatz von Dipl.-Inform. Christian Fuß, RWTH Aachen, dieser basiert wiederum auf einem Internet-Tutorial von Prof. Dr.-Ing. R. Dumke, Universität Magdeburg

41 41 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Einführung UML ist eine Sammlung von Diagrammsprachen für den objektorientierten Entwurf Spezifikation, Visualisierung, Konstruktion und Dokumentation von Modellen Softwaresysteme, Geschäftsmodelle und andere Nicht- Softwaresysteme OMG Standard seit 1998, derzeit aktuell UML 2 Entwickelt von Grady Booch, Ivar Jacobsen und Jim Rumbaugh Object-Orientation Defining abstractions of real-world entities known as objects, which contain both data and procedures. Key characteristics of object- oriented systems are encapsulation, inheritance and polymorphism.

42 42 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Überblick

43 43 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Klassen Klasse ist Konstruktionsbeschreibung für Objekte –Attribute –Operationen (Methode=Implementierung der Operation) Abstrakte Klassen –Grundlage für Unterklassen –nicht instanzierbar Parametrisierbare Klassen –Schablone zur Erzeugung von Klassen –Erzeugte Klasse muss mit >-Assoziation mit Schablone verbunden werden

44 44 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassen I bilden eigenen, abgeschlossenen Verantwortlichkeitsbereich beschreiben Objekte der realen Welt schematisch fassen mehrfach und gemeinsam auftretende Daten zusammen können andere erweitern oder generalisieren (Vererbung) stehen miteinander in Beziehung (Assoziationen)

45 45 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassen II Wichtig: suggestive Bezeichnungen eine feste natürliche Sprache (hier: durchgängig deutsch) Namenskonventionen einhalten: Klassennamen beginnen mit Großbuchstaben, Wortgliederung durch Großbuchstaben Checkliste: Werden mehrere Objekte einer Klasse erzeugt? Fassen Objekte Daten und Operationen zusammen? Gibt es sinnvolle Beziehungen zwischen den Klassen?

46 46 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Methoden Operationen auf Objekten Wichtig: 1.geeignete Abstraktionen bilden 2.get- und set-Methoden kritisch durchsehen 3.Namenskonventionen: Imperativ, beginnend mit Kleinbuchstaben, Wortgliederung durch Großbuchstaben (z. B. tuDiesUndJenes())

47 47 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Attribute, Operationen Datenelement jedes Objekts einer Klasse –/abgeleitetes Attribut (nach Berechnungsvorschrift) –klassenattribut –+publicAttribut –#protectedAttribut –-privateAttribut Klasse beschreibt Typ des Attributs Merkmal beschreibt weitere Eigenschaften, z.B. read-only Zusicherung schränkt Inhalte, Zustände oder Semantik eines Modellelements ein attribut : Klasse = Initialwert {Merkmal}{Zusicherung} operation(argument:Argumenttyp=Standardwert,...) : Rückgabetyp {Merkmal} {Zusicherung} vergleichbar den Attributen Operationen sind Dienstleistungen, die aufgerufen werden können

48 48 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Pakete Ansammlungen von Modellelementen Gesamtmodell in kleine überschaubare Einheiten untergliedern definieren keine Modellsemantik jedes Modellelement gehört zu genau einem Paket können hierarchisch gegliedert werden

49 49 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Vererbung Programmiersprachenkonzept für Relation zwischen Ober- und Unterklasse Attribute und Operationen der Oberklasse sind auch Unterklassen zugänglich Abstraktionsprinzip zur hierarchischen Gliederung der Semantik eines Modells Unterscheidung eines Diskriminators: z.B. Antriebsart für PKWs

50 50 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Use-Case-Diagramm stellt Beziehungen zwischen Akteuren und Anwendungsfällen dar Anwendungsfall beschreibt äußerlich sichtbares Systemverhalten, kann hierarchisch geschachtelt werden Akteur befindet sich außerhalb der Systemgrenze Systemgrenze wird durch Rahmen symbolisiert

51 51 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Sequenzdiagramm beschreibt zeitliche Abfolge von Interaktionen zwischen Objekten Zeitlinie senkrecht von oben nach unten Objekte durch senkrechte Lebenslinien beschrieben gesendete Nachrichten waagerecht entsprechend zeitlichen Auftretens

52 52 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme UML – Weiterführende Links (Basis dieses Tutorials)http://www-ivs.cs.uni-magdeburg.de/~dumke/UML (Seite der OMG)http://uml.org (Online-Buch zur UML)http://www.highscore.de/uml/

53 53 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme UML-Tutorial Appendix

54 54 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Schnittstellen Schnittstellen spezifizieren Teil des äußerlich sichtbaren Verhaltens von Modellelementen beinhalten eine Menge von Signaturen für Operationen symbolisiert durch nicht ausgefüllten Kreis, der durch Linie mit anbietender Klasse verbunden ist Name der Schnittstelle entspricht dem Namen der Schnittstellenklasse Nutzung durch Abhängigkeitsbeziehung

55 55 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Objekte interessierende Objekte und Beziehungen in einer Art Momentaufnahme z.B. Datensatz für den Test zu definieren Systemablauf während des Debugging erwünschte oder unerwünschte Zustände Objektdiagramm bildet konkrete Instanz des abstrakt beschriebenen Modells

56 56 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Assoziation Assoziationen beschreiben Verbindungen zwischen Klassen Objekte können nur dann miteinander kommunizieren konkrete Beziehung (Instanz einer Assoziation) wird Objektverbindung (Link) genannt an den Enden kann Multiplizität angegeben werden (als einzelne Zahl oder Wertebereich) eine abgeleitete Assoziation wird nicht gespeichert, sondern bei Bedarf berechnet

57 57 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Aggregation, Komposition Aggregation ist Zusammensetzung eines Objektes aus einer Menge von Einzelteilen Aggregat nimmt stellvertretend für Teile Aufgaben wahr Aggregat kann Nachrichten an seine Teile weiterleiten die beteiligten Klassen führen keine gleichberechtigte Beziehung Teil kann zu mehreren Aggregationen gehören Komposition ist existenzabhängige Aggregatbeziehung

58 58 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Abhängigkeit Beziehung zwischen Modellelementen, die zeigt, dass Änderung des einen (unabhängigen) Elements Änderung im anderen (abhängigen) Element bewirkt bezieht sich dabei auf Modellelemente selbst, nicht auf Instanzen

59 59 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Verfeinerung Verfeinerungen sind Beziehungen zwischen gleichartigen Elementen unterschiedlichen Detaillierungsgrades Beispiele –Beziehung von Analyse- und Designversion –Beziehung von sauberer und optimierter Variante –Beziehung zwischen zwei unterschiedlich granulierten Elementen –Beziehung zwischen Schnittstellenklasse und umsetzender Klasse

60 60 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Klassendiagramm – Stereotypen erweitern vorhandene Modellelemente des UML- Metamodells Element wird direkt durch definierte Semantik beeinflusst besitzen keine Typsemantik sollten projekt-, unternehmens- oder methodenspezifisch vergeben werden

61 61 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Komponentendiagramm Komponente stellt physisches Stück Programmcode dar Komponente kann Elemente (Objekte, Komponenten, Knoten) enthalten und Schnittstellen besitzen Komponentendiagramm zeigt Abhängigkeiten zwischen Komponenten

62 62 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Einsatzdiagramm Knoten stellen Laufzeitumgebungen dar Knoten werden als Quader visualisiert In den Knoten werden dort installierte Komponenten und Objekte dargestellt Knoten die miteinander kommunizieren werden durch Linien miteinander verbunden

63 63 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Kompositionsstrukturdiagramm dient der internen hierarchischen Strukturierung von Komponenten (Klassen) Interne Strukturierung geschieht auf Instanzebene (Zusammenfassung zur Laufzeit) Externe Struktur kann durch Ports verfeinert werden Ports bündeln geforderte und gelieferte Schnittstellen mit logischen Interaktionen UML2

64 64 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme State-Chart-Diagramm Zustandsmaschine ein Anfangszustand endliche Menge Zustände Unterzustände mit Anfangszustand möglich endliche Menge Transitionen durch Ereignisse ereignis(argumente) [bedingung] / operation(argumente) ^zielobjekte.gesendetesEreignis(argumente) endliche Menge Endzustände

65 65 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Aktivitätsdiagramm Sonderform des State-Chart-Diagramms ähnelt prozeduralem Flussdiagramm beschreibt Aktivitäten von Objekten Aktivität ist Zustand mit interner Aktion

66 66 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Kommunikationsdiagramm Kollaborationsdiagramm in UML 1 Interaktionen für begrenzten Kontext, unter besonderer Beachtung der Beziehungen der Objekte und ihrer Topographie –Objekte durch Assoziationslinien verbunden –Nachrichten (zeitliche Nummerierung, Namen, Antwort und Argumenten) entlang der Assoziationslinien –Startnachricht erhält noch keine Nummer Aussagekraft wie Sequenzdiagramm

67 67 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Interaktionsübersichtsdiagramm Vermischung aus Aktivitäts- und Sequenzdiagramm Aktivitätsbeschreibung in Form von Sequenzdiagrammen UML2

68 68 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Timing-Diagramm dienen Darstellung von Zeitbeschränkungen für Zustandswechsel von ein oder mehreren Objekten UML2


Herunterladen ppt "1 Prof. Dr. Reinhard v. Hanxleden AG Echtzeitsysteme/Eingebettete Systeme Softwarepraktikum SS 2008 Vorlesung 02 – 23.04.08 Prof. Dr. Reinhard v. Hanxleden."

Ähnliche Präsentationen


Google-Anzeigen