Diagramy UML dla analizy dynamicznej
Stanowią one część dokumentacji projektu końcowego. Należy przeprowadzić szczegółową analizę dynamiczną wybranego przypadku użycia stosując diagram aktywności i interakcji. Diagram stanu zwykle będzie opisywać szerszy konteskt - zmieniający się stan obiektu w ramach całego procesu biznesowego, składającego się z wielu przypadków użycia.
Analiza dynamiczna, jak cała faza projektowania (której rezultatem jest dokumentacja projektowa), powinna być wykonana przed przystąpieniem do implementacji wybranego przypadku użycia projektu końcowego.
Na podstawie szczegółowego diagramu aktywności można zaprojektować interfejs użytkownika dla danego przypadku użycia.
Diagram aktywności dla przypadku użycia
- Diagram aktywności ma dotyczyć pojedynczego przypadku użycia (a nie np. całego procesu biznesowego) - a więc pojedynczej interakcji jednego użytkownika z systemem.
- Jeśli dany przypadek użycia łączy się z innymi (poprzez relację «include» lub «extends») to dla czytelności diagramu nie należy ich rysować, a jedynie oznaczyć jako pojedyncze aktywności (z odpowiednią adnotacją).
- Należy przedstawić wszystkie istotne (z punktu widzenia programisty) aktywności - zarówno użytkownika (np. wybór opcji z menu, wprowadzenie danych na formularzu, naciśnięcie przycisku), jak i aplikacji (np. wyświetlenie formularza, weryfikacja wprowadzonych danych, wyświetlenie komunikatu, zapis do bazy danych, itp.).
- Z uwagi na podział aktywności na wykonywane przez użytkownika i aplikację, można rozważyć zastosowanie “torów pływackich” (swimlanes) w celu poprawy czytelności diagramu.
- Romb decyzyjny oznacza samo podjęcie decyzji. Jeśli decyzja ta zależy od poprzedzającej ją weryfikacji, czy obliczeń, należy przedstawić to w postaci aktywności.
Zadanie
Narysuj diagram aktywności dla poniższych wymagań:
Firma “Prof. Edker” zajmuje się prowadzeniem serwisu aukcyjnego pieców wędzarczniczych*. Jedną z funkcjonalności systemu jest tworzenie nowej aukcji.
W celu rozpoczęcia tworzenia nowej aukcji zarejestrowany użytkownik wybiera odpowiednią funkcję w menu. Aukcja może być tworzona na podstawie jednej z poprzednich aukcji użytkownika, lub tworzona od nowa. Jeśli użytkownik tworzy aukcję na podstawie istniejącej, użytkownik powinien najpierw wybrać ją z listy, po czym formularz tworzenia aukcji zostanie wypełniony danymi z istniejącej aukcji. W przeciwnym wypadku zostanie wyświetlony pusty formularz. Dane formularza obejmują: nazwę pieca, typ (elektyczny lub opalany drewnem), pojemność, rok produkcji (nie może być z przyszłości), stan urządzenia, dodatkowy opis. Po wprowadzeniu danych i pomyślnym sprawdzeniu poprawności przez system, użytkownik wybiera dostępne opcje płatności i dostawy. Płatność może odbywać się: przedpłatą na konto, płatonścią online, lub przy odbiorze. W przypadku przedpłaty lub płatności online użytkownik powinien wybrać jedno ze swoich kont bankowym zapisanych w systemie, lub dodać nowe konto. Opcje dostawy to: wysyłka kurierem, odbiór osobisty, a dla sprzedawców z kontem premium również odbiór w siedzibie firmy “Prof. Edker”. Po zatwierdzeniu formularza bez błędów dane zapisywane są w bazie. Sprzedawca ma możliwość opublikowania aukcji od razu, lub zapisania jej jako wersja robocza.
*Piece wędzarnicze, są to urządzenia do przeprowadzania obróbki żywności w umiarkowanych temperaturach przy dużym zadymieniu pochodzenia organicznego :-)
Diagram stanu
- Dla tego diagramu należy najpierw określić, jakiej klasy obiekty będziemy analizować. Na potrzeby projektu należy wybrać jedną z klas encji.
- Zwykle obejmuje on więcej niż jeden przypadek użycia.
- Na tym diagramie nie ma rombów decyzyjnych, za to z jednego stanu może być wiele przejść do innych stanów.
- Stan początkowy oznacza stworzenie obiektu, zaś stan końcowy jego trwałe usunięcie z bazy. Nie zawsze chcemy, aby obiekty danej klasy były usuwane, więc diagram może nie mieć stanu końcowego. Stan końcowy można w takim przypadku zastąpić stanem np. Zarchiwizowany.
Zadanie
Zaproponuj diagram stanu dla klasy “Aukcja” w systemie sprzedaży aukcyjnej. Uwzględnij inne przypadki użycia poza opisanym powyżej.