DIAGRAMY UML.

Slides:



Advertisements
Podobne prezentacje
TRADYCYJNE METODY PLANOWANIA I ORGANIZACJI PROCESÓW PRODUKCYJNYCH
Advertisements

Związki w UML.
Projektowanie aplikacji równoległych Jarosław Kuchta.
Modelowanie aktywności
Diagramy stanów i diagramy aktywności
Modelowanie przypadków użycia
Projektowanie w cyklu życia oprogramowania
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Tomasz Andrejczuk Łukasz Razmuk gr. 620
Maciej I Stanisław Jedlińscy
UML rozszerzenie Seminarium magisterskie
Projektowanie Aplikacji Komputerowych
UML Unified Modeling Language
Co UML może zrobić dla Twojego projektu?
UML – Unified Modeling Language (2)
Tomasz Jabłoński Michał Ziach
Diagramy interakcji Jacek Górski gr
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
UML Zunifikowany język modelowania
Temat nr 10: System przerwań
Diagram czynności (Activity Diagrams)
Enteprise Java Beans Emil Wcisło.
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
Projektowanie - wprowadzenie
Diagramy czynności.
Projektowanie dynamiki - diagramy interakcji
Wykład 4 Analiza i projektowanie obiektowe
Wykład 5 UML - Unified Modeling Language
Oskar Ośko Mateusz Skoczewski Michał Sułek
Unified Modeling Language graficzny język wizualizacji, specyfikowania, tworzenia i dokumentowania systemów informatycznych.
Nadstruktura języka UML w wersji 2.2 Część V Wdrożenie (pakiet UML::Deployments)
Inżynieria Oprogramowania
Model przestrzenny Diagramu Obiegu Dokumentów
Źródła: podręcznikopracował: A. Jędryczkowski.
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Podsumowanie metodologii OMT
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
Modelowanie obiektowe Diagramy czynności
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Modelowanie obiektowe Diagramy sekwencji
Modelowanie obiektowe Diagramy klas
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Diagramy przypadków użycia ALINA SUCHOMSKA. Przypadki użycia systemu  technika wyznaczania funkcjonalnych wymagań systemu  opisują typowe interakcje.
Diagramy czynności/aktywności (Activity Diagrams)
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Diagram aktywności (czynności)
Diagram przypadków użycia
Diagram klas Kluczowymi elementami są: klasy (class)
Przykłady analiza i projektowanie
Modelowanie obiektowe - system zarządzania projektami.
Diagram czynności Diagram czynności (activity diagram) służy do modelowania dynamicznych aspektów systemu. Diagram czynności przedstawia sekwencyjne lub.
Diagram przypadków użycia
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Diagramy przepływu danych
Unified Modeling Language
Wstęp do interpretacji algorytmów
Studia Podyplomowe IT w Biznesie Analiza dynamiczna w UML
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Inżynieria systemów informacyjnych
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
Windows Workflow Foundation
Zapis prezentacji:

DIAGRAMY UML

Diagramy UML Rafał KASPRZYK 9 diagramów pozwalających opisać elementy systemu z różnych perspektyw W UML 2.0 wyróżnia się już 13 diagramów: Diagram klas Diagramy komponentów Diagramy wdrożenia Diagramy obiektów Diagramy struktury Diagramy pakietów Diagramy przypadków użycia Diagramy sekwencji Diagramy komunikacji nazywane wcześniej diagramami współpracy Diagramy aktywności Diagramy stanów maszyny nazywane wcześniej diagramami stanów Diagramy widoku interakcji Diagramy przebiegów czasowych Rafał KASPRZYK

Przypadek użycia Wycinek funkcjonalności, którą system musi realizować, aby spełnić wymagania Opis zbioru ciągów akcji wykonywanych przez system w celu dostarczenia określonemu aktorowi godnego uwagi wyniku Zbiór scenariuszy powiązanych wspólnym celem użytkownika Scenariusz jest to ciąg kroków opisujących interakcje między użytkownikiem, a systemem Przypadek użycia to opis zbioru ciągów akcji (i ich wariantów) wykonywanych przez system w celu dostarczenia określonemu aktorowi godnego uwagi wyniku. Scenariusz jest to ciąg kroków opisujących interakcje między użytkownikiem, a systemem. Natomiast przypadek użycia systemu jest to zbiór scenariuszy powiązanych ze sobą wspólnym celem użytkownika. Przypadek użycia to wycinek funkcjonalności, którą system musi realizować aby spełnić wymagania Rafał KASPRZYK

Zastosowanie przypadków użycia Służą do identyfikacji wymagań funkcjonalnych Każdy przypadek użycia powinien opisywać realizację jakiegoś celu biznesowego Cele biznesowe opisywane są z punktu widzenia aktora używającego systemu Umowa między dostawcą, a klientem Ustalenie priorytetów dla wymagań funkcjonalnych Pomagają w określeniu granic systemu Jakie funkcje są realizowane przez system Jakie funkcje należą do innego systemu Przypadek użycia opisuje co system robi, ale nie określa jak to robi Wstęp do szczegółowej analizy i projektowania Podstawa do identyfikacji klas i obiektów Określenie odpowiedzialności i współpracy obiektów Definicja przepływu komunikatów między obiektami Przypadki użycia służą do analizy całego systemu. Można je jednak zastosować także do analizy części systemu, a nawet pojedynczych klas i interfejsów. Przypadki użycia nie tylko definiują oczekiwane zachowanie tych bytów, ale są także podstawą do opracowania dla nich przypadków testowych. Przypadki użycia mają przed sobą dwa podstawowe zadania: - odkrycie, zebranie i uporządkowanie wymagań funkcjonalnych systemu, tego co system ma robić, - dostarczenie informacji dla kolejnych etapów analizy i projektowania systemu. Przypadki użycia nie zajmują się wymaganiami niefunkcjonalnymi. Nie dostarczają informacji o: - koszcie projektu i planowanym zwrocie inwestycji, - czasach realizacji poszczególnych etapów projektu, - wydajności systemu i polityce bezpieczeństwa. Przypadki użycia nie zajmują się bezpośrednio identyfikacją klas i obiektów, ale dostarczają podstawowych informacji koniecznych do realizacji tego zadania. Wymagania funkcjonalne konieczne do: Modelowania logiki biznesowej Wymagania niefunkcjonalne konieczne do: Budowy modelu architektury Rafał KASPRZYK

Relacje między przypadkami użycia Relacja zawierania, <<include>> Pozwala na współdzielenie funkcjonalności pomiędzy podstawowymi przypadkami użycia Reużywalny wycinek funkcjonalności Relacja rozszerzania, <<extend>> Warunkowe rozszerzenie funkcjonalności podstawowego przypadku użycia osadzone w punkcie rozszerzenia Służy do opisywania opcjonalnego przepływu zdarzeń Pozwala na minimalizację liczby zmian wprowadzanych do podstawowego przypadku użycia Relacja uogólnienia Możliwości różnych implementacji tego samego przypadku użycia Specjalizowany przypadek użycia zastępuje podstawowy przypadek użycia w jego relacjach Oznacza szczególną implementację uogólnionego przypadku użycia Do relacji zawierania dochodzi wtedy, gdy kilka przypadków użycia ma wspólną sekwencję podobnych kroków, której nie warto ciągle kopiować z jednego przypadku do drugiego. Rozszerzenie przypadku użycia może wzbogacić go o dodatkowe zachowania, ale w takiej sytuacji podstawowy przypadek użycia musi określić pewne punkty rozszerzenia, a rozszerzający przypadek użycia może dodać nowe zachowania tylko w tych punktach. Przypadek użycia może mieć wiele punktów rozszerzeń, a rozszerzający przypadek użycia może rozszerzać podstawowy przypadek użycia w kilku z tych punktów. Trzecią relacją jest uogólnienie. W istocie jest bardzo podobne do rozszerzenia, jest jednak mniej formalne. Uogólnienie używa się wówczas, gdy dany przypadek użycia jest podobny do innego, ale jest nieco obszerniejszy. Specjalistyczny przypadek użycia może przesłonić dowolną część podstawowego przypadku użycia, ale zawsze powinien dotyczyć osiągnięcia tego samego celu użytkownika co podstawowy przypadek użycia. Rafał KASPRZYK

Przykłady relacji między przypadkami użycia Rafał KASPRZYK

Przykład bankomatu Diagram przypadków użycia pozwala na wizualizację Relacji pomiędzy przypadkami użycia Relacji pomiędzy przypadkami użycia a aktorami Relacji pomiędzy aktorami Zarówno uogólnienie, rozszerzenie, jak i zawieranie umożliwiają rozbicie przypadku użycia. W fazie rozwinięcia często rozbijam przypadki użycia, które stają się zbyt skomplikowane. W fazie budowy rozbijam przypadek użycia, gdy okazuje się, że nie mogę go zaimplementować całego w jednej iteracji. Należy stosować następujące reguły: Gdy trzeba powtórzyć coś w kilku przypadkach użycia, a jednocześnie chce się uniknąć powtórzeń, należy używać relacji zawierania Gdy trzeba opisać warianty typowego postępowania przy zachowaniu opisu nieformalnego, należy używać relacji uogólnienia Gdy trzeba opisać warianty typowego postępowania, ale jest potrzebny bardziej formalny opis ze zdefiniowaniem punktów rozszerzeń w przypadku podstawowym, należy używać relacji rozszerzenia. Rafał KASPRZYK

Diagramy aktywności Są grafami aktywności i przejść między nimi Stanowią uogólnioną wersję diagramów stanów maszyna stanu, której podstawowym zadaniem nie jest analiza stanów obiektu, ale modelowanie przetwarzania (przepływu zadań) Stany grafu aktywności (aktywności), odpowiadają stanom wyróżnialnym w trakcie przetwarzania, a nie stanom obiektów Aktywność może być interpretowana jako zadanie do wykonania przez człowieka lub komputer odpowiedzialność/operacja/metoda klasy Przejścia między stanami raczej nie są związane z nadejściem zdarzenia, ale z zakończeniem przetwarzania specyficznego dla danej aktywności Proces warunkowy jest określony za pomocą rozgałęzienia (branch) i scalenia (marge). Procesy współbieżne są określane za pomocą rozwidleń (fork) i złączeń (join). Rafał KASPRZYK

Zastosowanie diagramów aktywności Diagramy aktywności są szczególnie przydatne przy modelowaniu przypływu zadań i w opisie procesów z dużą liczbą równoległych czynności Dają możliwość opisu czynności warunkowych i współbieżnych Proces warunkowy jest przedstawiany za pomocą rozgałęzienia (ang. branch) i scalenia (ang. marge). Procesy współbieżne jest przedstawiany za pomocą rozwidlenia (ang. fork) i złączenia (ang. join). Określają sposób uszeregowane działania Opisują podstawowe reguły porządkujące czynności Pozwalają na określenie obiektów odpowiedzialnych za wykonywanie danej czynności na wysokim poziomie abstrakcji („tory pływackie”) W celu uszczegółowienia należy stosować diagramy interakcji Zrozumienie procesów biznesowych Wygodny sposób analizy przypadków użycia Współdziałanie obiektów na wysokim poziomie abstrakcji Opisanie algorytmu Sekwencyjnego Równoległego i/lub współbieżnego (aplikacje wielowątkowe) Diagram czynności umożliwia wybór kolejności rzeczy do zrobienia. Innymi slowy określa podstawowe reguly porządkujące wykonywanie czynności. Nie są ograniczone do procesów sekwencyjnych, ale potrafią ująć dodatkowo procesy wspólbieżne. Jest to ważne przy modelowaniu procesów biznesowych. Przedsiębiorstwa często mają niepotrzebnie sekwencyjne procesy. Technika zachęcająca do stosowania wspólbieżności jest bardzo cenna, bo zwraca uwagę na możliwość wykonywania pewnych czynności równolegle. Może to poprawić wydajność i szybkość procesów biznesowych. Rafał KASPRZYK

Diagram aktywności Rafał KASPRZYK

Przykład obsługi zamówienia Diagram czynności umożliwia wybór kolejności rzeczy do zrobienia. Innymi slowy określa podstawowe reguly porządkujące wykonywanie czynności. Nie są ograniczone do procesów sekwencyjnych, ale potrafią ująć dodatkowo procesy wspólbieżne. Jest to ważne przy modelowaniu procesów biznesowych. Przedsiębiorstwa często mają niepotrzebnie sekwencyjne procesy. Technika zachęcająca do stosowania wspólbieżności jest bardzo cenna, bo zwraca uwagę na możliwość wykonywania pewnych czynności równolegle. Może to poprawić wydajność i szybkość procesów biznesowych. Rafał KASPRZYK

Klasa Opis zbiór obiektów, które mają takie same Atrybuty – opisują stan Najczęściej typy proste lub biblioteczne Nie posiadają własnych reguł biznesowych Ich wartości są istotne dla obiektów klasy Operacje – opisują zachowanie Usługi oferowane przez każdy obiekt klasy Zwykle powodują zmianę stanu obiektu Dzielą się na zapytania i polecenia Związki – uogólnienia, realizacje, zależności, asocjacje, … Zachowanie klasy często zależy od zachowania innej klasy Pozwalają na unikaniu antywzorców (np.”BLOB”) Znaczenie Realizuje jeden bądź więcej interfejsów Interfejs definiuje zewnętrznie obserwowalne zachowanie takiego elementu, określając zbiór deklaracji operacji, ale nigdy sposobu implementacji Klasa to opis zbioru obiektów, które mają takie same atrybuty, operacje, związki i znaczenie. Klasa realizuje jeden bądź więcej interfejsów. Na diagramie jest przedstawiana jako prostokąt, który zwykle zawiera nazwę, atrybuty i operacje. NOTACJA DLA ATRYBUTÓW [visibility] name [multiplicity] [: type] [= init-value] [{property-string}] changeable, read-only, addOnly, frozen NOTACJA DLA OPERACJI [visibility] name [({[param] [: type]}*)] [:return-value] [{property-string}] query, modify Interfejs to zestaw operacji, które wyznaczają uslugi oferowane przez klasę lub komponent. Interfejs definiuje zatem zewnętrznie obserwowalne zachowanie takiego elementu. Można reprezentować pełne zachowanie klasy lub elementu lub jedynie część. Określa zbiór deklaracji operacji (czyli sygnatur) ale nigdy zbiór implementacji operacji. Rafał KASPRZYK

Przykład klasy i interfejsu Rafał KASPRZYK

Klasy parametryzowane Kilka języków, a w szczególności C++, zawiera pojęcie klasy parametryzowalnej albo wzorca, szablonu. Pojęcie to najbardziej przydaje się przy pracy ze zbiorami w językach z kontrolą typów. W ten sposób definiując wzorzec klasy, można zdefiniować zachowanie calej rodziny klas. W ten sposób można korzystając z ogólnej definicji, tworzyć klasy zbiorcze konkretnych elementów. Lista<Osoba> listaOsób Element zastępuje parametr typu. Użycia klasy parametryzowalnej, takiej jak np. Lista<Osoba>, jest nazwane elementem związanym. Element związany można przedstawić na dwa sposoby. Pierwszy jest odbiciem syntaktyki C++. Notacja alternatywna akcentuje związek z wzorcem i umożliwia zmianę elementu związanego. Stereotyp <<bind>> jest stereotypem relacji uszczególowiania. Relacja ta wskazuje, że ListaOsób będzie zgodny z interfejsem Listy. template<class Element> class Lista{ Element *first public: virtual dodaj(const Element& e); virtual usuń(const Element& e); } Rafał KASPRZYK

Klasy asocjacyjne Klasy asocjacyjne umożliwiają dodanie dodatkowych atrybutów i operacji do asocjacji Może istnieć tylko jedna instancja klasy asocjacyjnej między dowolnymi dwoma obiektami połączonymi asocjacją Klasy asocjacyjne umożliwiają dodanie atrybutów, operacji i innych elementów do asocjacji. Klasa asocjacyjna wnosi dodatkowe ograniczenie - może istnieć tylko jedna instancja klasy asocjacyjnej między dowolnymi dwoma obiektami połączonymi asocjacją. Diagram nie daje Pracownikowi możliwości drugiego etatu (Stanowiska) w tej samej Firmie. Jeśli jest potrzebna taka możliwość to klasa Stanowisko musi być samoistną klasą. Należy o tym pamiętać!!! Rafał KASPRZYK

Asocjacja kwalifikowana Odpowiednik tablic asocjacyjnych, map i słowników Wskazuje sposób znajdowania powiązanych obiektów Najczęściej powoduje konieczność implementacji powiązania w postaci mapy w kwalifikatorze z kwalifikowanym końcem Asocjacja kwalifikowana jest UML-owym odpowiednikiem pojęcia tablic asocjacyjnych, map lub slowników. Diagram przedstawia przykład asocjacji stosującej kwalifikację Przedstawienie-Bilet. Kwalifikacja mówi, że dla Przedstawienia może istnieć jeden Bilet dla każdej instancji Miejsca na określoną datę. Rafał KASPRZYK

Diagram klas dla SI uczelni SYSTEM INFORMACYJNY UCZELNI Rafał KASPRZYK

Stereotypy analityczne dla klas Terminator (ang. boundary) – modeluje interakcję pomiędzy aktorem a systemem Sterowanie (ang. control) – prowadzi obliczenia, koordynację, nadzoruje transakcje i przebieg sekwencji Encja (ang. entity) – modeluje encje biznesowe, najczęściej o charakterze trwałym (zapisywane w bazie danych) Rafał KASPRZYK

Diagramy sekwencji Przedstawiają interakcje pomiędzy obiektami, przy czym największy nacisk kładą na zależności czasowe Stosowane zawsze, gdy kolejność wywołań oraz ograniczenia czasowe są istotna Nadają się do modelowania Systemów czasu rzeczywistego Przetwarzania współbieżnego Złożonych scenariuszy Nie prezentują związków strukturalnych między współdziałającymi obiektami Pozwalają na modelowanie różnych typów interakcji Synchroniczna Asynchroniczna Powrót Komunikat synchroniczny – nadawca zawiesza swoją działalność dopóki odbiorca nie przekaże sterowania, co można oznaczyć symbolem powrotu Powrót – nie jest komunikatem, oznacza zakończenie komunikatu i przekazanie sterowania do nadawcy Komunikat plaski – przekazanie sterowania do odbiorcy, kończąc własną działalność Komunikat asynchroniczny – nadawca komunikat nie oczekuje na odpowiedź nadawcy, ale też nie kończy własnej działalności, nadal przetwarza, może wysyłać komunikaty Rafał KASPRZYK

Elementy diagramów sekwencji Rafał KASPRZYK

Przykład biura maklerskiego Rafał KASPRZYK

Diagramy współpracy Kolejność wywołań prezentowana za pomocą numeracji Stanowią wystąpienie fragmentu diagramu klas Stosowane, gdy przy modelowaniu interakcji ważne jest wzajemne powiązanie obiektów Rodzaje powiązań pomiędzy obiektami <<field>> <<parameter>> <<local>> <<global>> … Diagramy współpracy stanowią wystąpienie fragmentu diagramu klas, lepiej przedstawiają związki między obiektami biorącymi udzial w realizacji danego przypadku użycia. Rafał KASPRZYK

Przykład biura maklerskiego Rafał KASPRZYK

Komponenty Fizyczna, wymienna część oprogramowania z dobrze zdefiniowanym interfejsem, wyizolowana z kontekstu i dzięki temu nadająca się do wielokrotnego wykorzystania Każdy komponent jest luźno powiązany z innymi komponentami, najczęściej za pomocą zależności i realizacji Rodzaje komponentów Wdrożenia – podstawa systemu wykonywalnego biblioteki DLL, pliki wykonywalne EXE, EJB Procesu wytwórczego – podstawa do generacji komponentu wdrożeniowego Wykonania – powstałe w wyniku działania systemu Przykłady komponentów programy wykonywalne, biblioteki, tabele, pliki, dokumenty, bazy danych itp. Komponent jest jednostką implementacji z dobrze zdefiniowanym interfejsem, dobrze wyizolowany z kontekstu, nadający się do wielokrotnego wykorzystania. W każdym systemie można spotkać wiele rodzajów wdrożonych komponentów (np. COM+ i Java Beans), a także komponentów będących artefaktami w procesie wytwarzania (np. pliki z kodem źródłowym) i komponenty wykonania (np. wydruki, raporty). Rafał KASPRZYK

Diagramy komponentów Rafał KASPRZYK

Węzły Sprzętowe składowe działającego systemu Dzielimy na: Procesory – reprezentują zasoby obliczeniowe Posiadają pewną ilość pamięci i zdolność przetwarzania Mogą wykonywać kod komponentu Urządzenia – są interfejsem do świata zewnętrznego Nie mają zdolności przetwarzania (np. monitor, drukarka) Służą do modelowania infrastruktury sprzętowej (diagramy wdrożenia), pozwalając jednocześnie na zobrazowanie fizycznego rozmieszczenia (rozproszenia) komponentów na poszczególnych węzłach Komponenty reprezentują fizyczne wymienne części systemu, które realizują elementy logiczne, a węzły to fizyczne składniki systemu na których wdrożone zostają komponenty Rafał KASPRZYK

Diagramy wdrożenia Rafał KASPRZYK Diagramy wdrożeniowe pokazują konfigurację systemu czasu wykonywania, czyli rozmieszczenie komponentów na zasobach obliczeniowych czasu wykonywania, zwanych węzłami. Taka konfiguracja może być zarówno statyczna jak i dynamiczna – komponenty i obiekty mogą migrować między węzłami w czasie wykonywania. Diagram wdrożenia pokazują fizyczne rozproszenie komponentów po procesorach i urządzeniach Najczęściej mamy do czynienia z sytuacją w której diagramy komponentów „umieszczane” są na diagramach wdrożenia, aby pokazać, które komponenty działają na których węzłach. Rafał KASPRZYK

Diagramy stanów Są grafami stanów i przejść między nimi Akcje są związane z przejściami i traktuje je jako procesy szybkie i nieprzerywalne Czynności są związane ze stanami, trwają zazwyczaj dłużej, ale mogą zostać przerwane przez zdarzenie Opisują reakcje obiektu na otrzymane komunikaty i zdarzenia zewnętrzne Niezwykle użyteczne do modelowania obiektów reaktywnych, czyli takich których zachowanie charakteryzowane jest przez ciąg odpowiedzi na zdarzenia wywoływane w jego otoczeniu Modelują zachowanie obiektów danej klasy w oderwaniu od reszty systemu Wszystkie obiekty danej klasy znajdujące się w tym samym stanie reagują w jednakowy sposób na otrzymanie tego samego komunikatu lub zdarzenia Maszyna stanu – graf skierowany, którego wierzchołki stanowią stany obiektu, a luki opisują przejścia między stanami. Przejście jest odpowiedzią na zdarzenie. Akcje są związane z przejściami i traktuje się je jako procesy szybkie i nieprzerywalne (atomowe). Czynności są związane ze stanami i mogą trwać dłużej. Czynność może zostać przerwana przez jakieś zdarzenie. Diagramy aktywności są specyficznym rodzajem diagramów stanów, na którym większość stanów to stany czynnościowe, a wszystkie przejścia są uruchamiane w chwili zakończenia czynności w stanie źródłowym. Diagramy aktywności i diagramy stanów są niezwykle użyteczne do modelowania historii życia obiektu. Diagram aktywności obrazuje przepływ sterowania między czynnościami, a diagram stanów przepływ sterowania między stanami. Diagramy stanów nadają się do modelowania dynamicznych aspektów systemu, w szczególności modelowania obiektów reaktywnych, czyli takich którego zachowanie najlepiej jest charakteryzowane przez ciąg odpowiedzi na zdarzenia wywołane w jego otoczeniu. Zwykle taki obiekt jest bezczynny do chwili zajścia zdarzenia. Gdy ono nastąpi, jego reakcja zależy najczęściej od wcześniejszych zdarzeń. Po zakończeniu akcji spowodowanych zdarzeniem obiekt znów jest bezczynny i czeka na następne bodźce. Rafał KASPRZYK

Elementy diagramów stanów Zdarzenia – bodziec, który może uruchomić przejście pomiędzy stanami Wołanie – operacja(a:T) Synchroniczne wywołanie żądania, gdzie obiekt wołający czeka na wynik Zmiana – when(wyr.) Ciągłe czekanie na spełnienie warunku Sygnał – sygnał (a:T) Asynchroniczna komunikacja jednokierunkowa Czas – after(czas) Uzależnione od czasu, definiowanego bezwzględnie lub względnie Stany mogą mieć nazwy i być definiowane na trzy sposoby Wartość atrybutów obiektów Czas, gdy obiekt oczekuje na nadejście jakiegoś zdarzenia Czas, w którym obiekt wykonuje jakieś czynności Przejścia – wskazują, że obiekt przejdzie z jednego stanu do drugiego, ilekroć zajdzie określone zdarzenie i będą spełnione warunki entry/akcja – oznacza wykonanie akcji podczas wejścia do stanu exit/akcja – oznacza wykonanie akcji podczas wyjścia ze stanu zdarzenie(a:T)[dozór]/akcja Przejście zewnętrzne – wykonanie akcji exit zmiana stanu i wykonanie akcji entry Przejście wewnętrzne – wykonanie akcji exit i entry bez zmiany stanu Entry – entry/akcja - oznacza wykonanie akcji podczas wejścia do stanu Exit – exit/akcja - oznacza wykonanie akcji podczas wyjścia ze stanu Przejście zewnętrzne – zdarzenie(a:T)[dozór]/akcja – w odpowiedzi na odebrane zdarzenie następuje zmiana stanu i wykonanie akcji Przejście wewnętrzne - zdarzenie(a:T)[dozór]/akcja – w odpowiedzi na odebrane zdarzenie następuje wykonanie akcji bez zmiany stanu Zdarzenie to specyfikacja zjawiska, które zachodzi w czasie i w przestrzeni. Zdarzenie jest wystąpieniem bodźca, które może uruchomić przejście między stanami. Typy zdarzeń: wołanie: otrzymanie przez obiekt synchronicznego żądania wykonania operacji op(a:T) zmiana: do modelowania sytuacji gdy obiekt zmienia stan po otrzymaniu odp. na wysłany przez siebie komunikat when(wyrażenie) sygnał: otrzymanie przez obiekt asynchronicznego żądania wykonania operacji sygnał(a:T), użyteczne do modelowania zdarzeń pochodzących z zewnątrz systemu czas: upłynięcie czasu określonego w sposób bezwzględny lub względny after(czas) Stan obiektu może być charakteryzowany jako: zbiór wartości obiektu (atrybutów i powiązań) w pewnym sensie podobnych okres czasu w którym obiekt oczekuje na zdarzenie jako okres czasu w którym obiekt przetwarza Nazwa stanu Entry/akcja1/akcja2/... Do/aktywność1/... Exit/akcja1/akcja2/... Przejście to związek pomiędzy dwoma stanami, wskazujący, że obiekt znajdujący się w pierwszym stanie wykona pewne akcje i przejdzie do drugiego stanu, ilekroć zajdzie określone zdarzenie i będą spełnione odpowiednie warunki. Rodzaje przejść: przejście zewnętrzne i wewnętrzne: zdarzenie[warunek]/akcja przejście automatyczne: [warunek]/akcja Rafał KASPRZYK

Przykład obiektu klasy ”Konto Bankowe” Rafał KASPRZYK

Przykład obiektu klasy ”Sesja Użytkownika” Stan złożony , powstały w efekcie zagnieżdżenia stanów, może być dekomponowany na stany bardziej proste, a dekompozycja jest tu rodzajem specjalizacji. Każdy z podstanów dziedziczy przejścia nadstanu. Tylko jeden z podstanów może być aktywny w danym momencie. Diagramy stanów współbieżnych przydają się w wypadku, gdy dany obiekt ma pewne zbiory niezależnych zachowań. Jednak nie należy mieć zbyt wielu zbiorów współbieżnych zachowań dla pojedynczego obiektu. Jeśli dla jednego obiektu jest kilka skomplikowanych diagramów stanów współbieżnych, to należałoby się zastanowić nad rozbiciem tego obiektu na kilka prostszych. Rafał KASPRZYK