Fortgeschrittene objektorientierte Programmierung
LVA 185.211, VL 2.0, 2005 S

2. Übungsaufgabe

Lernen Sie Eiffel und entwickeln Sie ein Programm in Eiffel (siehe unten). Ziel der Aufgabe ist das Sammeln von Erfahrungen zu Umfangreiche Informationen zur Programmiersprache Eiffel (Tutorials, Bücher, Beispiele, etc.) finden Sie unter dem Cetus-Link zu Eiffel. Zur Lösung der Übungsaufgabe stehen Ihnen zwei grundlegend verschiedene Eiffel-Systeme zur Verfügung: ISE-Eiffel als kommerzielles System mit umfangreicher Entwicklungsumgebung (empfohlen) und SmartEiffel als open source System (GNU, eher nur für Puristen). Da sich die Bibliotheken dieser beiden Systeme stark voneinander unterscheiden, ist eine Portierung von einem System auf das andere oft mit erheblichem Aufwand verbunden.

ISE-Eiffel:

Die Firma ISE wurde von Bertrand Meyer, dem Entwickler von Eiffel, gegründet und vertreibt vor allem Eiffel-Produkte und Support dafür. Eine Kopie der kommerziellen Softwareentwicklungsumgebung EiffelStudio wurde der TU Wien freundlicherweise gratis zur Verfügung gestellt. Sie können diese Entwicklungsumgebung in der Übung verwenden. Dazu müssen Sie sich (ab 4.5.2005) auf expi2.complang.tuwien.ac.at (nicht auf b3 wegen anderer Linux-Version) einloggen. Sie haben auf expi2 dasselbe Login, Passwort und Home-Directory wie auf b3. Aber nur auf expi2 können Sie durch den Befehl estudio EiffelStudio starten. Diese Software stellt Ihnen alle Funktionen zur Verfügung, die Sie zur Lösung der Aufgabe brauchen (und noch viel mehr). Sowohl zu EiffelStudio als auch zu Eiffel selbst finden Sie umfangreiche online Dokumentation. Beachten Sie, dass auf expi2 keine Software installiert ist, die Sie für andere Teile der Übung benötigen.

Bevor Sie unter Ihrem Account estudio aufrufen können, müssen Sie drei Shell-Variablen setzen bzw. ändern. Unter der bash reichen diese drei Zeilen:

export ISE_EIFFEL=/usr/local/Eiffel55
export ISE_PLATFORM=linux-glibc2.1
export PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
Für eine andere Shell sind die Zeilen entsprechend anzupassen. Diese Zeilen sind nach jedem Einloggen (am besten in .envrc) auszuführen.

Es gibt eine etwas abgespeckte frei verfügbare Version von Eiffel-Studio, die Sie auf Ihrem eigenen Rechner installieren können. Für die Übung ist diese freie Version vollkommen ausreichend.

SmallEiffel:

SmallEiffel wurde als GNU-Projekt entwickelt, um neben dem kommerziellen ISE-Eiffel auch ein frei verfügbares open source Eiffel zu haben. Aus rechtlichen und historischen Gründen gibt es bedeutende Unterschiede zwischen SmallEiffel und ISE-Eiffel, vor allem hinsichtlich der Bibliotheken. SmallEiffel ist auf der b3 vorinstalliert, und der Compiler ist mittels compile aufrufbar. Es gibt jedoch keine integrierte Entwicklungsumgebung. Sourcen und Dokumentation zu SmallEiffel finden Sie unter http://smarteiffel.loria.fr/index.html. Wenn Sie SmallEiffel auf Ihrem eigenen Rechner installieren wollen, beachten Sie bitte, dass die Readme-Dateien im Paket unvollständig sind/waren; befolgen Sie die Installationsschritte auf den Web-Seiten und erzeugen Sie zwei entsprechende Konfigurations-Dateien und eine Shell-Variable, bevor Sie mit der automatischen Installation beginnen - zumindest für Versionen aus dem ersten Quartal 2004.

Aufgabe:

Folgende Aufgabenstellung soll als Anregung dienen. Wenn Sie wollen, können Sie in Eiffel auch eine andere Aufgabe vergleichbaren Umfangs lösen, durch die Sie die eingangs genannten Erfahrungen sammeln.

Schreiben Sie ein Programm zur Verwaltung von Konten. Jedes Konto verfügt über Angaben zu den Zeichnungsberechtigten, einen Kreditrahmen (bei dessen Überschreitung die Bank in der Regel keine weitere Überziehung zulässt), je einen Prozentsatz für die Sollverzinsung (Zinsen für den Betrag, um den das Konto überzogen ist) und Habenverzinsung (Zinsen für das Guthaben am Konto) und den aktuellen Betrag am Konto. Es sollen Operationen für Bareinzahlungen, Barauszahlungen, Überweisungen zwischen Konten sowie Abfragen und Änderungen der zu den Konten gespeicherten Daten (ausgenommen Änderungen des Guthabens) unterstützt werden.

Auf Konten sollen zumindest folgende Zusicherungen gelten: Die Verzinsung und der Kreditrahmen sollen stets innerhalb der vom Kreditinstitut vorgegebenen Grenzen bleiben. Es gibt einen Mindestbetrag von 5 Euro für jede Einzahlung, Auszahlung und Überweisung.

Entwickeln Sie zwei Untertypen des Kontos: Ein Studentenkonto und ein Pensionskonto. Diese Arten von Konten sollen jeweils nur einen Zeichnungsberechtigten haben, der Student bzw. Pensionist ist. Überprüfen Sie, ob die Zeichnungsberechtigten tatsächlich die richtigen Typen haben, wobei Student und Pensionist Untertypen von Person sind. Studenten- und Pensionskonten sollen folgende Unterschiede zu normalen Konten aufweisen: Für Verzinsungen und Kreditrahmen gelten engere Grenzen als bei normalen Konten, dafür gelten niedrigere Mindestbeträge für Einzahlungen, Auszahlungen und Überweisungen (1 Euro). Überlegen Sie sich weitere Zusicherungen, die die Möglichkeiten und vor allem Grenzen von Zusicherungen in Eiffel demonstrieren.

Schreiben Sie ein einfaches Programm zum Testen der Konten (interaktiv oder auch nicht), das auch die Einschränkungen von CAT calls auslotet. Achten Sie generell auf ein sinnvolles Sichtbarmachen von features in anderen Programmteilen.

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
         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
            Prog.spr.
            FOOP
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
         LVAs 2004 W
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
Eiffel (Cetus-Link)
EiffelStudio
EiffelStudio Doku
SmartEiffel
vorige Aufgabe
nächste Aufgabe
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2005-05-02 (Puntigam)