Praktische Softwaretechnologie Vorlesung 7



Ähnliche Dokumente
Vorlesung Programmieren

UML (Unified Modelling Language) von Christian Bartl

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

Vorlesung Programmieren

UML -Klassendiagramme

Unified Modeling Language 2

Analyse und Modellierung von Informationssystemen

Unified Modeling Language (UML)

UML. Weiteres Vorgehen im Projekt

INSPIRE - Modellierung

Unified Modelling Language

NACHRICHTENTECHNISCHER SYSTEME

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

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

Software Engineering in der Praxis

7. Objektorientierung. Informatik II für Verkehrsingenieure

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Einführung in die Programmierung

Thema 3 Das UML- Metamodell

Software Engineering in der Praxis

Oracle JDeveloper 10 g

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

Rückblick: Entity-Relationship-Modell

Unified Modeling Language (UML )

Unified Modeling Language

Exkurs 1: Hintergrund zu Java und UML

Die Unified Modeling Language UML

RUP Analyse und Design: Überblick

Java Einführung Objektorientierte Grundkonzepte

Einführung in die Informatik

Interaktionsdiagramme in UML

SEQUENZDIAGRAMM. Christoph Süsens

3. Objektorientierte Analyse

Software- und Systementwicklung

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

Konzept und Umsetzung

Objektorientiertes Design

Kurzeinführung in UML

Praktische Softwaretechnologie

Praktische Softwaretechnologie Vorlesung 4

Requirements Engineering I

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

Algorithmen und Datenstrukturen 06

1 Klassen und Objekte

UML Eine kurze Einführung

Das UML Benutzerhandbuch

Software-Engineering im Sommersemester 2014

Methode zur Entwicklung sicherheitskritischer eingebetteter Systeme mittels deterministischer UML-Modelle

UML Eine kurze Einführung

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

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Visual Studio 2010 Neues für Architekten

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

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

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

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

Modellierung mit UML. Jonathan Brachthäuser (mit Folien von Theo Doukas) 10. Mai 2017

Erzeugung von UML-Diagrammen

Abschnitt 15: Unified Modeling Language (UML)

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

Javakurs für Anfänger

Software Entwicklung 1

Softwaretechnologie für Fortgeschrittene Wohce 4 Modellierung UML

Algorithmen und Datenstrukturen

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

Analyse und Modellierung von Informationssystemen

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

Notationen zur Prozessmodellierung

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

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

Übungen Softwaretechnik I

Teil II: OOP und JAVA (Vorlesung 9)

Praktische Softwaretechnologie Vorlesung 3

Softwarearchitektur, UML, Design Patterns und Unit Tests

Software Engineering in der Praxis

Objektorientierter Entwurf. Grundlagen des Software Engineerings

FACHHOCHSCHULE MANNHEIM

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Gliederung des Vortrages

Einführung in die Informatik

UML - Sequenzdiagramm

Techniken der Projektentwicklungen

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

Grundlagen der UML-Modellierung. Modellierung. Elena Paslaru Seminar Praktische Modellierung SS

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

Tamagotchi-Spezifikation in UML

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

Einführung in die Objektorientierung

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

Objektorientierte Softwareentwicklung

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

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

Einführung in die OOP mit Java

Herzlich willkommen!

4. Übung zu Software Engineering

Kapitel 4 Spezifikation von Kommunikationssystemen

Transkript:

Praktische Softwaretechnologie Vorlesung 7 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT 2006 5. Dezember 2006 p.1/32

Vorträge Apache Ant, ein Werkzeug um komplexe Programme zu bauen Antonia JUnit, ein Framework um einzelne Aspekte von Programmen automatisch zu testen Diana Swing, ein Framework in den Java standard libraries um graphische Benutzeroberflächen zu programmieren Christian ANTLR, ein tool um aus der Beschreibung einer Sprache (Grammatik) einen Parser in Java zu erzeugen. Robert PSWT 2006 5. Dezember 2006 p.2/32

Modellierungssprachen Kristen Nygaards OO Definition: A program execution is regarded as a physical model, simulating the behavior of either a real or imaginary part of the world. Struktur des Programms entspricht Struktur der realen Welt. Graphische Modellierungssprachen Diagramme statt Text Relativ abstrakt Unabhängig von Implementierungsdetails Durch normierte Darstellung deutlicher als willkürliche Diagramme PSWT 2006 5. Dezember 2006 p.3/32

Analyse, Entwurf, Implementierung Phasen in der Softwareproduktion: Analyse (analysis) Modellieren der involvierten Konzepte (conceptual model). Anforderungen. Was soll erreicht werden? Evtl. Spezifikation der Benutzeroberfläche. Entwuf (design) Konzentration auf das System. Abstraktionen. Systemstruktur. Unabhängig von Programmiertechnologie. Implementierung Umsetzung des Entwurfs in konkrete Programmiersprache. Algorithmen. PSWT 2006 5. Dezember 2006 p.4/32

Unified Modeling Language Meistbenutzte graphische Modellierungssprache Initiiert 1996 von Booch, Rumbaugh, Jacobson bei Rational Standardisierung durch Konsortium Object Management Group (OMG) Vereinigung von vielen anderen Notationen Unabhängig von Programmiersprache UML 2.0 Standard beschreibt 13 verschiedene Diagrammtypen PSWT 2006 5. Dezember 2006 p.5/32

Diagrammarten Verhaltensdiagramme (behavior diagram): Anwendungsfalldiagramme (use case diagrams) Sequenzendiagramme (sequence diagrams) Zustandsdiagramm (state diagram). Strukturdiagramme (structure diagram): Klassendiagramm (class diagram) Objektdiagramm (object diagram) Komponentendiagram (component diagram). PSWT 2006 5. Dezember 2006 p.6/32

Modell = Diagramm Modelle bestehen aus Klassen, Objekten, Assoziationen, Zuständen, Anwendungsfällen, etc. Diagramme sind graphische Darstellungen von Teilen von Modellen In UML-tools häufig mehrere Diagramme für ein Modell möglich Weitere Information über Modell textuell beschrieben PSWT 2006 5. Dezember 2006 p.7/32

Modell = Programm Modell abstrakter, Implementierungsdetails fehlen Strukturelle Information die in Implem. fehlt Modelle teilweise nur Beispiele Executable UML, Model-Driven-Engineering sollen UML zur Programmiersprache machen: Übersetzung von Diagrammen in ausführbaren Code. Es gibt gute Gründe für bisherige Programmiersprachen!! PSWT 2006 5. Dezember 2006 p.8/32

Klassendiagramme Klassendiagramme stellen statische Struktur dar. Klassendiagramme (class diagrams) enthalten Klassen Operationen (=Methoden) und Attribute (=Felder) von Klassen Vererbungshierarchie zwischen Klassen Assoziationen zwischen Klassen PSWT 2006 5. Dezember 2006 p.9/32

UML Klasse ArrayStack oder ArrayStack -elements: String[] -top: int +push(s:string): void +pop(): String +isempty(): Boolean PSWT 2006 5. Dezember 2006 p.10/32

Interfaces, abstrakte Klassen Interface abstrakte Klasse mit abstrakten und konkreten Operationen <<interface>> Stack +push(s:string): void +pop(): String +isempty(): Boolean AbstractStack +isempty(): Boolean +pop(): String +push(s:string): void +clear() PSWT 2006 5. Dezember 2006 p.11/32

Attribute und Operationen - privat + public # protected unterstrichen static ArrayStack -elements: String[] -top: int #instancecounter +push(s:string): void +pop(): String +isempty(): Boolean +main(args:string[]): void Format: <Sichtbarkeit> <Name> ( <Argumente> ) : <Rückgabetyp> Argumente: <Name> : <Typ> oder <Name> : <Typ> = <Defaultwert> PSWT 2006 5. Dezember 2006 p.12/32

Vererbung PSWT 2006 5. Dezember 2006 p.13/32

Assoziation Assoziationsname DebugStack delegator 1 delegation delegate 1 <<interface>> Stack Rollen Multiplizitäten Implementierung meist durch Felder (Feldname = Rollenname) Assoziation = hat ein, Vererbung = ist ein PSWT 2006 5. Dezember 2006 p.14/32

Multiplizitäten, Pfeile A 1 B Jedem B ist genau ein A assoziiert A 0..1 B Jedem B ist ein oder kein A assoziiert A 2..* B Jedem B sind mindestens 2 A assoziiert A * B Jedem B können beliebig viele A assoziiert sein A B A "kennt" B, aber nicht umgekehrt PSWT 2006 5. Dezember 2006 p.15/32

Aggregation, Komposition Assoziationen die Ganzes/Teil Relationen darstellen: Aggregation: Jahrgang 1 * Schüler Schüler Teil eines Jahrgangs, können aber ohne Jahrgang existieren Composition: Buch 1 * Seite Seiten Teil eines Buches, existieren nicht ohne Buch keine eindeutige Unterscheidung PSWT 2006 5. Dezember 2006 p.16/32

Beispiel: Klassendiagramm AbstractStack +isempty(): Boolean +pop(): String +push(s:string): void +clear(): void <<interface>> Stack delegate 1 +push(s:string): void +pop(): String +isempty(): Boolean +clear(): void DebugStack +push(s:string): void +pop(): String +isempty(): Boolean +clear(): void 1 ArrayStack -elements: String[] -top: int +push(s:string): void +pop(): String +isempty(): Boolean LinkedListStack +isempty(): Boolean +pop(): String +push(s:string): void 1 +impl 1 LinkedList PSWT 2006 5. Dezember 2006 p.17/32

Objektdiagramme Objektdiagramme stellen einen Zustand in der Ausführung dar normalerweise Beispielzustand Objektdiagramme enthalten: Objekte (Instanzen von Klassen) Werte von deren Slots (Instanzen von Feldern) Links (Instanzen von Assoziationen) PSWT 2006 5. Dezember 2006 p.18/32

Beispiel: Objektdiagramm stack1:debugstack +delegate :ArrayStack store = {"a","b","c"} top = 3 Objektname und Typ unterstrichen Objekte ohne Name möglich Verzierungen für Aggregation/Komposition möglich PSWT 2006 5. Dezember 2006 p.19/32

Sequenzendiagramme Sequenzendiagramme stellen eine Folge von Nachrichten/Aufufen dar ebenfalls meist Beispielablauf Sequenzendiagramme enthalten: Objekte Deren Lebenslinien ( Zeitachsen) Zwischen den Objekten verschickte Nachrichten Reihenfolge-Abhängigkeiten (Alternative Abläufe, Wiederholungen, etc.) PSWT 2006 5. Dezember 2006 p.20/32

Beispiel: Sequenzendiagramm :Kunde amazon:versandhandel :Empfänger Bestellung Bestätigung Ware Versandmeldung Rechnung Zahlung PSWT 2006 5. Dezember 2006 p.21/32

Nachrichtentypen a:object b:object asynchrone Nachricht synchrone Nachricht synchrone Nachricht mit Operationsablauf rekursiver Aufruf Rücksprung von Methodenaufruf PSWT 2006 5. Dezember 2006 p.22/32

Zeitablauf Ereignisse auf jeder Lebenslinie chronologisch Senden immer vor Empfangen einer Nachricht Synchrone Nachrichten: Rest von Lebenslinie erst nach Empfang Weitere Einschränkungen: a:object b:object a a wird empfangen bevor b gesendet wird b PSWT 2006 5. Dezember 2006 p.23/32

Zustandsdiagramme Zustandsdiagramme beschreiben das Verhalten eines Systems/eines Objekts normalerweise vollständige Spezifikation Zustandsdiagramme enthalten Zustände Zustandsübergänge Bedingungen an Übergang Ereignis von außen, das Übergang auslöst Aktion die beim Übergang durchgeführt wird PSWT 2006 5. Dezember 2006 p.24/32

Beispiel: Zustandsdiagramm Beispiel: Telefon (vereinfacht ohne Besetztzeichen) einkommender Anruf klingelt abheben Anrufer legt auf inaktiv auflegen verbunden auflegen auflegen wählen abheben abgehoben wählen warten auf Antwort Partner hebt ab PSWT 2006 5. Dezember 2006 p.25/32

Bedingungen, Aktionen auf PIN warten entry/ PIN Prompt anzeigen do/ auf Eingabe warten exit/ PIN Überprüfung melden PIN Eingabe [PIN korrekt] authentisiert entry/ Erfolg melden PIN Eingabe/Fehler Melden [PIN fehlerhaft] Bedingungen in eckigen Klammern [ ] Mit Schrägstrich: Ereignis/Aktion mit entry/, exit/, do/ Aktionen beim Betreten/Verlassen oder Befinden in einem Zustand. PSWT 2006 5. Dezember 2006 p.26/32

Unterzustände Normalbetrieb einkommender Anruf klingelt abheben Anrufer legt auf inaktiv auflegen verbunden auflegen auflegen abheben abgehoben wählen warten auf Antwort Partner hebt ab Defekt behoben Leitungsunterbrechung Leitung tot PSWT 2006 5. Dezember 2006 p.27/32

Werkzeuge Reine Modellierungs/Zeichen-Tools ArgoUML: http://argouml.tigris.org/ UMLet: http://www.umlet.com/ dia: http://www.gnome.org/projects/dia/ Teil von integrierten Entwicklungsumgebungen (Teilweise mit reverse engineering, round trip engineering ) NetBeans: Erweiterung für UML Eclipse: diverse Plug-ins kommerziell: Borland Together PSWT 2006 5. Dezember 2006 p.28/32

Aufgabe 19 Beschaffe und installiere ein UML-Modellierungstool, z.b. ArgoUML. Erstelle ein Klassendiagramm mit allen bisher geschriebenen Klassen und Interfaces (inkl. exceptions) der stack package. Benutze Assoziationen statt Feldern wo dies sinnvoll ist. Überlege ob die Assoziationen Aggregationen oder Kompositionen sein sollten. PSWT 2006 5. Dezember 2006 p.29/32

Aufgabe 20 Stelle folgenden Sachverhalt in einem Klassendiagramm dar: Männer sind Personen. Frauen sind Personen. Jede Person hat genau einen Vater, welcher ein Mann ist. Jede Person hat genau eine Mutter, welche eine Frau ist. Eine Person ist ein Kind ihres Vaters und ihrer Mutter. Eine Person kann beliebig viele Kinder haben. PSWT 2006 5. Dezember 2006 p.30/32

Aufgabe 21 Verdeutliche folgenden Ablauf in einem Sequenzendiagramm: Es gibt Objekte o:teststack, ds:debugstack, und as:boundedarraystack, wobei s der von ds debuggte Stack ist. o ruft die push Methode von ds auf, die an as delegiert wird. o ruft die clear Methode von ds auf, die an as delegiert wird. In as wird clear (entsprechend der AbstractStack Implementierung) durch Aufruf von pop ausgeführt. (Unterstützung von Sequenzendiagrammen in ArgoUML mangelhaft) PSWT 2006 5. Dezember 2006 p.31/32

Aufgabe 22 Modelliere ein Telefon als Zustandsdiagramm Modelliere auch die Möglichkeit, daß dieser Anschluß oder der angerufene besetzt ist. Stelle sicher, daß jedes mögliche Ereignis in jedem Zustand berücksichtigt wird: Benutzer hebt ab/wählt/legt auf Eingehender Anruf/anderer Teilnehmer legt auf PSWT 2006 5. Dezember 2006 p.32/32