UML - SequenzDiagramme

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

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik

Software Engineering Klassendiagramme Einführung

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

SWE5 Übungen zu Software-Engineering

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Software Engineering Klassendiagramme weiterführende Konzepte

4. Informatiktag NRW Projekt online Shop. Barbara Leipholz Schumacher Euregio Kolleg, Würselen

Test-Driven Design: Ein einfaches Beispiel

6 Speicherorganisation

Vorkurs C++ Programmierung

Inhalt: Version 1.7.5

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Von der UML nach C++

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einstieg in die Informatik mit Java

Prüfung Software Engineering I (IB)

Unified Modeling Language (UML)

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

Algorithmen und Datenstrukturen 07

Objektorientierte Modellierung (1)

Java Einführung Methoden. Kapitel 6

2. Übung zu Software Engineering

Programmierkurs Java

Vorlesung "Software-Engineering"

Probeklausur: Programmierung WS04/05

Delegatesund Ereignisse

Java: Vererbung. Teil 3: super()

Objektorientierte Programmierung

Einführung in die Programmierung WS 2009/10. Übungsblatt 9: Objekt-Orientierung

Alltagsnotizen eines Softwareentwicklers

Einführung in die Informatik

Probeklausur Softwareengineering SS 15

Repetitorium Informatik (Java)

Einführung in die Programmierung mit Java. Hörsaalübung

Kapitel 6. Vererbung

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Arbeitsblätter zu Teil I des Praktikums

PIWIN 1 Übung Blatt 5

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

Dr. Monika Meiler. Inhalt

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

3 Objektorientierte Konzepte in Java

Programmieren in Java

Java Einführung Klassendefinitionen

Klassendiagramm. (class diagram)

Kapitel 6. Vererbung

Javakurs für Anfänger

PRÜFUNG. Grundlagen der Softwaretechnik

Assoziation und Aggregation

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Java Einführung Methoden in Klassen

Probeklausur: Programmierung WS04/05

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

Vorlesung Programmieren

3 Objektorientierte Konzepte in Java

JAVA - Methoden

5. Tutorium zu Programmieren

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

4. AuD Tafelübung T-C3

UML - Tutorial. Hubert Baumgartner.

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Tagesprogramm

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Softwaretechnologie - Wintersemester 2012/ Dr. Günter Kniesel

Kapitel 6. Vererbung

Dr. Tobias Günther Programmierung Einführung Probeklausur 120 min

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Einführung in die Programmierung 1

Javakurs für Anfänger

Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java

Grafik-Programmierung

Java Kurs für Anfänger Einheit 5 Methoden

Objektorientierte Programmierung OOP Programmieren mit Java

Große Übung Praktische Informatik 1

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Erste Schritte in Java

3. Tutorium zu Softwaretechnik I

Dokumentation des Projektes Tic Tac Toe

Themen. Web Service - Clients. Kommunikation zw. Web Services

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Aufgabe 1 (Anwendungsfalldiagramm)

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Testklausur 2 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

3. Konzepte der objektorientierten Programmierung

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Prüfung Software Engineering I (IB)

Innere Klassen in Java

UML Eine kurze Einführung

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

Transkript:

UML - Sequenzdiagramme - Seite 1 UML - SequenzDiagramme (1.) Kopieren Sie das erste Beispiel in Dateien und lassen Sie es laufen! Zeichnen Sie das zugehörige Sequenzdiagramm aus dem Quellkode(evtl. rechte Seite der Folie abdecken!) (2.) Gegeben ist nachstehender Quellkode. Zeichnen Sie jeweils das zugehörige Sequenzdiagramm mit Stift und Papier(alternativ UMLetino)! (a.) class B { void g() { h(); h(); void h() { void k() { class A { B b=new B(); void f() { b.g(); b.k(); void l() { b.g(); b.k(); public class TestAB { public static void main(string[] args) { A a = new A(); a.f(); a.l();

UML - Sequenzdiagramme - Seite 2 (b.) class A { B b=new B(); void f() { b.g(); b.h(); class B { C c=new C(); void g() { c.n(); h(); void h() { c.l(); class C { void l() { m(); void m() { void n() { public class TestAB { public static void main(string[] args) { A a = new A(); a.f();

UML - Sequenzdiagramme - Seite 3 (c.) class B { void g() { for (int i =1;i<2 ;i++ ) h(); void h() { class A { B b=new B(); void f() { b.g(); b.h(); public class TestAB { public static void main(string[] args) { A a = new A(); a.f();

UML - Sequenzdiagramme - Seite 4 (d.) class B { void g() { h(); void h() { class A { B b=new B(); void f() { int i=2; if (i<3) b.g(); b.h(); public class TestAB { public static void main(string[] args) { A a = new A(); a.f();

UML - Sequenzdiagramme - Seite 5 (3.) Generieren Sie den Quellkode, der zu nachfolgenden Sequenzdiagrammen gehört! Das Hauptprogramm soll folgende Form haben: public class TestAB { public static void main(string[] args) { A a = new A(); a.f(); (a.)

UML - Sequenzdiagramme - Seite 6 (b.)

UML - Sequenzdiagramme - Seite 7 (4.) Problembeschreibung Eine Kinokette baut standardisierte Kinocenter. Das Auswählen eines Filmes, Zahlen des Eintrittspreises und Drucken der Eintrittskarte sollen mit einer entsprechenden Software vollständig automatisiert werden. Aus folgender Situationsbeschreibung ist in einem ersten Analyseschritt untenstehendes Klassendiagramm erarbeitet worden: Ein Kinobesucher wählt einen Filmtitel aus. Das Kinocenter überprüft das zugehörige Kino auf freie Plätze: Wenn das Kino noch nicht ausverkauft ist, erhalt der Kinobesucher die Antwort, dass der gewählte Film möglich ist. Nun erfolgt das Einzahlen des Eintrittspreises am Kassenautomat. Nachdem der Kassenautomat die korrekte Zahlung des Eintrittspreises festgestellt hat, meldet er dies. Daraufhin kann der Besucher vom Kinocenter eine Karte anfordern. Das Kinocenter belegt im zugehörigen Kino einen Platz und druckt die Eintrittskarte. (a.) Welche Aussagen lassen sich zu dem gegebenen Klassendiagramm machen (Stichworte: Klasse, Attribut, Methode, Beziehung, Kardinalität)? (b.) Ergänzen Sie das Klassendiagramm um geeignete Datentypen, notwendige Methoden-Parameter und erforderliche Rückgabewerte. Zeichnen Sie das Klassendiagramm und begründen Sie ihre Entscheidungen. (c.) Objektdiagramm Stellen Sie die folgende Situation in der Form eines Objektdiagramms dar: Das Kinocenter Kinopolis" umfasst die Kinos Gloria", Heli" und Capitol". Alle Kinos verfügen über 280 Plätze. Der Eintrittspreis für die Kinos beträgt einheitlich 7,50 E. Im Gloria wird der Film Casablanca", im Heli High Noon" und im Capitol Capote" gezeigt. (d.) Stellen Sie folgenden Anwendungsfall in einem Sequenzdiagramm dar: Ein Kinobesucher wahlt den Film Casablanca". Da das Kino noch nicht ausverkauft ist, erhalt der Besucher nach korrekter Zahlung des Eintrittspreises eine Eintrittskarte. Arbeitshinweis: Beachten Sie die Situationsbeschreibung und das Klassendiagramm!

UML - Sequenzdiagramme - Seite 8 https://www.htw-dresden.de/fileadmin/userfiles/et/personal/professoren/flach/swt/uebung_swt_loes.pdf http://sewiki.iai.uni-bonn.de/_media/teaching/lectures/se/2011/uebungsblaetter/uebungsblatt_03_- _loesungshilfe.pdf (4.) (a.) Sie haben den Auftrag, eine Online-Videothek zu realisieren. Sie haben dazu folgende Angaben erhalten: Die Videothek unterstützt das Ausleihen von Filmen für registrierte Kunden. Dazu müssen Kunden sich zunächst mit ihrer Kundennummer und ihrem Passwort anmelden. Kunden werden zusammen mit ihrem Guthaben verwaltet. Filme besitzen einen individuellen Namen und Preis. Ein Film wird über einen Streaming-Server bereitgestellt. Der Server kann hierzu einen film- und kundenspezifischen Link generieren. Modellieren Sie diesen Sachverhalt anhand eines Klassendiagramms. Wählen Sie sinnvolle Operationen (mit möglichst vollständigen Signaturen) und Attribute für Ihre Klassen. Ergänzen Sie die Klassen um sinnvolle Beziehungen und deren Kardinalitäten. (b.) Sie sollen für die Online-Videothek (siehe Aufgabe 1) den Vorgang des Filmausleihens modellieren. Erstellen Sie dazu ein Sequenzdiagramm. Zur Vereinfachung können Sie davon ausgehen, dass sich das Mitglied bereits auf der Seite des gewünschten Films befindet. Wählen Sie geeignete Namen für die Elemente Ihres Diagramms. Um den Film auszuleihen, muss das Mitglied sich zunächst erfolgreich anmelden. Referenzieren Sie an dieser Stelle die Lösung aus Aufgabe (a.). War die Anmeldung erfolgreich, versucht die Person den Film auszuleihen. Die Videothek berechnet zuerst, ob das Guthaben reicht um den Film zu bezahlen. Reicht das Guthaben nicht aus, wird stattdessen eine Aufforderung zum Auffüllen des Guthabens angezeigt. Falls das aktuelle Guthaben des Mitglieds ausreicht, veranlasst die Videothek einen Streaming-Server einen Link für den Film zu generieren. Die Videothek zeigt dem Benutzer den Link an, unter dem der Film zugreifbar ist.

UML - Sequenzdiagramme - Seite 9 UML - Sequenzdiagramme - Lösungen (1.) entfällt (2.) (a.)

UML - Sequenzdiagramme - Seite 10 (b.)

UML - Sequenzdiagramme - Seite 11 (c.)

UML - Sequenzdiagramme - Seite 12 (3.) (a.) class A { B b=new B(); void f() { b.h(); void g() { b.k(); class B { void h() { k(); k(); void k() { (b.) class A { B b=new B(); C c=new C(); void f() { b.h(); g(); void g() { c.k(); class B { C c =new C(); void h() { int i=3; if (i<5) c.k(); class C { void k() {

UML - Sequenzdiagramme - Seite 13 (4.) (a.) Von den Klassen Kassenautomat, Film, Kino und Kinocenter können Objekte gebildet wer-den. Auf die Attribute (Name, AnzahlPlätze, Titel, Eintrittspreis) kann nicht von außerhalb der Klasse zugegriffen werden, da sie mit dem Zugriffsmodifizierer "Private" gekennzeichnet sind. Alle Methoden (wählefilm(), chuckekarte(), istausverkauft(), belegeplatz(), einzahlen()) sind öffentlich (Zugriffsmodifizierer Public"), d.h. auf sie kann von auf3erhalb der Klasse zugegriffen werden. Zwischen der Klasse Kinocenter und den Klassen Kassenautomat bzw. Kino besteht eine Komposition. Diese Klassen sind Teile des Kinocenters und von diesem existenzabhängig. Die Beziehungen sind gerichtet, d.h. der Zugriff ist nur in Pfeilrichtung Jedes Kinocenter hat genau einen Kassenautomaten und 3 Kinos. In jedem Kino wird genau ein Film vorgeführt, ein Film kann in beliebig vielen Kinos vorgeführt werden. (b.) Die Attribute Name" und Titel erhalten den Datentyp Text";,AnzahlPlätze" und Eintrittspreis" den Datentyp Zahl". Die Methoden druckekarte0" und belegeplatz0" benötigen weder Parameter noch Rückgabewerte, da alle benötigten Daten von den Klassen abgefragt werden können und keine Informationen an das Anwendungsprogramm geliefert werden müssen. Der Methode wählefilm()" wird als Parameter der gewählte Filmtitel übergeben, sie liefert als Antwort True", wenn im Kino ein Platz frei ist. Der Methode einzahlen() wird der eingezahlte Betrag als Wert übergeben und sie liefert als Antwort True", wenn der Eintrittspreis eingezahlt wurde.

UML - Sequenzdiagramme - Seite 14 (c.)

UML - Sequenzdiagramme - Seite 15 (d.)