Objekte beim Softwareentwurf
Häufig steht man bei der Entwicklung eines Softwareprogramms vor einem Problem, bei dem es darum geht Abläufe aus der realen Welt in einem Computerprogramm abzubilden.
Dabei legt man - ähnlich wie bei der Modellierung von Datenbanken - eine "Miniwelt" zugrunde, die man als Grundlage der Softwareentwicklung verwendet.
Konkrete oder abstrakte Objekte der realen Welt werden dabei für die Modellierung - vereinfacht - in das Softwareprojekt übernommen. Wichtig ist dabei, dass ein "Objekt" in diesem Sinne eine klar umrissen Einheit mit einer relevanten Bedeutung für die Problemstellung darstellt, die modelliert werden soll.
Objekte in der Miniwelt
Wir wollen ein Städteregister entwerfen - Objekte, die von besonderem Interesse für unser Vorhaben sind sind sicherlich die Städte: Das Objekt Stadt, der realen Welt. Ein solches Objekt hat sehr viele Aspekte, von denen uns je nach konkretem Vorhaben nur ein Bruchteil interessieren dürfte - das ist auch damit gemeint, dass wir stets eine "Miniwelt" modellieren. Wir werden immer zahlreiche Eigenschaften der realen Situation absichtlich vernachlässigen, die Kunst besteht hier in der richtigen Auswahl, passend zum zu lösenden Problem.
In diesem Beispiel beschränken wir uns auf die Eigenschaften Einwohnerzahl, Bundesland und KFZ-Kennzeichen der "Stadt"-Objekte. Andere Eigenschaften wie Höhe, Regierungsbezirk, Gemeindeschlüssel … vernachlässigen wir.
Bei der Abbildung der Objekte in der Softwareentwicklung wird aus den "realen" Objekten und ihren Gemeinsamkeiten ein Bauplan - eine Klasse - entwickelt:
Begriffe:
- Die farbigen Kästen repräsentieren konkrete Objekte, sie heißen Objektdiagramm.
- Die Darstellung der Klasse, aus denen die Objekte instanziiert werden nennt man Entwurfsdiagramm. Im Entwurfsdiagramm kann man alle für das Modell wichtigen Attribute der Objekte mit ihren Typen erkennen, außerdem alle wichtigen "Fähigkeiten" der Objekte - Methoden mit ihren Rückgabetypen. Im Entwurfsdiagramm nicht dargestellt werden Getter- und Setter-Methoden.
(A1)
(A) Entwickle Objektdiagramme zur Modellierung der wirtschaftlichen Stärke einiger europäischer Länder. Welche Attribute sind hierfür von Interesse? Wie könnte man die wirtschaftliche Stärke vergleichbar machen?
(B) Entwickle ein Entwurfsdiagramm für eine Klasse, aus der die Länder-Objekte instanziiert werden können. Finde Methoden für die Klasse.
(A2)
(A) Vervollständige die Objektdiagramme.
(B) Entwickle ein Entwurfsdiagramm für eine passende Klasse. Wäre es möglich, auf eines der Attribute zu verzichten und dieses durch eine Methode zu ersetzen?
(A3)
In der Schulverwaltung soll eine Schüler:in mit den Merkmalen Vorname, Name, Geburtsdatum und Klassenstufe gespeichert werden. Der/Die Schüler:in kann versetzt und aus der Schule ausgeschlossen werden.
(A) Gib drei Objektdiagramme für "Schülerobjekte" an.
(B) Entwickle ein Entwurfsdiagramm für die Klasse "Schueler", bei dem du Eigenschaften und "Fähigkeiten" berücksichtigst.
(C) Erkläre die Aussage "Eine Klasse ist eine Abstraktion von Objekten" anhand des Beispiels der Schülerverwaltung.