logo of the SSW institute
Institut für Systemsoftware
Johannes Kepler Universität Linz
Fachbereich Informatik
logo of the Cristian Doppler Research Association
Christian Doppler Labor
Automated Software Engineering

Home

General
Staff
Contact
Partners
Alumni

Research
Areas
Projects
Papers
Books
Reports
Awards

Teaching
Lectures
Exams
B.Projects
M.Theses
PhD Theses
Go Abroad

Misc
Library
Seminars
Gallery
Links
Search

Webmaster


logo of the Johannes Kepler University (JKU)

Übungsteil zu objektorientierten Programmiersprachen

Ziel

Sammeln von Erfahrungen mit einem rein objektorientierten Softwareentwicklungsstil.

Methode

Einarbeitung in Smalltalk als Beispiel für eine rein objektorientierte Sprache.

Aufgabe

Entwickeln Sie ein einfaches Zeichenprogramm für Linien.
Eine genaue Spezifikation der Aufgabe wird hier mit Absicht nicht angegeben. Es bleibt Ihnen überlassen, wie viel an Funktion Sie in das Programm aufnehmen. Ihre Lösung sollte aber zumindest die folgenden Funktionen aufweisen:

  • In einem Fenster sollen mit der Maus (z.B. durch Klicken und Ziehen) Linien gezeichnet werden können.
  • Neue Linien werden zur bisherigen Zeichnung hinzugefügt.
  • Die jeweils letzte Linie soll mit einem Undo-Knopf entfernt werden können.
  • Mit einem Clear-Knopf kann man die gesamte Zeichnung löschen.
Die grafische Darstellung muss nicht ästhetisch ansprechend sein oder eine besonders tolle und bequeme Benutzerschnittstelle aufweisen. Es reicht, wenn das Programm grundsätzlich funktioniert. Viel wichtiger im Sinne der Übung ist, dass Sie versuchen, die Aufgaben in einem typischen Smalltalk-Stil zu lösen. Sie sollten sich dabei mit den folgenden Themen auseinandersetzen:
  • Implementieren eines Modells für die Linienzeichnung
  • Anzeige der Linien
  • Behandeln von Maus-Klicks
  • Knöpfe zum Auslösen von Aktionen (Undo, Clear)

Entwicklungsumgebung

Squeak ist eine Open-Source-Smalltalk-Umgebung, die u.a. für Windows, Mac und diverse Unix-Versionen zur Verfügung steht.
Nähere Informationen, Tutorials und Beispiele zu Squeak und Smalltalk finden Sie auf der Dokumentationsseite von Squeak.org.

Erwartete Ergebnisse

Bei der Besprechung Ihrer Ergebnisse wird von Ihnen eine kritische Reflexion über Ihre Implementierung erwartet. Welche Spracheigenschaften von Smalltalk haben Sie besonders genutzt? Welche waren hilfreich, welche hinderlich bei der Entwicklung? In welchen Aspekten würde Ihre Lösung anders aussehen, wenn sie z.B. in Java entwickelt worden wäre?

Bei der Übungsbesprechung müssen Sie auch mit Fragen zu den Standardklassen von Smalltalk rechnen. Machen Sie sich daher während der Entwicklung mit den verfügbaren Klassen der Smalltalk-Klassenbibliothek vertraut. Sie sollten begründen können, warum Sie sich für oder gegen den Einsatz bestimmter Klassen entschieden haben.

Abgabe

Das Projekt ist am Ende des Semesters (18. Jänner 2012) persönlich abzugeben. Beginnen Sie mit dem Projekt jedoch nicht erst am Ende des Semesters, sondern betrachten Sie es als begleitende Übung während des Semesters.

Die Abgabe erfolgt im 10-Minuten-Takt im Zimmer HF 327 (Hochschulfonds-Gebäude, 3. Stock) nach der folgenden Einteilung:

08:30: Stephan Leitner
08:40: Franz Markus Simader
08:50: Martin Preinfalk
09:00: Daniel Neidhart
09:10: Daniela Lettner
09:20: Johannes Pieringer
09:30: Philipp Mitterer
09:40: Christine Atzmüller
09:50: --
10:00: Michael Jakubec
10:10: Franz Schickermüller
10:20: Martin Wolfmayr
10:30: Daniel Müller
10:40: Markus Riedl-Ehrenleitner
10:50: Stefan Fischer
11:00: --
11:10: Benedikt Aumayr
11:20: Gerald Heilmann
11:30: Christoph Wiesner
11:40: Evelyn Nicole Haslinger
11:50: Sebastian Schubert
12:00: Alexander Ritt
12:10: Stefan Neuhuber
12:20: Sebastian Wilms
12:30: Florian Angerer
12:40: Andreas Greilinger
12:50: Konstantin Bina
13:00: Klaus Mayer
13:10: Martin Lettner
13:20: Johannes Zarl
13:30: --
13:40: --
13:50: --
14:00: --
14:10: --
14:20: --
14:30: --
14:40: --
14:50: --
15:00: Florian Kölbleitner
15:10: Seyed Omid Saberi Fathi
15:20: Manuela Pollak
15:30: Michael Herceg
15:40: Mathias Pinecker
15:50: Gregor Gaisbauer