UML Unified Modeling Language 1 Bartosz Bali Na
UML – Unified Modeling Language (1) Bartosz Baliś, Na podstawie, m. in. : Introduction to UML: Structural and Use Case Modeling, Cris Kobryn n Projektowanie Obiektowe, Ian Sommerville n Agile modeling: http: //www. agilemodeling. com n
Wstęp n n n UML – Unified Modeling Language q Graficzny język do analizy i projektowania obiektowego q Standaryzuje kilka metod graficznej reprezentacji UML jest językiem – posiada składnię (notacja graficzna) i semantykę (znaczenie symboli graficznych) Diagramy q q q n 4 strukturalne (klas, obiektów, komponentów, wdrożeń) 5 do modelowania zachowania (przypadków użycia, sekwencji, aktywności, współpracy / kolaboracji, stanów) 3 do zarządzania modelem (pakiety, podsystemy, modele) Historia q q q UML 1. 1 – 1997 UML 1. 3 – listopad 1999 UML 1. 4 UML 1. 5 Obecnie – UML 2. 0 – znaczne zmiany
Zasadnicze składniki UML n n n Elementy modelu (klasy, interfejsy, komponenty, przypadki użycia, etc. ) Relacje pomiędzy nimi (powiązania, generalizacja, zależności, etc. ) Diagramy (diagramy klas, diagramy przypadków użycia, diagramy interakcji, etc. )
Przykład diagramu klas
Przykład diagramu obiektów (instancji klas)
Modele struktury
Modelowanie struktury n n Model systemu, który podkreśla strukturę obiektów, powiązania między klasami, ich atrybuty i operacje Rodzaje diagramów: q Statyczne diagramy struktury n q Klas, obiektów Diagramy implementacji n Komponentów, wdrożeń
Model struktury – zasadnicze elementy
Model struktury – podstawowe relacje
Statyczne diagramy struktury Diagram klas n Diagram obiektów – instancji klas n
Klasy: przykład Pracownik nazwisko : string adres : string data. Urodzenia : Date numer. Pracownika : integer PESEL : string dział : Dział przełożony : Pracownik wynagrodzenie : integer tatus: {current, left, retired} stan : {zatrudniony, zwolniony, emerytowany} tax. Code: integer NIP : integer. . . dołącz() join () leave () opuść() retire () przejdźNa. Emeryturę() change. Details ( zmieńSzczegóły()
Diagram klas – przykład
Hierarchia uogólnień – przykład Pracownik Kierownik Programista zarządzane. Budżety data. Przyjęcia przedsięwzięcie języki. Prog Kierownik Przedsięwzięcia Kierownik Działu Kierownik Strategiczny przedsięwzięcie dział obowiązki
Powiązania – przykład Pracownik jest-członkiem Dział jest-zarządzany-przez zarządza Kierownik
Powiązania – jedno i dwukierunkowe http: //www. agilemodeling. com
Agregacja i kompozycja n n Agregacja i kompozycja – obiekt składa się z innych obiektów Agregacja – zespół składa się z pracowników Kompozycja – samolot składa się z części Reguła: kompozycja jest "silniejszą" formą agregacji – jeśli całość jest niszczona, to jej części także, w przypadku agregacji tak nie jest.
Generalizacja-specjalizacja – przykład: taksonomia obiektów
Interfejsy: notacja skrótowa Fig. 3 -29, UML Notation Guide
Interfejsy: notacja rozszerzona Fig. 3 -29, UML Notation Guide
Diagram obiektów
Diagramy implementacji Pokazują takie aspekty implementacji jak struktura kodu źródłowego, oraz struktura podczas wykonywania się systemu n Rodzaje n Diagram komponentów q Diagram wdrożeń (deployment) q
Komponenty i wdrożenia: przykład
Komponenty – przykłady Fig. 3 -99, UML Notation Guide
Diagram komponentów – przykład Fig. 3 -95, UML Notation Guide
Diagram wdrożeń – przykład Fig. 3 -97, UML Notation Guide
Projektowanie oparte o interfejsy
Projektowanie oparte o interfejsy (interface-based design) n n n Skupia się na specyfikacji interfejsów systemu Oddziela się specyfikację operacji jakiejś usługi (interfejsy) od ich realizacji (implementacja) Przykład: CORBA IDL (Interface design language) jako projektowanie aplikacji rozproszonych oparte o interfejsy q q q IDL definiuje interfejsy obiektów bez nakładania ograniczeń na ich implementację Definiuje strukturę aplikacji rozproszonej Nie pozwala na specyfikowanie zachowania obiektów lub relacji pomiędzy klasami poza generalizacją
Przykład: punkt sprzedaży (point of sale) module POS { typedef long POSId; typedef string Barcode; interface Input. Media { typedef string Operator. Cmd; void barcode_input(in Barcode item); keypad_input(in Operator. Cmd cmd); }; interface Output. Media { boolean output_text(in string_to_print ); }; . . . Generic IDL Point of Sale (POS) example. [Siegel 00]
Przykład punkt sprzedaży (c. d. ). . . interface { void void }; POSTerminal login(); print_POS_sales_summary(); print_store_sales_summary(); send_barcode(in Barcode item); item_quantity(in long quantity); end_of_sale(); }; #endif /* _POS_IDL_ */
From [Kobryn 00].
Przypadki użycia
Diagram przypadków użycia Fig. 3 -53, UML Notation Guide
Relacje pomiędzy przypadkami użycia n Generalizacja (uogólnienie) q n Dołączanie (include) q n Jeden przypadek użycia jest uogólnieniem innego Zachowanie dołączanego przypadku użycia jest dołączane do podstawowego przypadku użycia Rozszerzenie (extend) q <<include>> Zachowanie rozszerzającego przypadku użycia jest dołączane do podstawowego przypadku użycia w ściśle określonym miejscu (określanym przez tzw. extension point) <<extend>>
Extend vs. include n <<include>> q n Używa się wtedy, gdy dołączany przypadek użycia musi być wykonany <<extend>> q q Używa się, gdy rozszerzający przypadek użycia może lecz nie musi być wykonany Przez zdefiniowanie tzw. extension points określa się w którym dokładnie miejscu może być wykonany rozszerzający przypadek użycia
Diagram przypadków użycia – przykład
Relacje pomiędzy aktorami Fig. 3 -55, UML Notation Guide
Opis przypadku użycia n. Actors: traveler, client account db, airline reservation system n. Preconditions: Traveler has logged on to the system and selected ‘change flight itinerary’ option · n. Basic course (podstawowy przebieg) System retrieves traveler’s account and flight itinerary from client account database · System asks traveler to select itinerary segment she wants to change; traveler selects itinerary segment. · System asks traveler for new departure and destination information; traveler provides information. · If flights are available then · … · System displays transaction summary. · n. Alternative · courses (gdy wystąpi jakaś sytuacja wyjątkowa) If no flights are available then …
Opis przypadku użycia – tabela
Dalsza lektura n n Ian Sommerville, Inżynieria oprogramowania, r. 12 http: //www. agilemodeling. com Artifacts, UML 2
- Slides: 39