Andreas Solymosi

Objektdiagramme für Scala

Klassendiagramme[1] sind ein hervorragendes Werkzeug, um statische Zusammenhänge zwischen Softwarekomponenten darzustellen. Hierfür gibt es ausgereifte Standards, wie UML[2]. Statisch sind diejenigen Zusammenhänge, die sich nach der Fertigstellung des Programms nicht mehr ändern: Typischerweise werden diese Strukturen vom Compiler bearbeitet und stehen zur Laufzeit fest. Es gibt jedoch Programmelemente, die sich typischerweise zur Laufzeit ändern: die Variablen und Objekte. Nicht ihre Struktur (sie wird vom Klassendiagramm bestimmt), wohl aber ihre Inhalte. Diese werden vom Prozessor – im Falle von Scala vom Java-Interpreter – bearbeitet.

Um diese dynamischen Änderungen (und damit die Funktionsweise eines objektorientierten Programms) darzustellen, sind Objektdiagramme geeignet. Hierfür gibt es keine allgemein anerkannten Standards. Für didaktische Zwecke[3] hat sich die im Folgenden vorgestellte Darstellungsweise bewährt.

Ein Objektdiagramm ist immer ein Schnappschuss zu einem bestimmten Zeitpunkt des laufenden Programms. Es dient zum Verständnis, welche Strukturen (Zusammenhänge zwischen Objekten und Variablen) zur Laufzeit entstehen und wie sie sich durch einzelne Programmschritte verändern – im Endeffekt, wie das Programm funktioniert.

Die Vorstellung orientiert sich an den Programmiersprache Scala und Java (insbesondere an die Funktionsweise der Virtuellen Maschine), ist aber für andere Sprachen wie C#, C++ oder Ada geeignet. Im Folgenden werden wir Scala-Programme aus didaktischen Zwecken öfters „im Java-Stil“ schreiben: Viele Fähigkeiten von Scala (wie z.B. starke Inferenzen) werden nicht benutzt, um die Verständlichkeit der Programme und somit das Lerneffekt zu erhöhen.

1. Variablen

[1] s. z.B. http://de.wikipedia.org/wiki/Klassendiagramm

[2] Unified Modeling Language, http://www.uml.org

[3] z.B. beim Programmiersprachunterricht für Anfänger in verschiedenen Informatikstudiengängen an der Beuth Hochschule für Technik in Berlin


Inhaltsverzeichnis

Version: 5. Dezember 2010

© Prof. Solymosi, 2010, Beuth-Hochschule für Technik Berlin