Objektorientierte Analyse für. Projekt Warenautomat. Entwicklung einer objektorientierten Applikation zur Steuerung für einen Warenautomaten

Größe: px
Ab Seite anzeigen:

Download "Objektorientierte Analyse für. Projekt Warenautomat. Entwicklung einer objektorientierten Applikation zur Steuerung für einen Warenautomaten"

Transkript

1 Seite: 1 Objektorientierte Analyse für Entwicklung einer objektorientierten Applikation zur Steuerung für einen Warenautomaten Martin Zimmermann Thomas Letsch

2 Seite: 2 Inhaltsverzeichnis: 1 Einführung 3 2 Projektauftrag Akteure Bedien- und Anzeigeelemente des Automaten Bedienelemente Anzeigeelemente Rolle des Servicepersonals 5 3 Gruppenarbeit 7 4 Aufgabenstellungen Entwicklung von Use Cases (Aufgabe1) Objektorientierte Analyse (Aufgabe 2) Klassen identifizieren Klassen- und Objektdiagramm erstellen Sequenzdiagramme erstellen Klassenbeschreibungen erstellen 12

3 Seite: 3 1. Einführung Das Projekt Entwicklung einer Steuerung für einen Warenautomat dient zur Illustration des Vorgehens bei der objektorientierten Softwareentwicklung: - Ausgangspunkt ist ein Projektauftrag (siehe folgende Beschreibung, Kapitel 2). - in der objektorientierten Analyse (OOA) werden - zunächst die Interaktionen zwischen den Akteuren und dem Warenautomaten in Form von Use Cases beschrieben. - anschliessend wird ein UML-Klassen- und Objektdiagramm sowie darauf aufbauend mehrere UML-Sequenzdiagramme modelliert und dokumentiert. - im zweiten Teil (3. Abend und 4. Abend) werden dann objektorientierter Design (OOD) und Implementierung (Java) in mehreren Teilschritten durchgeführt. 2. Projektauftrag Zu entwickeln ist ein Warenautomat (siehe Abbildung 1). Hierbei sind Sie in einer Gruppe von Consultants in einer Firma tätig, die solche Automaten entwickelt und produziert. Für die Entwicklung einer neuen Generation von Automaten wurde Ihnen ein Projektauftrag erteilt. Vom Projektleiter sind Sie für die Problemanalyse beauftragt worden. Bitte beachten Sie, dass der komplette Automat gemäss den Anforderungen, wie im Folgenden beschrieben, von Ihnen modelliert werden soll. Drehteller Anzeige Geldbetrag Geldrückgabeknopf Warenpreis Verfallsdatum - erreicht bzw. überschritten (rot) - Gute Ware (grün) Kein Wechselgeld Nicht Genug Geld - Keine Ware (weiss) Schiebetür zum Öffnen Einwurfschlitz Knopf zum Drehen Abbildung 1: Aufbau des Automaten: Drehteller, Fächer, Anzeige- und Bedienungselemente Der Warenautomat besteht aus insgesamt 7 übereinander liegenden Drehtellern, die jeweils aus insgesamt 16 Fächern bestehen.

4 Seite: 4 In jedem der Fächer kann sich eine Ware (z.b. Mars ) mit einem individuellen Preis (z.b Fr.) und einem individuellen Verfallsdatum (z.b ) befinden (d.h. in einem Drehteller sind typischerweise verschiedene Waren). Ein Fach kann aber auch leer sein (z.b. nach dem die Ware, die darin liegt, gekauft wurde). Der Warenautomat beinhaltet ausserdem eine Kasse, mit einem Geldeinwurfschlitz für die Münzarten 0.10 Fr, 0.20 Fr, 0.50 Fr sowie 1 Fr, und 2 Fr. Durch Betätigen des Rückgabeknopfes kann das Wechselgeld zurückgegeben werden. Die zu entwickelnde Software soll sowohl die Buchhaltung des Automaten (Waren- und Kassenbestand) übernehmen als auch die Abwicklung des Kaufvorgangs unterstützen (z.b. Steuerung der Anzeigen, Prüfung, ob beim Betätigen einer Schiebetür diese entriegelt werden kann, Berechnung und Ausgabe des Wechselgeldes). 2.1 Akteure Wir unterscheiden die Akteure Kunde und Service-Personal. Der Kunde steht stellvertretend für beliebige natürliche Personen. Er ist Auslöser des Use Cases Ware kaufen. Das Service Personal ist Auslöser der Use Cases Automat mit Ware füllen und Kasse mit Wechselgeld füllen. Ein weiterer Use Case ermöglicht dem Service-Personal Informationen über den Verkaufserfolg einer Ware (z.b. Mars ) seit einem zu definierenden Zeitpunkt zu erhalten. 2.2 Bedien- und Anzeigeelemente des Automaten Bedienelemente Der Automat hat folgende Bedienelemente (siehe Abbildung 1): - Drehknopf: durch Betätigen des Drehknopfs werden alle sieben Teller gleichzeitig um eine Position nach rechts gedreht (von vorne gesehen). Die Drehteller können nicht gedreht werden, wenn ein Fach noch offen ist. - Geldeinwurfschlitz: Der Geldeinwurfschlitz ermöglicht den Münzeinwurf. Folgende Münzarten werden unterstützt: 0.10 Fr, 0.20 Fr, 0.50 Fr sowie 1 Fr, und 2 Fr. Alle anderen Schweizer Münzarten sowie Fremdwährung und falsche Münzen werden unmittelbar wieder ausgeworfen. - Geldrückgabeknopf: Durch Betätigen des Geldrückgabeknopfs wird das Restgeld (bei Kauf) oder das eingeworfene Geld (falls nichts gekauft wurde) zurückgegeben. - Schiebetür zum Öffnen eines Fachs: Jeder der 7 Drehteller besitzt einen Öffnungsschacht mit Schiebetür. Wenn der Benutzer genug Geld für die Ware hinter dem Öffnungsschacht eingeworfen hat, und der Automat zu diesem Zeitpunkt noch passend Wechselgeld besitzt, kann er die Schiebetür öffnen. Allerdings kann die Schiebetür nicht geöffnet werden, falls das Verfallsdatum der Ware hinter der Tür erreicht oder überschritten ist. D.h., beim Versuch die Schiebetür eines Drehtellers zu öffnen, überprüft das System sowohl, ob der eingeworfene Betrag zum Kauf der Ware ausreicht als auch, ob sich zu diesem Zeitpunkt noch genug Wechselgeld im Automaten befindet und das Verfallsdatum der Ware noch nicht erreicht wurde. Nur wenn diese Bedingungen alle zutreffen, wird das Fach entriegelt. In jedem anderen Fall wird die Schiebetür nicht entriegelt. Ein leeres Fach kann nicht geöffnet werden. Darüber hinaus darf zu einem Zeitpunkt nur eine Schiebetür offen sein. Eine Schiebetür wird manuell geöffnet und geschlossen. Wichtiger Hinweis: beim Schliessen einer Schiebetür wird davon ausgegangen, dass die Ware entnommen wurde (d.h. es ist kein Sensor vorhanden, der die Warenentnahme erkennen könnte).

5 Seite: Anzeigeelemente Der Automat stellt ausserdem folgende Anzeigeelemente zur Verfügung: - Anzeige Geldbetrag : Sie zeigt den eingeworfenen Betrag an (siehe Abbildung 1, rechte Seite des Automaten). Beim Einwerfen einer Münze wird der Betrag, den der Kunde zur Verfügung hat entsprechend erhöht. Falls zu wenig Geld für die ausgewählte Ware eingeworfen wurde, leuchtet die Anzeige nicht genug Geld, falls nicht ausreichend Wechselgeld verfügbar ist, leuchtet die Anzeige Kein Wechselgeld (Abbildung 1). - Anzeige Warenpreis (pro Drehteller): links vom Drehteller (Abbildung 1) wird der Preis der Ware angezeigt, die sich gerade hinter dem Öffnungsschacht eines Drehtellers befindet. Diese Anzeige ist für jeden einzelnen Drehteller vorhanden und wird nach jedem Drehen, abhängig vom Wert der Ware, die sich hinter dem Öffnungsschacht befindet, aktualisiert. Falls sich keine Ware im Fach befindet, erscheint in der Anzeige als Preis eine Anzeige Verfallsdatum erreicht bzw. überschritten (pro Drehteller): falls für die Ware, die sich hinter dem Öffnungsschacht eines Drehtellers befindet, das Verfallsdatum erreicht oder überschritten ist, leuchtet die Anzeige rot auf. Im Normalfall, d.h. falls eine gute noch nicht abgelaufene Ware hinter dem Öffnungsschacht vorhanden ist, leuchtet die Anzeige grün. Falls sich keine Ware hinter dem Öffnungsschacht befindet, ist die Anzeige ausgeschaltet. - Anzeige Nicht genug Geld : auf der rechten Seite (Abbildung 1) des Automaten befindet sich eine Anzeige (Lampe), die leuchtet, falls zu wenig Geld für eine Ware eingeworfen wurde. - Kein Wechselgeld : falls nicht ausreichend Wechselgeld verfügbar ist, leuchtet diese Anzeige (Lampe), siehe rechte Seite des Automaten, Abbildung Rolle des Servicepersonals Das Servicepersonal kann den Automaten (über eine Schlüssel-Vorrichtung oder Legi-Card) in einen eigenen Betriebszustand bringen (im Folgenden als Service-Mode bezeichnet). In diesem Service-Mode lässt sich die rechte Frontseite des Automaten öffnen. Dahinter befinden sich im Inneren des Automaten ein eigenes Bedien- und Anzeigepanel für das Servicepersonal sowie eine Mini-Tastatur und ein Barcode-Leser (siehe Abbildung 2). Im Service-Mode sind über entsprechende Bedien- und Anzeigeelemente möglich: folgende Aktionen - der Gesamtbetrag der bisher verkauften Waren wird zu Beginn automatisch für 10 Sekunden in der obersten Anzeige dargestellt (d.h. ohne Betätigung irgendeines Bedienelements), danach wird der Gesamtbetrag des aktuellen Warenbestands permanent in der obersten Anzeige dargestellt, siehe Abbildung 2. - die Kasse des Automaten kann mit den folgenden fünf Münzarten aufgefüllt werden: 0.10 Fr, 0.20 Fr, 0.50 Fr, 1 Fr, und 2 Fr. Die maximale Kapazität der einzelnen Münzschächte wird in dieser Übung nicht berücksichtigt, d.h. wir gehen davon aus, dass ein Münzschacht unendlich viele Münzen aufnehmen kann. - einzelne Fächer können aufgefüllt werden, wobei beim Auffüllen eines Fachs der Preis der Ware, die Bezeichnung der Ware sowie das Verfallsdatum über den Barcodeleser eingelesen werden. - für eine Warenbezeichnung (z.b. Mars ) lässt sich die Gesamtzahl dieser verkauften Waren seit einem bestimmten Datum (z.b. seit dem ) ermitteln.

6 Seite: 6 1.) Bedien- und Anzeigepanel Gesamter Warenwert / Wert Verkaufter Fr Waren Auswahl-Knopf: 0.50 Fr Geld auffüllen - Münzart - Anzahl 100 Bestätigungs-Knopf: Geld auffüllen Mars - Produkt Auswahl-Knopf: 1.00 Fr - Preis Ware auffüllen - Verfallsdatum ) Mini-Tastatur 3.) Barcode-Leser - Produkt - Datum - Anzahl Mars Auswahl-Knopf: Statistik abrufen Abbildung 2: Bedien- und Anzeigeelemente für das Servicepersonal (im Inneren des Automaten) Im Folgenden werden diese Aktionen zusammen mit den Anzeige- und Bedienelementen im Detail beschrieben (eine Beschreibung des Use Case Kasse füllen finden Sie auf Seite 8): - Geld auffüllen : Nach Betätigen des Auswahl-Knopfs Geld auffüllen wird zunächst die Münzart (z.b Fr) und danach die Anzahl Münzen (z.b. 100) über die Tastatur eingegeben. Hierbei sind die eingegebenen Daten nach der Eingabe sofort über die entsprechende Anzeige sichtbar (siehe Abbildung 2: zweite Anzeige von oben). Danach können die Münzen in den entsprechenden Münzschacht eingelegt werden. Die Aktion Geld auffüllen wird abgeschlossen, indem der Bestätigungsknopf Geld auffüllen gedrückt wird. - Ware auffüllen : Wenn das Service-Personal ein Fach mit einer Ware auffüllen möchte, muss zunächst der Auswahlknopf Ware auffüllen gedrückt werden. Dann dreht man den Drehteller an die gewünschte Stelle. Anschliessend wird die Ware mit einem Bar-Code-Leser gescannt. Danach wird das Fach geöffnet, die Ware in das Fach hineingelegt und das Fach wieder geschlossen. Falls sich im zu füllenden Fach noch eine Ware befindet, wird davon ausgegangen, dass diese (alte) Ware entfernt wird. Mit dem Öffnen eines Faches werden die vorher gescannten Daten der Ware (Bezeichnung, Preis, Verfallsdatum) durch das System automatisch übernommen, in der entsprechenden Anzeige dargestellt und die Operation füllefach (siehe Seite 10) aufgerufen. Nach dem Auffüllen, kann das zuletzt gefüllte Fach sofort geöffnet und die dort vorhandene Ware entnommen werden, d.h. es ist kein Drehen notwendig. - Statistik : Nach Betätigen des Auswahl-Knopfs Statistik wird eine Warenbezeichnung (z.b. Mars ) sowie ein Datum (z.b ) über die Minitastatur eingegeben. Beide Angaben erscheinen sofort nach der Eingabe in den zugehörigen Anzeigeelementen (siehe Abbildung 2: unterster Anzeigebereich). Darüber hinaus wird (nach einer kurzen Berechnung) die Anzahl der verkauften Waren (z.b. 53) mit dieser Bezeichnung im angegebenen Zeitraum (seit dem eingegebenen Datum bis zum aktuellen Datum) angezeigt.

7 Seite: 7 3. Gruppenarbeit Die objektorientierte Analyse (siehe nachfolgende Aufgabe 1 und Aufgabe 2) erfolgt in bewährter Gruppenarbeit an insgesamt zwei Abenden. Bitte sorgen Sie in Ihrer Gruppe alle gemeinsam dafür, dass die Ergebnisse des ersten Abends allen anderen Gruppenmitgliedern vor Beginn des nächsten Abends als Kopie vorliegen (z.b. Verteilung per an alle Gruppenmitglieder, oder Kopienerstellung am gleichen Abend). Wir stellen Ihnen gerne eine Kopierkarte zum Kopieren bereit. Dieser Hinweis liegt uns sehr am Herzen, weil es schon vorgekommen ist, dass die Dokumentation der Ergebnisse des ersten Tags nur ein Team-Mitglied hatte (das am zweiten Abend im Stau steckte und verspätet an der HSR eintraf). Verwenden Sie für die verschiedenen Diagramme Papier im A3 Format (wird ausgeteilt). 4. Aufgabenstellungen 4.1 Entwicklung von Use Cases (Aufgabe 1) Use Cases sind eine Beschreibung der funktionalen Anforderungen an ein System. Man beschreibt das Verhalten des Systems aus der Sicht der Benutzer. Ein Benutzer löst durch eine Aktion (einen Auslöser oder Trigger, z.b. "Geldrückgabeknopf drücken") eine Reaktion des Systems aus (z.b. "eingeworfenes Geld zurückgeben"). Beschreiben Sie die Anforderungen an die Steuerung des Warenautomaten in Form von Use Cases. Gehen Sie folgendermassen vor: a) Entwerfen Sie ein Use Case Diagramm Unterscheiden Sie die Use Cases: - Ware kaufen - Automat (genauer: Fach eines Drehtellers) mit Ware auffüllen - Kasse mit Wechselgeld füllen - Verkaufsstatistik anfordern (zu einer bestimmten Ware) Der Use Case Ware kaufen umfasst alle Schritte, die notwendig sind, eine Ware zu kaufen, angefangen vom Drehen der Drehteller über den Geldeinwurf bis hin zur Waren- und Rückgeldentnahme. b) Spezifizieren Sie die Details des Use Cases Ware kaufen. Verwenden Sie dazu die folgende Spezifikationsschablone (use case template). Ein komplettes Beispiel für die konkrete Verwendung dieses Templates finden Sie auf der folgenden Seite (Tabelle 2: Use Case Kasse füllen ). Use Case Name Auslösender Aktor Zweck / Ziel Eingehende Informationen Ergebnis (Output) Grundlegender Ablauf Fehlerfälle Bemerkungen Tabelle 1: Muster zur Beschreibung eines Use Cases

8 Seite: 8 Die Einträge in der Tabelle haben folgende Bedeutung: Use Case Name: Bezeichnung des Use Case Auslösender Aktor: Festlegung des auslösenden Ereignisses Zweck / Ziel: Angabe des Zwecks, z.b. Kaufen einer Ware Eingehende Information: Informationen die von aussen bereitgestellt werden müssen Ergebnis (Output): Ergebnis des Use cases aus Sicht des Akteurs Grundlegende Ablauf: Beschreibung des grundlegenden Ablaufs (Standardablauf, d.h. den Gutfall ohne Ausnahmen und Fehler). Fehlerfälle: Angabe aller Fehlerfälle Die folgende Tabelle zeigt die Verwendung des Use Case Templates am Beispiel Kasse füllen. Use Case Name / Nummer Auslösender Aktor Zweck / Ziel Eingehende Informationen Kasse auffüllen Service Auffüllen des Automaten mit Wechselgeld Münzart und Anzahl Münzen z.b. 1 Fr. Münzen, 50 Stück Ergebnis (Output) - Grundlegender Ablauf Servicepersonal öffnet Automat mit Schlüssel bzw. Legi-Card 1. Auswahl-Knopf Geldauffüllen betätigen 2. Münzart über Tastatur eingeben (z.b Fr) 3. System zeigt ausgewählte Münzart an 4. Anzahl Münzen über Tastatur eingeben 5. System zeigt Anzahl Münzen an (z.b. 100) 6. gewählte Anzahl Münzen der gewählten Münzart in zugehörigen Münzschacht einlegen 7. Knopf Bestätigen drücken Fehlerfälle Bemerkungen keine Tabelle 2: Use Case Kasse füllen

9 Seite: Objektorientierte Analyse (Aufgabe 2) Führen Sie eine objektorientierte Analyse der Anforderungen durch und entwerfen Sie: - die Klassen (mit Attributen und Operationen) - ein Objektdiagramm als Beispiel sowie das Klassendiagramm und - zwei Sequenzdiagramme zur Darstellung der dynamischen Abläufe sowie die - Klassenbeschreibungen zur Dokumentation der verschiedenen Klassen Hinweis: Wichtig sind die Teilaufgaben bis 4.2.3, Teilaufgabe ist optional Klassen identifizieren Identifizieren Sie alle Klassen und notieren Sie diese in UML Schreibweise: - Attribute: Definieren Sie für jedes Attribut den Namen und den zugehörigen Datentyp. Verwenden Sie hierbei folgende Analyse -Datentypen: String, Integer (ganze Zahl), UInteger (positive ganze Zahl), Float (Gleitkommanzahl 32 Bit), Double (Gleitkommazahl 64 Bit), Fixed (Vorkommastellen, Nachkommastellen), Boolean, Date, und Time. - Abgeleitete Attribute: Identifizieren Sie abgeleitete Attribute. Die Werte von abgeleiteten Attributen können dynamisch berechnet werden. Details zu abgeleiteten Attributen siehe auch Seite 27, Theorie Einführung OO Software-Entwicklung, Teil UML. - Operationen: Definieren Sie alle Operationen einer Klasse, jeweils mit den Parametern und dem Ergebnistyp. Verwenden Sie als Datentypen die Analyse -Datentypen (siehe oben). Als Rückgabetyp kann auch void verwendet werden, falls eine Operation kein Ergebnis zurück liefert. Die set- und get-operationen können Sie weglassen. - Konstruktoren: Entwerfen Sie alle Konstruktoren mit Parametern und Datentypen. Verwenden Sie als Ausgangspunkt Ihrer Modellierung die in Abbildung 3 gezeigten Klassen: - Klasse Automat: sie ist nicht vollständig, d.h. die Attribute und Konstruktoren fehlen noch, auch die Liste der Operationen ist nicht komplett. - Klasse Drehteller: sie ist ebenfalls nicht vollständig, d.h. Konstruktoren und weitere Attribute fehlen noch, auch die Liste der Operationen ist nicht komplett Automat drehen(): void gibverkaufsstatistik (Warenname:String, seit: Date): Integer gibtotalenwarenwert(): Fixed(5,2) füllefach(drehtellernr: UInteger, Warenname: String, Preis: Fixed(2,2), VerfallsDatum: Date)..... Drehteller istoffen: Boolean öffnen(): Boolean schliessen(): void entriegeln(): void Abbildung 3: Klassen Automat und Drehteller

10 Seite: 10 Im Folgenden werden die Operationen dieser zwei Klassen kurz beschrieben: Operationen der Klasse Automat: - drehen() bewirkt, dass alle Drehteller um eine Position nach rechts gedreht werden. - gibverkaufsstatistik(warenname:string, seit: Date) liefert die Anzahl von verkauften Waren mit der Bezeichnung Warenname, die seit dem angegebenen Datum seit bis zum aktuellen Datum (heute) verkauft wurden. - gibtotalenwarenwert() liefert den gesamten Warenwert des Automaten zurück. - füllefach(drehtellernr: UInteger, Warenname: String, Preis: Fixed(2,2), Verfallsdatum: Date) füllt das Fach des Drehtellers mit der übergebenen Drehtellernummer (Parameter DrehtellerNr, Wertebereich: 1..7) mit einer Ware auf, siehe Kapitel 2.3, Rolle des Servicepersonals, Abschnitt Ware auffüllen auf Seite 6. Attribute und Operationen der Klasse Drehteller: - istoffen: beinhaltet den Zustand der Schiebetür eines Drehtellers (geschlossen oder offen) - öffnen(): wird aufgerufen, wenn die Schiebetür betätigt wird. Sie liefert zurück, ob die Schiebetür geöffnet werden kann (true) oder nicht (false). Nur wenn alle Bedingungen, wie in Abschnitt auf Seite 4 beschrieben erfüllt sind (genug Geld eingeworfen, Verfallsdatum nicht überschritten, etc.), wird das Fach vom System entriegelt und kann vom Benutzer geöffnet werden. Falls Sie Parameter für diese Operation benötigen, können Sie dies entsprechend definieren. - schliessen() wird aufgerufen, wenn die Schiebetür wieder geschlossen wird. - entriegeln() wird vom System aufgerufen, wenn die Schiebetür entriegelt werden soll. Wichtige Hinweise: - Modellieren Sie den Warenautomaten so natürlich (realitätsnah) wie möglich. - Modellieren Sie die Bedienelemente (z.b. Drehknopf, Schiebetür ) nicht. Sie sind keine Klassen (da sie lediglich Auslöser von Operationsaufrufen sind; auch speichern sie keine Informationen). - Modellieren Sie aber im Gegensatz dazu die Anzeigeelemente durch eine oder mehrere Klassen. Die Ansteuerung der Anzeigeelemente (z.b. steuern des eingeworfenen Betrags der Anzeige Geldbetrag, siehe Abbildung 1, Seite 3) muss später im Sequenzdiagramm mit Operationsaufrufen ersichtlich sein. - Zeichnen Sie die Rechtecke für die Klassen gross genug, damit Sie nachträglich noch Attribute und Operationen aufnehmen können, wenn Sie die Notwendigkeit nachträglich feststellen (z.b. bei der dynamischen Analyse, Aufgabe c)). Verwenden Sie A3 Papier Klassen- und Objektdiagramm erstellen Zu einem Klassendiagramm gehören die Klassen und alle Beziehungen, einschliesslich Multiplizitäten und eventuelle Beziehungs- und Rollennamen. Für die Darstellung der Klassen im Klassendiagramm reicht es, wenn Sie die Kurznotation verwenden, d.h. eine Klasse wird als Rechteck, das den Namen der Klasse enthält dargestellt. Erstellen Sie ein vereinfachtes Objektdiagramm. Vereinfacht bedeutet in diesem Zusammenhang, dass nicht alle notwendigen Objekte einer Klasse, z.b. alle 16 Fächer eines Drehtellers gezeichnet werden müssen: es reicht wenn Sie jeweils ein Objekt darstellen und dann durch Punkte ( ) die anderen Objekten andeuten. Vereinfacht bedeutet weiterhin, dass Sie nicht alle Attribute eines Objektes aufführen müssen; es genügt, wenn Sie stellvertretend 2 3 Attribute mit Wert definieren und die weiteren Attribute durch Punkte (...) andeuten.

11 Seite: Sequenzdiagramme erstellen a) Sequenzdiagramm Ware kaufen Entwickeln Sie für den Use Case Ware kaufen das Sequenzdiagramm für das grundlegende Szenario genug Geld eingeworfen, Ware vorhanden und nicht abgelaufen, d.h. ohne Fehlersituationen, und zwar für folgenden konkreten Ablauf: Die Kundin: - dreht einmal die Drehteller, d.h. betätigt einmal den Knopf drehen. - wirft danach 2.50 Fr. ein und zwar zunächst eine 2 Fr. Münze, danach eine 0.5 Fr. Münze - kauft ein Mars zu 1.50 Fr. mit Verfallsdatum im 3. Drehteller (von oben gesehen). - beschliesst den Vorgang mit der Betätigung des Geldrückgabeknopfs. Wichtige Hinweise: - Modellieren Sie im Unterschied zu den Klassen (in denen die get und set-operationen nicht sichtbar sind), jetzt im Sequenzdiagramm den Aufruf der set bzw. get-operationen, d.h. der Aufruf dieser Operationen muss im Sequenzdiagramm sichtbar sein. - Bei Operationsaufrufen, die gemäss Klassennotation (siehe Aufgabe 4.2.1) Parameter haben, müssen diese Operationsaufrufe im Sequenzdiagramm auch die Parameterwerte beinhalten. Falls die Operation füllefach() der Klasse Automat (siehe Seite 9) aufgerufen würde, könnten z.b. folgende Parameterwerte verwendet werden: füllefach(2, Mars, 1.50, ). - Zeichnen Sie nur die Operations-Aufrufpfeile, lassen Sie die Ergebnispfeile weg. Verwenden Sie keine loop, opt oder alt Konstrukte. - Lassen Sie zwischen den Operationsaufrufen Platz, damit Sie nachträglich bei Bedarf noch weitere Operationsaufrufe einfügen können. Für die anderen Use Cases, z.b. Automat mit Waren auffüllen sollen keine Sequenzdiagramme entwickelt werden! drehen() :Automat :Kasse :Drehteller... Drehknopf drücken öffnen() Fach öffnen Abbildung 4: Sequenzdiagramm

12 Seite: 12 Das Sequenzdiagramm ist Abbildung 4 zeigt die prinzipielle Idee der Darstellung des Kaufvorgangs. Bedienelemente lösen Operationsaufrufe aus. In der Abbildung 4 ist dies an zwei Beispielen illustriert: Das Bedienelement Drehknopf löst bei Betätigen die Operation drehen() am Objekt Automat aus während das Bedienelement Schiebetür beim Öffnen die Operation öffnen() am zugehörigen Drehteller-Objekt auslöst. Beide Operationen können ihrerseits weitere Operationsaufrufe an anderen Objekten auslösen. b) Sequenzdiagramm Ware kaufen bei Zahlung mit Geldkarte In der Unternehmensleitung wird diskutiert, ob man in zukünftigen Automaten auch eine Bezahlung mit einer aufladbaren Geldkarte (wie an den Automaten der HSR) unterstützen soll, d.h. die Automaten hätten dann sowohl einen Geldeinwurfschlitz als auch einen Kartenschlitz. Überlegen Sie sich, wie die bisherige Modellierung geändert bzw. erweitert werden müsste. - Benötigen Sie weitere Klassen bzw. ändern sich bestehende Klassen? - Wie ändern sich das Klassen- und Sequenzdiagramm? Notieren Sie nur die Änderungen bzw. Erweiterungen zu ihren bisherigen Lösungen (am besten mit einer neuen Farbe): - Klassen identifizieren (Aufgabe 4.2.1) - Klassen- und Objektdiagramm erstellen (Aufgabe 4.2.2) sowie - Sequenzdiagramm erstellen (Aufgabe a). Hinweise: - Überlegen Sie sich zunächst, wie sich die Klassen und das Klassendiagramm ändern. - Wir gehen davon aus, dass entweder per Karte oder bar bezahlt wird Klassenbeschreibungen erstellen (optional, falls noch Zeit) Zu einem Klassendiagramm gehören Klassenbeschreibungen, da das Diagramm sonst nicht ausreichend verständlich ist: - Wofür ist eine Klasse verantwortlich? - Was ist mit einem Attribut gemeint? - Was tut eine Operation (auch Konstruktoren)? - Wozu wird eine Beziehung benötigt? Antworten auf diese Fragen liefern die Klassenbeschreibungen. Sie beschreiben die Klassen, einschliesslich ihrer Attribute, Operationen, Konstruktoren und Beziehungen. Erstellen Sie Klassenbeschreibungen zu allen Klassen ausser den Klassen für die Anzeigen. Verwenden Sie folgende Schablone:: - Aufgabe: stichwortartige Beschreibung der Aufgabe einer Klasse. - Attribute: Aufzählung der Attribute und stichwortartige Beschreibung der Bedeutung. - Operationen: Aufzählung aller Operationen und stichwortartige Beschreibung der Bedeutung. - Konstruktoren: Aufzählung aller Konstruktoren und stichwortartige Beschreibung der Bedeutung. - Beziehungen: stichwortartige Beschreibung aller Assoziationen zu anderen Klassen.

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 21.09.2012 Prüfungsdauer:

Mehr

Software Engineering Analyse und Analysemuster

Software Engineering Analyse und Analysemuster Software Engineering Analyse und Analysemuster Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassendiagramme in der Analyse Im Rahmen der Anforderungsanalyse

Mehr

Vgl. Oestereich Kap 2.7 Seiten 134-147

Vgl. Oestereich Kap 2.7 Seiten 134-147 Vgl. Oestereich Kap 2.7 Seiten 134-147 1 Sequenzdiagramme beschreiben die Kommunikation/Interaktion zwischen den Objekten (bzw. verschiedenen Rollen) eines Szenarios. Es wird beschrieben, welche Objekte

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

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

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

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

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation zwischen

Mehr

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

WORKFLOW DESIGNDOKUMENT

WORKFLOW DESIGNDOKUMENT Architectural Design WORKFLOW DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 2 Gruppe 86 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289] Gruppe 86 Seite

Mehr

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre. Fakultät IV Elektrotechnik/Informatik Klausur Einführung in die Informatik I für Elektrotechniker Name:... Matr.-Nr.... Bearbeitungszeit: 120 Minuten Bewertung (bitte offenlassen : ) Aufgabe Punkte Erreichte

Mehr

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07 Software Engineering 3. Anforderungsanalyse Franz-Josef Elmer, Universität Basel, WS 2006/07 Software Engineering: 3. Anforderungsanalyse 2 Definitionen Anforderungen (Requirements): Beschreibung aller

Mehr

Problemdefinition. Cash Flow Reminder. 1 Problembeschreibung: 2 Projektziel: 3 Aufgaben des Benutzers

Problemdefinition. Cash Flow Reminder. 1 Problembeschreibung: 2 Projektziel: 3 Aufgaben des Benutzers Cash Flow Reminder Problemdefinition 1 Problembeschreibung: Viele Studenten verfügen über ein eher geringes monatliches Budget, mit welchem sie aber alle Lebensunterhaltskosten decken sollten. Deshalb

Mehr

Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel

Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel Übungen zur Vorlesung Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel Übungsblatt 3 - Lösungshilfe Aufgabe 1. Klassendiagramme (9 Punkte) Sie haben den Auftrag, eine Online-Videothek

Mehr

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

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 13. Aufgabe (13 Punkte) Schreiben Sie eine neue Klasse Zahlenanalyse, mit der Integer-Objekte genauer betrachtet werden können. Bei den zu entwickelnden Methoden kann es immer sinnvoll sein, sich den Ablauf

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

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

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungen zur Vorlesung Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungsblatt 3 Lösungshilfe Aufgabe 1. Klassendiagramme (9 Punkte) Sie haben den Auftrag, eine Online

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag:

Mehr

Softwaretechnik (WS 11/12)

Softwaretechnik (WS 11/12) Universität Augsburg, LSt. Softwaretechnik, K. Stenzel, H. Seebach, G. Anders Softwaretechnik (WS 11/12) Lösungsvorschlag 5 Aufgabe 1 (System Behavior: System Sequence Diagrams) (10/5 Punkte) a) Was sind

Mehr

Softwaretechnologie -Wintersemester 2011/2012 - Dr. Günter Kniesel

Softwaretechnologie -Wintersemester 2011/2012 - Dr. Günter Kniesel Übungen zur Vorlesung Softwaretechnologie -Wintersemester 2011/2012 - Dr. Günter Kniesel Übungsblatt 3 - Lösungshilfe Aufgabe 1. Klassendiagramme (9 Punkte) Sie haben den Auftrag, eine Online-Videothek

Mehr

Use Cases. Use Cases

Use Cases. Use Cases Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben

Mehr

SWE5 Übungen zu Software-Engineering

SWE5 Übungen zu Software-Engineering 1 Übungen zu Software-Engineering 1) Klassen und Objekte 2) Telefonanlage 3) Objekt- und Klassendiagramme 4) Assoziationen 5) Telefonanlage (Erweiterung) 6) Fahrzeuge 7) Familien 2 Aufgabe 1: Klassen und

Mehr

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

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel Jason T. Roff UML IT Tutorial Übersetzung aus dem Amerikanischen von Reinhard Engel Inhaltsverzeichnis Inhaltsverzeichnis Einführung 11 Grundlagen der UML 15 Warum wir Software modellieren 16 Analyse,

Mehr

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012 Access 2010 Grundlagen für Anwender inkl. zusätzlichem Übungsanhang ACC2010-UA 3 Access 2010 - Grundlagen für Anwender 3 Daten in Formularen bearbeiten

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

Mehr

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: 11.04.2005. CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: 11.04.2005. CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de DYNAMISCHE SEITEN Warum Scriptsprachen? Stand: 11.04.2005 CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de I N H A L T 1 Warum dynamische Seiten?... 3 1.1 Einführung... 3 1.2 HTML Seiten...

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

OO-Design. Klausur FHF * WI1 / WI2 * SS Name:.../ Semester:...

OO-Design. Klausur FHF * WI1 / WI2 * SS Name:.../ Semester:... OO-Design Klausur FHF * WI1 / WI2 * SS 2000 Name:.../ Semester:... Lineares Benotungsschema: 90 Punkte = Note 1, 30 Punkte = Note 4 Aufgabe 1: (28 Punkte) - Ergänzen Sie zum Fallbeispiel "Seminaranmeldung"

Mehr

SEQUENZDIAGRAMM. Christoph Süsens

SEQUENZDIAGRAMM. Christoph Süsens SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90 Minuten.

Mehr

Beschreibung Kassenprogramm Arda Kassenmodul 2007

Beschreibung Kassenprogramm Arda Kassenmodul 2007 Beschreibung Kassenprogramm Arda Kassenmodul 2007 Voraussetzung: Windows-Betriebssystem (Win 98SE/Win 2000/Win XP), Microsoft Access 97, Bondrucker, Kassentastatur (prog opt.), Kunden-Display (opt.), Angeschlossene

Mehr

Zentrale Mitgliederdatenbank Inkasso Mitgliederbeiträge. Detaillierte Informationen sind im Dokument Verrechnungsmodule ESR im Web vorhanden.

Zentrale Mitgliederdatenbank Inkasso Mitgliederbeiträge. Detaillierte Informationen sind im Dokument Verrechnungsmodule ESR im Web vorhanden. Detaillierte Informationen sind im Dokument Verrechnungsmodule ESR im Web vorhanden. Allgemein Jeder Verein hat eine individuelle Möglichkeit, das Inkasso zu betreiben: - Beträge ohne ES manuell entgegennehmen

Mehr

White Paper "Objektberechtigung"

White Paper Objektberechtigung White Paper "Objektberechtigung" Seite 2 Inhaltsverzeichnis 1. Einführung...3 1.1. Sinn und Zweck der Objektberechtigungen...3 1.2. Wo können Objektberechtigungen vergeben werden?...3 1.3. Welche Berechtigungstypen

Mehr

Probeklausur Softwareengineering SS 15

Probeklausur Softwareengineering SS 15 Probeklausur Softwareengineering SS 15 Hinweis: Die Bearbeitungsdauer entspricht dem Punktewert. Aufgabe 1 (10 min) Beschreiben Sie das Vorgehensmodell Test-Driven-Development (TDD) a) Erläutern Sie das

Mehr

Basis. Schritt 1 Anmelden am Projess Testserver

Basis. Schritt 1 Anmelden am Projess Testserver Basis 2 Schritt 1 Anmelden am Projess Testserver 2 Schritt 2 Arbeitsstunden auf die bereits erfassten Projekte buchen 3 Schritt 3 Kostenaufwand auf die bereits erfassten Projekte buchen 4 Schritt 4 Gebuchte

Mehr

Objektorientierte Analyse (OOA) Inhaltsübersicht

Objektorientierte Analyse (OOA) Inhaltsübersicht Inhaltsübersicht Einführung Anforderungen an die UML-Diagramme Verhalten: Use-Case-Diagramm Verhalten: Aktivitätsdiagramm Verhalten: Zustandsautomat Struktur: Klassendiagramm Seite 1 Einführung In der

Mehr

Technische Dokumentation

Technische Dokumentation Technische Dokumentation der Ontologie Wärmedämmung des Projekts EcoNavi Erstellt für: Bremer Umweltberatung Hamburg, Juli 2005-1 - Inhaltsverzeichnis Einleitung... 2 Aufbau einer Ontologie... 3 Ontologieeditor

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Name: «Vorname» «Name» Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Informatik 12 2 VP je 2 VP 6 VP 0 Notieren Sie alle Antworten in einer Word-Datei Klausur1_«Name».doc

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

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

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Aufgabe 1: Sequenzdiagramm Gegeben ist das in Abbildung 1 dargestellte (vereinfachte) Sequenzdiagramm mit sechs Ereignissen (a-f ).

Aufgabe 1: Sequenzdiagramm Gegeben ist das in Abbildung 1 dargestellte (vereinfachte) Sequenzdiagramm mit sechs Ereignissen (a-f ). VU Objektorientierte Modellierung Übung 4 188.391, SS2007 Tutorenstunden: Di. 8.5.2007 bis Fr. 11.5.2007 Übungsgruppen: Mo. 14.5.2007 bis Fr. 18.5.2007 Aufgabe 1: Sequenzdiagramm Gegeben ist das in Abbildung

Mehr

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

Anleitung für das MS Project Professional 2003 (Deutsche Version) Anleitung für das MS Project Professional 2003 (Deutsche Version) Erstes Starten... 2 Tutorial... 3 Hilfe... 4 Critical Path / Kritischer Weg... 5 Der Critical Path / Kritischer Weg wird nicht korrekt

Mehr

VU Objektorientierte Modellierung Übung 1

VU Objektorientierte Modellierung Übung 1 VU Objektorientierte Modellierung Übung Übungsgruppen: 4.4.2008-8.4.2008 Aufgabe : Strukturmodellierung mittels Klassendiagramm Theoriefragen Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit

Mehr

Software Engineering Übung 4 Architektur, Modulentwurf

Software Engineering Übung 4 Architektur, Modulentwurf software evolution & architecture lab Software Engineering Übung 4 Architektur, Modulentwurf 1 Informationen 1.1 Daten Ausgabe Di 27.10.2009 Abgabe So 08.11.2009 bis 23:59 Uhr Besprechung am Di 17.11.2009

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Prüfung Software Engineering I (IB)

Prüfung Software Engineering I (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 4 A Sommersemester 2015 Prüfung Software Engineering I (IB) Datum : 09.07.2015, 14:30 Uhr Bearbeitungszeit

Mehr

OO-Design. Klausur FHF * WI1 / WI2 * SS 2000 MUSTERLÖSUNG

OO-Design. Klausur FHF * WI1 / WI2 * SS 2000 MUSTERLÖSUNG OO-Design Klausur FHF * WI / WI2 * SS 2000 MUSTERLÖSUNG Aufgabe : (28 Punkte) - Ergänzen Sie zum Fallbeispiel "Seminaranmeldung" (s. Anhang) das vorgegebene Use-Case- Diagramm um die fehlenden Use Cases,

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

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

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Visual C# 2008 Grundlagen und Profiwissen

Visual C# 2008 Grundlagen und Profiwissen Walter Doberenz, Thomas Gewinnus Visual C# 2008 Grundlagen und Profiwissen ISBN-10: 3-446-41440-1 ISBN-13: 978-3-446-41440-2 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41440-2

Mehr

Neben dem Symbol Entwurfsmodus ist das Symbol Befehlschaltfläche zu sehen.

Neben dem Symbol Entwurfsmodus ist das Symbol Befehlschaltfläche zu sehen. Visual Basic / EXCEL Unterrichtsreihe von Herrn Selbach / Makro Programmierung 1. Die Steuerelemente Toolbox Durch Ansicht Symbolleisten Steuerelemente-Toolbox kann man Befehlschaltflächen (CommandButton),

Mehr

cnccut Onlinehilfe - Kombischachteln Automatische NC-Programm-Erstellung

cnccut Onlinehilfe - Kombischachteln Automatische NC-Programm-Erstellung Onlinehilfe - Kombischachteln Automatische NC-Programm-Erstellung IBE Software GmbH; Friedrich-Paffrath-Str. 41; D-26389 Wilhelmshaven Fon: 04421-994357; Fax 04421-994371; www.cnccut.org; info@ibe-software.de

Mehr

FÜR GOOGLE ANDROID OPERATING SYSTEM. Dokumentation. Version 1.2013. 2013 NAM.IT Software-Entwicklung Alle Rechte vorbehalten.

FÜR GOOGLE ANDROID OPERATING SYSTEM. Dokumentation. Version 1.2013. 2013 NAM.IT Software-Entwicklung Alle Rechte vorbehalten. FÜR GOOGLE ANDROID OPERATING SYSTEM Dokumentation Version 1.2013 2013 NAM.IT Software-Entwicklung Alle Rechte vorbehalten. 1 Information Diese Dokumentation beschreibt die Funktionen der kostenpflichten

Mehr

RUP Analyse und Design: Überblick

RUP Analyse und Design: Überblick Inhaltsverzeichnis Übersicht [, 2, 8] 3. Vorgehensweise............................... 5 2 Planungsmethoden 37 2. Definitionsphase.............................. 6 3 Rational Unified Process [5, 6] und

Mehr

Softwaretechnik 2015/2016

Softwaretechnik 2015/2016 Softwaretechnik 2015/2016 PST Lehrstuhl Prof. Dr. Matthias Hölzl HAUPT-/ BACHELOR- SEMINAR ADAPTIVE SYSTEME PST Joschka PROF. DR. Rinke WIRSING 14. JUNI 2009 VORNAME NAME AGENDA Übung 11: 14.01.2016 Schon

Mehr

adiuvo Kasse neue Generation

adiuvo Kasse neue Generation adiuvo Kasse neue Generation Einleitung adiuvo Informatik präsentiert Ihnen die neue Kassenlösung auf Touch-Screen-Basis. (Selbstverständlich lässt sich die Kasse auch über die normale Tastatur und Maus

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

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

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

MindPlan 4. Installations- u. Update-Hinweise. MindPlan 4. Stand: 24. März 2014 Seite: 1/12

MindPlan 4. Installations- u. Update-Hinweise. MindPlan 4. Stand: 24. März 2014 Seite: 1/12 MindPlan 4 Stand: 24. März 2014 Seite: 1/12 Inhalt 1. Informationen zu MindPlan 4... 3 1.1. Neue Funktionen neues Layout... 3 1.2. Lizenzverwaltung (!! Neue Lizenzschlüssel erforderlich!!)... 3 1.2.1.

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

EDV-Umstellung Sparkassen-Rechenzentrum

EDV-Umstellung Sparkassen-Rechenzentrum EDV-Umstellung Sparkassen-Rechenzentrum Ablauf der Umstellung für HBCI in SFirm32 Kundenleitfaden Ausgabe Juni 2009 Version: 9.06.00 vom 26.06.2009 SFirm32-Version: 2.2.2 Inhalt 1 Die SFirm32-Umstellungsassistenten...4

Mehr

Einführung in die Programmierung Lösungen P. Fierz / HS 2011/2012

Einführung in die Programmierung Lösungen P. Fierz / HS 2011/2012 Kapitel 2 Objekte und Klassen Aufgabe 2.1 [Klassen und Objekte] Erklären Sie den Unterschied zwischen einem Objekt und einer Objektreferenz. Ein Objekt enthält Informationen über den Zustand eines Objektes.

Mehr

104 WebUntis -Dokumentation

104 WebUntis -Dokumentation 104 WebUntis -Dokumentation 4.1.9.2 Das elektronische Klassenbuch im Betrieb Lehrer Aufruf Melden Sie sich mit Ihrem Benutzernamen und Ihrem Passwort am System an. Unter den aktuellen Tagesmeldungen erscheint

Mehr

Vorlesung "Software-Engineering"

Vorlesung Software-Engineering Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Aufgabe 1 (Anwendungsfalldiagramm)

Aufgabe 1 (Anwendungsfalldiagramm) Studientag in Hagen Kurs 1793 08.07.2012 Aufgabe 1 (Anwendungsfalldiagramm) In dieser Aufgabe soll ein Anwendungsfalldiagramm für die im Folgenden beschriebenen Abläufe bei dem Kauf einer Fahrkarte an

Mehr

Schritt 1 - Ein Spielfeld

Schritt 1 - Ein Spielfeld Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier

Mehr

Datenbankmodelle 1. Das Entity-Relationship-Modell

Datenbankmodelle 1. Das Entity-Relationship-Modell Datenbankmodelle 1 Das Entity-Relationship-Modell Datenbankmodelle ER-Modell hierarchisches Modell Netzwerkmodell relationales Modell objektorientierte Modelle ER Modell - 2 Was kann modelliert werden?

Mehr

FERNHEIZWERKE Software zur Sammlung der Betriebsdaten

FERNHEIZWERKE Software zur Sammlung der Betriebsdaten FERNHEIZWERKE Software zur Sammlung der Betriebsdaten Über dieses Programm können die Betriebsdaten einer Anlage eingegeben werden und dann automatisch via E-Mail ans Amt für Energieeinsparung an die Email

Mehr

MCRServlet Table of contents

MCRServlet Table of contents Table of contents 1 Das Zusammenspiel der Servlets mit dem MCRServlet... 2 1 Das Zusammenspiel der Servlets mit dem MCRServlet Als übergeordnetes Servlet mit einigen grundlegenden Funktionalitäten dient

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

4 Grundlagen der Datenbankentwicklung

4 Grundlagen der Datenbankentwicklung 4 Grundlagen der Datenbankentwicklung In diesem Kapitel werden wir die Grundlagen der Konzeption von relationalen Datenbanken beschreiben. Dazu werden Sie die einzelnen Entwicklungsschritte von der Problemanalyse

Mehr

Design by Contract with JML

Design by Contract with JML Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

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

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten Matrikelnummer: Punkte: Testklausur 1 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist

Mehr

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014. inkl. zusätzlichem Übungsanhang K-W81-G-UA

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014. inkl. zusätzlichem Übungsanhang K-W81-G-UA Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014 Windows 8.1 Grundkurs kompakt inkl. zusätzlichem Übungsanhang K-W81-G-UA 1.3 Der Startbildschirm Der erste Blick auf den Startbildschirm (Startseite) Nach

Mehr

Inhalt. 2 2016 asello GmbH

Inhalt. 2 2016 asello GmbH Kurzbeschreibung Inhalt Start...3 Der Startbildschirm... 4 Rechnungen erstellen...5 Rechnungen parken...10 Rechnungen fortsetzen... 11 Rechnungsübersicht...12 Rechnung ändern...14 Rechnung stornieren...15

Mehr

Übung bezeichnung titel thema 1..10. Übungsgruppe gruppennr wochentag uhrzeit namementor vornamementor 1..25. Student name vorname matrikelnr

Übung bezeichnung titel thema 1..10. Übungsgruppe gruppennr wochentag uhrzeit namementor vornamementor 1..25. Student name vorname matrikelnr Software Engineering I Lösungsvorschläge zur Klausur vom.8.2007 Aufgabe Gefordert war ein redundanzfreies Klassendiagramm für die beschriebene Anwendungsdomäne. Zwei (von verschiedenen möglichen) Lösungen

Mehr

Software-Engineering SS03. Zustandsautomat

Software-Engineering SS03. Zustandsautomat Zustandsautomat Definition: Ein endlicher Automat oder Zustandsautomat besteht aus einer endlichen Zahl von internen Konfigurationen - Zustände genannt. Der Zustand eines Systems beinhaltet implizit die

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Klausur "OOAD" im SS 2009. Name, Vorname: Matrikel-Nr:

Klausur OOAD im SS 2009. Name, Vorname: Matrikel-Nr: Klausur "OOAD" im SS 009 Name, Vorname: Matrikel-Nr:.... Bitte tragen Sie zuerst Ihren Namen und Ihre Matrikelnummer ein. Lesen Sie jeweils vor Erarbeitung der Lösung die ganze Aufgabenstellung durch.

Mehr

Projekttitel:Sleep-2-Go Projekthomepage:swe2012.webnode.at

Projekttitel:Sleep-2-Go Projekthomepage:swe2012.webnode.at Software Engineering Übung, LVNr: Übungsleiter: Brezany Designmodell v.2.0 Projekttitel:Sleep-2-Go Projekthomepage:swe2012.webnode.at Gruppenmitglieder: MatNr: 0902611 0840471 1007727 Nachname: Vorname:

Mehr

Praktikum Software Engineering

Praktikum Software Engineering Praktikum Software Engineering Verwendung von Enterprise Architect Pascal Weber, David Kulicke KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Um eine neue Fahrt zu beginnen

Um eine neue Fahrt zu beginnen Kurzanleitung elektronisches Fahrtenbuch (efa) Wenn du der erste Nutzer des Tages bist, schalte bitte den Computer durch drücken des großen runden Startknopfs und wenn nötig des Knopfs am Bildschirm rechts

Mehr

6. Zustandsorientierte Modellierung

6. Zustandsorientierte Modellierung bertram.hafner@t-online.de Informatik 11 Seite 25 6. Zustandsorientierte Modellierung Im Alltag benutzen wir vielfältige Automaten: denke an Getränkeautomat, Ampelanlage, Kaffeeautomat, Waschmaschine,

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

Mehr

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

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr