Temat: UMLowa ośla łączka ;) czyli komentujemy ale nie czepiamy się
Co do include'ow i exdende'ow to osobiście zwykłem przyjmować zasadę stosowania tychże tylko wtedy, kiedy includowane, lub będące extendami przypadki użycia występują też jako bezpośrednie UC, lub są wielokrotnie używane. Przykładem tutaj mogłoby być CRUD pojedynczego zdjęcia, gdybyśmy np pozwalali rónież dodawać w taki sam sposób zdjęcie do profilu, czy jako zdjęcie reprezentujące galerię. Pozatym robią śmietnik.
Pare słów o CRUD. Jest to typowy zestaw funkcjonalności dla obiektów typu persistent. W systemach w których pracujemy z różnego typu obiektami diagram UC byłby zupełnie nieczytelny gdyby przedstawiać je jako osobne przypadki użycia dla każdego typu obiektu, każdego modułu czy czegokolwiek. W dużych systemach stosuje się diagramy o różnym poziomie szczegółowości i tak na etapie definiowania wymagań systemu (SRS - System Requirements Specification) zwykle prezentuje się bardzo ogólnie dwa diagramy UC - jeden reprezentujący biznesowe przypadki użycia i kontekst systemu (np. zapłata za usługę, obsługa kasowa) drugi reprezentujący systemowe przypadki użycia (np. realizacja płatności (w systemie=obsługa urządzeń zewnętrznych (czytnik kodów, terminal POS) + praca użytkownika itd). Zwykle stosuje się też tak w procesie implementacji jak i analizy, czy projektowania piękny termin generalizacji.
Zauważmy, że większość danych w systemach to tabele. Nie ma sensu opisywac ani reprezentowac na diagramie UC osobno funcjonalności CRUD dla:
Faktur VAT, Korekt faktur VAT, Paragonów, Raportów kasowych itd. Z punkto widzenia systemowego są to te same funkcjonalności (na tym poziomie abstrakcji) możemy więc wyabstrachować sobie pojęcie obsługi dancyh tabelarycznych i dla nich zaprezentować i opisać scenariusze UC.
Wtedy do dospecyfikowania pozostają nam UC specyficzne dla danego typu obiektów np. Księgowanie faktur i korekt.
Definiując przypadki użycia nie powinieneś zastanawiać się jakie funkcje realizuje system (bo tu odpowiedzią jest na przykład przechowywanie zdjęć, a to nie jest UC) tylko CO SYSTEM OFERUJE UŻYTKOWNIKOWI? CO UŻYTKOWNIK CHCE ZROBIĆ W SYSTEMIE? i tu odpowiedzią będzie np Przeglądać zdjęcia w galerii, przeglądać galerie, przeglądać użytkowników, przeglądać i dodawać komentarze, zarządzać swoimi danymi - a to są już materiały na UC. Potem generalizacje i możemy przystępować do opisu scenariuszy, robienia diagramów sekwencji (zachęcam wykonywanie diagramu sekwencji dla każdego UC, szczególnie u początków zabawy z modelowaniem.
A tutaj sposób na ogarnięcie problemu CRUD:
Bardzo zły pomysł - ogromna szczegółowość, nic nie widać (prawie jak robienie mapy miasta w skali 1:1)
Nieco lepiej, mapa już ma skale 1:100, ale chyba nie wyobrażacie sobie używania mapy w takiej sklali dla np. Warszawy:
A tu już całkiem ok:
Szczegóły CRUD dla róznego typu obiektów można opisać w opisie UC, można nawet wykonać osobny diagram UC dla CRUD
Mateusz Kurleto edytował(a) ten post dnia 28.01.09 o godzinie 18:31