UML für IT-Berufe
UML für IT-Berufe
UML für IT-Berufe
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
48<br />
3 Das Klassendiagramm<br />
Beispiele<br />
• Ein Notebook hat eine Festplatte. Eine Festplatte ist entweder nicht oder in genau einem<br />
Notebook eingebaut.<br />
Notebook Festplatte<br />
0..1<br />
• In einer Firma arbeiten beliebig viele Mitarbeiter. Die Mitarbeiter können aber auch bei<br />
beliebig vielen anderen Firmen arbeiten (zumindest theoretisch).<br />
Firma Mitarbeiter<br />
0..*<br />
1<br />
0..*<br />
3.5.2 Umsetzung einer 0..1:1-Aggregation in C++<br />
Das Beispiel mit dem Notebook und der Festplatte soll umgesetzt werden.<br />
Notebook Festplatte<br />
0..1<br />
Bei der Umsetzung ist zu beachten, dass sowohl das Ganze als auch die Teile <strong>für</strong> sich existent sein<br />
müssen. Allerdings muss ein Notebook über eine Festplatte verfügen (Eins-Multiplizität). Das muss<br />
bei der Konstruktion eines Notebooks beachtet werden. Ein Ausbau der Festplatte kann nur unter<br />
gleichzeitigem Einbau einer anderen Festplatte geschehen. Die Aufnahme einer Festplatte erfolgt<br />
mittels eines Verweises, was in der Umsetzung in C++ mit einem Zeiger geschieht. Die Umsetzung<br />
der Notebook-Festplatte-Aggregation ähnelt der Umsetzung der Assoziation mit einem Beziehungsattribut<br />
– eine Aggregation ist ja auch eine spezielle Assoziation.<br />
#include <br />
using namespace std;<br />
class CFestplatte<br />
{<br />
private:<br />
bool eingebaut;<br />
public:<br />
CFestplatte ();<br />
void Einbau();<br />
void Ausbau();<br />
bool GetStatus();<br />
};<br />
CFestplatte::CFestplatte tte ()<br />
{<br />
eingebaut = false;<br />
}<br />
void CFestplatte::Einbau ()<br />
{<br />
eingebaut = true;<br />
}<br />
Dieses Attribut<br />
zeigt, ob die Festplatte<br />
eingebaut ist.<br />
Zu Beginn ist<br />
die Festplatte<br />
nicht eingebaut.<br />
1