E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 1/24 Wykład 1 Wprowadzenie do UML dr inż. Ewa Stemposz
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 2/24 Zagadnienia Wprowadzenie do UML: Historia zmian Modele i diagramy Mechanizmy rozszerzalności Klasyfiktory a wystąpienia Rodzaje związków między elementami modelowania
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 3/24 UML , styczeń wrzesień 1996 UML 1.0, styczeń 1997, przesłany do OMG UML 1.1, koniec 1997, zatwierdzony jako składnik standardu OMG UML 1.3, kwiecień 1999 UML 1.4 wrzesień 2001 oficjalna specyfikacja UML 1.5 marzec 2003 oficjalna specyfikacja UML 2.* Połączone siły trzech znanych metodologów oprogramowania: Grady Booch Ivar Jacobson James Rumbaugh Dokumentacja on line Unified Modeling Language (UML)
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 4/24 Historia zmian UML (1) wersja UML 1.4, wrzesień 2001 oficjalna specyfikacja wersja UML 2.0, wyznaczona przez OMG pod koniec roku 2001 jako oficjalny kierunek zmian wyodrębniono 4 specyfikacje: - infrastruktura UML; metamodel pozwalający na definiowanie i rozwijanie superstruktury - superstruktura UML; specyfikująca podstawowe elementy wykorzystywane w tworzeniu diagramów, tzw. kategorie modelowania - OCL; język specyfikacji ograniczeń - mechanizm przenaszalności diagramów UML pomiędzy różnymi narzędziami wersja UML 1.5, marzec 2003 oficjalna specyfikacja
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 5/24 Historia zmian UML (2) wersja UML 2.0 sierpień 2003; bardzo znacząca rewizja - zakres dostępnych diagramów rozszerzono do 13-tu - szereg nowych kategorii modelowania w diagramach istniejących w wersji poprzedniej Metaskładnia MOF (Meta Object Facility) XMI (XML Metadata Interchange); standard wymiany dokumentów zgodnych z UML, oparty o MOF CWM (Common Warehouse Metamodel); standard wymiany metadanych pomiędzy hurtowniami danych, systemami zarządzania wiedzą, itd. W pracach OMG nad UML uczestniczy około 800 informatycznych i biznesowych organizacji
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 6/24 Model a diagram Model: pewna abstrakcja projektowanego systemu, widziana z określonej perspektywy, na określonym poziomie szczegółowości. Diagram: środek służący do opisu modelu. Model może być opisany przy pomocy wielu diagramów. Dany element modelu może pojawiać się na wielu diagramach jednego modelu. Dwa najważniejsze modele w UML, wykorzystywane w fazie analizy, to: Model przypadków użycia: opisuje system widziany z perspektywy przyszłych użytkowników (diagramy przypadków użycia). Model obiektowy: przedstawia statyczną budowę, czyli strukturę systemu (diagram klas i diagram obiektów). Diagram klas może zawierać obiekty. Diagram obiektów zawiera wyłącznie obiekty (nie zawiera klas). Głównym zadaniem pomocniczego modelu dynamicznego (zachowań) jest wypełnienie diagramu klas metodami wynikłymi z analizy zachowania systemu w trakcie wykonywania zadań, gdzie zadaniem może być np. realizacja przypadku użycia czy też jednego konkretnego scenariusza danego przypadku użycia.
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 7/24 Diagramy definiowane w UML 1.5 Diagramy przypadków użycia (use case) Diagramy klas i diagramy obiektów Diagramy dynamiczne (behavior): Diagramy stanów Diagramy aktywności Diagramy interakcji: Diagramy sekwencji Diagramy współpracy (collaboration) Diagramy implementacyjne: Diagramy komponentów Diagramy wdrożeniowe (deployment) Diagramy te zapewniają uzyskanie wielu perspektyw projektowanego systemu w trakcie jego budowy. Diagramy pakietów
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 8/24 Diagramy w UML 2.* (1) DiagramCharakterystykaWyróżnik (ang.) Diagram klas (ang. Class Diagram) Pokazuje kolekcję elementów struktury systemu, jak np. klasy i ich relacje cld Diagram obiektów (ang. Object Diagram) Pokazuje kolekcję obiektów w danym punkcie w czasie od Diagram pakietów (ang. Package Diagram) Wykorzystywany do organizowania kolekcji elementów w pakiety pd Diagram (opisu?) struktur złożonych (ang. Composite Structure Diagram) Diagram składowych? Diagram struktur połączonych? Wykorzystywany do opisu wewnętrznej budowy struktur złożonych csd Diagram komponentów (ang. Component Diagram) Rodzaj diagramu wdrożeniowego?cod
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 9/24 Diagramy w UML 2.* (2) DiagramCharakterystykaWyróżnik (ang.) Diagram wdrożeniowy (ang. Deployment Diagram) Diagram wdrożenia? Diagram rozlokowania? Wykorzystywany do opisu rozmieszczenia elementów systemu w czasie run time’u dd Diagram przypadków użycia (ang. Use Case Diagram) Wykorzystywany do specyfikowania funkcjonalności systemu ud Diagram aktywności (ang. Activity Diagram) Diagram czynności? Wykorzystywany do opisu procesów biznesowych czy przepływu sterowania w trakcie realizowania funkcjonalności ad Diagram maszyny stanowej (stanów?) (ang. State Machine Diagram) Wykorzystywany do opisu zachowań instancji klasyfikatorów w odpowiedzi na przychodzące zdarzenia sm
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 10/24 Diagramy w UML 2.* (3) DiagramCharakterystykaWyróżnik (ang.) Diagram sekwencji (ang. Sequence Diagram) Rodzaj diagramu interakcji; opis współpracy uczestników interakcji sd Diagram komunikacji (ang. Communication Diagram) (diagram współpracy) Rodzaj diagramu interakcji; izomorficzny z diagramem sekwencji cd Diagram następstwa (stanów?) (ang. Timing Diagram) Diagram harmonogramowania? Rodzaj diagramu interakcji; wykorzystywany do prezentowania na osi czasu następstwa stanów dla instancji klasyfikatora biorącego udział w interakcji td Diagram opisu interakcji (ang. Interaction Overview Diagram) Diagram sterowania interakcją? Rodzaj diagramu interakcji; wykorzystywany do opisu przepływu sterowania pomiędzy grupą logicznie powiązanych diagramów; budowany z wykorzystaniem diagramów aktywności iod
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 11/24 Użyteczność diagramów (1) DiagramUżyteczność w procesie rozwoju oprogramowania Diagram klaswysoka Diagram obiektówniska Diagram pakietówśrednia (?) Diagram struktur złożonych niska Diagram komponentówśrednia (?) Diagram wdrożeniowyśrednia (?) Diagram przypadków użycia średnia (?)
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 12/24 Użyteczność diagramów (2) DiagramUżyteczność w procesie rozwoju oprogramowania Diagram aktywnościwysoka Diagram stanówśrednia Diagram sekwencjiwysoka Diagram komunikacjiniska Diagram następstwa stanów niska Diagram opisu interakcjiniska
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 13/24 Użyteczność diagramów – lista uporządkowana (1) DiagramUżyteczność w procesie rozwoju oprogramowania Diagram klaswysoka Diagram aktywnościwysoka Diagram sekwencjiwysoka Diagram przypadków użycia średnia (?) Diagram pakietówśrednia (?) Diagram komponentówśrednia (?) Diagram wdrożeniowyśrednia (?)
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 14/24 Użyteczność diagramów – lista uporządkowana (2) DiagramUżyteczność w procesie rozwoju oprogramowania Diagram stanówśrednia Diagram obiektówniska Diagram struktur złożonych niska Diagram komunikacjiniska Diagram następstwa stanów niska Diagram opisu interakcjiniska
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 15/24 Stereotypy; komentarze (1) Stereotypy: są jednym z mechanizmów rozszerzalności UML. Dają możliwość definiowania nowych elementów, co ułatwia przystosowanie UML do specyficznego procesu, do preferencji użytkownika oraz pozwala na uszczegóławianie semantyki modelu: Stereotypy umożliwiają metaklasyfikację elementów modelu. Istnieje lista stereotypów dla każdego rodzaju elementów UML. Element modelu może mieć co najwyżej jeden stereotyp (?). Są stereotypy predefiniowane, ale użytkownicy mogą też definiować własne. Notacja: Przykłady stereotypów: P1P2 «include» P3 P4 «extend» «nazwa stereotypu» lub ikona
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 16/24 Stereotypy; komentarze (2) Komentarze: mechanizm rozszerzalności UML. Komentarze są wykorzystywane do wprowadzania do diagramu adnotacji przypisanych do fragmentu modelu. tekst adnotacji Notacja: pole podstawy wysokość Bryła policz objętość {abstract} objętość = pole podstawy * wysokość Przykład wykorzystania adnotacji:
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 17/24 Przykłady stereotypów Diagram przypadków użycia: Rejestruj sprzedaż Rejestruj sprzedaż Diagram komponentów: «component» Obsługa zmówień Obsługa zamówień Obsługa zmówień «component» Obsługa zmówień
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 18/24 Wartości etykietowane Wartości etykietowane są kolejnym z mechanizmów rozszerzalności UML. Wartość etykietowaną stanowi ciąg znaków o postaci: słowo kluczowe = wartość. Listę wartości etykietowanych (oddzielonych przecinkami) umieszcza się w {}. Dowolny element modelu może być skojarzony z listą wartości etykietowanych. {autor = “Jan Nowak”, termin zakończenia = “31 Maja 1999”, status = analiza} Przykład listy wartości etykietowanych: W ten sposób można na diagramach umieścić dowolną dodatkową informację. Zakłada się, że narzędzia CASE umożliwią odszukanie odpowiedniego elementu na podstawie słowa kluczowego i skojarzonej z nim wartości. Uwaga: wartości etykietowane powinny być wykorzystywane do opisu pojedynczego elementu modelu a nie do metaklasyfikcji (patrz: stereotypy).
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 19/24 Ograniczenia Ograniczenia specyfikują restrykcje nakładane na elementy modelu. Mogą stanowić wyrażenia języka naturalnego czy języka formalnego (np. OCL w UML), mogą też przyjmować postać formuły matematycznej lub fragmentu kodu (czy też pseudokodu). Notacja: Ograniczenia są zawarte wewnątrz {} i umieszczane w pobliżu tego elementu, którego dotyczą. Ograniczenia można też umieszczać w kopercie adnotacji. Pracownik imię nazwisko pensja {<=10 000} {<=10 000} W przypadku ograniczenia dynamicznego – w przeciwieństwie do ograniczenia statycznego – interesuje nas poprzedni stan elementu, dla którego wyspecyfikowano ograniczenie. Czy powiedzie się próba zmiany pensji z 2500 na 5500, przy ograniczeniach jak powyżej? Pracownik imię nazwisko pensja zmień pensję (nowa) ograniczenie statyczne ograniczenie dynamiczne {pensja nie wzrasta o więcej niż 300}
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 20/24 Klasyfikatory; wystąpienia klasyfikatorów (1) Klasyfikator: kategoria modelowania UML, stanowiąca uogólnienie grupy bytów o podobnych własnościach; pojęcie klasyfikatora odnosi się do każdego rodzaju diagramów UML. Notacja: zależna od rodzaju diagramów Wystąpienie klasyfikatora (instacja klasyfikatora): odpowiada konkretnemu bytowi z grupy bytów charakteryzowanych przez klasyfikator Notacja: zazwyczaj zgodna z notacją klasyfikatora; różnice występują głównie w nazwach wystąpień: nazwa_własna_danego_bytu : nazwa_klasyfikatora nazwisko : string wiek : integer Osoba nazwisko = ” Nowak” wiek = 45 O-Nowak : Osoba klasyfikatorwystąpienie klasyfikatora
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 21/24 Klasyfikatory; wystąpienia klasyfikatorów (2) Informacje opisujące wystąpienie klasyfikatora nie muszą być kompletne – liczba detali jest uzależniona od celu czy semantyki danego diagramu. ” Nowak” 43 : Osoba nazwisko : String = ” Nowak” wiek = 43 : Osoba s[k] : U Przykłady wystąpień: s : U, V:Osoba:Firma OsobaFirma 1..* * klasyfikator: asocjacjawystąpienie klasyfikatora: powiązanie
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 22/24 Związki pomiędzy elementami modelowania (1) Na diagramach UML występują cztery rodzaje związków pomiędzy elementami modelowania: uogólnienie, asocjacja, zależność, realizacja. Uogólnienie (generalizacja): występuje pomiędzy klasyfikatorem ogólnym a klasyfikatorem specjalizowanym Notacja: Asocjacja: opisuje powiązania pomiędzy wystąpieniami klasyfikatorów (również pomiędzy różnymi wystąpieniami tego samego klasyfikatora) Notacja: klasyfikator ogólny klasyfikator specjalizowany klasyfikator
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 23/24 Związki pomiędzy elementami modelowania (2) Zależność: jest związkiem pomiędzy takimi dwoma elementami modelowania, dla których zmiana jednego elementu (dostawcy usług) może skutkować koniecznością wprowadzenia zmian do elementu drugiego (klienta usług) Notacja: Realizacja: to związek pomiędzy klasyfikatorami, gdzie jeden z klasyfikatorów opisuje kontrakt), a drugi określa sposób realizacji tego kontraktu Notacja: dostawca usług klient usług klasyfikator określający sposób realizacji kontraktu klasyfikator opisujący kontrakt Co?Jak?
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 24/24 Prezentowanie diagramów nagłówek Diagramy mogą być prezentowane w formie: - nieobramowanej - obramowanej, gdzie diagram jest otoczony prostokątną ramą zawierającą nagłówek = ( ) { } rodzaj – wyróżnik diagramu nazwa – odzwierciedlająca merytoryczną zawartość diagramu parametr – parametr kluczowy dla danego diagramu Nazwa jest obligatoryjnym elementem składowym nagłówka; rodzaj i parametry są elementami nieobligatoryjnymi.