Witam czy mógłby ktoś zerknąć na mój diagram przypadków użycia. Potrzebuje go do pracy inżynierskiej a szczerze nie polubiłem się z tym tematem.
- Untitled.vpd-2.jpg (107 KB) - ściągnięć: 15
Witam czy mógłby ktoś zerknąć na mój diagram przypadków użycia. Potrzebuje go do pracy inżynierskiej a szczerze nie polubiłem się z tym tematem.
Nie chciałbym zakładać nowego tematu sprobuje zapytać tutaj. Generalnie w pracach inżynierskich diagram er oraz model relacyjny pokazane są w dwóch schematach. Wygenerowałem przez Azura diagram i wydaje mi się ze spełnia on założenia zarówno diagramu er a także modelu relacyjnego. Czy jeśli dodam to jako jedno bez podzielenia będzie to duży błąd? )
@yarel nawiązując do diagramu przypadków użycia chce się upewnić że dobrze zrozumiałem:
2. Zamiast aktora użytkownik ?
3. Bazą wiedzy czyli czynność wyświetlenie artykułów, strona główna czyli wyświetlenie strony głównej ?
4. No wydaje mi się że wymuszamy na użytkowniku jeśli chce się zalogować podania danych potrzebnych do zalogowania
Jeśli chodzi o diagram er coś takiego?
Dzięki wielkie za odpisanie
- Zamiast aktora użytkownik ?
Powinieneś myśleć o aktorach jak o rolach w systemie i to co te role mogą realizować. Masz Użytkownik ok, ale co może zrobić w systemie? Czasem wypadałoby rozróżnić.
Możesz mieć, np. Guest (niezarejestrowany albo niezalogowany), Member (zarejestrowany i zalogowany), Moderator, Administrator, ...
To można pokazać jako:
Niektóre przypadki użycia mogą być realizowane przez różne role, dlatego zamiast łączyć role z przypadkami użycia, można połączyć tylko generalizację.
- Bazą wiedzy czyli czynność wyświetlenie artykułów, strona główna czyli wyświetlenie strony głównej ?
"Wyświetl artykuł"
"Dodaj artykuł do bazy wiedzy"
"Skoryguj artykuł"
"Otaguj artykuł"
"Wyszukaj artykuł"
...
- No wydaje mi się że wymuszamy na użytkowniku jeśli chce się zalogować podania danych potrzebnych do zalogowania
Rozumiem o co Ci chodzi, ale z perspektywy diagramu przypadków użycia masz "Uzupełnienie danych", które jest obowiązkowe (include) przy rejestracji i logowaniu.
Pomyśl o przypadku użytkownika jako interakcji z systemem, gdzie input przekazujesz via formularze. Dlaczego chciałbyś wyświetlać ten sam formularz "Uzupełnij dane" dla rejestracji i dla logowania? Obstawiam, że to są różne zakresy danych (różne przypadki użycia) i różne formularze.
Co do ER, to tak bliżej temu o co chodzi. Sprawdź sobie jak modelujesz one-to-many, bo z diagramu wygląda, że wpadłeś w FAN TRAP (powiązania między encjami układają się w skrzydła wiatraka):
Diagram przypadków to prosta lista. W stylu Użytkownik możę dodać produkt
, Użytkownik może dodać cwiczenie
, Użytkownik może usunąć cwiczenie
.
Moje rady:
include
i extend
prawie zawsze nie ma sensuzarządzanie produktami
zamiast dodaj/usun/zobacz
@yarel jeżeli podzielę na zalogowanych i niezalogowanych jak powinno wyglądać w takim razie przejście do tabeli baza produktów? Tylko zalogowani mogą dodawać produkty. Zostawić to w taki sposób jak mam czyli dać komentarz? Jeśli chodzi o include/extend przy logowaniu i rejestracji nadal nie rozumiem ale zastosuję extend. Jeśli chodzi o resztę relacji jest ok? A z fan trap to już całkowicie nie wiem o co chodzi
@slsy dziękuję za odpowiedź. Żebym dobrze zrozumiał może to wyglądać tak użytkownik-zalogowany- uzupełnienie dziennika dietetycznego- dodanie posiłku- dodanie produktu-zarządzanie produktami?
macfal napisał(a):
@slsy dziękuję za odpowiedź. Żebym dobrze zrozumiał może to wyglądać tak użytkownik-zalogowany- uzupełnienie dziennika dietetycznego- dodanie posiłku- dodanie produktu-zarządzanie produktami?
Ja bym zrobił tak:
I tyle. Zazwyczaj pod diagramem wypisuje się listę aktywności. Diagram to ma być tylko podgląd
Przykładowo:
Użytkownik może:
macfal napisał(a):
@yarel jeżeli podzielę na zalogowanych i niezalogowanych jak powinno wyglądać w takim razie przejście do tabeli baza produktów? Tylko zalogowani mogą dodawać produkty.
Możesz dodać aktora "Użytkownik" i 2 specjalizacje "Zalogowany użytkownik" i "Niezalogowany użytkownik". Zrobić połączenia od "Użytkownik" do tych przypadków użycia, które są wspólne dla zalogowany/niezalogowany i strzałki od specjalizacji, które są specyficzne dla danej roli (np. rejestracja dla zalogowanego nie ma sensu).
Zostawić to w taki sposób jak mam czyli dać komentarz? Jeśli chodzi o include/extend przy logowaniu i rejestracji nadal nie rozumiem ale zastosuję extend.
Czy dane przy rejestracji i logowaniu są takie same? Jeśli nie, to są to różne przypadki użycia. Jeśli są różne, to dlaczego mają taką samą nazwę?
Wywaliłbym to uzupełnianie danych i miał takie przypadki użycia:
A z fan trap to już całkowicie nie wiem o co chodzi
Przy połączeniach encji można popełnić dwa podstawowe rodzaje błędów:
O co chodzi? Lektura -> np. https://www.javatpoint.com/problems-with-er-model
U Ciebie, wizualnie na diagramie występuje formacja wiatraka (np. od MealProducts wychodzą 3 połączenia 1-0..N). Podejrzewam, że coś może być nie tak z modelem, albo diagramem.
Spójrz na połączenie między MealProducts i Meals. Nie wiem co chciałeś wyrazić, więc może jest ok, ale podejrzewam, że zamiast A->B chciałeś pokazać B ->A
Czy u Ciebe Meal ma dokładnie 1 MealProduct? Tak by wynikało z powyższego diagramu.
Dla poglądu połączenie 1-0..N
To na diagramie ER może wyglądać tak (screen zrobiony ze strony visual paradigm):
@yarel gemeralnie mocno sugerowałem się tym co mi wygenerował azure. Natomiast początkowo miałem to zrobione w ten sposób blob:null/0891f792-a1fd-4bfa-8052-897628ad3a25
Generalnie tabela mealprodukt jest łączącą w dzienniku tworzymy posiłek a do posiłku dodajemy produkty. Wieczorem postaram się zrobić raz jeszcze ten diagram przypadków użycia.
Przepraszam że w takiej formie ale aktualnie brak dostępu do komputera a czas bardzo mocno goni. Jeśli to nie problem proszę o opinię.
@macfal lepiej. Jeśli chodzi o nazwy przypadków, to powinny być "Zarządzaj...", a nie "Zarządzanie ... ". Powyższe Twoje zapiski można skonwertować do diagramu, np.
W finalnym diagramie możesz (w zależności od liczby przypadków użycia) utworzyć osobne grupy dla zarządzania, np. "Zarządzanie treningiem", "Zarządzanie dietą" itd.