INSTRUKCJA LABORATORIUM Modelowanie systemów SysML Tworzenie diagramu aktywności SysML005
Diagram aktywności Dla wybranego przypadku użycia zaprojektujemy i opiszemy zachowanie systemu i zaangażowanych aktorów. W SysML diagramem odpowiednim dla pokazywania zachowania jest diagram aktywności (activity diagram). Wprowadzenie partycji (torów wodnych, swimlanes) pozwoli lepiej pokazać, po której stronie znajdują się konkretne akcje. Zachowanie w ramach przypadku użycia może być pokazane na diagramie aktywności lub na diagramie sekwencji. Dodawanie diagramu aktywności do przypadku użycia Do przypadku Dziecko bawi się zabawką dodajemy diagram aktywności (opcja Initialize... ma pozostać odznaczona, jeżeli dodajemy diagram z poziomu edytora, nie struktury modelu). Nowy diagram w strukturze modelu pokazuje Rysunek 1. Str 2/9
Rysunek 1: Nowo dodany diagram aktywności Partycje (tory wodne) Dodajemy do diagramu aktywności trzy partycje (Activity Partition w przyborniku edytora) pamiętamy, że ułatwieniem będzie przytrzymanie przycisku Ctrl (Rysunek 2). Rysunek 2: Partycje na diagramie aktywności Nazwiemy partycje w sposób odpowiadający uczestnikom aktywności - mamy aktora Dziecko bawiące się zabawką (klasa System zabawkowej katapulty) używając Pocisku (klasa). jednocześnie w palecie właściwości ustawimy również, co/kogo reprezentuje dana partycja (Rysunek 3). Rysunek 3: Kojarzenie partycji z reprezentowanym bytem Efekt końcowy wraz ze skojarzonymi elementami przedstawia Rysunek 4. Rysunek 4: Partycje skojarzone z reprezentowanymi elementami modelu Dodawanie warunków wstępnych Zachowanie opisane w przypadku użycia w modelu SysML możemy interpretować jako procedurę testową (wspomniany test akceptacyjny klienta). Dobrą praktyką jest więc zidentyfikowanie Str 3/9
warunków wstępnych/wejściowych testu (preconditions). Z przybornika wybieramy i umieszczamy na diagramie ograniczenie (Constraint w sekcji komentarzy). Wizualne powiązanie ograniczenia z zachowaniem możemy pokazać po prostu rozciągając je na całą szerokość partycji. Zmieniamy nazwę ograniczenia na Warunek wstępny (Rysunek 5). Rysunek 5: Ograniczenie dodane do diagramu We właściwościach ograniczenia w zakładce specyfikacji (Specification) określamy ograniczenie jako tekstowe/opisowe (Literal String) - Rysunek 6. Rysunek 6: Ustawianie typu ograniczenia Kiedy ograniczenie ma podany typ, możemy podać jego wartość - zakładany stan systemu na początku przypadku użycia - konieczny do uruchomienia przypadku (Rysunek 7). Rysunek 7: Wartość ograniczenia Str 4/9
Dodawanie akcji Istnieje wiele różnych typów akcji, które można przedstawić na diagramie aktywności. Mogą one zostać wykorzystane do osiągnięcia wysokiego poziomu określoności (szczegółowości opisu zachowania) i odpowiednio zaimplementowane. Dla celów naszego projektu wystarczy posłużyć się najprostszymi z nich oznaczonymi jako akcje nieprzezroczyste (Opaque Action). W SysML określenie nieprzezroczysty" (opaque) oznacza, że wyrażenie posiada znaczenie poza językiem. Czyli ktoś lub coś poza językiem może być w stanie przetłumaczyć opis na rzeczywiste działanie. Rysunek 8: Dodawanie akcji do diagramu Z sekcji akcji przybornika wybieramy nieprzezroczysta akcję (grupa Call Behavior Action)i umieszczamy jej instancje na diagramie aktywności (Rysunek 8). Dla przyspieszenia pracyskorzystajmy z informacji, że takich akcji będziemy potrzebować dokładnie 10 (akcje możemy oczywiście dodawać i usuwać w miarę potrzeb). Str 5/9
Nazwijmy akcje i dopasujmy je graficznie zgodnie z tym, co pokazuje Rysunek 9. Rysunek 9: Rozmieszczenie nazwanych akcji na diagramie Dodawanie węzłów terminalnych Z przybornika dodajemy węzeł początkowy (Initial Node) w torze dziecka i końcowy (Activity Final) w torze pocisku - Rysunek 10. Str 6/9
Rysunek 10: Początkowy i końcowy węzeł Rysunek 11: Diagram z przepływami sterowania Str 7/9
Dodawanie i formatowanie przepływów sterowania Połączymy teraz akcje w logiczną kolejność za pomocą łączników przepływów sterowania (Control Flow). Wybieramy łącznik z palety przybornika (przypomnienie: Ctrl...) i klikamy w sposób od-do w sposób przedstawiony przez Rysunek 11. Na diagramie znajduje się 12 węzłów (10 akcji i 2 terminalne), więc przepływów będzie 11. Ukrywamy widoczne elementy graficzne przepływów i zmienia typ ich łącznika na prosty. W miarę potrzeby manipulujemy diagramem w celu uzyskania jak najlepszego efektu, na przykład takiego jak przedstawia Rysunek 12. Rysunek 12: Uporządkowany diagram aktywności Dodawanie warunków końcowych Analogicznie do warunków wstępnych (preconditions) powinniśmy określić warunki wyjściowe (postconditions). Warunki wyjściowe oznaczają stan systemu oczekiwany po zakończeniu zachowania. Procedury testowe powinny zakładać zarówno warunki wejściowe jak i wyjściowe. W naszym wypadku system (zabawkowa katapulta) po wystrzeleniu pocisku powinien powrócić do stanu sprzed rozpoczęcia przypadku użycia - katapulta powinna być rozładowana i nieuzbrojona Str 8/9
(Rysunek 13). Rysunek 13: Kompletny diagram aktywności Część zaliczeniowa Analogicznie do przykładowego systemu zabawkowej katapulty, do wybranego podstawowego przypadku użycia własnego systemu należy dodać zachowanie opisane w formie diagramu aktywności. Str 9/9