45. UML, jego struktura i przeznaczenie
Transkrypt
45. UML, jego struktura i przeznaczenie
45. UML, jego struktura i przeznaczenie. Przeznaczenie UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne. Pozwala obrazować, specyfikować, tworzyć i dokumentować elementy systemu, takie jak jego funkcje, typy użytkowników i ich zachowania, procesy biznesowe, schematy bazy danych, obiekty, komponenty systemu. Wysoki poziom abstrakcji gwarantuje całkowitą niezależność od platformy i języka programowania projektu. Ułatwia wymianę informacji pomiędzy przyszłymi użytkownikami systemu, menadżerami, analitykami, projektantami, programistami i testerami UML jest jedynie językiem modelowania używanym w procesie analizy i projektowania systemów komputerowych, nie jest językiem programowania, nie pozwala też na zdefiniowanie procesu wytwarzania oprogramowania. Zakres zastosowania: tworzenie systemów informacyjnych przedsiębiorstw, usługi bankowe i finansowe, telekomunikacja, transport, przemysł obronny i lotniczy, sprzedaż detaliczna, elektronika i medycyna, rozproszone usługi internetowe… Struktura Najnowsza wersja to wersja 2.2 UML składa się z pewnych elementów graficznych, i słów kluczowych powiązanych ze sobą w diagramy, które pokazują modele rzeczywistości, które później zostaną oprogramowane. Diagram to uproszczona reprezentacja graficzna pewnych pomysłów, idei, konstrukcji, zależności, danych statystycznych. 1 Rodzaje diagramów: Diagramy strukturalne Diagramy dynamiki Diagram klas Diagram czynności Diagram obiektów Diagram przypadków użycia Diagram pakietów Diagram maszyny stanowej Diagramy wdrożeniowe: (rodzaje: diagram Diagram interakcji (rodzaje: diagram komponentów, diagram rozlokowania). sekwencji, komunikacji, diagram sterowania interakcją, diagram harmonogramowania) Diagram struktur połączonych Diagram profili Diagram klas Przedstawia strukturę systemu struktury klas i zależności między nimi. w modelach obiektowych przez ilustrację Pola i notacja: • Nazwa klasy. Sposób zapisu nazwy - NazwaKlasy, Nazwa. • Atrybutów. Sposób zapisu: [dostępność] nazwaAtrybutu/nazwa/nazwaKolejnegoAtrybutu [: typ][liczebność][ = wart_poczatkowa][właściwość]. 2 Właściwość: changeable – bez ograniczeń addOnly – gdy liczebność jest większa niż jeden, można dodawać nowe wartości, ale raz dodane nie mogą być zmieniane readOnly, frozen – nie ma możliwości zmiany. Np.: # suma: Integer[0..*] = 750{changeable}. • Metod. Sposób zapisu: [dostępność] nazwa()/nazwaMetody()/nazwaKolejnejMetody()[(lista_parametrów)][ : typ_wartosci_zwracanej][właściwość] Właściwość: leaf – funkcja niepolimorfliczna (nie może być nadpisana) isQuerry – funkcja nie zmieniająca obiektu sequential, guarded, concurrent – mają zastosowania przy operacjach współbieżnych Np.: + obliczPlatnosc(pozycja :Byte = 50, obnizka :Boolean) : Long – publiczna metoda obliczPlatnosc typu Long, zawiera atrybuty pozycja typu Byte o wartości początkowej 50 oraz obnizka typu Boolean. Dostępność: + publiczna - prywatna # chroniona ~ zakres pakietu Obowiązkowe jest jedynie pole nazwy klasy. Jeśli już zdecydujemy się na pola atrybutów i metod to obowiązkową pozycją są jedynie ich nazwy, reszta jest opcjonalna. Dwie lub więcej klas może być połączonych ze sobą w związki zwane asocjacjami, opisującymi powiązania między klasami: a) asocjacja binarna: 3 b) asocjacja n-arna: Diagram obiektów Przedstawia egzemplarze elementów z diagramu klas odwzorowujące strukturę systemu w wybranym momencie jego działania. Stosuje się go np. wtedy, gdy diagram klas jest bardzo skomplikowany. Diagram pakietów W miarę wzrostu wielkości modelowanego systemu, rośnie liczba wykorzystywanych elementów (klas, interfejsów, komponentów...). Można grupować modelowane byty w pakietach powiązanych znaczeniowo. Składnikami pakietu mogą być różne elementy, przykładowo klasy, interfejsy, operacje, przypadki użycia, diagramy, inne pakiety, komponenty itd., lecz najczęściej są to klasy. 4 Diagram komponentów Komponent, to hermetyczny, wymienny, wykonywalny fragment systemu, realizujący określone jego usługi, za pośrednictwem interfejsów. Komponent reprezentuje jeden fizyczny moduł kodu. Często jest to jeden pakiet, ale nie zawsze istnieje taka jednoznaczna odpowiedniość. Komponenty z natury służą do ponownego wykorzystania poprzez połączenie ich z innymi komponentami, zwykle poprzez ich skonfigurowanie, bez potrzeby rekompilacji. Interfejs – zestaw operacji, które wyznaczają usługi oferowane przez klasę lub komponent. Interfejsy udostępniające – przez które komponenty oferują swoje usługi (IRaporty, IPrzelewy, IListaPłac) Interfejsy pozyskujące – przez które komponenty korzystają z usług innych komponentów (IGodzinyWykonane, IPracownik). Powyżej komponent Płace.exe, będący częścią większego systemu księgowego, umożliwiające rozliczanie płac. Pozyskuje od innych komponentów informacje o przepracowanych godzinach i danych pracowników a umożliwia tworzenie raportów, list płac i zlecanie przelewów. 5 W UML zdefiniowane są następujące stereotypy komponentów: executable - określa komponent, który można wykonać na węźle; library - określa dynamiczną lub statyczną bibliotekę obiektów; table - określa komponent reprezentujący tabelę bazy danych; subsystem - podsystemy service – komponent przetwarzający Diagram rozlokowania Po wykonaniu w języku UML logicznej specyfikacji systemu niezbędne jest udokumentowanie jego fizycznego rozlokowania. Diagramy wdrożenia przedstawiają powiązania między oprogramowaniem (artefaktami) i sprzętem (węzłami). Dzięki diagramom rozlokowania język UML pozwala na wyspecyfikowanie rozmieszczenia modułów użytkowanej aplikacji (artefaktów) na poszczególnych węzłach. Stronę sprzętową reprezentują węzły, czyli poszczególne urządzenia obliczeniowe, komunikacyjne i przechowujące, powiązane ścieżkami komunikacyjnymi (serwery, urządzenia wejścia-wyjścia takie jak drukarki czy monitory, routery, bramy, switche i inne urządzenia sieciowe). Artefakty: pakiety oprogramowania, bazy danych, arkusze kalkulacyjne, skrypty. 6 Diagram struktur połączonych Diagram struktur połączonych pokazuje związki istniejące pomiędzy częściami systemu, które współpracując dostarczają pewnej funkcjonalności. Na poniższym rysunku wspomnianą funkcjonalnością jest możliwość licytacji towarów na portalu aukcyjnym: Diagram konceptualny: W praktyce w systemie: • Rolę Lictującego spełnia obiekt klasy Kupujący, • rolę Oferującego – obiekt klasy Sprzedający, • rolę ListyAsortymentu – interfejs IOfertaAukcji Diagram implementacyjny: 7 Diagram czynności Diagram czynności to graficzne przedstawienie sekwencyjnych i/lub współbieżnych przepływów sterowania pomiędzy ciągami akcji bądź obiektów składających się na wykonanie pewnej czynności. Pokazują aktywności bez pokazywania bytów, realizujących daną aktywność. Diagramy czynności umożliwiają określenie tego, w jaki sposób system będzie osiągał zamierzony cel, czyli wykonywał daną czynność: jakie będzie wykonywał akcje i jak te akcje są ze sobą połączone. Czynność – rodzaj zachowania systemu, składający się z przynajmniej jednej akcji. Akcja – pojedyncza, niepodzielna operacja. Na powyższym rysunku czynnością jest Przetwarzanie sprzedaży a akcjami Pobranie opłaty i Wysyłka. Diagram przypadków użycia Określają wymagania funkcjonalne danego systemu oraz sposób komunikowania się użytkowników i klientów (tzw. aktorów) z systemem. Przypadek użycia to specyfikacja ciągu akcji i ich wariantów, które system (lub inna jednostka), może wykonać poprzez interakcje z aktorami tego systemu. Aktor jest to spójny zbiór ról odgrywanych przez użytkowników danego przypadku użycia w czasie interakcji z tym przypadkiem użycia. Mogą być osobowi (osoba, zespół, dział, instytucja) bądź nieosobowi (np. inny system, czas, urządzenia). Aktorzy i przypadki użycia połączeni są ze sobą związkiem zwanym asocjacją, który opisuje powiązania między nimi. Przedstawiają usługi świadczone aktorom bez skazywania konkretnych rozwiązań technicznych. 8 Diagram przypadków użycia systemu obsługi hurtowni: Diagram maszyny stanowej Maszyna stanowa to zachowanie określające sekwencję stanów, przez które przechodzi dany obiekt w odpowiedzi na dane zachowania. Diagram maszyny stanowej przedstawia skokowo takie stany i przejścia między nimi. 9 Diagram sekwencji Diagramy sekwencji - opisują interakcje pomiędzy częściami systemu w postaci sekwencji komunikatów wymienianych między nimi. Sprawdzanie stanu konta za pośrednictwem bankomatu: Diagram komunikacji Diagram komunikacji również przedstawia sposób wymiany komunikatów pomiędzy obiektami uczestniczącymi w interakcji. Diagramy sekwencji pokazywały sekwencję komunikatów wymienianych między obiektami, umieszczoną w odpowiedniej kolejności na osi czasu, diagramy komunikacji pokazują zaś jak te obiekty są połączone (co może pomóc zrozumieć interakcje), dlatego, by pokazać ich kolejność, konieczne jest numerowanie. 10 Diagram sterowania interakcją Diagramy sterowania interakcją udostępniają wysokiego poziomu widok wzajemnej współpracy kilku interakcji wykorzystywanych w celu implementacji pewnej części systemu, na przykład danego przypadku użycia. Diagramy sekwencji, komunikacji oraz harmonogramowania koncentrują się na określonych szczegółach związanych z komunikatami, które tworzą interakcję. Natomiast diagramy sterowania interakcją wiążą ze sobą kilka różnych interakcji w pojedynczy kompletny obraz interakcji obejmujących pewien określony obszar systemu Taki diagram wygląda bardzo podobnie do diagramu czynności, z tą różnicą, że każda z akcji została zastąpiona samą interakcją. ref – przywoływane wystąpienie interakcji, czyli odwołanie do jednego z diagramów interakcji, oznaczonego nazwą wymienioną w przywołaniu. sd – diagram sekwencji 11 Diagram harmonogramowania Prezentuje na osi czas zmiany dopuszczalnych stanów, w jakie wchodzi obiekt biorący udział w interakcji. 12