Software-Engineering

Ähnliche Dokumente
Software-Engineering

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

UML (Unified Modelling Language) von Christian Bartl

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

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

Unified Modeling Language (UML )

Das umfassende Handbuch

UML 2.0 Das umfassende Handbuch

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

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

NACHRICHTENTECHNISCHER SYSTEME

Unified Modeling Language

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

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

Gliederung des Vortrages

Vorlesung Programmieren

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

UML 2 glasklar Praxiswissen für die UML-Modellierung

Objektorientiertes Design

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

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

Unified Modeling Language 2

Die Unified Modeling Language UML

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

Software Engineering in der Praxis

Software Engineering in der Praxis

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

Vorlesung Programmieren

Requirements Engineering I

Objektorientierte Softwareentwicklung

Analyse und Modellierung von Informationssystemen

Analyse und Design mit U ML 2.3

INSPIRE - Modellierung

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

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

Software Engineering in der Praxis

Einführung in die objektorientierte Programmierung

Übung Einführung in die Softwaretechnik

Analyse und Design mituml2.1

Objektorientierte Softwareentwicklung

Objektorientierte Analyse (OOA) Übersicht

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

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

Oracle JDeveloper 10 g

Übungen Softwaretechnik I

OOA-Dynamische Konzepte

Objektorientierte Systementwicklung

Besteht aus Aktoren (actors) und use-cases sowie deren Verbindungen.

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

Unified Modelling Language

Unified Modeling Language (UML)

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

Software- und Systementwicklung

Softwaretechnik SS Vorlesungseinheit

ANWENDUNGSFALLDIAGRAMM:

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

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

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

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

UML (UNIFIED MODELING LANGUAGE)

Softwaretechnik 2015/2016

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Inhaltsverzeichnis. Literatur. 4 Rational Unified Process [JBR98, Kru03] und UML [BRJ02, FS00, Bal01]

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

UML fürs Pflichtenheft

Von UML 1.x nach UML 2.0

Objektorientierte Analyse (OOA) Inhaltsübersicht

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

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

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

Tamagotchi-Spezifikation in UML

UML 2 glasklar. Praxiswissen für die UML-Modellierung. Bearbeitet von Chris Rupp, Stefan Queins, die SOPHISTen

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language

Methodische objektorientierte Softwareentwicklung

J.2 Objektorientiertes Modellieren mit UML

Folien zum Textbuch. Kapitel 2: Planung, Entwicklung und Betrieb von IS. Teil 4: Modellierung von betrieblichen Informationssystemen

OOAD in UML. Seminar Software-Entwurf B. Sc. Sascha Tönnies

Inhaltsverzeichnis.

Softwaretechnik SS 2006

Formale Modellierung Vorlesung vom : Beyond JML

Software-Engineering

Systems Engineering mit SysML/UML

Einführung in die Programmierung

Methoden des Software Engineering

UML mit Enterprise Architect

Analyse und Modellierung von Informationssystemen

Abbildungsverweise PlantUML Code. Version 1.0 Vanessa Petrausch

Software Engineering 5. UML. Franz-Josef Elmer, Universität Basel, HS 2012

UML - Aktivitätsdiagramm

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

Objektorientierte Modellierung mit UML

Übersicht der UML Diagramme

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

Transkript:

SWE43 Slide 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 4: Systemanalyse Teil 3: Der Systemanalysestandard UML

SWE43 Slide 2 UML: Was ist das? UML = Unified Modelling Language ist ein Standard, kein Case-Tool (CASE = Computer Aided Software Engineering) entworfen von James Rumbaugh, Ivar Jacobsen, Grady Booch führt Konzepte zusammen, die ursprünglich unabhängig voneinander entwickelt worden sind wird durch das CASE-Tool Rational Rose unterstützt Konkurrenzprodukte: Together, etc. Kern ist die Beschreibung von Systemen (real und Software) mit objektorientierter Terminologie bietet zusätzlich Beschreibungsmöglichkeiten für Prozesse Anspruch: Software wird nach Beschreibung in UML automatisch erstellt

SWE43 Slide 3 UML: Historie aus: Wolfgang Zuser / Thomas Grechenik / Monika Köhle: Software Engineering mit UML und dem Unified Process, Kap. 7, Pearson Studium 2004

SWE43 Slide 4 UML: Bestandteile = use case diagram = Verteilungsdiagramm = deployment diagram Paketdiagramm = Kommunikationsdiagramm? Kompositionsstrukturdiagramm nach: Wolfgang Zuser / Thomas Grechenik / Monika Köhle: Software Engineering mit UML und dem Unified Process, Kap. 7, Pearson Studium 2004

SWE43 Slide 5 UML: Klassendiagramme Anmerkungen zu Beziehungen: Die allgemeine Beziehungsklasse Assoziationen dient zur Beschreibung nicht näher spezifizierte Beziehungen. Eine ungerichtete Assoziation zwischen zwei Klassen beschreibt die Beteiligung beider Klassen an einer Beziehung im Sinne einer ER- Assoziation. Die spezielle Beziehung Aggregation beschreibt Teilobjekte: Es ist sinnvoll, dass solche Teilobjekte die Werte von Attributen des zusammengesetzten Objektes sind. Die spezielle Assoziation Komposition bedeutet: Ein Wegfall des zusammengesetzten Objekts hat den Wegfall des Teilobjekts zur Folge. Die spezielle Assoziation Generalisierung hat die Vererbung der Attribute und Methoden auf die spezialisierten Klassen zur Folge.

UML: Klassendiagramme Unterschied in UML-Klassendiagrammen zwischen Systemanalyse und Softwareentwurf: Richtungspfeile bei allgemeinen Assoziationen sind erst im Softwareentwurf sinnvoll: Sie entsprechen der Erreichbarkeit eines implementierten Objekts von dem anderen Objekt aus. Eine gerichtete Assoziation von einer Klasse A nach Klasse B wird genau dann verwendet, wenn ein Attribut oder eine Methode von A die Kenntnis der Klasse B benötigt. Zusammenfassung: In der Systemanalyse sollten grundsätzlich ungerichtete Assoziationen verwendet werden. Im Softwareentwurf sollten grundsätzlich gerichtete Assoziationen (unioder bidirektional) verwendet werden. Bei den Beziehungsklassen Aggregation, Komposition und Generalisierung gibt es keine Unterschiede zwischen Systemanalyse und Softwareentwurf. SWE43 Slide 6

SWE43 Slide 7 UML: Use-Case-Diagramme zur Beschreibung und Spezifikation von Systemen 1. Beispiel: Shop

SWE43 Slide 8 Erklärung der Symbole: UML: Use-Case-Diagramme Aktor (Strichmännchen): Jemand der mit dem System interagiert (d. h. außerhalb des Systems): muss keine natürliche Person sein Use case (Ellipse): Anwendungsfall : Nach außen sichtbare Teilfunktionalität des Systems Kann in nachfolgenden Beschreibungen hierarchisch verfeinert werden Zwischen zwei Aktoren muss mindestens ein use case sein! System (Rechteck): Zusammenfassung von use cases Unterscheidung von innen und außen

SWE43 Slide 9 UML: Use-Case-Diagramme 2. Beispiel: Einfache Uhr aus: Bernd Brügge / Allen H. Dutoit: Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java, Kap. 2, Pearson Studium 2004

SWE43 Slide 10 UML: Use-Case-Diagramme Ziele einer Use-Case-Beschreibung: Zur hierarchischen Beschreibung eines Systems Grobe Beschreibung einzelner Transaktionen Weitere Beschreibungsmöglichkeiten für Beziehungen zwischen use cases: extends : Beschreibung einer Teilfunktionalität, die aber nicht immer ausgeführt wird (verzweigt sich bei so genannten Extension points des ursprünglichen use cases) includes : Teilprozess, der von mehreren use cases benutzt werden kann

SWE43 Slide 11 UML: Use-Case-Diagramme 2. Beispiel (erweitert): Einfache Uhr Extension points: Tageslicht Zeit ablesen <<extend>> <<include>> Beleuchtung einschalten Condition: {dunkel} Extension point: Tageslicht Uhrbenutzer Zeit einstellen <<include>> Knopf drücken Batterie wechseln Uhrmacher

SWE43 Slide 12 UML: Sequenzdiagramme zur Beschreibung des Ablaufs von Transaktionen und Interaktionen Transaktion: Menge von Nachrichten, die zwischen einer Gruppe von Objekten ausgetauscht werden, um eine bestimmte Operation oder ein bestimmtes Ergebnis zu veranlassen. In vielen Anwendungsfällen müssen Transaktionen unteilbar sein und weitere Anforderungen erfüllen (z.b. im Anwendungsfall Datenbanken) Interaktion: Der Austausch einer einzelnen Nachricht

SWE43 Slide 13 UML: Sequenzdiagramme 1. Beispiel: Veranstaltungsbuchung am Kiosk per Kreditkarte

SWE43 Slide 14 UML: Sequenzdiagramme 2. Beispiel: Fahrkartenbuchung für registrierte Kunden

SWE43 Slide 15 3. Beispiel: Einfache Uhr UML: Sequenzdiagramme aus: Bernd Brügge / Allen H. Dutoit: Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java, Kap. 2, Pearson Studium 2004

SWE43 Slide 16 UML: Zustandsübergangsdiagramme (Statecharts) zur Beschreibung von dynamischen Objekten des Systems Zustandsübergangsdiagramme beschreiben: die Lebenshistorie von Objekten einer Klasse die Ereignisse, die einen Übergang (Transition) von einem Zustand zu einem anderen veranlassen die Aktionen, die sich aus diesem Zustandswechsel ergeben Ereignis Zustand Zustand Anfangszustandsmarke Transition Transition Ereignis Transition Aktion Aktion Aktion Aktion Ereignis Endzustandsmarke

SWE43 Slide 17 UML: Zustandsübergangsdiagramme (Statecharts) Klassifizierung der Aktionen: Generell wird eine Aktion bezeichnet durch: Ereignis / Aktion entry-aktionen werden immer ausgeführt beim Betreten des Zustandes exit-aktionen werden immer ausgeführt beim Verlassen des Zustandes interne Aktion Aktion, die durch irgendein anderes Ereignis ausgelöst wird, aber nicht den Zustand verlässt. do-aktivität (längere) Aktion, die ausgeführt wird, während der Zustand andauert wird entweder beendet durch vorgesehene Beendigung der Aktion oder durch Auftreten eines Ereignisses, das einen Zustandsübergang verursacht entspricht einer internen Aktion, die unmittelbar ausgeführt wird (also ohne spezielles Ereignis)

SWE43 Slide 18 UML: Zustandsübergangsdiagramme (Statecharts) 1. Beispiel: Verkehrsampel rot gelb grün entry / rotes Licht an entry / timeout = 0 do / timeout = timeout + 1 exit / rotes Licht aus when (timeout = 2) entry / gelbes Licht an entry / timeout = 0 do / timeout = timeout + 1 exit / gelbes Licht aus entry / grünes Licht an entry / timeout = 0 when do / timeout = timeout + 1 (timeout = 30) exit / grünes Licht aus when (time 22:00) when (time 6:30) when (timeout = 30) and (time 22:00) blinkend do / Endlosschleife: gelbes Licht an gelbes Licht aus exit / gelbes Licht aus rotgelb entry / rotes und gelbes Licht an entry / timeout = 0 do / timeout = timeout + 1 exit / rotes und gelbes Licht aus when (timeout = 2)

SWE43 Slide 19 UML: Zustandsübergangsdiagramme (Statecharts) 2. Beispiel: Stellen einer Uhr aus: Bernd Brügge / Allen H. Dutoit: Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java, Kap. 2, Pearson Studium 2004

SWE43 Slide 20 UML: Aktivitätsdiagramme (Version UML2) Aktivitätsdiagramme als Alternative zu Zustandsdiagrammen: Transitionen werden grundsätzlich durch die Beendigung von Aktionen ausgelöst spezielle Notation für parallele Abläufe wesentlich mächtigerer Beschreibungsapparat Anleihen von Petri-Netzen: Tokenkonzept (potentiell unendlich viele, Tokens werden im Diagramm aber nicht dargestellt) Maximalgewichte für Kanten und Maximalkapazitäten für Objekte semantische Bedeutung von parallelen Abläufen

SWE43 Slide 21 UML: Aktivitätsdiagramme (Version UML2) Elemente von Aktivitätsdiagrammen: Aktionsknoten: kleinste ausführbare Funktionseinheit Objektknoten: Datenbehälter (zum Weitergeben) Kontrollknoten: für Entscheidung und Zusammenführung im Kontrollfluss Synchronisationsbalken: für nichtdeterministische Verzweigung und Synchronisation Aktivitätsbereiche: Zusammenfassung von Teildiagrammen zu höheren Einheiten Startzustand: Einsetzpunkt der Aktivität (muss nicht eindeutig sein) Ablaufende: Ende eines Kontrollflusses (andere können noch aktiv sein) Endzustand: Ende der gesamten Aktivität

SWE43 Slide 22 Beispiel: Ausgiebige Party UML: Aktivitätsdiagramme (Version UML2) aus: Mario Jeckle et al.: UML2 glasklar, Hanser 2004

SWE43 Slide 23 Strukturdiagramme: Zusammenfassung: UML Klassendiagramme mit Beziehungen und Hierarchien: objektorientierte Systembeschreibung Objektdiagramme: Ausschnitte der Klassendiagramme mit bestimmten Zuständen Paketdiagramme: Zusammenfassung größerer Einheiten nach logischen Gesichtspunkten Kompositionsstrukturdiagramme: Hierarchische Zusammensetzung von Strukturen Komponentendiagramm: Modulare Zusammensetzung über die Schnittstellen Verteilungsdiagramm: Verteilung der Systemkomponenten zur Laufzeit Klassifizierung nach Mario Jeckle

SWE43 Slide 24 Verhaltensdiagramme: Zusammenfassung: UML Use Cases: Beschreibung von Anwendungsszenarien (Außensicht auf das System) Sequenzdiagramme: Beschreibung von Prozessabfolgen Zustandsübergangsdiagramme: Beschreibung von Zustandsabfolgen Aktivitätsdiagramme: spezielle Zustands-Aktivitäts-Beschreibungen Kooperationsdiagramme: Prozessorientierter Zusammenhang der verschiedenen Komponenten Timingdiagramm: Exakte Modellierung der Abfolge der Zustände Interaktionsdiagramm: Generalisierung von Interaktionen (Sequenz- und Kommunikationsdiagramm) Klassifizierung nach Mario Jeckle

SWE43 Slide 25 Literaturempfehlungen für UML Heide Balzert, UML 2 kompakt, Spektrum 2005, ISBN 3-8274-1389-3 Bernd Brügge / Allen H. Dutoit: Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java, Pearson Studium 2004, ISBN 3-8273-7082-5 Mario Jeckle / Chris Rupp / Jürgen Hahn / Barabara Zengler / Stefan Queins: UML2 glasklar, Hanser 2004, ISBN: 3-446-22575-7 Vortrag zum Buch unter: http://www.jeckle.de/files/giarch.pdf Jochen Seemann / Jürgen Wolff von Gudenberg: Software-Entwurf mit UML, Springer-Verlag 2000, ISBN 3-540-64103-3 (vergriffen, Neuauflage für Januar 2006 angekündigt) Wolfgang Zuser / Thomas Grechenik / Monika Köhle: Software Engineering mit UML und dem Unified Process, Pearson Studium 2004, ISBN 3-8273-7090-6