Spezifikation von Kommunikationssystemen

Ähnliche Dokumente
Spezifikation von Kommunikationssystemen

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

UML (Unified Modelling Language) von Christian Bartl

NACHRICHTENTECHNISCHER SYSTEME

Inhalt. 1 Einführung 17. Strukturdiagramme. 2 Klassendiagramm 37

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Vorlesung Programmieren

Unified Modeling Language (UML )

Unified Modeling Language 2

Das UML Benutzerhandbuch

Das umfassende Handbuch

Unified Modeling Language

Das UML Benutzerhandbuch

Die Unified Modeling Language UML

UML 2.0 Das umfassende Handbuch

INSPIRE - Modellierung

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

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

Requirements Engineering I

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

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

Wirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Unified Modelling Language

Analyse und Design mit U ML 2.3

Inhalt. Einleitung Liebe Leserin, lieber Leser, Wer dieses Buch aus welchem Grund lesen sollte Ihre Meinung ist uns sehr wichtig.

Analyse und Modellierung von Informationssystemen

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

Oracle JDeveloper 10 g

Comelio GmbH - Goethestr Berlin. Course Catalog

Analyse und Design mituml2.1

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest

Analyse und Design mituml2

So#waretechnologie für Fortgeschri4ene Teil Eide. Stunde IV: UML. Köln 26. Januar 2017

Objektorientiertes Design

Softwaretechnologie für Fortgeschrittene Wohce 4 Modellierung UML

Software Engineering in der Praxis

UML 2 glasklar Praxiswissen für die UML-Modellierung

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Software Engineering in der Praxis

Martin Fowler, Kendall Scott. UML konzentriert. Eine strukturierte Einführung in die Standard-Objektmodellierungssprache. 2., aktualisierte Auflage

Klassendiagramm. (class diagram)

Inhaltsverzeichnis.

UML -Klassendiagramme

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

Vgl. Oestereich Kap 2.4 Seiten

Gliederung des Vortrages

Einführung in die objektorientierte Programmierung

Techniken der Projektentwicklungen

Übung Einführung in die Softwaretechnik

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller

Objektorientierte Modellierung mit UML

Objektorientierte Softwareentwicklung

Objektorientierte Analyse (OOA) Übersicht

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8

UML 2 glasklar HANSER. Chris Rupp Stefan Queins Barbara Zengler. Praxiswissen für die UML-Modellierung. 3., aktualisierte Auflage

Objektorientierte Softwareentwicklung

Softwaretechnik 2015/2016

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Willkommen zur Vorlesung Modellbasierte Softwaretechniken für sichere Systeme im Sommersemester 2012 Prof. Dr. Jan Jürjens

Software-Engineering

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

Martin Fowler, Kendali Scott. UML - konzentriert. Die Standardobjektmodellierungssprache anwenden

Software Engineering in der Praxis

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

Von UML 1.x nach UML 2.0

Software- und Systementwicklung

Objektorientierte Analyse (OOA) Inhaltsübersicht

Harald Störrle UML 2 für Studenten

Software Engineering in der Praxis

Methoden des Software Engineering

Kapitel 4 Spezifikation von Kommunikationssystemen

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

UML (UNIFIED MODELING LANGUAGE)

UML 2 glasklar. Mario Jeckle, Jürgen Hahn, Stefan Queins, Barbara Zengler, Chris Rupp. Praxiswissen für die UML-Modellierung und -Zertifizierung

Inhaltsverzeichnis. Teil I Einführung 13. Teil II Struktur 41. Vorwort 11

Modellierung von Web Anwendungen mit UML

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

SWE6 Slide 1. Software-Engineering. Vorlesung 6 vom Sebastian Iwanowski FH Wedel

Exkurs 1: Hintergrund zu Java und UML

Objektorientierte Systementwicklung

Unified Modeling Language (UML)

Bei Sitzungen im Team oder mit dem Kunden erleichtert eine grafische Darstellung des Software-Systems die Kommunikation.

UML. Tutorium 1 2. März 2009

OOA-Dynamische Konzepte

Modellierungstipps für die Anwendungsfallmodellierung

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Statt einer Zusammenfassung

Veranstaltung Systementwicklung. Entwurf. Uwe H. Suhl und Chris Bizer SS 2008

Systems Engineering mit SysML/UML

Methoden und Architekturen der Softwaretechnik

Inhalt. TEIL I Grundlagen. Einleitung 15

UML 2.1 Referenz. Version: Orientation in Objects GmbH. Weinheimer Str Mannheim.

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

Transkript:

1 / 49 Spezifikation von Kommunikationssystemen 11. Unified Modeling Language (UML) Prof. Jochen Seitz Fachgebiet Kommunikationsnetze 20. Juli 2015

2 / 49 Übersicht 1 Modellierung 2 Grundlagen 3 Strukturdiagramme 4 Verhaltensdiagramme 5 Interaktionsdiagramme

Exkurs: Modellierung Modell Vereinfachung der Realität Ziel Komplexes System besser verstehen Spezifkation Konstruktion Modell Visualisierung Dokumentation 3 / 49

Objekt-orientierte Modellierung Analyse 1 Konkretisierung Design 2 Forward Engineering 3 Backward Engineering 4 Roundtrip Engineering Code Quelle: (3) 4 / 49

5 / 49 OO Modellierungssichten Begriffe Funktionalität Leistung Skalierbarkeit Durchsatz Entwurf Interaktion Anwendungsfall Implementierung Deployment Konfigurationsmanagement Systembestandteile Verhalten Topologie Verteilung Installation

Grundregeln Modellauswahl Beeinflusst von Herangehensweise und Lösungsansätzen Präzisionsebenen Unterschiedliche Detaillierungsgrade Bezug zur Realität Vereinfachung ohne Ausschluss wichtiger Aspekte Mehrere Modelle Unterschiedliche Sichtweisen 6 / 49

7 / 49 Einführung in UML Standardsprache zur Modellierung von Begriffen und entsprechenden Beziehungen Building Blocks Regeln Grundlegende Mechanismen mit graphischer Notation Definiert, wie Modelle erzeugt werden, NICHT welche Modelle benötigt werden! Kein Vorgehensmodell bzw. Entwicklungsprozess

8 / 49 Geschichte

9 / 49 Building Blocks Dinge Beziehungen Diagramme Struktur Verhalten Gruppierung Anmerkungen Abhängigkeiten Umsetzung Generalisierung Assoziationen

10 / 49 Diagrammübersicht statische Aspekte Struktur Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Paketdiagramm Verteilungsdiagramm Profildiagramm dynamische Aspekte Verhalten / Funktion Anwendungsfalldiagramm Zustandsdiagramm Aktivitätsdiagramm Interaktionen Sequenzdiagramm Kommunikationsdiagramm Zeitverlaufsdiagramm Interaktionsübersichtsdiagramm

11 / 49 Klassendiagramm - Anwendung Modellierung von Begriffen und Beziehungen zwischen diesen Begriffen Statische Analyse- oder Designsicht Enthält alle relevanten strukturellen Zusammenhänge und Datentypen

12 / 49 Klassendiagramm - Notation - Klasse Name Sichtbarkeiten: Attribute private protected package public Methoden / Operationen Point - xcoord - xcoord : Double - xcoord : Double = 0 # origin + setx( ) ~ setx( x Double ) + getx( ) : Double Typ Initalisierung Klassenvariable Parameter Rückgabewert

13 / 49 Klassendiagramm - Vererbung Notation RoutingProtocol - RoutingTable Randbedingung Vererbung + findpath() {incomplete} OLSR AODV - HelloInterval - RouteTimeout + sendhello() + sendrreq() + sendtc() + sendrrep() Oberklasse als allgemeiner Typ und Unterklasse als spezieller Typ, der die Oberklasse erweitert Eine Ist-Ein-Beziehung Objekt der Oberklasse ist durch Objekte der Unterklasse ersetzbar + sendrerr()

14 / 49 Klassendiagramm - Assoziation Notation Dienstanbieter Rolle Nutzer WebServer Session 1..* * Browser Leserichtung Name der Assoziation Session - password + login() Multiplizität Assoziationsklasse Logische Beziehungen zwischen Klassen Beziehungen gelten für alle Objekte einer Klasse Von Assoziation abhängige Attribute und Operationen

15 / 49 Klassendiagramm - Komposition/Aggregation Notation Stack 1..* 1 Protocol Komposition 1..* Aggregation Multiplizität immer 1 Spezielle Assoziationen Objekt ist Bestandteil eines anderen Aggregation und Komposition sind: - transitiv - asymmetrisch ProtocolDataUnit

16 / 49 Klassendiagramm - Notation - Spezialfälle Stereotyp datatype Point xcoord: Double ycoord: Double interface Connection connect() abstract Router findpath() Anbieter Nutzer Router findpath()

17 / 49 Klassendiagramm - Unterscheidung Sichtweise Schnittstelle Außenschnittstelle mit Zugriffsmöglichkeiten Abstrakte Klasse Innenansicht mit gemeinsamem Kern aller Unterklassen Implementierung Erweiterungen Kein Code möglich Reine Definition der Schnittstelle Müssen in jeder Unterklasse einzeln ergänzt werden Defaultimplementierung Überschreiben in Unterklasse möglich Durch Defaultimplementierung in allen Unterklassen verfügbar

18 / 49 Objektdiagramm - Anwendung Dokumentiert die innere Struktur des Systems zu einem bestimmten Zeitpunkt zur Laufzeit Zeigt konkrete Objekte und Attributbelegungen Beispielhafte Darstellung zur Veranschaulichung Herleitung von Mengenverhältnissen Dokumentation der Realisierung von abstrakten Klassen / bestimmten Assoziationen Spezifikation von Testdaten Überprüfung des Modells

19 / 49 Objektdiagramm - Unterschied zu Klassendiagrammen Gleicher Detailierungsgrad Aber: Ergebnis der Vererbung Konkrete Links, die aus Assoziationen entstehen Konkrete Werte Unvollständiges Beispiel

20 / 49 Objektdiagramm - Notation yukon : Webserver : Stack benanntes Objekt Link aktives Objekt : HTTP : TCP [connected] : IP : WLAN anonymes Objekt bestimmter Zustand : Frame seqno = "123" bestimmter Wert

21 / 49 Komponten- und Kompositionsstrukturdiagramm - Definition Komponenten modulare Systemteile, die ihren Inhalt kapseln eigenständige Anwendungen mit definierten Schnittstellen bestehen aus enthaltenen Klassen oder anderen Komponenten

22 / 49 Komponten- und Kompositionsstrukturdiagramm - Verwendung Grobentwurf eines Systems Struktur des Systems physikalische Bestandteile Zuständigkeiten, Beziehungen und Schnittstellen von Teilen weitere Ziele wiederverwendbare SW-Komponenten Zuordnung von Klassen zu Quellcode-Dateien

23 / 49 Komponten- und Kompositionsstrukturdiagramm - Unterschiede Kompositionsstrukturdiagramm Wie sieht das Innenleben einer Klasse, einer Komponente, eines Systemteils aus? Zeigt Teile eines Gesamtelements und deren Mengenverhältnisse Ermöglicht präzise Modellierung der Teile Komponentendiagramm Wie werden meine Klassen zu Komponenten zusammengefasst und wie stehen diese in Beziehung? Zeigt Organisation und Abhängigkeiten einzelner technischer Komponenten

24 / 49 Komponentendiagramm - Notation Komponentensymbol Komponente Schnittstellenverbindung Port TCPIPStack Teil WebBrowser INetwork TCP direkte Verbindung IP delegierte Verbindung Komponentendefinition NetworkInterface Portname

25 / 49 Kompositionsstrukturdiagramm - Notation Komponente Middleware ServiceBroker Teil Externe Schnittstelle sucht Dienst registriert Dienst Dienst ServiceUser nutzt Dienst ServiceProvider

26 / 49 Paketdiagramm - Anwendung Wie kann ich mein Modell so aufteilen, dass es übersichtlich bleibt? ein großes System in Arbeitspakete aufteilen die Pakete und deren Beziehungen untereinander beschreiben gruppieren der Modellelemente nach Themen (funktional, logisch oder in Schichten) Anmerkungen Ein Modellelement darf nur zu einem Paket gehören Ein Paket definiert einen Namensraum und eine Sichtbarkeit Pakete können verschachtelt sein

27 / 49 Paketdiagramm - Notation Network einfache Namen ProtocolStack umgebendes Paket import Paketinhalt Paket Interfaces::Ethernet qualifizierter Name

28 / 49 Verteilungsdiagramm - Anwendung Wie sieht das Einsatzumfeld des Systems aus? Hardware, Server, Datenbanken usw. Wo befinden sich die Komponenten des Systems zur Laufzeit? greifbare Systemteile Anmerkungen hohes Abstraktionsniveau wenige Notationselemente

29 / 49 Verteilungsdiagramm - Notation PC Printer PC Verbindungen LAN Access Point Router Internet Knoten Mobiles Endgerät

30 / 49 Profildiagramm - Anwendung Darstellung von verwendeten UML-Profilen Wie wurde die UML für dieses Projekt angepasst? neue Stereotypen Anmerkungen Erfordert Verständnis des UML Meta-Modells Erst seit UML 2.2 vorhanden

31 / 49 Anwendungsfalldiagramm - Anwendung Zentraler Aspekt: Welche Funktionen bietet mein System nach außen? Black-Box-Ansicht mit Aktoren (Nutzern, Stakeholdern und Nachbarsystemen) Verwendung für Modellierung einzelner Abläufe inkl. Varianten Kontextabgrenzung Funktionale Anforderungen Anmerkungen: Verbale, textuelle Beschreibung oder graphische Darstellung hohes Abstraktionsniveau einfache Notationsmittel

32 / 49 Anwendungsfall - Template Use Case Name Primary Actor Further Actors Stakeholders and Interests Success Guarantees Minimal Guarantees Trigger Basic Course Alternate Course 2a Step 1 Step 2 Step 3 Step 4 Step 2a Step 2a1

33 / 49 Anwendungsfalldiagramm - Notation System Realisierung Aktor UseCase extend include Systemgrenze Generalisierung

34 / 49 Zustandsdiagramm - Anwendung Modellieren von Zustandsautomaten Zustände, Übergänge und Ereignisse inkl. Bedingungen, Ein- und Austrittsaktionen System als White-Box zustandsbasierte Abläufe Algorithmen Alternative Beschreibung möglich verbal Aktivitätsdigrammen (für einzelne Abläufe)

Zustandsdiagramm - Notation <<webservice>> Flugreservation reservieren() canceln() buchen() sm Flugreservation (protocol) reservieren() canceln() Flug reserviert buchen() [Buchung möglich] [Buchung nicht möglich] Flug gebucht Reservation gecancelt Quelle: (9) 35 / 49

36 / 49 Aktivitätsdiagramm - Anwendung Modellierung von Abläufen und deren Steuerung Bedingungen, Schleifen, Verzweigungen Parallelisierung und Synchronisation Darstellung von flussorientierten Prozessen einzelne Schritte einer Aktivität inkl. Reihenfolge Verantwortungsbereiche ( swim lanes )

37 / 49 Aktivitätsdiagramm - Notation Punkte addieren [Punkte < 100] [Punkte >= 100] Klausur verfehlt Klausur bestanden Note ermitteln Note veröffentlichen Schein ausstellen Quelle: (4)

38 / 49 Sequenzdiagramm - Anwendung Modellierung des zeitlichen Ablaufs eines Einzelfalls Objekte und Methodenaufrufe Informationsaustausch zwischen Kommunikationspartnern präziser zeitlicher Ablauf mit Nebenläufigkeiten konkretisiert häufig einen Anwendungsfall Konventionen Leserichtung links rechts, oben unten möglichst keine Überkreuzungen von Aufrufen (in der Darstellung)

39 / 49 Sequenzdiagramm - Unterschied zu Weg-Zeit-Diagrammen Beide stellen zeitliche Abläufe dar Aber: im Sequenzdiagramm: Methodenaufrufe zwischen Objekten im Weg-Zeit-Diagramm: Signale und Reaktionen darauf (PDUs, weitere Signale)

40 / 49 Sequenzdiagramm - Notation :A :B synchroner Operationsaufruf asynchroner Operationsaufruf synchroner Operationsaufruf...... mit Antwort Quelle: (7)

41 / 49 Kommunikationsdiagramm - Anwendung Modellierung der Zusammenarbeit zwischen Kommunikationspartnern im Überblick Beziehungen zwischen den Objekten und die Nachrichten, die übertragen werden Reihenfolge, in der die Nachrichten gesendet werden Anmerkungen viele interagierende Teile möglichst einfach darstellen grundsätzliches Verständnis des Ablaufs und der Verantwortlichkeiten keine exakte zeitliche Abfolge

42 / 49 Kommunikationsdiagramm - Unterschied zu Sequenzdiagrammen Kommunikationsdiagramm Anordnung der Objekte in Fläche Sequenz der Nachrichten durch Nummerierung viele Objekte, die wenige Nachrichten austauschen Sequenzdiagrammen Objekte in einer Linie Sequenz der Nachrichten graphisch auf Zeitachse wenige Objekte, die viele Nachrichten austauschen

43 / 49 Kommunikationsdiagramm - Notation Quelle: (6)

44 / 49 Zeitverlaufsdiagramm - Anwendung Visualisiert das exakte zeitliche Verhalten Fragestellungen Zusammenspiel von Zuständen verschiedener Systeme Abläufe, bei denen Ereignisse zum richtigen Zeitpunkt eintreten sollen Nachrichtenaustausch

45 / 49 Zeitverlaufsdiagramm - Notation Rot Verkehrsampel Gelb Grün Quelle: (8)

46 / 49 Interaktionsübersichtsdiagramm - Anwendung Wann läuft welche Interaktion ab? Verbindet Interaktionsdiagramme (Sequenz-, Kommunikations- und Zeitverlaufsdiagramme) Anmerkungen Top-Level-Ebene hohes Abstraktionsniveau

Interaktionsübersichtsdiagramm - Notation sd Zutrittskontrolle sd Code eingeben :Benutzer :Zutrittskontroll System Code eingeben Code prüfen [Code OK] [Code nicht OK] ref Drehtür für einen Durchgang freigeben Quelle: (5) 47 / 49

48 / 49 Zusammenfassung - Wann verwende ich welches Diagramm? verschiedene Diagramme um ähnliche Sachverhalte darzustellen Sequenzdiagramm vs. Kommunikationsdiagramm Diagramme in verschiedenen Entwicklungsphasen verwendbar Beispiel: Klassendiagramm in der Analyse und im Design aber unterschiedliche Art des Einsatzes Pro Diagramm nur ein spezieller Ausschnitt des Systems Diagrammauswahl ist projektabhängig Die Anzahl der zu erstellenden Diagramme abhängig von Komplexität Kommunikationsbedarf Diagramme entstehen nach Bedarf Festlegung erlaubter Diagrammtypen erfolgt im Projekt

49 / 49 Literatur I [1] G. Booch, J. Rumbaugh, and I. Jacobson. The Unified Modelling Language User Guide. Addison-Wesley, 2nd edition edition, 2005. [2] T. Erler and M. Ricken. UML 2 Ge-Packt. Mitp-Verlag, 2005. [3] R. Hahn and W. Weber. Objektorientierte Analyse und Design, 2014. Hochschule Darmstadt. Fachbereich Informatik. [4] Wikipedia. Aktivitätsdiagramm, 2015. [5] Wikipedia. Interaktionsübersichtsdiagramm, 2015. [6] Wikipedia. Kommunikationsdiagramm, 2015. [7] Wikipedia. Sequenzdiagramm, 2015. [8] Wikipedia. Zeitverlaufsdiagramm, 2015. [9] Wikipedia. Zusantdsdiagramm, 2015.