UML-Modellierungsanfrage

Hallo Leutz,

bin Neuling, was UML angeht, und habe eine doch recht einfache Frage eingentlich: wie kann ich eine if-then-Beziehung ausdrücken? Welche Zeichen stehen mir hierfür zur Verfügung?

Besten Dank im voraus,

bis denne,

Bernd

Hallo Bernd,

UML definiert nur Beziehungen zwischen Objekten von (natürlich) objektorientierten Sprachen. So wird z.B. festgelegt, welche Klasse von welcher abgeleitet ist, welche Methoden bzw. Datenelemente öffentlich und welche nicht sind, welche Methoden andere benötigen usw. Es geht hier also hauptsächlich um das Zusammenspiel der verschiedenen Klassen.
Um programminterne Abläufe darzustellen, würde ich Dir ein Struktogramm anstelle eines Flußdiagrammes empfehlen, da dieses die zur Zeit am häufigsten (und flexibelste) verwendete Darstellungsweise ist.
http://www.rz.uni-frankfurt.de/~bartnick/vwa1.html

Grüsse
Cromo

Ich muss da dem Vorschreiber wiedersprechen, ich denke das trifft nur auf Klassendiagramme zu, die sind aber nur ein kleiner Teil von UML. Und auch in Klassendiagrammen kann man in gewissem Ausmaß Bedingungen verwenden (hab inzwischen die Antwort auf meine Frage drei Mails weiter unten gefunden, eine {xor}-Abhängigkeit zwischen den Beziehungen).

Außerdem gibt es z. B. Sequence-Diagramme die das Zusammenspiel der Klassen im Ablauf beschreibt oder State Diagramme.

Die Frage wäre jetzt was genau du modellieren willst, also worauf du die Bedingungen legen willst? Attribute, Beziehungen, im Ablauf, etc.?

Grüße, Robert

Was ist eine if-then-Beziehung?
Hi Bernd,

eine Beziehung sagt nur aus, dass zwei Objekte miteinander zu tun haben, anders gesagt, ein Objekt kennt ein anderes. Eine Beziehung kann optional sein, dann kann ein Objekt ein anderes kennen, muss aber nicht. Was verstehst Du unter einer if-then-Beziehung? Dieser Begriff ist mir in 7 Jahren Modellierung noch nicht begegnet.

Gruß Ralf

DAS ist eine if-then-Beziehung:
Hi Ralf,

ich wandle z.Z. auf den Spuren der KI. Mit if-then-Beziehung meine ich z.B. folgende Aussage:

wenn es ein Objekt A und ein Objekt B gibt,
dann soll das Feld x von Objekt B mit dem Wert 42 beschrieben werden.

Dies drückt doch eine Beziehung aus, welche zwei Objekte miteinander haben. Versuch das mal mit dem KI-Thema Knowledgement zu sehen; dort sind solche if-then-Beziehungen in Form von Constraints üblich, aber grafisch nicht beschreibbar. Insofern suche ich hier nach Möglichkeiten, dieses Vermögen der grafischen Darstellung von UML abzuleiten.

Bis denne,

Bernd

Hi Robert,

etwas weiter oben habe ich bereits die Erklärung für eine if-then-Beziehung gegeben. Vielleicht kannst Du mir erklären, wie ich diese Bedingung mit UML-Elementen grafisch verdeutlichen kann…?

Bis denne,

Bernd

Hi Bernd,

mit der Terminologie in der KI kenne ich mich leider nicht aus, mir ist die Beziehung halt nur als bleibende Information bekannt, dass zwei Objekte miteinander zu tun haben. Bleibend heißt, dass von B aus das zugeordnete A gefunden werden kann.
Die if-then-„Beziehung“ scheint mir eher eine Vorbedingung (precondition) für eine Aktion zu sein.

Gruß Ralf

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

etwas weiter oben habe ich bereits die Erklärung für eine
if-then-Beziehung gegeben. Vielleicht kannst Du mir erklären,
wie ich diese Bedingung mit UML-Elementen grafisch
verdeutlichen kann…?

Wenn du dich auf Klassendiagramme beziehst, dann AFAIK in der Form gar nicht. Ich kenne als Tool nur Rational Rose, dort kann man Constraints auf Attribute zwar per Text beschreiben, aber das wird nicht grafisch abgebildet.

Es macht aber auch keinen Sinn, einem Feld einen fixen Wert zuzuweisen, wenn eine Beziehung vorhanden ist, zumindest nicht in der Modellierung. Der Tatbestand, dass die Beziehung vorhanden ist reicht als Information aus, das weitere Feld wäre redundant.

Grüße, Robert

Hi Robert;

Wenn du dich auf Klassendiagramme beziehst, dann AFAIK in der
Form gar nicht. Ich kenne als Tool nur Rational Rose, dort
kann man Constraints auf Attribute zwar per Text beschreiben,
aber das wird nicht grafisch abgebildet.

Na wenn die das nicht wissen, dann wird mir wohl nicht zu helfen sein :wink:

Es macht aber auch keinen Sinn, einem Feld einen fixen Wert
zuzuweisen, wenn eine Beziehung vorhanden ist, zumindest nicht
in der Modellierung. Der Tatbestand, dass die Beziehung
vorhanden ist reicht als Information aus, das weitere Feld
wäre redundant.

Doch, macht es. Ich möchte durch die Wertzuweisung nicht anzeigen, daß die Beziehung vorhanden ist. Vielmehr möchte ich eine Aktion genau dann ausführen, wenn eine bestimmte Konstellation (Beziehung, Existens, was auch immer) vorhanden ist. Ich mach mal ein konkretes Beispiel:

Wir befinden uns in Java.

  1. Modell: Es gibt zwei Klassen, A und B. Klasse B hat ein Klassenfeld x vom Typ int. Soweit zur Modellierung. Zur Laufzeit instanziiere ich nun ein Objekt a der Klasse A und ein Objekt b der Klasse B. Fertig, für dieses Modell.
  2. Modell: Es gibt zwei Klassen A und B und B hat wieder ein Klassefeld x vom Typ int. Des weiteren soll es ein Constraint geben, daß folgendes ausdrückt:
    wenn es ein Objekt der Klasse A gibt und wenn es ein Objekt der Klasse B gibt, dann soll das Klassenfeld x der Klasse B mit dem Wert 10 versehen werden.
    Zur Laufzeit instanziiere ich nun wieder nacheinander ein Objekt a der Klasse A und ein Objekt b der Klasse B. Sobald ich nun das Objekt b instanziiert habe, „greift“ mein Constraint und schreibt in das Klassenfeld x den Wert 10.

Meine immer noch unbeantwortete Frage, welche ich hoffentlich nun genügend motiviert habe, lautet: Wie kann ich genau diesen Umstand mit UML-Mitteln darstellen.

Bis denne,

Bernd

Hi Ralf,

Die if-then-„Beziehung“ scheint mir eher eine Vorbedingung
(precondition) für eine Aktion zu sein.

Jap, genau so siehts aus. Der if-Teil ist eine Condition für eine Aktion, welche im then-Teil ausgeführt wird. Und genau das versuche in UML abzubilden - bisher recht erfolglos…

Bis denne,

Bernd

Meine immer noch unbeantwortete Frage, welche ich hoffentlich
nun genügend motiviert habe, lautet: Wie kann ich genau diesen
Umstand mit UML-Mitteln darstellen.

Gibt verschiedene Diagramm-Arten die sowas darstellen können, am ehesten Sequence oder Collaboration, aber auch Activity.

Gearbeitet habe ich von denen nur mit Sequence, die eigenen sich auch für das was du vorhast.

Ist nicht ganz einfach das per Mail zu erklären, findest im Internet sicher besseres, z. B.:
http://www.seforum.net/methodtool/umlsequencediagram…

Grüße, Robert