Unified Modeling Language Wprowadzenie do UML Igor Gocaliński
Odrobina historii Połowa lat 70-tych i koniec 80-tych to początek analizy obiektowej Wiele opracowanych metod w połowie lat 90-tych Metoda Boocha Object-Oriented Software Engineering (Jacobson) Object Modeling Technique (Rumbaught) Październik 1994 oficjalny początek prac nad UML Październik 1995 publikacja UML 0.8. Do Booch a i Rumbaught a dołącza Jacobson Czerwiec 1996 powstaje UML 0.9 Styczeń 1997 przekazanie UML 1.0 Jesień 1999 publikacja UML 1.3
Modele Model to uproszczenie rzeczywistości Modele opracowujemy po to, żeby lepiej zrozumieć system, który budujemy Modele złożonych systemów tworzymy, ponieważ nie potrafimy ogarnąć tych systemów w całości zasada dziel i rządź
Znaczenie modelowania Modelowaniu ma na celu Ułatwienie wyobrażenia całego system Wyspecyfikowanie struktury i zachowania systemu W wyniku modelowania otrzymujemy szablony, które ułatwiają sterowanie procesem tworzenia oprogramowania Modele stanowią dokumentację systemu
Bloki konstrukcyjne UML Elementy strukturalne czynnościowe grupujące komentujące Związki zależności powiązania uogólnienia realizacji Diagramy klas obiektów przypadków użycia przebiegu kooperacji stanów czynności komponentów wdrożenia
Elementy strukturalne Klasa zbiór obiektów, które mają takie same atrybuty i operacje SQL_Query +Database +SQL -CursorPos +Open() +ExecSQL()
Elementy strukturalne Interfejs zestaw operacji, które wyznaczają usługi oferowane przez klasę lub komponent IPisownia
Elementy strukturalne Kooperacja definiuje interakcję zestaw ról i innych bytów, współpracujących w celu wywołania pewnego zespołowego działania, niemożliwego do uzyskania w pojedynkę Hierarchia odpowiedzialności
Elementy strukturalne Przypadek użycia opis zbioru ciągów akcji wykonywanych przez system w celu dostarczenia danemu aktorowi godnego uwagi wyniku Wystaw zamówienie
Elementy strukturalne Klasa aktywna zawiera obiekty, które są procesami lub wątkami Zarządca +wstrzymaj() +roześlij()
Elementy strukturalne Komponent fizyczna część systemu, która wykorzystuje i realizuje pewien zbiór interfejsów. komponenty COM+ Java Beans Formularz
Elementy strukturalne Węzeł fizyczny składnik działającego systemu reprezentuje zasoby obliczeniowe ilość pamięci zdolności przetwarzania Serwer
Bloki konstrukcyjne UML Elementy strukturalne czynnościowe grupujące komentujące Związki zależności powiązania uogólnienia realizacji Diagramy klas obiektów przypadków użycia przebiegu kooperacji stanów czynności komponentów wdrożenia
Elementy czynnościowe Interakcja zachowanie, polegające na wymianie komunikatów między obiektami Odwołaj
Elementy czynnościowe Maszyna stanowa określa ciąg stanów, jakie obiekt lub interakcja przyjmuje w odpowiedzi na zdarzenia zachodzące w czasie ich życia Oczekiwanie
Bloki konstrukcyjne UML Elementy strukturalne czynnościowe grupujące komentujące Związki zależności powiązania uogólnienia realizacji Diagramy klas obiektów przypadków użycia przebiegu kooperacji stanów czynności komponentów wdrożenia
Elementy grupujące Pakiet służy do grupowania elementów zawiera elementy strukturalne, czynnościowe lub grupujące Grafika
Bloki konstrukcyjne UML Elementy strukturalne czynnościowe grupujące komentujące Związki zależności powiązania uogólnienia realizacji Diagramy klas obiektów przypadków użycia przebiegu kooperacji stanów czynności komponentów wdrożenia
Elementy komentujące Notatka rola objaśniająca używana w celu wzbogacenia diagramu o ograniczenia i objaśnienia Przekazać do weryfikacji
Bloki konstrukcyjne UML Elementy strukturalne czynnościowe grupujące komentujące Związki zależności powiązania uogólnienia realizacji Diagramy klas obiektów przypadków użycia przebiegu kooperacji stanów czynności komponentów wdrożenia
Związki zależności Związek znaczeniowy między dwoma elementami Zmiany w definicji jednego (niezależnego) mogą mieć wpływ na znaczenie drugiego (zależnego) Punkt -pozycja +Narysuj() TCanvas
Związki powiązania Związek strukturalny, określający zbiór wiązań między obiektami Agregacja: całość-część +Pracownik +Pracodawca Osoba Przedsiębiorstwo 1..* * 1 * Dział
Związki uogólnienie Związek między dwoma bytami ogólnym szczegółowym Obiekt bytu szegółowego może być używany w zastępstwie obiektu bytu ogólnego Osoba Student
Związki realizacji Związek między klasyfikatorami, z których jeden określa kontrakt, a drugi zapewnia wywiązanie się z niego Występują zwykle między interfejsem a klasami przypadkami użycia a kooperacjami «interface» IObsługaReguł +DodajRegułę() +ZmienRegułę() +UzasadnijAkcję() Weryfikuj użytkownika RegułyDlaKont Weryfikacja
Bloki konstrukcyjne UML Elementy strukturalne czynnościowe grupujące komentujące Związki zależności powiązania uogólnienia realizacji Diagramy klas obiektów przypadków użycia przebiegu kooperacji stanów czynności komponentów wdrożenia
Diagramy klas Diagramy strukturalne Zawierają klasy 1 1 Archive +ReadFile() +ReadMemory() +WriteFile() +WriteMemory() interfejsy VolumeBufor 1 kooperacje związki między nimi -data +ReadVolume() +WriteVolume() #Copy() File Spotykane najczęściej SumBufor 1 +CalculateSum()
Diagramy obiektów Diagramy strukturalne Wyobrażają zrzut systemu w danej chwili Zwierają obiektów wiązania pomiędzy obiektami r : Robot s : Swiat o1 : Obszar o2 : Obszar
Diagramy przypadków użycia Przedstawiają przypadki użycia aktorów związki między nimi Pomocne przy wyznaczaniu i modelowaniu zachowania systemu Telefon komórkowy Zainicjuj połączenie «extends» Zainicjuj telekonferencję Operator Zaakceptuj połączenie «extends» Zaakceptuj dodatkowe połączenie Użytkownik Użyj programu wybierającego
Diagramy przebiegu i kooperacji To rodzaje diagramu interakcji Przestawiają interakcje jako zbiór obiektów i związków między nimi, w tym też komunikaty, jakie obiekty przekazują między sobą. Izomorfizm Zawierają obiekty wiązania komunikaty
Diagramy przebiegu Diagramy czynnościowe Obrazują kolejność przesyłania komunikatów w czasie P:Wplata <<create>> StartTrans TransStarted :Trans <<create>> :Konto Dodaj(k) OK <<destoy>> Commit OK <<destoy>>
Diagramy kooperacji Diagramy czynnościowe Obrazują organizację obiektów uczestniczących w interakcji 3: <<create>> 4: Dodaj(k) 5: <<destroy>> :Trans «local» P:Wplata «local» :Konto 7: <<destroy>> 6: CommitTrans 2: StartTrans 1: <<create>>
Diagramy stanów Diagramy czynnościowe Obrazują maszynę stanową, stany przejścia zdarzenia czynności Oczekiwanie WyślijFaks Transmisja PołączeniePrzerwane
Diagramy czynności Diagramy czynnościowe Szczególny przypadek diagramu stanów Obrazuje strumień kolejno wykonywanych czynności WczytajDane [Złe Dane] [Dane OK] ObliczWynik WyswietlBłąd PokażWynik
Diagramy komponentów Przedstawiają fizyczne aspektu systemu Obrazują organizację komponentów i zależności między nimi Zawierają komponenty interfejsy zależności, uogólnienia, powiązania i realizacje «document» Find.html «executable» Szukaj.exe «library» Jet40.dll
Diagramy wdrożenia Przedstawiają fizyczne aspektu systemu Obrazują konfigurację węzłów i zainstalowane na nich oprogramowanie Zawierają węzły zależności i powiązania LAN Internet Router SerwerBD SerwerApl Workstation Workstation Workstation
Bloki konstrukcyjne UML Elementy strukturalne czynnościowe grupujące komentujące Związki zależności powiązania uogólnienia realizacji Diagramy klas obiektów przypadków użycia przebiegu kooperacji stanów czynności komponentów wdrożenia
Literatura G. Booch, J. Rumbaugh, I. Jacobson UML przewodnik użytkownika G. Booch, J. Rumbaugh, I. Jacobson The Unified Modeling Language Reference Manual