Fortgeschrittene objektorientierte Programmierung
LVA 185.211, VU, 3 ECTS, 2015 S

3. Übungsaufgabe

Lernen Sie Eiffel und entwickeln Sie ein Programm in Eiffel (siehe unten). Jedes Mitglied einer Übungsgruppe soll sich in etwa gleichem Maße an dieser Aufgabe beteiligen. Ziel der Aufgabe ist das Sammeln von Erfahrungen zu Zur Lösung der Übungsaufgabe verwenden Sie am besten ISE-Eiffel. Das als GNU-Projekt in Konkurrenz dazu entwickelte SmartEiffel ist weder mit dem Eiffel-Standard noch mit ISE-Eiffel kompatibel und scheint seit einiger Zeit nicht mehr weiterentwickelt zu werden.

ISE-Eiffel:

Die Firma ISE wurde von Bertrand Meyer, dem Entwickler von Eiffel, gegründet und vertreibt vor allem Eiffel-Produkte und Support. Die Eiffel-Entwicklungsumgebung von ISE, EiffelStudio, ist für die Entwicklung von Open-Source-Software auf vielen Plattformen frei verfügbar. Die kommerzielle Version unterscheidet sich davon nur in den Lizenzvereinbarungen und im Support. Sowohl zu EiffelStudio als auch zu Eiffel selbst finden Sie umfangreiche Online-Dokumentation.

Fragen:

Beantworten Sie anhand einer Beispielaufgabe (siehe unten) folgende Fragen:

Aufgabe:

Folgende Aufgabenstellung soll als Anregung dienen. Sie können auch jede beliebige andere Aufgabe vergleichbaren Umfangs in Eiffel lösen. Es geht nicht um die Lösung der Aufgabe selbst, sondern um die Beantwortung obiger Fragen. Alle Mitglieder jeder Übungsgruppe sollen dabei mitwirken.

Schreiben Sie ein Programm zur Verwaltung der Ergebnisse von Mäuserennspielen. Jedes Spiel verwendet eine bestimmte Version des Rennprogramms und erstreckt sich über mehrere Runden mit teilweise unterschiedlichen Levels. Die Anzahl der Siege der einzelnen Spieler(innen) in jedem Level werden festgehalten und können später abgefragt und nach verschiedenen Kriterien ausgewertet werden. Auch die unterschiedlichen Versionen des Rennprogramms und deren Levels sollen zusammen mit deren Entwickler(inne)n festgehalten und abgefagt werden können.

Verschiedene Arten von Personen sind zu unterscheiden: Spieler(innen), Entwickler(innen) von Versionen und Entwickler(innen) von Levels. Ein und dieselbe Person kann zu mehreren Arten gehören, und in verschiedenen Programmteilen sind durch Verwendung von Typen nur bestimmte Arten von Personen zugelassen. Durch mehrere Typen von Personen und mehrere Typen verwalteter Daten (Spielergebnisse, Versionen, Levels, etc.) sollen parallele Typhierarchien entstehen, sodass sich Einsatzmöglichkeiten für CAT-Calls ergeben.

Bei der Verwendung von Zusicherungen sind der Fantasie kaum Grenzen gesetzt. Beispielsweise könnte man die Anzahl der Runden, Levels und Spieler(innen) pro Spiel sowohl nach unten als auch nach oben begrenzen. Man könnte auch die Anzahl der Teilnahmen von Personen an Spielen bzw. in der Entwicklung in einem bestimmten Zeitraum nach unten und oben beschränken. Überlegen Sie sich Zusicherungen, welche die Möglichkeiten und vor allem Grenzen der Verwendung von Zusicherungen demonstrieren.

Nehmen Sie Änderungen an allen Teilen des Programms vor, hauptsächlich solche, die sich auf Zusicherungen auswirken. Führen Sie bewusst Situationen herbei, in denen Zusicherungen verletzt und CAT-Calls nötig werden, die Ausnahmen werfen. Versuchen Sie das System in diesen Situationen zu überlisten, sodass das Programm ohne Ausnahmen läuft, obwohl die eigentlichen Ursachen der Probleme noch immer existieren.

Achten Sie generell auf ein sinnvolles Sichtbarmachen von Features in anderen Programmteilen sowie auf Eiffel-typische Kommentare (= sprechende Kommentare an den richtigen Stellen).

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
            PK
            GPK
            PP
            FOOP
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
            Prog.spr.
         LVAs 2014 W
         LVAs 2014 S
         LVAs 2013 W
         LVAs 2013 S
         LVAs 2012 W
         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:
vorige Aufgabe
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2015-03-26 (Puntigam)