Diagram Use Case Sprawdzenie 2

0

Witam,

W załączniku podaje diagram Use Case aplikacji B2B proszę profesjonalistów o sprawdzenie:)

W wybierz produkt użyłem Include by wykazać że wybrany produkt trafia od razu do koszyka albo zamówienia tymczasowego w zależności skąd była generowany.
Jeżeli dodajemy produkt z oferty artykuły trafiają do koszyka ale jeżeli oferta została wywołana z zamówienia tzn. że trzeba wybrane produkty dodać do zamówienia tymczasowego.
Jeżeli źle to opisałem proszę o podpowiedź.

Pozdrawiam

0

Moim zdaniem wszystko jest źle. Głównie dlatego że próbujesz stosować extend jako metodę grupowania przypadków związanych z jakimś podystemem a nie tędy droga. Jeśli potrzebujesz to podziel to sobie na podsystemy i zrób kilka diagramów, każdy dla osobnego podsystemu. Ale te extendy odpuść bo są zwyczajnie źle. Extend oznacza że pewien przypadek użycia jest szczególnym przypadkiem innego. A u ciebie "bazowy" przypadek w ogóle nie jest przypadkiem użycia systemu.

Przykład dobrych extendów:

  • dodaj administratora extends dodaj użytkownika, autoryzuj za pomocą autentykacji dwufazowej extends autoryzuj za pomocą hasła, zapłać kartą extends zapłać za usługę

Np. twoje "dodaj produkt", "usuń produkt", "edytuj produkt" nie mają ze sobą nic wspólnego oprócz tego że są realizowane przez ten sam podsystem w twoim systemie. A już cuda jak "wyślij zamówienie" będące szczególnym przypadkiem "dodaj produkt do koszyka" to się kwalifikuje na obserwacje psychiatryczną ;)

Patrzą na te twoje extend i include to zaczynam się zastanawiać czy w ogóle rozumiesz co one oznaczają. Jedyny (!) poprawny jaki widzę to edytuj zamówienie includes przeglądaj ofertę. Ale pozostałe to znów jakiś czeski film. Wybierz produkty include edytuj zamówienie? Znaczy że nie mogę wybrać produktów bez edytowania zamówienia? To co w takim razie oznacza to edytowanie zamówienia? o_O

0

Ten Use Case to jakiś kosmos, w internecie jest mnóstwo rozbieżnych informacji, znalazłem wyjaśnienie

Extend - Połącz przypadki użycia wewnątrz systemu między sobą powiązaniem typu <<extend>>. Wstaw je od przypadku A w kierunku przypadku B (linia przerywana z z opisem <<extend>> i grotem skierowanym do A), kiedy A może (ale nie musi) być rozszerzony o B.

Include - Połącz przypadki użycia wewnątrz systemu między sobą powiązaniem typu <<include>>. Wstaw je od przypadku A w kierunku przypadku B (linia przerywana z z opisem <<include>> i grotem skierowanym do B), kiedy A wymaga, aby dołączony został B.

Biorąc pod uwagę ten opis użyłem Extend by opisać że 'Przeglądaj zamówienia' jest rozszerzone o 'Edytuj zamówienie' czyli przeglądając zamówienia można je wybrać i edytować jak inaczej to opisać w Use Case?

Biorąc pod uwagę ten opis użyłem Include by opisać że 'Wybierając produkt' wywołane jest 'Dodaj produkt do koszyka' informujący że momencie kliknięcia produkt z automatu jest on do koszyka dodany jak inaczej to opisać w Use Case?

Czy diagram z którego korzystałem też jest błędny?

0

Nie, ten diagram na którym bazujesz akurat wygląda dość sensownie.

Jak się wg ciebie ma "przeglądaj zamówienia" do "edytuj zamówienie"? Co innego gdyby to było "wyświetl dane dotyczące konkretnego zamówienia" i to rozszerzane przez "edytuj to zamówienie". Wtedy miałoby to sens.

A z tym include to ja nie bardzo rozumiem co to u ciebie znaczy "wybierz produkt" a co to znaczy "dodaj do koszyka". Co każda z tych czynności robi? Czym one się różnią? Szczególnie że opisujemy przypadki użycia systemu. Akcje które wykonuje "system" się w tym nie zawierają. Na przykład przypadek w stylu "aktualizuj sumaryczną wartość koszyka" nie jest przypadkiem użycia, bo nie jest akcją wykonywaną przez aktora.

Moja rada: Napisz scenariusze. Serio. Bo pisząc scenariusze zauważysz gdzie coś jest nie tak.
Popatrz może jeszcze tu: http://4programmers.net/Forum/Inzynieria_oprogramowania/246270-diagram_klas_uml_-_sprawdzenie_podpowiedzi

1 użytkowników online, w tym zalogowanych: 0, gości: 1