Beispiel Ein Konto
Auf ein Konto kann etwas gebucht werden. Ein Konto hat einen Saldo (Kontostand). Ein bekannte Beispiel für ein Konto ist das Girokonto, das von einer Bank verwaltet wird, aber auch im Rahmen der doppelten Buchführung werden Konten verwendet.
Anforderungen
Ein Konto soll modelliert werden, dabei soll ein Betrag eingezahlt werden können und der Saldo soll ermittelt werden können.
Konzeption
Entsprechend der Anforderungen liegt es nahe, dem Konto zwei Operationen zuzuordnen: Die Operation "einzahlen( betrag )" modelliert das Einzahlen eines als Argument angegeben Betrages "betrag" auf das Konto. Die Operation "saldo()" modelliert eine Kontoabfrage und ergibt den Saldo des Kontos.
Konto [UML class diagram, concept model].----------------------------------------.
| Konto |
|----------------------------------------|
|----------------------------------------|
| |
| einzahlen( betrag : int ) : void |
| ---------------------------------- |
| |
| saldo() : int |
| --------------- |
| |
'----------------------------------------'
Da auf ein Konto keine gebrochenen Cent eingezahlt werden können, ist das Argument der Operation "einzahlen" ganzzahlig. Durch die Vermeidung von Gleitkommazahlen werden auch Ungenauigkeiten verhindert, die sich aus der Darstellung von Gleitkommazahlen als Dualbrüche ergeben.
Die so gekennzeichneten Operationen können also von allen anderen Stellen aus verwendet werden. Durch das Unterstreichen einer Operation wird diese Operation als eine Operation der Klasse gekennzeichnet.
Entwurf
Erst nach der Festlegung der Schnittstelle, werden die internen Wertspeicher festgelegt. Ein solcher Wertspeicher wird auch ein Attribut genannt.
Konto [UML class diagram, design model].----------------------------------------.
| Konto |
|----------------------------------------|
| - wert : int |
| ------------ |
|----------------------------------------|
| |
| + einzahlen( betrag : int ) : void |
| ---------------------------------- |
| |
| + saldo() : int |
| --------------- |
| |
'----------------------------------------'
Das Vorzeichen "+" kennzeichnet in dem UML-Klassendiagramm, daß das folgende Mitglied der Klasse öffentlich sichtbar ist. (In dem weiter oben stehenden Konzept-Model, sind alle Komponenten öffentlich, so daß dort eine solche Kennzeichnung nicht nötig war.)
Durch das negative Vorzeichen wird die Sichtbarkeit eines Attributs als „privat“ gekennzeichnet. Durch das Unterstreichen eines Attributes wird das Attribut als Attribut der Klasse gekennzeichnet.
Implementations-Entwurf
Das Feld "wert" soll am Anfang des Programmes auf den Wert "0" gesetzt werden.
Die Nachricht "einzahlen( betrag )" wird durch Addition des Betrags "betrag" zum Feld "wert" implementiert.
Die Nachricht "saldo( betrag )" wird durch Rückgabe des Wertes des Felds "wert" implementiert