UML IDEEN

xxgamer09xx

PC-Selbstbauer(in)
Hey Leute,

ich stehe zurzeit vor einer - sehr leichten Aufgabe - aber habe einfach keine zündende Ideen oder habe einfach ein Brett vor dem Kopf. Es geht darum, eine Anwendung aus dem Gebiet: Arztpraxis zu realisieren. Zuerst sollen wir das UML Diagramm erstellen und folgende Punkte beachten:

1. Eine Beziehung vom Typ * --------> *

2. Eine Beziehung vom Typ 0,1 --------> 1..*

Leider komme ich auf keine sinnvollen Beziehungen, könnt ihr vielleicht mich mit ein paar Ideen überraschen? :))

LG
 
Da finde ich folgende Seite sehr interessant: 4.2 Multiplizitat

Das doofe ist nur, das im Bezug auf Arztpraxen deine beiden Anforderungen nur in ganz ganz wenigen Fällen passen. Dazu muss die Software so allgemein wie möglich gehalten werden und ggf. sich in den laufenden Zustand einer Software und dessen Datenbestand versetzt werden.

Für deine Anforderung * -> * könnte man Behandlungsmethoden in Betracht ziehen:
Arzt (*) <--[Anwendung]--> Behandlungsmethoden (*)
Erläuterung: Ein Arzt kann keine (reine Untersuchungsärzte) oder beliebig viele Behandlungsmethoden anwenden. Eine Behandlungsmethode kann von keinen (z.B. Methoden, die nicht zu den Fachgebieten der Ärzte gehören) oder beliebig vielen Ärzten angewendet werden.

Für deine zweite Anforderung 0,1 (bzw. 0..1) -> 1..* ist es nochmals extrem schwieriger. Hier mal ein mögliches Beispiel mit dem Faktor Zeit:

Arzt (0..1) <--[Zurzeit_in_Behandlung]--> Krankheitsbild (1..*)
Erläuterung: Entweder behandelt ein Arzt gerade ein Krankheitsbild oder nicht. Jedes momentan existierende Krankheitsbild wird von mindestens einem Arzt oder beliebig vielen Ärzten behandelt. Ansonsten existiert das Krankheitsbild aktuell nicht. An dieser Stelle ist es wichtig nochmals klarzustellen, das hier der Faktor Zeit eine Rolle spielt. Hat eine Praxis in diesem Moment keine Patienten, existiert auch kein aktuelles Krankheitsbild. Allerdings heißt das nicht, das garkeine Krankheitsbilder existieren. In diesem Falle ist es also eher so zu verstehen. Das Krankheitsbild ist z.B. entweder eine Instanz der Klasse "Blinddarmentzündung", welche die Klasse "Krankheitsbild" beerbt oder eine Instanz der Klasse "Krankheitsbild", die in den Eigenschaften alle Informationen zum Bild "Blinddarmentzündung" beinhaltet. Der Faktor Zeit nimmt den aktuellen Ist-Stand.

Es kommt immer darauf an, wie kleinschrittig du deine Klassen definierst. Das wiederum kommt auf den Umfang der zu implementierenden Software an. Bei einer einfachen Patienten/Praxisverwaltung könnte das ganze so aussehen:
1. Arzt
2. Fachgebiet
3. Patient
4. Untersuchung
5. Behandlung

Bei einer umfangreichen Lösung:
1. Arzt
2. Fachgebiet
3. Untersuchungsmethoden
4. Behandlungsmethoden
5. Medikationsmethoden
6. Prognosen
7. Diagnosen
8. Patienten
9. Patientendaten
usw usw.

Die beiden von dir genannten Anforderungen sind allgemein recht schwer.
 
@Ap0II0XT : Das habe ich mir auch fast gedacht :D Leider ist es jetzt zu spät ich habe das Thema ausgesucht und muss damit fertig werden.

Erster Schritt der Aufgabe ist, dass wir nur einen ganz kleinen Ausschnitt auswählen aus dem "Modell" (ganz einfache funktionale Aufgabe: ausgeben einer Liste, eingeben von Daten, Berechnungen usw. sollen möglich sein). So soll die "Software" erst einmal sehr klein gehalten werden. Später sollen wir diese dann noch erweitern und schließlich noch mit einer Datenbank in Verbindung setzen.

Vielen Dank schon einmal für deine Mühe und deine Erläuterungen, sie helfen mir aufjedenfall schon einmal weiter :)

Nur bei deinem 1. Beispiel verstehe ich nicht so ganz was damit gemeint ist wenn du sagst "Eine Behandlungsmethode kann von keinen (z.B. Methoden, die nicht zu den Fachgebieten der Ärzte gehören) oder beliebig vielen Ärzten angewendet werden", wenn die Praxis nur einen Arzt hat :D

Edit: Bei der *---->* Beziehung könnte man es doch auch mit dem Krankheitsbild machen:
Patient * -------> * Krankheitsbild : Ein Patient kann viele Krankheitsbilder haben und die Krankheitsbilder können vielen Patienten zugeordnet werden?
 
Das kommt auf die Auslegung an. Der Asterisk besagt ja keinen, einen oder beliebig. Die Wörter "Wenn aber" sind hier an der falschen Stelle. Denn damit fängst du an, deine Software einzuschränken. Eine Praxis mit nur einem Arzt existiert zum Beispiel 10.000 mal. Praxen mit mehreren Ärzten existieren zum Beispiel 5.000 mal. Wenn du nach dem "Wenn aber" gehst, können 5.000 Praxen deine Software nicht verwenden ;)
 
Zurück