Vgl. Oestereich Kap 2.4 Seiten

Ähnliche Dokumente
Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

UML (Unified Modelling Language) von Christian Bartl

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

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

Das umfassende Handbuch

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

UML 2.0 Das umfassende Handbuch

Unified Modeling Language

NACHRICHTENTECHNISCHER SYSTEME

Objektorientiertes Design

Übung Einführung in die Softwaretechnik

Vorlesung Programmieren

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

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

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

Analyse und Design mituml2

Unified Modeling Language 2

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

2. Strukturdiagramme

Einführung in die objektorientierte Programmierung

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

INSPIRE - Modellierung

Software Engineering in der Praxis

Analyse und Modellierung von Informationssystemen

Analyse und Design mituml2.1

Analyse und Design mit U ML 2.3

Software Engineering in der Praxis

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

Vorlesung Programmieren

Blöcke. Block Definitionsdiagramm. Dr. Beatrice Amrhein

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

Einführung in die Informatik

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

Von UML 1.x nach UML 2.0

Klassendiagramm. (class diagram)

UML 2 glasklar Praxiswissen für die UML-Modellierung

Software Engineering in der Praxis

Objektorientierte Modellierung

Das UML Benutzerhandbuch

Comelio GmbH - Goethestr Berlin. Course Catalog

Einführung in die Programmierung

UML -Klassendiagramme

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

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

Software Engineering in der Praxis

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

Objektorientierte Analyse (OOA) Übersicht

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

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

Blöcke Strukturelemente. Dr. Beatrice Amrhein

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

Das UML Benutzerhandbuch

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

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

Modularisierung in Java: Pakete Software Entwicklung 1

1 Klassen und Objekte

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

Softwaretechnologie für Fortgeschrittene Wohce 4 Modellierung UML

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Super. Sub1. Sub2 State2. Sub3. Sub4. Super. State2. Sub4

Unified Modelling Language

Oracle JDeveloper 10 g

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

7. Objektorientierung. Informatik II für Verkehrsingenieure

Objektorientierte Systementwicklung

Programmiertechnik Objektorientierung

Pakete Software Entwicklung 1

Objektorientierte Softwareentwicklung

Analyse und Modellierung von Informationssystemen

Kurzeinführung in UML

27. Oktober 2005 Florian Marwede

Abschnitt 15: Unified Modeling Language (UML)

Rückblick: Entity-Relationship-Modell

Objektorientierte Modellierung mit UML

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

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

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

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Die Unified Modeling Language UML

Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur

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

Objektorientierte Softwareentwicklung

Unified Modeling Language (UML)

Design und objektorientierter Entwurf

Requirements Engineering I

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

Objektorientierte Modellierung (1)

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

Algorithmen und Datenstrukturen 06

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Wiederholung. Klassenhierarchie:

Pakete. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

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

Einführung in die OOP mit Java

Softwaretechnik 2015/2016

Software Entwicklung 1

UML. Tutorium 1 2. März 2009

Dr. Beatrice Amrhein. April 13

Objektorientierte Analyse (OOA) Strukturmodellierung

Transkript:

Vgl. Oestereich Kap 2.4 Seiten 99-110 1

Vgl. Oestereich Kap 2.41 Seiten 99ff 2

Wie das Klassendiagramm ist auch das Objektdiagramm ebenfalls ein Strukturdiagramm. Da die Anzahl der Attribute sehr groß sein kann, werden normalerweise nur diejenigen Attribute aufgelistet, welche für den Zweck, den man verdeutlichen möchte, ausreichen. 3

Objektdiagramme werden nur verwendet, wenn komplexe Klassendiagramme anhand von konkreten Beispielen verdeutlicht oder überprüft werden sollen. 4

Statt Objekt sagt man darum oft auch Instanz. Das Objektdiagramm zeigt nicht, wer dieses Objekt erstellt hat oder wann oder warum ( Aktivitätsdiagramm, Sequenzdiagramm). Vom Objekt werden nicht alle Attribute dargestellt, sondern bloss diejenigen, welche für das Diagramm/den aktuellen Zustand relevant sind. 5

Der Aufbau des Objektdiagramms ist ähnlich wie beim Klassendiagramm, nur dass im obersten Kasten nicht der Klassenname steht, sondern Instanzname : Typ und zwar unterstrichen. Der Instanzname ist optional und kann bei nicht benannten (anonymen) Objekten weggelassen werden. Ausserdem fehlen die Operationen. Diese gehören zu der Klasse, nicht zum Objekt. In Use-Case-, Sequenz- oder Kommunikationsdiagrammen werden Rollen und keine Objekte gezeichnet. 6

Rekursive Assoziationen lösen sich im Objektdiagramm auf. Ausserdem können Objekte in der Hierarchie mehrfach verbunden sein (z.b. der Angestellte Rolf, der zwei Chefs hat). 7

Vgl. Oestereich Kap 2.4.2 Seiten 100ff 8

Man spricht oft auch von Softwarekomponenten. Komponenten sind eine Spezialisierung von Klassen. Sie können deshalb Strukturmerkmale wie Attribute oder Operationen haben, an Generalisierungen teilnehmen und über Assoziationen mit anderen Komponenten in Beziehung gesetzt werden. Im Gegensatz zu einer Klasse ist eine Komponente als Modul abgeschlossen und bietet gegen aussen wohldefinierte Schnittstellen (Interfaces) an. Oft besteht eine Komponente aus mehreren Klassen oder anderen Komponenten. Je nach Blickpunkt gibt es zwei unterschiedliche Sichten auf eine Komponente: eine Black-Box-Sicht, die nur den Rand (Schnittstelle, angebotene Dienste) zeigt, und eine White-Box-Sicht, die auch die innere Struktur der Komponente zeigt. 9

Komponentenbasierte Softwaresysteme sind zum Beispiel Java Beans, ActiveX, DCOM, Corba,... Falls bei einem System die Austauschbarkeit der Klassen sehr wichtig ist, können auch normale Klassen als Komponenten definiert werden. Um das Innere einer Komponente darzustellen, benutzt ein Komponentendiagramm auch Notationselemente, die sonst in Klassen- oder Kompositions-Struktur- Diagrammen verwendet werden, wie zum Beispiel Klassen, Interfaces oder Parts (die Kompositions-Teile eines Objektes). Die Black-Box Sicht einer Komponente wird ähnlich wie eine Klasse als Rechteck mit einem Namen gezeichnet. Das Schlüsselwort «component» sowie ein Symbol in der rechten oberen Ecke unterscheiden die Notation einer Komponente von jener einer Klasse. 10

Eine Komponente wird ähnlich wie eine Klasse als Rechteck mit einem Namen gezeichnet. Zusätzlich ist das Schlüsselwort «component» oder ein Komponenten- Symbol eingefügt. Die realisierten und benötigten Schnittstellen der Komponente definieren vollständig das Verhalten einer Komponente. Schnittstellen können entweder direkt mit der Komponente kommunizieren oder über einen Port, d.h. über eine separate Klasse, welche dieses Interface implementiert. 11

Beispiel einer Text-Komponente mit zwei angebotenen und einer benötigten Schnittstelle Das Beispiel hier zeigt die angebotenen Schnittstellen als Lollipops (Scrollable, ImageObserver) und die benötigten als Socket (EventListener). Zu lesen: JTextArea benötigt (<<uses>>) einen EventListener und implementiert (<<is>>) einen Scrollbar sowie einen ImageObserver (zum Einlesen von Bildern). 12

Die White-Box-Sicht zeigt die innere Struktur der Komponente. Die Komponente JTextArea könnte zum Beispiel aus einer View (für das User Interface), einem Model (für das Verwalten der Daten) sowie aus einer Klasse TransferHandler (für das Verarbeiten von Drag und Drop) bestehen. 13

Die Komponente (oder Klasse) KeyEventHandler implementiert in diesem System den EventListener für die Komponente JTextArea. 14

Artefakte modellieren konkrete Bestandteile des Softwaresystems aus der realen Welt wie zum Beispiel Dateien mit Programmcode, Datenbanken, Hier ist konkret ein Java Archiv (jar-file) notiert. Auch ein Artefakt kann Teil eines Komponentendiagramms sein. 15

Verteilungsdiagramme spezifizieren die physische Hardware- und Softwareumgebung und die Verteilung der Komponenten in dieser Umgebung. Verteilungsdiagramme werden vor allem in der Design-Phase erstellt. Damit kann entschieden werden, welche Hardware und Software-Komponenten eventuell beschafft werden müssen, sowie welche Kommunikationswege zwischen den Komponenten nötig sind. Oestereich S.109f 16

Vgl. Oestereich Kap 2.5 Seiten 112-126 17

Auch die Pakete sollten einfache, beschreibende Namen haben, welche den Sinn des Pakets klar machen. 18

Ein Paket fasst eine Menge von Modellelementen (Klassen, Komponenten, Interfaces, ) zu einer Gruppe zusammen und bildet einen Namensraum (Namespace) für sie. Die Elemente innerhalb eines Paketes müssen eindeutige (verschiedene) Namen haben. Pakete können andere Pakete als Unterpakete enthalten. Sie gliedern die Modellelemente hierarchisch in eine Struktur, analog zu einem Dateisystem (Directory). Jede Klasse, Interface, gehört jeweils nur zu einem Paket. Oft wird statt Paket auch der Name Subsystem oder Kategorie verwendet. 19

Falls die Interna des Pakets aufgezeichnet werden, bietet es sich an, den Paketnamen auf den Reiter zu schreiben. Auch die Pakete sollten (kurz) dokumentiert werden (Aufgaben-, Rollen- Kurzbeschreibung, 20-30 Wörter). Falls die Sichtbarkeit der Klasse fehlt, ist die Klasse public. Die access Beziehung entspricht dem Java import, bzw. dem C# usage Befehl. Die import Beziehung entspricht einem public import, dieses wird in Java und C# nicht unterstützt. 20

Paketdiagramme dienen der Übersicht des Systems und enthalten darum nur die wichtigsten Klassen und nur die wichtigsten Details (Attribute, Operationen) davon. Der voll qualifizierende Name der Klasse innerhalb des Pakets wird zusammengesetzt aus dem Paket-Namen und dem Klassennamen. In Java package myns.myapp.ui; In C# namespace myns.myapp.ui { }... 21

Die in Java oder C# importierten Elementnamen sind jeweils nur im importierenden Paket verfügbar, d.h. wenn das restaurantkette, welches restaurantsystem importiert kann nicht auf PdfErzeuger zugreifen. Dies entspricht der UML access Beziehung. Um ein UML import zu simulieren, muss die entsprechenden access Beziehung hinzugefügt werden. Java: package restaurantkette; import restaurantsystem; import werkzeuge; public class Restaurant {... } C# namespace restaurantkette { using restaurantsystem; using werkzeuge; public class Restaurant {... } 22

Eine positive Beschreibung führt zu einem klaren Gruppennamen. Eine negative Kategorisierung ist von der Art: alles, was nicht zu gehört. Dies führt zu keinem geeigneten Paket (-namen). 23