1 Grundlagen 5 Punkte
Differenzieren Sie die Begriffe statische und dynamische Polymorphie anhand eines Klassendiagramms.
2 MP3-Player 25 Punkte
Die Software für einen MP3-Player soll entwickelt werden. Das "Human Interface" besteht aus einem Display und einem Multifunktions-Sensor. Beides wurde zu einer Klasse Oberflaeche zusammengefügt. Der bisherige Entwickler ist leider verschollen und hat diese Notizen hinterlassen:
2.1 Entwickeln einer Klasse Oberflaeche 5 Punkte
|
256-Graustufen-Display mit 300*200 Pixeln. (0 = durchsichtig (weiß); 255 = schwarz) Nullpunkt oben links.
deltaPhi(), wenn man den Finger über den Sensor kreisen lässt, wird bei einem Winkel von mehr als 10 Grad die Methode deltaPhi aufgerufen. |
Entwerfen Sie ein stimmiges UML-Klassendiagramm für die Oberfläche, d.h. notwendige Attribute (geheim!), Methoden, Modifizierer und Parameter sind zu ergänzen (aber nicht übertreiben)!
Achtung: Public-Attribute führen zu Punktabzügen!
2.2 Spezialisierung, Erweitern einer Klasse 4 Punkte
Die Klasse Oberflaeche wird um eine Methode zeichneTrennlinie(y:GZ) erweitert. Sie zeichnet eine 1 Pixel breite horizontale Linie auf dem Display unter Verwendung der Methode setzePixel(...).
Das Zeichnen geschiet durch Invertieren der vorhandenen Pixel vermöge neuPixel = 255-altPixel. Folge wird eine Linie zweimal gezeichnet ist sie wieder gelöscht! Erweitern Sie das Klassendiagramm durch die nun neue Klasse NewOberfläche! Hinweis: Gegebenenfalls müssen Sie noch "Denkfehler" in der Klasse Oberfläche korrigieren!
2.3 Entwickeln eines Struktogramm 6 Punkte
Erstellen Sie ein Struktogramm für die Methode zeichneTrennlinie(y:GZ)!
2.4 Sequenzdiagramm: Scrollen durch das Menü 10 Punkte
Beim Kreisen des Fingers über das Sensorfeld wird alle 10 Grad die Methode deltaPhi() aufgerufen. Das löst den Aufruf der Methode naechsterPunkt() der Klasse Steuerung aus. Hierbei ergeben sich nun zwei wesentliche Fälle:
Erstellen Sie jeweils ein Sequenzdiagramm für diese beiden Abläufe. |
3 Verwaltung der Musiktitel 15 Punkte
3.1 Erstellen einer Klasse Titel 5 Punkte
Erstellen Sie ein UML-Klassendiagramm für eine Klasse "Titel" die alle Informationen aus obigem Auszug eines Titel aufnehmen kann.
Hinweise: Der Lautsprecher bedeutet, das der Titel gerade gespielt wird. Ein Häkchen bei Titelname bedeutet, dass der Titel noch aktiv ist.
Wichtig: Die Informationen sollen hierbei nicht geheim sein. Verwenden Sie die Bezeichnungen für die Datentypen aus der Formelsammlung!
3.2 Verwaltung der Titel mit der Klasse TitelFinder 5 Punkte
Die Titel werden von einer Klasse "TitelFinder" verwaltet. Ein TitelFinder ist auch der Eigentümer der Titel. TitelFinder kann darüber hinaus auch so genannte "CoolList" besitzen, das sind intelligente Wiedergabe-Listen, z.B. eine Liste mit dem Namen "Goa **" in dem automatisch alle Titel der Musikrichtung Goa und mit der Wertung "**" gesammelt werden.
Erstellen Sie ein UML-Assoziations-Klassendiagramm für diese Beziehungen, mit Kardinalitäten usw.!
3.3 Objektdiagramm 5 Punkte
Erstellen Sie ein Objektdiagramm für "denTitelFinder", den 3 Titel aus 3.1 und der ersten und einzigen CoolListe namens "Goa **"!