Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl
Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie
Wprowadzenie Języki modelowania to uniwersalne narzędzia dla programistów (i nie tylko) służące zobrazowaniu procesów zachodzących w projektach UML jest językiem spełniającym określone standardy
UML UML (ang. Unified Modeling Language) to język formalny służący do opisu świata obiektów w analizie obiektowej oraz programowaniu obiektowym. Służy do modelowania dziedziny problemu (opisywania fragmentu istniejącej rzeczywistości) W przypadku stosowania go do analizy, oraz do modelowania rzeczywistości, która ma dopiero powstać Tworzy się w nim głównie modele systemów informatycznych. UML jest głównie używany wraz z jego reprezentacją graficzną jego elementom przypisane są symbole, które wiązane są ze sobą na diagramach.
UML Początkowo UML serii 1.x służył jako narzędzie do jednoznacznego przedstawiania projektów, wyrażania ich istoty oraz wychwytywania i odwzorowywania założeń funkcjonalnych dla rozwiązań informatycznych. Pierwotnie założeniem było to, że UML ma być językiem dla ludzi tzn. ma wspomagać człowieka w szeroko rozumianym projektowaniu systemów (informatycznych). Stworzono UML 2.0 zgodnie z wymaganiami stawianymi przez otoczenie
Diagramy w UML Przypadków użycia Interakcje pomiędzy systemem a użytkownikami lub innymi systemami zewnętrznymi. Pomocny również w przypadku odwzorowywania wymagań do systemu Czynności Klas Obiektów Sekwencyjne oraz równoległe czynności w systemie Klasy, typy, interfejsy oraz relacje pomiędzy nimi Egzemplarze obiektów klas zdefiniowanych na diagramach klas w konfiguracji ważnej dla systemu Sekwencji Interakcje pomiędzy obiektami w miejscach, w których interakcja jest istotna Komunikacji Sposoby, w jakie zachodzą interakcje pomiędzy obiektami, oraz połączenia oraz połączenia wymagane w celu obsługi tej interakcji Czasowy Interakcje pomiędzy obiektami, w przypadku których istotne są zależności czasowe Przeglądu interakcji Wykorzystywany do zebrania razem diagramów sekwencji, komunikacji oraz czasowego w celu uchwycenia ważnych interakcji zachodzących w systemie Struktur złożonych Komponentów Szczegóły wewnętrzne klasy luk komponentu. Może opisywać relacje pomiędzy klasami w danym kontekście. Ważne komponenty systemu oraz interfejsy używane przez nie w celu wzajemnej interakcji. Pakietów Maszyny stanowej Hierarchiczna organizacja grup klas oraz komponentów Stan obiektu w trakcie całego jego istnienia oraz zdarzenia, które mogą go zmienić Wdrożenia Sposób ostatecznego wdrożenia systemu w danym rzeczywistym scenariuszu.
Modelowanie strukturalne Pakietów Klas Obiektów Struktur złożonych Komponentów Wdrożenia
Modelowanie behawioralne Przypadków użycia Czynności Maszyny stanowej Sekwencji Komunikacji Przeglądu interakcji Czasowy
Uwagi do diagramów Otrzymany w wyniku procesu projektowania systemu zestaw diagramów NIE JEST modelem systemu. Trzeba pamiętać, że modelowanie systemu nie ogranicza się jedynie do diagramów. Ma ono na celu uchwycenie systemu w postaci modelu. Diagramy są, można powiedzieć, jedynie oknami na model. Diagram ukazuje ma ukazywać jedynie pewne zasadnicze części modelu, pewne aspekty tego modelu.
Diagram przypadków użycia opisuje funkcjonalność, jaką powinien dostarczać system, widzianą przez jego użytkowników. Przypadek użycia jest sytuacją, w której dany system jest używany w celu spełnienia jednego lub większej liczby wymagań użytkowników. Przypadki użycia są punktem wyjściowym dla każdego etapu tworzenia, projektowania, testowania oraz dokumentacji systemu obiektowego. Ponieważ stanowią one wymagania funkcjonalne systemu, powinny stanowić jeden z pierwszych poważnych rezultatów pracy po rozpoczęciu projektu ponieważ pozwalają ZDEFINIOWAĆ zadania systemu.
Diagram przypadków użycia Zadania spełniane przez diagram: Definiuje granice modelowanego systemu Określa jego kontekst Wymienia użytkowników i jednostki zewnętrzne Przedstawia funkcje dostępne dla użytkowników Określa powiązania i zależności między nimi
Zasady tworzenia diagramu Użytkownik Bardziej ogólny Aktor "Użytkownik" Generalizacja Strzałka Uogólnienia Notatki Bardziej szczegółowy Aktor "Administrator" Administrator
Diagram przypadków użycia - przykład Utwórz nowe konto pamiętnika <<include>> Sprawdź tożsamość Administrator <<include>> Baza danych autorów Utwórz nową osobistą stronę Wiki
Diagram klas Klasa: pewien typ czegoś wyznacznik budowy obiektu definicja, model obiektów istniejących w rzeczywistości zbiór wszystkich obiektów mających wspólną strukturę i zachowanie Przykłady: Osoba, Student, Samochód
Obiekt lub instancja klasy Konkretna realizacja klasy Przykłady: Jasiu Śmietana jest instancją klasy Osoba Student o numerze albumu 112014 jest instancją klasy Student Fiat UNO o nr rejestracyjnym SZ 01555 jest instancją klasy Samochód
Składowe klasy nazwa atrybuty (dane) np. imię, wiek, kolor_karoserii, szyberdach_zamknięty operacje (metody) funkcje służące do wykonywania na atrybutach określonych zadań np. otwórz_szyberdach(), zapal_silnik()
Diagram klas - zastosowanie przedstawia klasy występujące w systemie i statyczne relacje pomiędzy nimi wraz z ograniczeniami jest podstawowym diagramem struktury logicznej systemu jest najczęściej używanym diagramem UML
właściwości atrybutów (np. unique, ordered, readonly) widoczność: + publiczna nazwa -prywatna ~ pakietowa # chroniona atrybuty operacje typy atrybutów (np. string, integer, float)
Asocjacja Reprezentuje istnienie trwałego związku między klasami obiektów. Oznacza to, że na przestrzeni czasu związek będzie pozostawał istotny mimo tego, że powiązania między instancjami obiektów mogły ulegać zmianie.
Agregacja Silniejsza forma asocjacji. W przypadku tej relacji równowaga między powiązanymi klasami jest zaburzona: istnieje właściciel i obiekt podrzędny, które są ze sobą powiązane czasem swojego życia. Właściciel jednak nie jest wyłącznym właścicielem obiektu podrzędnego, zwykle też nie tworzy i nie usuwa go.
Zależność słabsza asocjacja Kompozycja silniejsza agregacja (jedno nie może istnied bez drugiego)
Generalizacja (dziedziczenie) Związek występujący między bardziej ogólnym elementem (nadklasą, rodzicem) a bardziej szczegółowym elementem (podklasą, dzieckiem) w pełni zgodnym z nadrzędnym i zawierającym ponadto dodatkowe informacje czy własności. Klasa abstrakcyjna
Przykładowe programy do tworzenia diagramów UML Dia (http://dia-installer.de/index_en.html) StarUML (http://staruml.sourceforge.net/en/) MS VISIO IBM Rational Software Architect
Gdzie znaleźć więcej informacji? http://wazniak.mimuw.edu.pl/index.php?title=in%c5%bc ynieria_oprogramowania http://www.uml.com.pl/ http://www.borland.pl/tech/poradnik_uml.shtml
Podsumowanie UML pozwala na spojrzenie globalne na projekt Diagramy przypadków użycia i diagramy klas są elementami UML Diagramy przypadków użycia i diagramy klas są spojrzeniem z określonej perspektywy na konkretny projekt
Dziękuję za uwagę arkadiusz.banasik@polsl.pl
Podziękowania Serdecznie dziękuję za pomoc w przygotowaniu materiałów Pawłowi Raifowi i Tomkowi Owczarkowi