Sonntag, 23. November 2008

A3: UML-Diagramm

Nachdem so viele meiner Kollegen es schon so prima vorgemacht haben (David Selig, Martin Graf, Florian Schwarz) - hier nun mein Klassendiagramm.



Das Diagramm wurde mit OmniGraffle erstellt (Vielen Dank an Werner Robitza für diesen Tipp!)

Dieses Diagramm weist eine 1:1 Beziehung zwischen den beiden Klassen Benutzer und Profile auf. Gemäß der Spezifikation kann eine Kardinalität der Größe 1 ausgelassen werden bzw. wird eine nicht gekennzeichnete Kante implizit mit 1 belegt.

Die Unterscheidung der Inhalte von Benutzer und Profile: Benutzer enthält lediglich Daten, die für das System von Interesse sind. Profile enthält hingegen Daten, die für andere Personen von Interesse sind. Die 1:1 Beziehung drückt aus, dass ein Benutzer genau ein Profil hat und ein Profil genau zu einem Benutzer gehört.
Nicht modelliert wurde in diesem Zusammenhang, dass Benutzer die Profile anderer Teilnehmer betrachten können.

Benutzer lässt sich weiter unterteilen in Content_Ersteller und Content_Manager. Diese beiden Entitäten wurden mit keinen weiteren Attributen ausgezeichnet, da der einzige wesentliche Unterschied in der Erlaubnis des Content_Managers liegt, bereits erstellte Inhalte zu editieren.

Ein Problem, welches sich hieraus ergibt: dieser Umstand lässt sich nicht als DTD abbilden. Wie bereits in einem Forumseintrag diskutiert ist es in einer DTD leider nicht möglich, IDREF(S) nur auf bestimmte IDs hin abzufragen. Die Abfrage erfolgt automatisch dokumentweit. Folglich muss dieser Teil der Modellierung in einem anderen Arbeitsschritt implementiert werden.

Protocol wird hier nur als der Grundeintrag betrachtet, ausreichend für die gegenwärtige Aufgabenstellung. Für die Weitermodellierung empfiehlt es sich, Protocol als eigenes Paket darzustellen und die Inhalte in einem eigenen Diagramm zu beschreiben.

Vermutlich fällt auch noch die dargestellte 1 an der Kante zwischen Benutzer und Protocol auf. Wie zuvor gesagt, eine leere Kante impliziert 1, was zum anderen jedoch nicht, dass die 1 nicht explizit aufgeführt sein darf. Der Grund, wieso ich hier die 1 modelliert habe: das verwendete Programm bot eine vorgefertigte 1:n Kante an und diese wurde einfach übernommen ;-)

Notizen an mich selbst
Bei einer Überarbeitung des Modells darauf achten, Sprachkonsistenz beizubehalten (bezieht sich hier auf die Ausdrücke Benutzer und Content_Erzeuger)

Keine Kommentare: