J.2 Objektorientiertes Modellieren mit UML



Ähnliche Dokumente
Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Unified Modeling Language (UML)

Requirements Engineering I

Klassendiagramm. (class diagram)

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

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

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

Die Unified Modeling Language UML

RUP Analyse und Design: Überblick

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

Analyse und Modellierung von Informationssystemen

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Gliederung des Vortrages

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Vorlesung "Software-Engineering"

Requirements Engineering I

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Einführung in die Programmierung für NF

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

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 4 -

UML (Unified Modelling Language) von Christian Bartl

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

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

Kapitel 2: Der Software-Entwicklungsprozess

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

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

SWE5 Übungen zu Software-Engineering

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Software Engineering in der Praxis

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1

Klausur Software-Engineering SS 2005 Iwanowski

Übung 4. Musterlösungen

Motivation. Motivation

Software-Engineering SS03. Zustandsautomat

4. AuD Tafelübung T-C3

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Prüfung Software Engineering I (IB)

SEQUENZDIAGRAMM. Christoph Süsens

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

Übersicht der UML Diagramme

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Techniken der Projektentwicklungen

a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. 1 zeigt eine mögliche Lösung. * * * Aufbau 1..

Objektorientierte Programmierung OOP

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

5. Abstrakte Klassen

Software-Engineering

Software Engineering Analyse und Analysemuster

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Praktikum Software Engineering

How to do? Projekte - Zeiterfassung

Software Engineering in der Praxis

Orientierte Modellierung mit der Unified Modeling Language

SWT MN Vorlesung Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster

Rhapsody in J Modellierung von Echtzeitsystemen

Produktskizze. 28. November 2005 Projektgruppe Syspect

3.4 Unified Process Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

Business Process Model and Notation

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Professionelle Seminare im Bereich MS-Office

Unified Modeling Language (UML )

Einführung in UML. Überblick. 1. Was ist UML??? 2. Diagrammtypen. 3. UML Software. Was ist ein Modell??? UML Geschichte,...

Vorlesung Programmieren

BPMN. Suzana Milovanovic

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Objektorientierte Programmierung. Kapitel 12: Interfaces

Vgl. Oestereich Kap 2.7 Seiten

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

Grundlagen der Softwaretechnik

Use Cases. Use Cases

Assoziation und Aggregation

Requirements Engineering I

Software Engineering Klassendiagramme Einführung

Übungen zur Softwaretechnik

Software-Engineering

Übungen Workflow Management. Blatt 2

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Software Engineering Interaktionsdiagramme

Software Engineering Klassendiagramme weiterführende Konzepte

Professionelle Seminare im Bereich MS-Office

Klausur Software Engineering für WI (EuI)

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Softwareentwicklung und Projektmanagement Teil 2: Objektorientierte Softwareentwicklung WS 05/06

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

WS 2002/03. Prof. Dr. Rainer Manthey. Institut für Informatik III Universität Bonn. Informationssysteme. Kapitel 1. Informationssysteme

Arbeiten mit UMLed und Delphi

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi

Softwaretechnik (Allgemeine Informatik) Überblick

Lösungsvorschlag zu Übungsblatt 1 mit Korrekturhinweisen

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

2. Tutorium zu Softwaretechnik I

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Einführung in die Informatik II

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

Transkript:

Modellieren mit UML Objektorientiertes Modellieren mit UML 2002 Prof. Dr. Rainer Manthey Informatik II 1 UML: Übersicht in den 1980er Jahren: Entstehen einer Vielzahl objektorientierter Entwurfsmethoden für Datenbanken und Softwareprojekte (frühe 90er: > 50 solche Methoden!) durchweg diagrammbasiert (Visualisierung!) statische Aspekte (Klassenstruktur): zurückgehend auf Entity-Relationship-Model (ER-Model) von Chen für relationale DB (1979) dynamische Aspekte (Ablaufstruktur): basierend auf Petri-Netzen (1960er Jahre, C.A.Petri, GMD/Bonn) und Statecharts (frühe 1980er Jahre, D. Harel) Ende 1994: Beginn einer intensiven Kooperation von drei führenden Entwicklern von OO-Methodologien und -Entwurfstools 2002 Prof. Dr. Rainer Manthey Informatik II 2

UML: Übersicht (2) Gründung der Firma Rational Software Corporation durch Grady Booch ("Booch method") James Rumbaugh ("Object Modeling Technique" OMT) Ivar Jacobson (OOSE-Methode, "use cases"), ab 1995 mit dabei Integration der drei Ansätze mit zahlreichen anderen "passenden" Techniken zur Unified Modeling Language (UML) baldige Unterstützung durch grösseres Konsortium von Softwareherstellern: Object Management Group (OMG) UML 1.0 1997 als Standardisierungsvorschlag UML 1.1 Ende 1997 standardisiert UML 1.3 1999 aktuell: UML 1.4 gültig, UML 2.0 in Vorbereitung 2002 Prof. Dr. Rainer Manthey Informatik II 3 The Three Amigos UML entstand als gemeinschaftliche Initiative dreier Wissenschaftler, die zuvor eigene, zum Teil konkurrierende Modellierungstechniken entwickelt hatten. Grady Booch James Rumbaugh Ivar Jacobson In der "UML-Subkultur" werden sie die "drei Amigos" genannt. 2002 Prof. Dr. Rainer Manthey Informatik II 4

UML: Quellen Alle offiziellen UML-Dokumente sind im Internet verfügbar: http://www.uml.org http://www.omg.org/uml/ http://www.rational.com/uml/ Spezifikation der Version 1.4 (auf Englisch, 566 S.): in Kopie über Vorlesungszeiten zum Herunterladen bereitgestellt weit verbreitete Bücher: G. Booch, J. Rumbaugh, I. Jacobson: "The Unified Modeling Language User Guide", Addison-Wesley, 1999 Martin Fowler: "UML Distilled", Addison Wesley, 1999 M. Hitz, G. Kappel: "UML@Work", dpunkt-verlag, 1999 2002 Prof. Dr. Rainer Manthey Informatik II 5 Eine wichtige Bemerkung vorweg! Bitte vergessen Sie nicht: In diesem kurzen Kapitel erhalten Sie nur einen ersten, oberflächlichen Eindruck davon vermittelt, was UML ist und kann. Viele Details der Modellierungssprache fehlen! Das "offizielle UML-Tutorium" von Booch, Rumbaugh und Jacobson hat fast 500 Seiten Umfang. Für professionelle, kommerzielle UML-Kurse werden heute oft weit mehr als 1000 Gebühren verlangt. intensive Beschäftigung mit UML: Vorlesung "Softwaretechnik" im Hauptstudium 2002 Prof. Dr. Rainer Manthey Informatik II 6

Diagrammarten in UML UML kennt neun Diagrammarten zur statischen und dynamischen Modellierung von Anwendungen: Interaktionsdiagramme Klassendiagramme Objektdiagramme Komponentendiagramme Einsatzdiagramme Sequenzdiagramme Kollaborationsdiagramme Zustandsübergangsdiagramme Aktivitätsdiagramme Anwendungsfalldiagramme statisch dynamisch (inzwischen drei weitere Diagrammarten zur Stukturierung grosser Systeme: Pakete, Subsysteme und Modelle) 2002 Prof. Dr. Rainer Manthey Informatik II 7 Übersicht für dieses Kapitel in diesem Kapitel: exemplarische Vorstellung einiger zentraler Diagrammarten (Vertiefung und andere Diagramme: Selbststudium!) Klassendiagramme Objektdiagramme Komponentendiagramme Einsatzdiagramme Sequenzdiagramme Kollaborationsdiagramme Zustandsübergangsdiagramme Aktivitätsdiagramme Anwendungsfalldiagramme zunächst zur Erinnerung: zwei Folien aus Informatik I mit Grundidee der Objektorientierten Programmierung 2002 Prof. Dr. Rainer Manthey Informatik II 8

K 2 K 3 Objektorientiertes Programmieren Sichtweise der objektorientierten Programmierung (idealisiert) Realweltobjekte Programmobjekte Programmbausteine modellieren direkt Objekte der Realität Programmablauf als Simulation realer Prozesse 2002 Prof. Dr. Rainer Manthey Informatik II 9 Klassen K 1 Gleichartige Objekte werden zu Klassen zusammengefasst. gleichartige interne Struktur gleichartiges Verhalten 2002 Prof. Dr. Rainer Manthey Informatik II 10

Obektorientierte Modellierung UML: graphikbasierte "Sprache", die den Prozess des objektorientierten Modellierens unterstützt "Modellieren": Phase vor dem eigentlichen Programmieren Identifizieren von Klassen, Attributen, Operationen Identifizieren von Beziehungen zwischen Klassen/Objekten systematisches Erfassen des Verhaltens von Objekten (als Grundlage für die Implementierung von Methoden) UML bietet graphische Darstellungsmöglichkeiten für die Grundkonzepte aller wichtigen OO-Programmiersprachen (C++, Java, Ada, Eiffel usw.) aber: UML ist unabhängig von einer speziellen Programmiersprache Textuelle Anteile werden meist in natürlicher Sprache formuliert. mittlerweile: Entwicklung einer logikbasierten "eigenen" Teilsprache zum Formalisieren von Einschränkungen (OCL: "Object Constraint Language") 2002 Prof. Dr. Rainer Manthey Informatik II 11 Klassendiagramme In einem Klassendiagramm werden zu jeder Klasse der Klassenname, Name, Typ und ggf. Anfangswert der Attribute Name und Parameterstruktur der Operationen festgelegt. Name Attribute Operationen 2002 Prof. Dr. Rainer Manthey Informatik II 12

Klassendiagramme (2) Klassendiagramme enthalten auch Informationen über unterschiedliche Arten von Beziehungen zwischen Objekten: Abhängigkeiten Generalisierungen Assoziationen Abhängigkeiten (engl.: "dependencies"): Abhängigkeit zwischen zwei Klassen drückt aus, dass Änderungen an Instanzen der einen Klasse A irgendwie Einfluss auf Instanzen der anderen (der "abhängigen") Klasse B haben können Beispiel: B ist Parametertyp einer Operation von A graphische Darstellung: gestrichelte Linie von A nach B A B 2002 Prof. Dr. Rainer Manthey Informatik II 13 Generalisierungen Generalisierungen sind Unter-/Oberklassenbeziehungen (im Sinne von Java), die mit den üblichen Annahmen für Klassenhierarchien verbunden sind: Instanzen einer Unterklasse sind auch Instanzen aller Oberklassen. Attribute und Methoden werden an Unterklassen vererbt. Mehrfachvererbung ist erlaubt; diverse "constraints" stehen zur Verfügung (z.b.: disjoint, overlapping); abstrakte Klassen und Operationen (kursiv) 2002 Prof. Dr. Rainer Manthey Informatik II 14

Assoziationen Assoziationen sind semantische oder strukturelle Beziehungen zwischen Objekten. graphische Darstellung: gerichtete oder ungerichtete, durchgezogene Linien zwischen Klassen (ggf. markiert mit Rollen) Beispiel: Student Vorlesung Hörer Beschränkungen der Anzahl von Objekten, die über eine Assoziation verbunden sein dürfen, ausdrückbar durch Multiplizitäten: 1 mit genau einem Objekt verbunden 0.. 1 mit keinem oder einem Objekt verbunden 0.. * mit beliebig vielen Objekten verbunden 1.. * mit mindestens einem Objekt verbunden 2002 Prof. Dr. Rainer Manthey Informatik II 15 Aggregation Spezialfall von Assoziation: Objekte des Typs A sind (strukturell) Teile von Objekten des Typs B Aggregation Notation: Raute am B-Ende der Assoziationslinie von A nach B Beispiel: Firmen setzen sich aus Abteilungen zusammen Abteilung Firma * 1 generell bei Aggregation: Objekt kann Teil verschiedener zusammengesetzter Objekte sein und existiert auch dann weiter, wenn "Oberobjekt" verschwindet Verschärfung bei Komposition (ausgefüllte Raute): nur ein Oberobjekt und Existenzabhängigkeit des Unterobjekts vom Oberobjekt 2002 Prof. Dr. Rainer Manthey Informatik II 16

Objektdiagramme analog zu Klassendiagrammen: Darstellung von Objekten und deren Eigenschaften und Beziehungen untereinander auf der Instanzebene Objektdiagramme Klasse Objekt-ID p: Person Attributwerte name = "Booch" titel = "Dr." gehalt = "120000 manager f: firma name = "Rational" Link 2002 Prof. Dr. Rainer Manthey Informatik II 17 Aktivitätsdiagramme Anfangszustand Aktivitätsdiagramme modellieren das Verhalten von Objekten. a 1 Aktionszustände Verzweigung a 2 [c 1 ] Transitionen Aktionen sind elementare Aktivitäten, die nicht unterbrochen werden können und keine signifikante Zeit benötigen. [c 2 ] a 3 Transitionen sind Übergänge zwischen Aktionen, die ebenfalls keine Zeit benötigen. Endzustand 2002 Prof. Dr. Rainer Manthey Informatik II 18

Aktivitätsdiagramme (2) fork Parallele Aktivitäten ausdrückbar durch Aufspaltung ("fork") Zusammenführung ("join") join Zu jedem "fork" mit m ausgehenden Transitionen gehört ein "join" mit m eingehenden Transitionen. 2002 Prof. Dr. Rainer Manthey Informatik II 19 andere dynamische Diagrammarten prinzipiell ähnliche Diagrammarten zur Modellierung von Verhalten: Zustandsübergangsdiagramme ("state-transition diagrams") Aktivitätsdiagramme betonen mehr die dynamische Interaktion zwischen Objekten verschiedener Klassen, während Zustandsdiagramme das interne "Verhalten" der Instanzen einer bestimmten Klasse modellieren helfen. anderer Stil der Verhaltensmodellierung: Darstellung von Abläufen durch Austausch von Botschaften ("message passing") zwischen Objekten auch hierbei wieder unterschiedlicher Fokus bei der Modellierung: Sequenzdiagramme: Ablauf steht im Vordergrund Kollaborationsdiagramme: Interaktion steht im Vordergrund last not least: Anwendungsfalldiagramme ("use cases") dienen zur groben Organisation der Interaktion zwischen Akteuren und zu modellierender Anwendung in bestimmten typischen Situationen ("use cases") 2002 Prof. Dr. Rainer Manthey Informatik II 20

Zustandsübergangsdiagramme Quelle: http://www.rational.com/uml/resources/quick/uml_poster.jsp 2002 Prof. Dr. Rainer Manthey Informatik II 21 Sequenzdiagramme Quelle: http://www.rational.com/uml/resources/quick/uml_poster.jsp 2002 Prof. Dr. Rainer Manthey Informatik II 22

Kollaborationsdiagramme Quelle: http://www.rational.com/uml/resources/quick/uml_poster.jsp 2002 Prof. Dr. Rainer Manthey Informatik II 23 Anwendungsfalldiagramme Anwendungsfalldiagramm ("use case diagram"): Quelle: http://ivs.cs.uni-magdeburg.de/~dumke/uml/1.htm 2002 Prof. Dr. Rainer Manthey Informatik II 24

Schlussbemerkung Dieses Kapitel über UML ist aufgrund des aktuellen Streiks eingeschoben worden, um die Möglichkeit zu haben, Stoff für die "Hörwilligen" parat zu haben, der zwar interessant und wissenswert ist, aber nicht zum Kern der Vorlesungsthemen gehört. Die Inhalte dieses Kapitels werden nicht für die Klausur relevant sein. Andererseits sollte man als Informatiker heutzutage UML in den Grundzügen kennen, auch schon im Grundstudium. 2002 Prof. Dr. Rainer Manthey Informatik II 25