Haallooo CYBTON
Ich habe diese Frage zwar schon in einem anderem Forum gestellt, dort aber leider noch keine Antwort erhalten.
Und weil ich hier quasi auf heissen Kohlen sitze und weiter machen/lernen möchte, probiere ich es hier ein zweites mal - vielleicht mit etwas mehr Glück.
Ich habe mich in der letzten Woche zum Thema "Softwareentwicklung mit UML" eingelesen und bin dazu übergegangen(-gesprungen) die ersten Diagramme zu erstellen. Doch leider bin ich nicht so weit gekommen wie ich das erwartet hatte. Wenigstens die ersten Use-Case-Diagramme (UCD) wollte ich schaffen bevor ich wieder nachlesen muss was als nächstes folgt, doch nun hänge ich noch beim erstem UCD.
Erst sollte es ein einfaches Gästebuch werden das mit ein paar Zusatzfunktionen ausgestattet wird um, sozusagen, das Modellieren zu üben. Doch beim erstellen der ersten Anwendungsfälle im erstem Diagramm zeigte sich schnell das es doch mehr ein kleines Forum wird...
Egal, ich will es ja nicht voll ausbauen und schon gar nicht einsetzen, lediglich Modellieren will ich es.
Schritt eins: Welche Akteure kann es geben
- Gast
- Mitglied
- Moderator
- Administrator
Schritt zwei: Zeichne alle Anwendungsfälle ins System
Dazu die Frage: "Ob ich für jeden Akteur ein eigenes UCD erstellen sollte ?"
Ich entschied: "Nein, zuerst Modellierst du das Haupt-UCD auf dem Grob alles zu erkennen ist !"
Außerdem muss ich dann nicht alles doppelt und vierfach zeichnen, schließlich sollen alle vier Akteure einen Beitrag erstellen dürfen... Bei den vielen Überschneidungen vom "Gast" bis hin zum "Administrator" wären das viele Assoziationen und wahrscheinlich ein ebenso großes Netz an Verbindungen.
Generalisierung: Gast <- Mitglied <- Moderator <- Administrator
Zusammen mit den Anwendungsfällen und etwas organisiert sah es dann so aus:
Weil ich diesem Beitrag nur drei Bilder hinzufügen kann, folgt dieses "Bild" als Text ^^
PHP:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
Gast--+-Übersicht
^ +-Einzelansicht
| +-Registrieren
| +-Moderator
|
Mitglied--+--------------------+-Antwort erstellen
^ +-Einloggen +-Profil ansehen
| +-Ausloggen +-Profil bearbeiten
| +-Thema erstellen +-Eigene Beiträge bearbeiten
|
Moderator--+-Thema schließen
^ +-Beitrag kommentieren
| +-Beitrag löschen
|
Administrator--+-Einstellungen ändern
+-Moderatoren ernennen
+-Administratoren ernennen |
Das ist schon einmal ein Anfang. Es gibt sicher noch einige Anwendungsfälle (z.B. Das Löschen von Profilen) aber wegen der Übung lasse ich sie einfach weg oder integriere den eine oder anderen später.
In den folgenden Bildern lasse ich die Akteure: Gast und Administrator wegen der Platzersparnis und der aktuell geringeren Relevanz weg
Schritt drei: Überprüfe die Anwendungsfälle
Sind sie wirklich nötig, haben welche evtl. die selbe Aufgabe, gehören sie zusammen, kann man welche zusammenfassen,...
Da gibt es tatsächlich welche meine ich z.B.
- Profil ansehen und Profil bearbeiten gehören zusammen.
- Beitrag korrigieren, Beitrag kommentieren und Beitrag löschen kann man zu Beitrag bearbeiten zusammenfassen und
- Einloggen und Ausloggen zu Authentifizieren
Und hier gehen meine Probleme los !
Z.B. der Anwendungsfall
Beitrag löschen, wenn der wirklich zu
Beitrag bearbeiten gehört, wie Assoziiere ich den nun mit den Akteuren: "Mitglied", "Moderator" und "Administrator" !?
Dadurch, das das "Mitglied" seine eigenen Beiträge bearbeiten darf, haben wir eine Verbindung zwischen "Mitglied" und
Beitrag bearbeiten. Auf Grund der Generalisierung in Schritt zwei, kann ein "Moderator" das was ein "Mitglied" kann und hat somit auch Zugriff auf
Beitrag bearbeiten bzw.
Beitrag löschen - sehr gut, dann hat ja jeder Zugriff auf seine Aktionen.
Sehr ähnlich verhält es sich für die andren genannten Fälle und mein Diagramm sah danach so aus:
Aber irgendetwas stimmt nicht !
Nur das Diagramm betrachtet sieht es nun so aus als könne ein "Mitglied" beliebige Beiträge: bearbeiten, kommentieren oder sogar löschen, ebenso könnte jedes Profil bearbeitet werden !
So war das natürlich nicht gedacht, doch wie verdeutliche ich das in dem Diagramm ?
Für das
Profil bearbeiten könnte ich natürlich eine Bedingung festlegen, das es entweder das eigene Profil des Auslösenden "Mitgliedes" sein muss oder der Auslöser ein "Moderator" bzw. "Administrator".
Das sah dann so aus:
Allerdings wird der "Moderator" immer kleiner und verschwindet langsam aus dem Bild. Wenn ich das jetzt noch für die anderen Fälle tue, dann wird es meiner Meinung nach immer unübersichtlicher zu erkennen wer was kann und darf weil alles an irgendwelche Bedingungen geknüpft und bei anderen Akteuren .zu suchen ist.
So soll das doch nicht aussehen oder ?
Was habe ich denn da noch nicht verstanden ?
Was sollte ich also anders lösen und warum !?
Welche Ideen und Ansätze habt ihr, wie würdet ihr es Modellieren ?
Oder ist es doch tatsächlich richtig
bzw. so (akzeptabel) möglich ?
"Wissen ist Macht, wahre Macht meine Freunde.
Ihr tätet gut daran soviel wie möglich davon anzusammeln
und auf die zu hören, die dies bereits getan haben."
In diesem Sinn bin ich auf jede eurer Antworten gespannt und für jede Hilfe dankbar.
~Dragonl
Uii, vielleicht doch etwas viel Text ^^
Nach dem Einfügen und beim weiterbearbeiten konnte ich die Zeichen die auf dem Display erscheinen im Sekundentakt mitzählen während meine CPU-Auslastung auf 100% anstieg oO