2. Übung zu Software Engineering

Ähnliche Dokumente
4. Übung zu Software Engineering

PRÜFUNG. Grundlagen der Softwaretechnik

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

PRÜFUNG. Grundlagen der Softwaretechnik

2. Übung zu Software Engineering

VORDIPLOMSPRÜFUNG FÜR ELEKTROINGENIEURE. Einführung in die Informatik III

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Übungen Softwaretechnik I

Arbeitsblätter zu Teil I des Praktikums

Unified Modeling Language (UML)

PRÜFUNG. Grundlagen der Softwaretechnik

SWE5 Übungen zu Software-Engineering

Arrays Fortgeschrittene Verwendung

Besprechung. Übung 1 Software Engineering

Nutzerhandbuch Softwaresystem Inspirata. Benutzerhandbuch Softwaresystem Inspirata

D1: Relationale Datenstrukturen (14)

Abgleich von Ein- und Ausgangsrechnungen in Odoo

Software Engineering Klassendiagramme weiterführende Konzepte

Objektorientierte Modellierung (1)

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

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

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

4. Übung zu Software Engineering

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

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

7. Analyse-Phase: Datenmodellierung Software Engineering

Inhalt: Version 1.7.5

Projektmanagement mit Microsoft Project 2007

UML - Tutorial. Hubert Baumgartner.

Kurs 1793 Software Engineering I - Grundkonzepte der OOSE Klausur am

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

Von der UML nach C++

Techniken der Projektentwicklungen

Software Engineering Interaktionsdiagramme

Verwaltung-Registerkarte: Eigene und fremde Bankverbindungen anlegen

Java-Programmierung mit NetBeans

Software- und Systementwicklung

Vorlesung im Herbstwintersemester Autorisierte studentisch Lösungen zu Aufgabenblatt 2

Teil II: OOP und JAVA (Vorlesung 9)

Lösungsvorschlag zu Übungsblatt 1 mit Korrekturhinweisen

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

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik

VU Objektorientierte Modellierung Übung 2

Projekte, Projektmanagement und Microsoft Project 23

Eigene und fremde Bankverbindungen anlegen

SS Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.

Microsoft Office Project 2010

Anleitung für das MS Project Professional 2003 (Deutsche Version)

Software Engineering in der Praxis

Grundlagen der Softwaretechnik

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Verwaltung-Registerkarte: Eigene und fremde Bankverbindungen anlegen

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

UML. Weiteres Vorgehen im Projekt

2 Konzepte und Notation der objektorientierten Analyse (Statische Konzepte)

Kapitel 3 Das Projekt Bankkonto Seite 1

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Objektorientiertes Design

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

5 Projekt Bankverwaltung

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

Inhaltsverzeichnis. Teil A Einfache Projekte verwalten 19. Lektion 1 Einführung in Microsoft Project 21

Vorlesung Informationssysteme

Analyse und Entwurf objektorientierter Systeme

UML -Klassendiagramme

8* Microsoft. Project Das offizielle Trainingsbuch. Microsoft Press

Übungen zur Softwaretechnik

Aufgabenblatt 9. Die Abgabe muss bis Sonntag, 21. Juni 2009, 24 Uhr, erfolgen. Verspätet eingereichte Lösungen werden nicht berücksichtigt.

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

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

Lehrbuch der Objektmodellierung

Kapitel 6. Vererbung

Das umfassende Handbuch

Profi Cash - Wechsel der HBCI-Chipkarte (von alter auf neue VR-NetWorld Card)

Unified Modelling Language

Arbeit mit der Mappe BuchführungMuster.xls

Kapitel 6. Vererbung

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse

3. Konzepte der objektorientierten Programmierung

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

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Project 2010 Termine, Kosten & Ressourcen im Griff. Projektmanagement mit Microsoft. Gudrun Rehn-Göstenmeier DAS EINSTEIGERSEMINAR

a) Abb. 1 zeigt das Domänen-Klassendiagramm für das Verwaltungssystem. Kunde vorname: String nachname: String geburtstag: Datum adresse: String

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

UML 2.0 Das umfassende Handbuch

Kurzreferenz UML. Autor: Michael Puff. Stand:

Gudrun Rehn-Göstenmeier. Das Einsteigerseminar Projektmanagement mit Microsoft Project 2010

Implaneum GmbH. Software Lösungen. Implaneum GmbH, Hänferstr. 35, Achern-Mösbach

Software Engineering in der Praxis

Industrial Engineering (Arbeitswissenschaft I / Betriebsorganisation)

Verbuchung von Zahlungseingängen über das PayPal-Konto

Software Engineering in der Praxis

SEQUENZDIAGRAMM. Christoph Süsens

Von der UML nach C++

Algorithmen und Datenstrukturen 06

sellmore Project-Suite für Sage CRM

Objektorientierte Programmierung

Kapitel 6. Vererbung

Transkript:

2. Übung zu Software Engineering WS 2007/2008

Organisatorisches [SE] als Teil des E-Mail-Betreffs nicht: SE, Software Engineering, Blatt 01 etc. Abgabe: EINE pdf-datei, spätestens 11:30 Uhr nicht: xls, doc, rar oder zip 1

Aufgabe 2 Die Durchführung eines Großprojekts sei in die folgenden Vorgänge untergliedert: Nummer 1 2 3 Vorgänger - - 1 Dauer 6 5 7 4 1;2 9 5 1;2 6 6 5 4 7 5 11 8 3;4;6 5 9 3;4;6 8 2

Aufgabe 2a) Erstellen Sie einen Projektplan für das beschriebene Projekt mit einem Projektplanungstool Ihrer Wahl. Gehen Sie davon aus, dass das Projekt mit 4 Mitarbeitern am 12. November 2007 beginnt und dass jeder Vorgang nur von genau einem Mitarbeiter bearbeitet werden kann. Bestimmen Sie den kritischen Pfad des Projekts. Wann ist das Projekt abgeschlossen? 3

Aufgabe 2a) Vorgänge eingeben und verknüpfen siehe Tabelle Vorgangsdauer eintragen siehe Tabelle Ressourcen eintragen und zuordnen 4 beliebige Ressourcen anlegen jeder Vorgang darf nur von einer Ressource bearbeitet werden Kritischer Pfad: Vorgänge 1, 5, 6 und 9 Frühester Endtermin: 13. Dezember 2007 Dauer: 24 Werktage bzw. 32 Kalendertage (inkl. Wochenenden) 4

Aufgabe 2a) 5

Aufgabe 2b) Erstellen Sie einen Netzplan für das Projekt und bestimmen Sie für jeden Vorgang den frühesten Anfang, das späteste Ende sowie die Pufferzeit. Ermitteln Sie erneut den kritischen Pfad. Setzen Sie dabei den Anfang des ersten Vorgangs auf 0 statt mit konkreten Datumsangaben zu rechnen. Stimmt der so ermittelte kritische Pfad mit dem aus Ihrem Projektplan überein? 6

Aufgabe 2b) Netzplantechnik frühester Anfang Vorwärtsterminierung FA i = max{fa j + Dauer j mit j Vorgänger von Vorgang i} FA Startvorgang = 0 spätestes Ende Rückwärtsterminierung SE i = min{fa j - Dauer j mit j Nachfolger von Vorgang i} SE Endvorgang = max{fa j + Dauer j mit j Vorgänger von Endvorgang} Pufferzeit PZ = SA - FA = SE - FA - Dauer, da SA = SE - Dauer kritischer Pfad = Vorgänge mit 0 Pufferzeit frühestes Ende, spätester Anfang 7

Aufgabe 2b) 3 8 6 16 16 24 1 7 3 5 3 0 6 6 0 4 9 6 16 16 24 2 9 1 6 8 0 0 6 12 16 5 1 5 4 0 6 12 6 0 7 Nr. 12 24 FA SE 11 1 D PZ 8

Aufgabe 2b) Vorgang 1 Dauer = 6 FA = 0 (per Definition) SE = min(16-7;16-9;12-6) = 6 PZ = 6-6-0 = 0 Vorgang 2 Dauer = 5 FA = 0 (per Definition) SE = min(16-9; 12-6) = 6 PZ = 6-5-0 = 1 Vorgang 3 Dauer = 7 FA = max(0 + 6) = 6 SE = min(24-5; 24-8) = 16 PZ = 16-7-6 = 3 Vorgang 4 Dauer = 9 FA = max(6 + 0; 5 + 0) = 6 SE = min(24-8) = 16 PZ = 16-9-6 = 1 Vorgang 5 Dauer = 6 FA = max(6 + 0; 5 + 0) = 6 SE = min(16-4; 24-11) = 12 PZ = 12-6 -6 = 0 Vorgang 6 Dauer = 4 FA = max(6 + 6) = 12 SE = min(24-5; 24-8) = 16 PZ = 16-12 - 4 = 0 9

Aufgabe 2b) Vorgang 7 Dauer = 11 FA = max(6 + 6) = 12 SE = max(12 + 11; 16 + 5; 16 + 8) = 24 PZ = 24-12 - 11 = 1 Vorgang 8 Dauer = 5 FA = max(7 + 6; 9 + 6; 4 + 12) = 16 SE = max(12 + 11; 16 + 5; 16 + 8) = 24 PZ = 24-16 - 5 = 3 Vorgang 9 Dauer = 8 FA = max(7 + 6; 9 + 6; 4 + 12) = 16 SE = max(12 + 11; 16 + 5; 16 + 8) = 24 PZ = 24-16 - 8 = 0 10

Aufgabe 2c) Für das Projekt steht kurzfristig ein weiterer Mitarbeiter zur Verfügung. Dieser Mitarbeiter darf ausnahmsweise als zweite Ressource für beliebige Vorgänge eingesetzt werden. Als zusätzliche Einschränkung sei angenommen, dass dieser Mitarbeiter einem Vorgang entweder ganz oder gar nicht zugeordnet, d.h. nicht überlastet werden darf. Wie lässt sich die Projektdauer minimieren, wenn die sonstigen Zuordnungen von Ressourcen zu Vorgängen bestehen bleiben? Welche Auswirkungen hat dies auf den kritischen Pfad und den Projektendtermin? 11

Aufgabe 2c) Höchstes Minimierungspotenzial befindet sich auf dem kritischen Pfad Neue Ressource sukzessive den Vorgängen zuordnen kritischer Pfad ändert sich nach jeder Zuordnung nach jeder Zuordnung neu über die nächste Zuordnung entscheiden neuen Mitarbeiter den Vorgängen 1, 5 und 9 zuordnen Vorgang 7 auch möglich, ändert den Endtermin aber nicht Neue kritische Pfade Vorgänge 2, 4 und 8 Vorgänge 2, 5 und 7 (falls Vorgang 7 ohne neuen Mitarbeiter) Frühester Endtermin: 06. Dezember 2007 12

Aufgabe 2c) vorher: nachher: 13

Aufgabe 3 Das fiktive Geldinstitut Bank365 beauftragt Sie mit der Entwicklung eines Prototypen zur Verwaltung ihrer Bestandsdaten. Das Softwaresystem soll die grundlegenden Funktionalitäten zur Verfügung stellen, die von einer Bankensoftware erwartet werden: Kunden und deren Konten sollen verwaltet sowie deren Kontobewegungen aufgezeichnet werden. Als Teil ihres ausgeklügelten Geschäftsmodells will die Bank ihre Konten darüber hinaus in Unter- bzw. Oberkonten strukturieren können, wobei die Tiefe dieser Struktur nicht begrenzt sein soll. 14

Aufgabe 3a) Erstellen Sie für das beschriebene Szenario ein UML Klassendiagramm. Ordnen Sie dabei die folgenden Methoden sinnvoll einer von Ihnen modellierten Klasse zu: void überweisen(string ziel, double betrag) void einzahlen(double betrag) void abheben(double betrag) 15

Aufgabe 3a) benötigte Klassen, Attribute und Methoden Kunde Attribute: Name, Vorname, Geburtstag, Anschrift,... Methoden: berechnealter() Bank Attribute: - Methoden: abheben(), erzeugekonto(), überweisen() Konto Attribute: kontonummer, kontostand, letzterkontoauszug Methoden: abheben(), einzahlen(), überweisen(), kontoauszugdrucken() Kontobewegung Attribute: betrag, datum, kommentar Methoden: - 16

Aufgabe 3a) Konten sollen in Ober- und Unterkonten strukturiert werden können Assoziation der Klasse Konto zu sich selbst reflexive Assoziation bzw. Hierarchie Kardinalitäten ein Konto hat 0..1 Oberkonten und 0..* Unterkonten Kontobewegungen sind Teil eines Kontos Komposition (starke Aggregation) jede Kontobewegung gehört zu genau einem Konto mit dem Konto sollen auch alle Kontobewegungen gelöscht werden Kardinalitäten eine Kontobewegung gehört zu genau einem Konto, ein Konto kann beliebig viele Kontobewegungen besitzen 17

Aufgabe 3a) 18

Aufgabe 3a) Klasse Bank365 nicht modelliert wer verwaltet sonst Kunden und Konten? Oberklasse Konto, Unterklassen Ober- und Unterkonto wenig sinnvoll, da sich Ober- und Unterkonto nicht unterscheiden Kontobewegung als String-Attribut nicht sehr elegant, da String-Arithmetik notwendig nicht objektorientiert Komposition zwischen Konto und Kontobewegung nicht unbedingt notwendig, stellt den Sachverhalt aber präziser dar Wichtig dabei nur: Konsistenz! 19

Aufgabe 3b) Erstellen Sie für die folgenden Anwendungsfälle jeweils ein UML Sequenzdiagramm: Überweisen von 100 Euro auf das Konto 200 300. Abheben von 500 Euro vom eigenen Konto. Ausdrucken aller Kontobewegungen, die seit dem letzten Ausdruck stattgefunden haben. Gehen Sie bei der Bearbeitung der Aufgabe davon aus, dass sämtliche Aktionen ohne Fehler durchgeführt werden können. Ergänzen Sie gegebenenfalls fehlende Attribute und/oder Methoden in Ihrem Klassendiagramm. 20

Aufgabe 3b) Sequenzdiagramm Veranschaulichung von zeitlichen Vorgängen Nachrichten, Antworten, beteiligte Objekte dokumentieren Kommunikations- und Interaktionsprozesse sehr implementierungsnah Nachricht = Methoden- bzw. Funktionsaufruf Antwort = Rückgabewert (evtl. void) wichtigste Frage: Woher kennen sich Objekte? (Konsistenz) selbst erzeugtes Objekt (<<erzeuge>>) Objekt einer Nachbarklasse (Assoziation) ermitteltes Objekt (Rückgabewert von Methoden) 21

Aufgabe 3b) Überweisen von 100 Euro auf das Konto 200 300. 22

Aufgabe 3b) Abheben von 500 Euro vom eigenen Konto. 23

Aufgabe 3b) Ausdrucken aller Kontobewegungen, die seit dem letzten Ausdruck stattgefunden haben. 24

Aufgabe 3b) häufige Fehler Inkonsistenzen zwischen Klassen- und Sequenzdiagramm Objekte schicken sich Nachrichten, obwohl sich diese nicht kennen Sequenzdiagramm verwendet Objekte, die im Klassendiagramm nicht modelliert wurden Kommunikation zwischen den Objekten zu simpel dargestellt überweisen verlangt mehr als eine Nachricht erzeugen von Kontobewegungen nicht modelliert syntaktische Fehler im Sequenzdiagramm Lebenslinien Aktivitätsbalken löschen von Objekten 25

Literatur R. Holert: Microsoft Office Project 2003. Das Profibuch. Microsoft Press, 2004. H. Balzert: Lehrbuch der Software-Technik. Software Entwicklung. Spektrum Akademischer Verlag, 2000. Klassendiagramme: S. 163ff Assoziationen und Kardinalitäten: S. 186ff Aggregation und Komposition: S. 194ff Sequenzdiagramme: S. 209ff 26