WS 98/99: Softwaretechnik - Übungsblatt 3

Abgabe bis 23.11., 12.15 Uhr


Aufgabe 3.1 (20 Punkte)

Ausgehend von der in der Vorlesung vorgestellten Klassenhierarchie von graphischen Objekten, Shape, Circle, Polygon, Parallelogram, Rhombus, Rectangle und Square, vervollständigt und erweitert die Spezifikationen für die angeführten Klassen. Gebt für jede Klasse die Invariante an, das Modell und für jede Operation die Vor- und Nachbedingung.

Die Klassenhierarchie soll in einer Hierarchie von Java-Interfaces beschrieben werden. Hierbei ist zu beachten, daß alles, was sich nicht in Java-Syntax darstellen lässt, durch Kommentare spezifiziert wird: Vor- und Nachbedingungen, Invarianten. Wo es angebracht ist, können natürlich auch Exceptions verwendet werden um verletzte Vorbedingungen abzufangen.

Gebe Spezifikationen für die Operationen move und rotate an. Beachte, daß nicht jede Operation für Unterklassen neu spezifiziert werden muß, wenn keine Redefinition notwendig ist.

Erweitere die Klassen um die Operation area, welche die Fläche eines graphischen Objektes berechnet. Für die Klassen Shape und Polygon ist das nicht erforderlich.

Aufgabe 3.2 (30 Punkte)

Entwerft eine Klassenhierarchie, die die meisten Universitätsangehörigen modelliert. Also Studenten und Angestellte der Universität. Bei den Angestellten ist zu unterscheiden zwischen Dozenten (Lehrpersonal) und nicht in der Lehre Beschäftigten. Überlegt Euch, was diese verschiedenen "Klassen" gemeinsam haben, damit diese Eigenschaften in einer gemeinsamen Ursprungsklasse spezifiziert werden können.

Dozenten haben jedes Semester ein Lehrdeputat zu erfüllen. Dieses ist je nach Art der Anstellung verschieden. Professor(innen)en haben i.d.R. 8 SWS pro Semester zu absolvieren. Wiss. Mitarbeiter(innen) 4 SWS. Ebenfalls in die Modellierung sollte die Gehaltsklasse einfließen; z.B. IIa für Wiss. Mitarbeiter und C2-C4 für Professor(innen)en. Wer das wünscht, kann auch Wiss. Assistent(innen)en (4 SWS, C1) in die Modellierung mitaufnehmen.

Studentinnen und Studenten können sich für ein oder zwei Hauptstudiengänge (als Magister oder Diplomstudiengang) immatrikulieren (wobei wir hier außer Acht lassen, daß jemand vor der Immatrikulation noch kein(e) Student/in ist), und sich jedes Semester zurückmelden. Oder auch ein Feriensemester nehmen. Bei jeder Rückmeldung steigt die Anzahl der Fachsemester. Wie kann dieser Sachverhalt in einer Klasse ausgedrückt werden? Wenn Veranstaltungen belegt werden, und Prüfungen dabei abgelegt werden, steigt auch die Anzahl der absolvierten SWS. Ab einer bestimmten Zahl von SWS kann die Prüfung für das Vordiplom abgelegt werden. Weitere Ereignisse sind die Hauptdiplomsprüfung (oder das erste Staatsexamen beim Magister) und die Exmatrikulation.

Alle diese Vorgänge lassen sich durch Operationen (Ereignisse!), Invarianten, Vor- und Nachbedingunen ausdrücken, die entsprechende Einflüsse auf das zugrundeliegende Modell haben. Wer will kann auch Besonderheiten in das Modell, wie die von der Fachsemesterzahl abhängige Höhe der Studiengebühren in die Spezifikation mitaufnehmen; oder auch Veranstaltungen (Grund- und Hauptstudium!).

Spezifiziert die Klassenhierarchie formal [formalsprachlich].


zuletzt geändert am 16.11. von Arnulf