Objektorientierte Programmiertechniken
LVA 185.A01, VU, 3 Ects, 2012/2013 W

9. Übungsaufgabe

Themen:

Entwurfsmuster, Untertypbeziehungen, gesamter Stoff

Termine:

Ausgabe: 12.12.2012
reguläre Abgabe: 19.12.2012, 12:00 Uhr
nachträgliche Abgabe: 09.01.2013, 12:00 Uhr

Abgabeverzeichnis:

Gruppe/Aufgabe9

Programmaufruf:

java Test

Grundlage:

Skriptum, Schwerpunkt auf den Abschnitten 5.1, 5.2.1 und 5.2.2

Aufgabe

Welche Aufgabe zu lösen ist:

In einer Bäckerei werden vor Weihnachten Kekse gebacken. Jedes Keks hat eine bestimmte Form (rund, in der Form eines Mondes und in der Form eines Weihnachtsmannes) und besteht aus einer bestimmten Teigart (Mürbteig, Zimtsternteig oder Schololadenteig). Neben einfachen Keksen gibt es Doppelkekse, die aus zwei einfachen Keksen und einer Füllung (Schokolade oder Marmelade) bestehen. Es gibt Keksbackmaschinen, die nur Kekse mit einer bestimmten Form, aber mit unterschiedlichen Teigarten backen können. Weiters gibt es eine Backmaschine für Doppelkekse. Diese Maschine wird mit einem Keks beladen, erkennt automatisch die Teigart und Form dieses Kekses, bäckt ein äquivalentes Keks und erzeugt daraus ein Doppelkeks, das mit einer bestimmten Füllung gefüllt ist. Kunden geben Bestellungen an die Bäckerei ab. Eine Bestellung ist eine Liste von Positionen, die jeweils die Anzahl, Form, Teigart und Fülle (wenn Doppelkekse gewünscht sind, sonst keine Fülle) angeben. Als Ergebnis erhält man eine Keksdose, die mit allen entsprechenden Keksen gefüllt ist.

Schreiben Sie ein Javaprogramm, das die Bäckerei simuliert. Entwickeln Sie Klassen(hierarchien) um Kekse, Keksbackmaschinen (für einfache Kekse und Doppelkekse), Bestellungen und Keksdosen darzustellen.

Folgende Methoden und Funktionalitäten sollen unterstützt werden:

Schreiben Sie eine Klasse Test, die mehrere Bestellungen erstellt, die Bestellungen auf die Standardausgabe ausgibt, entsprechende Keksdosen erzeugt und befüllt, und die Inhalte der Keksdosen anzeigt.

Warum die Aufgabe diese Form hat:

Diese Aufgabe enthält Details, die den Einsatz bestimmter Entwurfsmuster nahelegen. Durch mehrere Arten von Backmaschinen, Keksformen, Füllungen, etc. ergibt sich eine umfangreiche Typstruktur, die auch parallele Teilstrukturen enthält. Alle Schwierigkeiten in der Aufgabe sollten mit bekannten Mitteln leicht zu lösen sein. Das gibt Ihnen zum Abschluss der Laborübung Gelegenheit zu zeigen, dass Sie schöne, einfache und gut wartbare Programme schreiben können.

Wie die Aufgabe zu lösen ist:

Es ist wichtig, alle Untertypbeziehungen zu finden und die Ersetzbarkeit auf geeignete Weise (durch durchdachte Zusicherungen, aber auch durch Testfälle) sicherzustellen. Vererbungsbeziehungen, die nicht gleichzeitig auch Untertypbeziehungen sind, müssen unbedingt vermieden werden. Andererseits sollen überall Untertypbeziehungen hergestellt werden, wo das möglich ist. Überlegen Sie sich, wo Sie (abstrakte) Klassen und Interfaces verwenden. Beachten Sie die Sichtbarkeit. Benutzen Sie Generizität und vorgefertigte Containerklassen, wo dies sinnvoll erscheint.

Diese Aufgabe enthält wahrscheinlich weniger inhaltliche Schwierigkeiten als vorangegangene Aufgaben. Gerade deswegen sollten Sie ein schönes, einfaches und gut wartbares Programm abliefern, da solche Qualitätskriterien stärker in die Beurteilung einfließen als gewohnt.

Was im Hinblick auf die Beurteilung zu beachten ist:

Schwerpunkte bei der Beurteilung liegen auf Untertypbeziehungen und Entwurfsmustern. Kräftige Punkteabzüge gibt es für

Was im Hinblick auf die Abgabe zu beachten ist:

Verzichten Sie auch bei der Lösung dieser Aufgabe auf die Verwendung von packages und Verzeichnissen innerhalb des Abgabeverzeichnisses Gruppe/Aufgabe9. Schreiben Sie (abgesehen von geschachtelten Klassen) nicht mehr als eine Klasse in jede Datei.
Complang
Puntigam
   Kontakt
   Research
   Lehre
      OOP
      Typsysteme
      EP2
      FOOP
      Prog.spr.
      frühere Lehre
         LVAs 2017 W
         LVAs 2017 S
         LVAs 2016 W
         LVAs 2016 S
         LVAs 2015 W
         LVAs 2015 S
         LVAs 2014 W
         LVAs 2014 S
         LVAs 2013 W
         LVAs 2013 S
         LVAs 2012 W
            PK
            OOP
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
               4. Aufgabe
               5. Aufgabe
               6. Aufgabe
               7. Aufgabe
               8. Aufgabe
               9. Aufgabe
            Typsysteme
         LVAs 2012 S
         LVAs 2011 W
         LVAs 2011 S
         LVAs 2010 W
         LVAs 2010 S
         LVAs 2009 W
         LVAs 2009 S
         LVAs 2008 W
         LVAs 2008 S
         LVAs 2007 W
         LVAs 2007 S
         LVAs 2006 W
         LVAs 2006 S
         LVAs 2005 W
         LVAs 2005 S
         LVAs 2004 W
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
Tutoren
Lehrunterlagen
vorige Aufgabe
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2012-12-12 (Puntigam)