Software Engineering Interaktionsdiagramme



Ähnliche Dokumente
Software Engineering Klassendiagramme Assoziationen

Vgl. Oestereich Kap 2.7 Seiten

SEQUENZDIAGRAMM. Christoph Süsens

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme weiterführende Konzepte

1 topologisches Sortieren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Objektorientierte Programmierung

Arbeiten mit UMLed und Delphi

Erstellen von x-y-diagrammen in OpenOffice.calc

Klassendiagramm. (class diagram)

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Online-Bestellung Tageskarten für Mitglieder des FC St. Pauli, die nicht im Besitz einer Dauer- oder Saisonkarte sind.

Professionelle Seminare im Bereich MS-Office

Bedienungsanleitung für den Online-Shop

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Zählen von Objekten einer bestimmten Klasse

1 Mathematische Grundlagen

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Bedienung von BlueJ. Klassenanzeige

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Ablauf bei der Synchronisation und Sortierung von Dateien aus mehreren Kameras

Einfügen von Bildern innerhalb eines Beitrages

Einführung in die Programmierung

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Objektorientierte Programmierung für Anfänger am Beispiel PHP

SWE5 Übungen zu Software-Engineering

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Inventur. Bemerkung. / Inventur

Einführung in die Java- Programmierung

Lehrer: Einschreibemethoden

Festigkeit von FDM-3D-Druckteilen

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Viele Bilder auf der FA-Homepage

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Einstellungen für SEPA-Lastschriften in der VR-NetWorld-Software

Zahlen auf einen Blick

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Anleitung zum Anlegen und Bearbeiten einer News in TYPO3 für

Anleitung, WebRecherche

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: Änderungen vorbehalten

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

SANDBOXIE konfigurieren

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Der Kalender im ipad

Erklärung zum Internet-Bestellschein

Reporting Services und SharePoint 2010 Teil 1

Bauteilattribute als Sachdaten anzeigen

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Tagesprogramm

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Benutzung der Avid Liquid Edition Schnittplätze an der Universität Innsbruck

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Probeklausur Softwareengineering SS 15

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Klicksparen. Einrichtung und Nutzung von Klicksparen am Beispiel vom iphone Hamburg,

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Anleitungen zum KMG- -Konto

Excel Pivot-Tabellen 2010 effektiv

Individuelle Formulare

Howto. Einrichten des TREX Monitoring mit SAP Solution Manager Diagnostics

Mediator 9 - Lernprogramm

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter "Wartung".

Benutzerverwaltung Business- & Company-Paket

Software Engineering Analyse und Analysemuster

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Archiv - Berechtigungen

Informationsblatt Induktionsbeweis

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

SEP 114. Design by Contract

Umstellung News-System auf cms.sn.schule.de

Leichte-Sprache-Bilder

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

Programmieren in Java

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Tevalo Handbuch v 1.1 vom

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Stundenpläne In Kürze können die Dozenten auch ihre Stundenpläne über ihren individuellen Dozentenbereich

Unified Modeling Language (UML)

Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Anleitung für das Content Management System

Artikel Schnittstelle über CSV

Was ist Sozial-Raum-Orientierung?

Subpostfächer und Vertretungen für Unternehmen

Programmierkurs Java

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Transkript:

Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1

Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe) finden statt, wenn der Preis einer Reise berechnet wird? 2

ic class Reise { private int dauer; private int gefahrenekm; private Mietwagen mietwagen; private Hotel hotelbuchung; Beispiel: Reise public int berechnemietpreis(int dauer, int km){ return typ.berechnepreis(dauer, km); public int berechnereisepreis(){ int mietwagenpreis = mietwagen.berechnemietpreis(dauer, gefahrenekm); int hotelpreis = hotelbuchung.berechneuebernachtungspreis(dauer); return mietwagenpreis + hotelpreis; blic class Hotel { private int zimmerpreis; public class Fahrzeugtyp { private int grundpreis; private double kmpreis; public int berechneuebernachtungspreis(int dauer){ return zimmerpreis * dauer; public int berechnepreis(int mietdauer, int km){ return mietdauer * grundpreis + (int)(km * kmpreis); 3

ic class Reise { private int dauer; private 1. Start int gefahrenekm; private Mietwagen mietwagen; private Hotel hotelbuchung; Beispiel: Reise 1.1. public int berechnereisepreis(){ int mietwagenpreis = mietwagen.berechnemietpreis(dauer, gefahrenekm); int hotelpreis = hotelbuchung.berechneuebernachtungspreis(dauer); return mietwagenpreis + hotelpreis; 1.2. public int berechnemietpreis(int dauer, int km){ return typ.berechnepreis(dauer, km); 1.1.1. blic class Hotel { private int zimmerpreis; public class Fahrzeugtyp { private int grundpreis; private double kmpreis; public int berechneuebernachtungspreis(int dauer){ return zimmerpreis * dauer; public int berechnepreis(int mietdauer, int km){ return mietdauer * grundpreis + (int)(km * kmpreis); 4

Methodenaufrufe Die Reihenfolge der Methodenaufrufe ist also: 1. berechnereisepreis (), Klasse Reise 1.1 berechnemietpreis (), Klasse Mietwagen 1.1.1 berechnepreis (), Klasse Fahrzeugtyp 1.2 berechneuebernachtungspreis(), Klasse Hotel Diese kann man ins Objektdiagramm eintragen 5

Kommunikationsdiagramm Kommunikationspartner, i.d.r. ein Objekt. Da es aber nicht unbedingt ein Objekt sein muss, ist die Angabe ganz allgemein Bezeichnung:Typ, ohne Unterstreichung Sequenznummer, gibt die Aufrufreihenfolge wieder 6

Beispiel mit bedingten und mehrfachen Methodenaufrufen public int getgesamtpunktzahl(){ if(!berechnet){ berechnepunktzahl(); return gesamtpunktzahl; private void berechnepunktzahl(){ int punkte; for(aufgabe a:aufgaben){ punkte = a.getpunktzahl(); gesamtpunktzahl = gesamtpunktzahl + punkte; berechnet = true; Methodenaufruf nur unter bestimmten Bedingungen public int getpunktzahl(){ return punktzahl; Aufruf einer Methode aus derselben Klasse Der Methodenaufruf befindet sich in der for-schleife und erfolgt mehrfach 7

Beispiel mit bedingten und mehrfachen Methodenaufrufen Variablenname für Rückgabe Nützlich, falls man den Wert anderswo im Diagramm z. B. als Parameter noch einmal verwenden will Mehrfacher Methodenaufruf mit Angabe der Wiederholungsbedingung Es sind auch andere Angaben möglich, z. B. [für alle Aufgaben] Nachricht an sich selbst Mehrfachteilnehmer Bedingung für Methodenaufruf 8

Zeit Sequenzdiagramm Im Gegensatz zum Kommunikationsdiagramm wird der Nachrichtenaustausch nicht im Zusammenhang mit den Beziehungen zwischen den Objekten angezeigt, sondern mit dem Fokus auf der zeitlichen Reihenfolge Aufruf Rückgabe Lebenslinie des Kommunikationsteilnehmers Aktivierung: Der Kommunikationsteilnehmer ist mit der Bearbeitung einer aufgerufenen Methode beschäftigt 10

Kommunikations- und Sequenzdiagramm im Vergleich Kommunikationsbeziehungen (z. B. Assoziationen) nur im Kommunikationsdiagramm Darstellung von Aufrufreihenfolge und Schachtelung durch: 1. Nummerierung 2. Auftragen der zeitlichen Reihenfolge 11

Bedingte und mehrfache Methodenaufrufe Variablenname für Rückgabe Nützlich, falls man den Wert anderswo im Diagramm z. B. als Parameter noch einmal verwenden will Nachricht an sich selbst Das Objekt ist nun doppelt aktiviert: getgesamtpunktzahl() ist noch nicht abgeschlossen und wartet. Zusätzlich führt Objekt k:klausur berechnepunktzahl() aus Kombiniertes Fragment opt (optional) mit Bedingung Kombiniertes Fragment loop (Schleife) mit Bedingung Erneute Angabe des Methodenaufrufs bei der Rückgabe möglich 12

Kommunikations- und Sequenzdiagramm im Vergleich 13

Weitere kombinierte Fragmente und Referenz Kombiniertes Fragment alt (Alternativen) mit beliebig vielen durch Bedingungen definierten Fällen Break (Abbruch), z. B. einer Schleife Ref (Referenz), d. h. Verweis auf ein anderes Sequenz- oder Kommunikationsdiagram m 14

Aufruf von Klassenmethoden Gegeben ist das folgende Klassendiagramm einer Bibliotheksanwendung: 16

Aufruf von Klassenmethoden und transiente Beziehungen Das gefundene Buch-Objekt wird in der Variablen b zurückgegeben. findebuch() ist eine Klassenmethode, die Nachricht sollte an die Klasse selbst gehen, nicht an ein Objekt Modellierungstools erlauben aber oft nur Objekte. {transient Es handelt sich um das von der Klasse zurückgegebene Buch b Da man die Klasse immer über ihren Namen ansprechen kann, hat jedes Objekt automatisch eine Kommunikationsbeziehung zu ihr. Es existiert keine Assoziation zwischen Anwendung und Buch. Da die Anwendung von der Klasse eine Referenz auf das Buchobjekt bekommen hat, kennt die Anwendung das Buchobjekt momentan. Daher besteht eine transiente (flüchtige) Kommunikationsbeziehung. 17

Aufruf von Klassenmethoden Das vorige Beispiel als Sequenzdiagramm: 18

Anlegen und Löschen von Objekten Objekt existiert schon zu Beginn des betrachteten Szenarios Konstruktor Objekt wird neu angelegt Destruktor Objekt wird gelöscht Objekt existiert nach Ende des betrachteten Szenarios weiter 19

Anlegen und Löschen im Kommunikationsdiagramm Anlegen und Löschen im Kommunikationsdiagramm nicht so deutlich darstellbar Angabe von Eigenschaften möglich: {new Das Objekt wird neu angelegt (und besteht am Ende weiter) {destroyed Das Objekt bestand vorher und wird gelöscht {transient Das Objekt wird im betrachteten Szenario neu angelegt und wieder gelöscht {transient 20

Einsatz von Interaktionsdiagrammen Interaktionsdiagramme werden eingesetzt, wenn es darum geht, kompliziertere Nachrichtenaustausch- Sequenzen zu entwickeln, zu verstehen und für andere zu dokumentieren Nur dort, wo es einen Nutzen bringt Keine Modellierung des gesamten Systems Es werden meist nur ausgewählte Szenarien exemplarisch modelliert Z. B. nur ein bestimmter Fall Ggf. wird ein anderer Fall separat modelliert, damit die Modelle nicht zu komplex werden. 21

Auswahl zwischen Kommunikations- und Sequenzdiagramm Beide stellen im Prinzip das Gleiche dar Wähle ein Kommunikationsdiagramm Wenn der Nachrichtenaustausch im Zusammenhang mit den Beziehungen zwischen den Objekten betrachtet werden soll Wenn die Verschachtelung der Methodenaufrufe nicht zu tief sind und nicht zu viele verschiedene Alternativen, Schleifen u. ä. abgebildet werden sollen Wähle ein Sequenzdiagramm Wenn die zeitliche Reihenfolge und die Verschachtelung der Methodenaufrufe grafisch sichtbar werden soll Wenn es mehrere Alternativen, Schleifen u. ä. gibt. 22