2013-02-11 12 views
10

Próbuję utworzyć diagram sekwencji UML dla określonego procesu w naszej aplikacji.Jak reprezentować połączenia w obrębie tej samej klasy przy użyciu diagramu sekwencji UML

Problem polega na tym, że większość logiki biznesowej znajduje się w jednej klasie i kiedy próbuję odwzorować ją na diagramach sekwencji, otrzymuję wiele wywołań do tych samych obiektów na diagramie sekwencji.

Potrzebuję reprezentacji podobnej do stosu w diagramie sekwencji UML. Czy jest to możliwe za pomocą diagramu sekwencji lub czy inny diagram jest lepszym sposobem reprezentowania połączeń w obrębie tej samej klasy? Proszę doradzić.

Odpowiedz

11

Kilka sugestii:

  1. można pokazać kolejne sposoby na diagramie sekwencji przy użyciu połączenia jaźni. Zobacz rysunek 1 here jako przykład (połączenia własne to okrężne wywołania na tej samej linii ratunkowej).
  2. Jako alternatywę możesz rozważyć Activity Diagram. Prawdopodobnie lepiej nadają się do zilustrowania kolejności metod.
  3. Zmień kod. Mnóstwo logiki w jednej klasie to zwykle nieprzyjemny zapach. Zakładając, że masz zasięg, refaktoryzacja może być dobrym pomysłem.

hth.

+0

+1. Dobrze, "Diagram aktywności" jest lepszy dla metod w tym samym obiekcie. – umlcat

5

Reprezentowanie samoubranego na schemacie sekwencji UML (patrz krok 7).

self-call on a UML sequence diagram

Jeżeli zwana metoda jest (lub powinien być) prywatnego, to może być bezpiecznie wyłączone ze schematu sekwencji jako szczegół realizacji.

Jednak wyczuwam wzór anty-God-Class; twoja klasa ma wiele obowiązków i powinna zostać zdekonstruowana. Zepsuć klasę, tak aby miała tylko single responsibility używając delegacji. Wywołania tych metod byłyby dobrym punktem wyjścia.

1

To jest rzeczywiście możliwe, aby odnieść się do instancji samodzielnego

W rzeczywistości UML Spec 2.5b1 strona 607, około Lifeline mówi: Jeśli nazwa jest samo słowo kluczowe, a następnie Lifeline reprezentuje przedmiot klasyfikator, który obejmuje interakcję, która jest właścicielem linii życia. Porty encloser mogą być pokazywane osobno, nawet jeśli jest włączone.

Zobacz http://lowcoupling.com/post/47844944042/uml-sequence-diagrams dla kompletnego przykład

+0

Link jest uszkodzony. – javaPlease42

Powiązane problemy