2
Einführung In diesem kurzen Abriss zum Thema „Objektorientierte Analyse und Design“ werde ich einen Einblick in das Thema geben. Hierbei beschränke ich mich darauf, einen Einstiegspunkt für die Arbeit mit den einzelnen Diagrammtypen zu geben. Hauptteil Die OOAD bedient sich der Unified Modelling Language (UML), um mit ihr Softwaresysteme zu analysieren und zu designen. Die UML ist eine standardisierte Beschreibungssprache, um Strukturen und Abläufe in objektorientierten Systemen darzustellen. Hierfür verwendet sie eine grafische Notation, welcher ein Metamodell zu Grunde liegt. Diese Notation beschreibt hauptsächlich Begriffe, die im Rahmen der objektorientierten Programmierung entstanden sind und genutzt werden. Ein weiterer Bestandteil ist die XMI. Ihre Aufgabe besteht in der Ermöglichung des Austausches von Diagrammen zwischen verschiedenen Modellierungswerkzeugen. Dieser Vorgang ist in der Praxis aber leider noch nicht standardisiert. UML existiert bereits seit November 1997 und liegt momentan in der Version 2.0 vor. Diese Version besitzt 13 Diagrammtypen: Klassendiagramm (class) Mit Klassendiagrammen kann man die Frage klären, aus welchen Klassen ein System besteht und wie diese untereinander in Beziehung stehen. Dieses Diagramm ist im Grunde unverzichtbar, da es die Brücke zu den dynamischen Diagrammen bildet. Durch die genaue Beschreibung der statischen Struktur des Systems, kann man alle relevanten Strukturzusammenhänge und Datentypen erkennen. Objektdiagramm (object) Objektdiagramme sind Schnappschüsse von Klassendiagrammen. Durch sie kann man erkennen, welche innere Struktur ein System zur Laufzeit besitzt. In diesem Diagramm werden also explizite Ausprägungen, mit samt den Attributbelegungen, gezeigt. Deswegen kann man Objektdiagramme sehr gut zur Darstellung von Mengen-verhältnissen nutzen. Ansonsten wird es zur beispielhaften Veranschaulichung verwendet. Komponentendiagramm (component) Hat man Klassen modelliert, so kann man diese mit Hilfe des Komponentendiagramms in wieder verwendbare bzw. verwaltbare Komponenten zusammenfassen. Hierbei lassen sich auch die Beziehungen unterhalb der Komponenten modellieren. Im Besonderen kann man eine Modellierung der benötigten und der angebotenen Schnittstellen vornehmen. Paketdiagramm (package) Die Paketdiagramme helfen einem dabei, den Überblick über das gesamte System zu bewahren. Hierfür zerlegt ein Paketdiagramm das System in größere zusammenhängende Einheiten, in dem es Modellelemente logisch zusammenfasst. So lassen sich auch Abhängigkeiten und Inklusionen modellieren. Kompositionsstrukturdiagramm (composite structure) Mit diesem, in UML 2 neu eingeführten Diagrammtypen, kann man das Innenleben einer Klasse, einer Komponente oder eines Teils des Systems darstellen. Dieser Ansatz ist Ideal für die Top-down- Modellierung eines Systems, also die Ganz-Teile- Hierarchie. Betrachtet man ein mittleres Detailniveau, so zeigt dieses Diagramm Teile eines „Gesamtsystems“ und das Mengenverhältnis. Auf einem höheren Detailniveau ist eine präzise Modellierung der Teile-Beziehungen über so genannte Ports http://www.se.uni-hannover.de Stand: 15.02.05 Kurz & Gut OOAD in UML von Sascha Tönnies

Kurz & Gut - Das Fachgebiet Software · PDF fileKurz & Gut: OOAD in UML von Sascha Tönnies (Schnittstellen) möglich. Verteilungsdiagramm (deployment) Dieses Diagramm wird benötigt,

Embed Size (px)

Citation preview

Page 1: Kurz & Gut - Das Fachgebiet Software · PDF fileKurz & Gut: OOAD in UML von Sascha Tönnies (Schnittstellen) möglich. Verteilungsdiagramm (deployment) Dieses Diagramm wird benötigt,

EinführungIn diesem kurzen Abriss zum Thema„Objektorientierte Analyse und Design“ werde icheinen Einblick in das Thema geben. Hierbeibeschränke ich mich darauf, einenEinstiegspunkt für die Arbeit mit den einzelnenDiagrammtypen zu geben.

HauptteilDie OOAD bedient sich der Unified ModellingLanguage (UML), um mit ihr Softwaresysteme zuanalysieren und zu designen. Die UML ist einestandardisierte Beschreibungssprache, umStrukturen und Abläufe in objektorientiertenSystemen darzustellen. Hierfür verwendet sieeine grafische Notation, welcher ein Metamodellzu Grunde liegt. Diese Notation beschreibthauptsächlich Begriffe, die im Rahmen derobjektorientierten Programmierung entstandensind und genutzt werden.Ein weiterer Bestandteil ist die XMI. Ihre Aufgabebesteht in der Ermöglichung des Austauschesvon Diagrammen zwischen verschiedenenModellierungswerkzeugen. Dieser Vorgang ist inder Praxis aber leider noch nicht standardisiert.UML existiert bereits seit November 1997 undliegt momentan in der Version 2.0 vor. DieseVersion besitzt 13 Diagrammtypen:Klassendiagramm (class)

Mit Klassendiagrammen kannman die Frage klären, auswelchen Klassen ein Systembesteht und wie diese

untereinander in Beziehung stehen.Dieses Diagramm ist im Grunde unverzichtbar,da es die Brücke zu den dynamischenDiagrammen bildet. Durch die genaueBeschreibung der statischen Struktur desSystems, kann man alle relevantenStrukturzusammenhänge und Datentypenerkennen.Objektdiagramm (object)Objektdiagramme sind Schnappschüsse vonKlassendiagrammen. Durch sie kann manerkennen, welche innere Struktur ein System zur

Laufzeit besitzt.In diesem Diagramm werdenalso explizite Ausprägungen,mit samt denAttributbelegungen, gezeigt.

Deswegen kann man Objektdiagramme sehr gutzur Darstellung von Mengen-verhältnissennutzen. Ansonsten wird es zur beispielhaftenVeranschaulichung verwendet.Komponentendiagramm (component)

Hat man Klassen modelliert, sokann man diese mit Hilfe desKomponentendiagramms inwieder verwendbare bzw.

verwaltbare Komponenten zusammenfassen.Hierbei lassen sich auch die Beziehungenunterhalb der Komponenten modellieren. ImBesonderen kann man eine Modellierung derbenötigten und der angebotenen Schnittstellenvornehmen.Paketdiagramm (package)

Die Paketdiagramme helfeneinem dabei, den Überblicküber das gesamte System zubewahren.

Hierfür zerlegt ein Paketdiagramm das System ingrößere zusammenhängende Einheiten, in demes Modellelemente logisch zusammenfasst. Solassen sich auch Abhängigkeiten und Inklusionenmodellieren.Kompositionsstrukturdiagramm (composite

structure)Mit diesem, in UML 2 neueingeführten Diagrammtypen, kannman das Innenleben einer Klasse,

einer Komponente oder eines Teils des Systemsdarstellen.Dieser Ansatz ist Ideal für die Top-down-Modellierung eines Systems, also die Ganz-Teile-Hierarchie. Betrachtet man ein mittleresDetailniveau, so zeigt dieses Diagramm Teileeines „Gesamtsystems“ und dasMengenverhältnis. Auf einem höherenDetailniveau ist eine präzise Modellierung derTeile-Beziehungen über so genannte Ports

http://www.se.uni-hannover.de Stand: 15.02.05

Kurz & Gut

OOAD in UMLvon Sascha Tönnies

Page 2: Kurz & Gut - Das Fachgebiet Software · PDF fileKurz & Gut: OOAD in UML von Sascha Tönnies (Schnittstellen) möglich. Verteilungsdiagramm (deployment) Dieses Diagramm wird benötigt,

Kurz & Gut: OOAD in UML von Sascha Tönnies

(Schnittstellen) möglich.Verteilungsdiagramm (deployment)

Dieses Diagramm wird benötigt,wenn man das Einsatzumfeldeines Systems modellierenmöchte. Das heißt, es wird

gezeigt, welche Komponenten auf welche Teiledes Systems (Datenbank, Server…) verteiltwerden. Aufgrund des hohenAbstraktionsniveaus, welches hier vorliegt,existieren wenige Notationselemente für diesenDiagrammtypen.Use-Case-Diagramm

Mit den Use-Case-Diagrammenkann man die Fragebeantworten, was ein System fürseine Umwelt leistet. Diese

Diagramme präsentieren eine Außenansicht aufdas System und sind zur Kontextabgrenzunggeeignet. Hierbei ist zu beachten, dass dieSystemgrenzen immer einzuzeichnen sind!Auch bei diesem Diagrammtyp bewegt man sichauf einem sehr hohen Abstraktionsniveau, mitwenigen und einfachen Notationselementen.Aktivitätsdiagramm (activity)

Für eine Verdeutlichung vonAlgorithmen oder fluss-orientierten Prozessen könnenAktivitätsdiagramme genutzt

werden.Mit diesen Diagrammen können sehr detaillierteAbläufe mit Bedingungen, Schleifen undVerzögerungen modelliert werden. Hierbei istauch das Darstellen von parallelen undsynchronisierten Abläufen möglich.Zustandsautomat (statechart)

Mit diesem Diagrammtyp kannman verschiedene Zustände vonunterschiedlichstenKomponenten (z.B. Schnitt-

stellen, Objekte…) innerhalb eines Ereignissesmodellieren. Außerdem ist eine Schachtelungmöglich.Sequenzdiagramm (sequence)

Möchte man denInformationsaustausch zwischen„Kommunikations-partner“modellieren, so sollte man die

Sequenzdiagramme nutzen.

Durch diese Diagramme stehen sehr präziseDarstellungsformen zur Verfügung. Diese stellendetaillierte zeitliche Abfolgen (auch mit Neben-läufigkeiten) dar. Hierbei sind eine Schachtelungund eine Flusssteuerung möglich.Kommunikationsdiagramm (communication)

Auch mit diesem Diagrammmodelliert man denInformationsaustausch. ImGegensatz zum

Sequenzdiagramm aber auf sehr viel wenigerdetaillierter Ebene. Daher ist dieses Diagrammfür einen Überblick geeignet.Zeitverlaufs-Diagramm (timing)

Diese Art Diagramm ist eher ausdem Bereich der E-Technikbekannt und hat nun (ab Version2.0) auch den UML Standard

erreicht.Anhand dieser Notation können nun exaktezeitliche Verläufe der Komponenten dargestelltwerden. Mittels der Timingdiagramme soll alsomodelliert werden, wann sich welcher Inter-aktionspartner in welchem Zustand befindet.Interaktionsübersichtsdiagramm (interaction

overview)Dank UML 2 hat man nun mitdiesem Diagrammtypen eineMöglichkeit, Interaktionen zu

strukturieren. Es ist möglich, verschiedeneInteraktionsdiagramme auf Top-Level-Ebenemiteinander zu verbinden und erhält einenLeseeinstieg in die Interaktionsdiagramme. Auchbei diesem Übersichtsdiagramm liegt ein sehrhohes Abstraktionsniveau vor.Dieser kurze Abriss lässt erkennen, dass UMLeine sehr umfangreiche Sprache ist. Die Fülle derDiagrammtypen erschwert es allerdings, beigrößeren Systemen übersichtliche Diagrammeentwickeln zu können. Dafür ist UML einestandardisierte Modellierungssprache.

http://www.se.uni-hannover.de Stand: 15.02.05

Literatur:• Fowler „UML distilled“, Addison-Wesley (2004)

• Born, Holz und Kath „Softwareentwicklung mit UML2“, Addison-Wesley (2004)

• Jeckle, Rupp, Hahn, Zengler und Queins „UML 2glasklar“, Hanser (2004)

• Oestereich „Objektorientierte Softwareentwicklung –Analye und Design mit der UML 2.0“, OldenburgVerlag (2004)