2016-07-20 7 views
0

Beispiel:UML 2.0 Kann ich eine bidirektionale Extend-Beziehung zwischen Use Cases haben?

  • Use Case 1: Kaufen Sie Getränke
  • Use Case 2: Kaufen Sie Lebensmittel

Ein Benutzer unserem Speicher eingeben und starten, indem Sie ein paar Drinks zu bestellen. Wir können ihm ein Lebensmittel verkaufen => Essen kaufen verlängert Getränke kaufen.
Umgekehrt wäre auch möglich. Ein Benutzer möchte ein Sandwich bestellen und wir verkaufen ihm ein Getränk. => Getränke kaufen verlängert kaufen Essen.
Ist dies der richtige Weg, dies zu modellieren, oder wäre es besser, Generalisierung/Spezialisierung zu verwenden, würden wir einen Buy-Artikel haben, der sich auf Buy Drinks/Buy food spezialisiert hat.
Oder vielleicht noch ein anderer Weg ...?

+0

Für welches System, denken Sie, bedeutet "kaufen" und Mehrwert? An den Schauspieler selbst. Sie beschreiben wahrscheinlich einen POS. Also "Sell X" sollte grundsätzlich der UC sein. –

Antwort

0

Sie versuchen eine funktionale Zerlegung bei Verwendung von <<extends>> (auf diese Weise). Anwendungsfälle betreffen nicht die funktionale Zerlegung von Systemen, sondern die Synthese von Aktionen um einen einzigartigen Mehrwert, den das betrachtete System (SUC) einem Akteur liefert. Versuchen Sie es aus dieser Perspektive zu betrachten. Was sind diese einzigartigen zusätzlichen Werte der SUC (was ich für ein Verkaufssystem halte)? Es ist Sell Goods und entweder gibt es einen Unterschied zwischen Sell Food und Sell Drinks dann sind sie verschiedene UCs oder es gibt keine, in diesem Fall brauchen Sie nicht zwei UCs.

0

Extend ist niemals bidirektional (d. H. Die Extend-Beziehung ist immer eine gerichtete Beziehung).

In Ihrem Fall haben Sie nur einen Anwendungsfall, wie von Thomas Kilan vorgeschlagen.

Wenn Sie darauf bestehen, dass die Anwendungsfälle differenziert werden, dann ist Generalisierung eine gute Wahl, aber höchstwahrscheinlich ist es in Ihrem Fall unnötig.

Obwohl dies extrem selten ist (und definitiv nicht Ihr Fall), ist es nicht verboten, zwei Erweiterungsbeziehungen zwischen den gleichen Anwendungsfällen in den entgegengesetzten Richtungen zu verwenden (oder eine andere Form eines Zyklus unter Verwendung der extend - Beziehung zu erstellen) Logik des Systems (z. B. Verwaltung von zwei getrennten Einheiten, die jeweils getrennt oder zusammen mit einer der beiden als initiierte behandelt werden können). In der Praxis können solche Zyklen während der Diskussion mit den (zukünftigen) Systembenutzern gelöst werden und sollten vermieden werden. Auf der anderen Seite kann die Beziehungsbeziehung niemals einen Zyklus erzeugen, und wenn dies der Fall ist, ist das Modell nicht gültig.

Verwandte Themen