Wykad 2 UML wprowadzenie Ryszard Myhan UML geneza

  • Slides: 38
Download presentation
Wykład 2 UML – wprowadzenie Ryszard Myhan

Wykład 2 UML – wprowadzenie Ryszard Myhan

UML – geneza UML (Unified Modeling Language) język modelowania obiektowego systemów i procesów. o

UML – geneza UML (Unified Modeling Language) język modelowania obiektowego systemów i procesów. o Jest syntezą notacji występujących w obiektowych metodykach analizy i projektowania systemów, które pojawiły się w końcu lat 80 -tych i na początku lat 90 -tych. o Powstał w wyniku połączenia metodyk: OODA (Grady Booch), Objectory (Ivar Jacobson) i OMT (James Rumbaugh). Źródło: http: //brasil. cel. agh. edu. p Modelowanie obiektowe UML – wprowadzenie 2

UML – historia • 1994 - prace nad Metodą Zunifikowaną • 1995 - wersja

UML – historia • 1994 - prace nad Metodą Zunifikowaną • 1995 - wersja 0. 9 UML Źródło: https: //www. visual-paradigm. com/guide/uml-unified-modeling-language/what-is-uml/ Modelowanie obiektowe UML – wprowadzenie 3

Czym jest UML Zaprojektowany (około połowy lat 90. XX wieku) jako narzędzie do modelowania

Czym jest UML Zaprojektowany (około połowy lat 90. XX wieku) jako narzędzie do modelowania systemów informatycznych UML jest językiem, który: o o pozwala tworzyć modele różnych systemów; pozwala obrazować, specyfikować, tworzyć i dokumentować elementy systemu; ułatwia wymianę informacji pomiędzy przyszłymi użytkownikami systemu, menadżerami, analitykami, projektantami, programistami i testerami; ułatwia wykorzystanie zalet programowania obiektowego. UML jest językiem modelowania opartym o pojęcia obiektowości (obiekty, klasy, atrybuty, związki, agregacje, dziedziczenie, metody i inne). Modelowanie obiektowe UML – wprowadzenie 4

Czym nie jest UML nie jest językiem programowania - choć generowanie kodu jest możliwe

Czym nie jest UML nie jest językiem programowania - choć generowanie kodu jest możliwe na podstawie niektórych diagramów, rzadko jest to stosowane. UML nie jest narzędziem - choć zawiera specyfikacje dla narzędzi. UML nie jest metodyką - nie definiuje procesu tworzenia oprogramowania. UML nie jest sposobem na analizę i projektowanie systemów. W odróżnieniu od metodyk obiektowych, które oprócz notacji ustalają także postępowanie w każdej fazie projektu, UML jest tylko zestawem pojęć i notacji. Modelowanie obiektowe UML – wprowadzenie 5

Czym jest UML Źródło: http: //wazniak. mimuw. edu. pl/images/7/76/Io-5 -wyk. pdf Modelowanie obiektowe UML

Czym jest UML Źródło: http: //wazniak. mimuw. edu. pl/images/7/76/Io-5 -wyk. pdf Modelowanie obiektowe UML – wprowadzenie 6

UML – język modelowania UML powstał na bazie wieloletnich doświadczeń analityków i projektantów. o

UML – język modelowania UML powstał na bazie wieloletnich doświadczeń analityków i projektantów. o Jego zadaniem jest definiowanie, konstruowanie, obrazowanie i dokumentowanie części składowych dowolnego systemu. o Jest to język modelowania, a wiec opisuje, co system ma robić, a nie jak go zaimplementować. UML dostarcza mechanizmów ułatwiających efektywną wymianę informacji i przekazywanie projektów innym. UML zawiera wiele elementów graficznych grupowanych w postaci diagramów. o Celem diagramów jest pokazanie wielu perspektyw systemu, zestaw perspektyw stanowi model. Modelowanie obiektowe UML – wprowadzenie 7

UML – wiele perspektyw Analizując dowolne zadanie dotyczące inżynierii, można uwzględnić wiele różnych punktów

UML – wiele perspektyw Analizując dowolne zadanie dotyczące inżynierii, można uwzględnić wiele różnych punktów widzenia: o sposób rozwiązania zadania (będącego przedmiotem systemu) – płaszczyzna projektowa; o funkcjonalność (co system ma robić) – płaszczyzna przypadków użycia; o procesy, jakie zachodzą w systemie - płaszczyzna procesowa; o sposób połączenia wszystkich części systemu w spójną całość – płaszczyzna implementacyjna; o sprzęt potrzebny do uruchomienia systemu – płaszczyzna wdrożeniowa. Modelowanie obiektowe UML – wprowadzenie 8

UML – wiele perspektyw Modelowanie obiektowe UML – wprowadzenie 9

UML – wiele perspektyw Modelowanie obiektowe UML – wprowadzenie 9

UML – wiele zastosowań UML może być z powodzeniem stosowany nie tylko w modelowaniu

UML – wiele zastosowań UML może być z powodzeniem stosowany nie tylko w modelowaniu systemów informatycznych, ale też innych procesów i struktur, np. : o o o o o Usługi bankowe i finansowe Transport i telekomunikacja Przemysł obronny i lotniczy Sprzedaż detaliczna Elektronika i medycyna Zarządzanie i administracja Bezpieczeństwo Nauka. . Modelowanie obiektowe UML – wprowadzenie 10

Podstawowe elementy UML v Główne kwalifikatory Ø Ø Ø Ø v v v Kwalifikatory

Podstawowe elementy UML v Główne kwalifikatory Ø Ø Ø Ø v v v Kwalifikatory to byty modelu mogące posiadać egzemplarze. Klasa (Class) Obiekt (Object) Interfejs (Interface) Komponent (Component) Węzeł (Node) Aktor (Actor) Przypadek Użycia (Use Case) Relacje Ø Ø Zależność (Dependency) Asocjacja (Association) Generalizacja (Generalization) Realizacja (Realization) Komentarze (Note) Rozszerzanie UML Modelowanie obiektowe UML – wprowadzenie 11

Główne kwalifikatory – klasa v Klasa (Class) w modelu UML jest reprezentowana przez prostokąt

Główne kwalifikatory – klasa v Klasa (Class) w modelu UML jest reprezentowana przez prostokąt z umieszczoną wewnątrz nazwą klasy. v Oddzielona część prostokąta pod nazwą klasy może zawierać atrybuty klasy, czyli metody (funkcje), właściwości (properties) lub pola (zmienne). o v Każdy atrybut pokazywany jest przynajmniej jako nazwa, opcjonalnie także z typem, wartością i innymi cechami. Metody klasy mogą znajdować się w osobnej części prostokąta. o Każda metoda jest pokazywana przynajmniej jako nazwa, a dodatkowo także ze swoimi parametrami i zwracanym typem. Modelowanie obiektowe UML – wprowadzenie 12

Główne kwalifikatory – klasa v Atrybuty oraz metody mogą mieć też oznaczoną widoczność (zakres

Główne kwalifikatory – klasa v Atrybuty oraz metody mogą mieć też oznaczoną widoczność (zakres znaczenia ich nazw) jak następuje: § § "+" (public) – publiczny, dostęp globalny; "#" (protected) – chroniony, dostęp dla pochodnych klasy; "−" (private) – prywatny, dostępny tylko w obrębie klasy; "~" (package) – pakiet, dostępny w obrębie danego projektu. Nazwa Klasy - prywatne. Pole : int& # chronione. Pole : char* ~ pakietowe. Pole : boolean[1. . *] + publiczne. Pole : double[10] {unique} - poczatkowe. Pole : int = 42 {read. Only} + statyczna. Metoda() : void {pusty typ danych} + metoda(in parametr 1 : char*, parametr 2 : int = 10) : int* Modelowanie obiektowe UML – wprowadzenie 13

Główne kwalifikatory – obiekt v Obiekt (Object) w modelu UML (podobnie jak klasa) jest

Główne kwalifikatory – obiekt v Obiekt (Object) w modelu UML (podobnie jak klasa) jest reprezentowana przez prostokąt, lecz reprezentuje konkretne wystąpienie (instancję) danej klasy. v Obiekt jest bytem, który posiada swój stan i zbiór zdefiniowanych operacji działających na tym stanie. o o v Stan jest reprezentowany jako zbiór atrybutów (attributes) obiektu. Operacje (operations) skojarzone z obiektem służą do oferowania usług innym obiektom (klientom), które mogą żądać tych usług, gdy potrzebują wyników ich działania. Obiekt reprezentuje: o o realizację dla pewnego konkretnego systemu (gdy system jest statyczny), lub stan systemu w pewnej określonej chwili czasu (gdy system jest dynamiczny). Modelowanie obiektowe UML – wprowadzenie 14

Główne kwalifikatory – obiekt Klasa Obiekty – instancje klasy Pracownik 125 : Pracownik +

Główne kwalifikatory – obiekt Klasa Obiekty – instancje klasy Pracownik 125 : Pracownik + nazwisko : string + nazwisko = Kowalski + imie : string + imie = Jan + data. Urodzenia : Date + data. Urodzenia = 23. 12. 1985 + wynagrodzenie : integer = 0 + wynagrodzenie = 2560 + stan : {zatrudniony, zwolniony, emeryt} + stan = zatrudniony - numer. Pracownika : integer {unique}) - numer. Pracownika : 125 + zatrudnij() 022 : Pracownik + zwolnij() + nazwisko = Antonina + przejdźNa. Emeryturę() + imie = Maria + daj. Podwyzke(kwota) # sprawdz. Poprawnosc. Numeru. PESEL() + data. Urodzenia = 11. 01. 1955 + wynagrodzenie = 0 + stan = emeryt - numer. Pracownika : 22 Modelowanie obiektowe UML – wprowadzenie 15

Główne kwalifikatory – interfejs v Interfejs (Interface) – jest to zbiór operacji specyfikujący pewien

Główne kwalifikatory – interfejs v Interfejs (Interface) – jest to zbiór operacji specyfikujący pewien "wycinek" zachowania danego elementu modelu. o W UML interfejsy są zestawem operacji, które wyznaczają usługi oferowane przez klasę i sposobem na przejrzystą prezentację projektu. o Interfejs zawiera jedynie specyfikację metod, bez ich implementacji. o Do oznaczenia interfejsu w UML stosuje się stereotyp «interface» , który na diagramie klas poprzedza (jak każdy interfejs) nazwę klasy. Modelowanie obiektowe UML – wprowadzenie 16

Główne kwalifikatory – interfejs Osoba (abstrakt) imię <<interface>> IPracownik nazwisko ……. . data urodzenia

Główne kwalifikatory – interfejs Osoba (abstrakt) imię <<interface>> IPracownik nazwisko ……. . data urodzenia ……. . policz wiek + zmień pensję Pracownik pensja stanowisko zmień pensję Firma • Diagram przedstawia interfejs o nazwie IPracownik oraz klasę Pracownik, która zawiera implementacje metod wyspecyfikowanych w tym interfejsie. • Związek pomiędzy interfejsem a klasą implementującą metody zaznaczano za pomocą symbolu realizacji (przerywana linia zakończona pustym trójkątem). • Związek pomiędzy interfejsem a klasą, która korzysta z tego interfejsu, zaznaczany jest za pomocą symbolu zależności, (przerywana linia zakończona grotem). Modelowanie obiektowe UML – wprowadzenie 17

Główne kwalifikatory – komponent v Komponent (Component) to wymienny, wykonywalny fragment systemu o hermetyzowanych

Główne kwalifikatory – komponent v Komponent (Component) to wymienny, wykonywalny fragment systemu o hermetyzowanych szczegółach implementacyjnych. o Komponenty służą do ponownego wykorzystania poprzez połączenie ich z innymi komponentami. Źródło: http: //brasil. cel. agh. edu. pl/~09 sbfraczek/images/komponent/9. png Modelowanie obiektowe UML – wprowadzenie 18

Główne kwalifikatory – węzeł v Węzły pozwalają wyrazić strukturę przepływów: o o węzeł początkowy(initial

Główne kwalifikatory – węzeł v Węzły pozwalają wyrazić strukturę przepływów: o o węzeł początkowy(initial node) – rozpoczynający przepływy w momencie wywołania czynności; węzeł końcowy (activity finale node) – element kończący aktywność; węzeł rozwidlenia (fork node) – element, który pozwala na wykonywanie czynności współbieżnych; węzeł scalenia (join node) – łączy i synchronizuje wchodzące przepływy; Modelowanie obiektowe UML – wprowadzenie 19

Główne kwalifikatory – węzeł v Węzły pozwalają wyrazić strukturę przepływów (cd. ): o węzeł

Główne kwalifikatory – węzeł v Węzły pozwalają wyrazić strukturę przepływów (cd. ): o węzeł decyzyjny (decision node) – to element, który umożliwia dokonanie wyboru pomiędzy kilkoma możliwościami. § § o Umieszczenie węzła decyzyjnego na diagramie oznacza, że nie ma jednej ścieżki wykonywania poszczególnych aktywności (istnieją ścieżki alternatywne). Węzeł decyzyjny może mieć jedno wejście dla przepływu sterującego i minimalnie dwa wyjścia przepływów. węzeł łączący (merge node) – łączy różne przepływy pochodzące z wyboru (tylko jeden może być realizowany) Modelowanie obiektowe UML – wprowadzenie 20

Główne kwalifikatory – zdarzenie czasowe v Zdarzenia czasowe (time event) – służą do modelowania

Główne kwalifikatory – zdarzenie czasowe v Zdarzenia czasowe (time event) – służą do modelowania zdarzeń zależnych od czasu o o o Zdarzeń czasowych używa się do modelowania okresu oczekiwania oraz przepływów cyklicznych (tj. przepływów rozpoczynających się w określonych momentach). Okres oczekiwania podaje się w postaci określonej daty lub też w postaci względnej (liczba dni, godzin, minut, itp. ) Zdarzenia czasowe mogą się pojawiać w dowolnym miejscu czynności, w tym również w miejsce węzła początkowego. Modelowanie obiektowe UML – wprowadzenie 21

Główne kwalifikatory – aktor v Aktor (Actor) – obiekt, który prowadzi interakcję z systemem

Główne kwalifikatory – aktor v Aktor (Actor) – obiekt, który prowadzi interakcję z systemem jednak sam do niego nie należy. Modelowanie obiektowe UML – wprowadzenie 22

Główne kwalifikatory – aktor v Aktor o o inicjuje wykonanie funkcji systemu; wymaga dostępu

Główne kwalifikatory – aktor v Aktor o o inicjuje wykonanie funkcji systemu; wymaga dostępu do systemu; reprezentuje punkt widzenia na system; jest osobą fizyczną, rolą w systemie lub systemem zewnętrznym. Aktor Modelowanie obiektowe UML – wprowadzenie 23

Główne kwalifikatory – aktor v Aktor w UMLu jest klasą (nie obiektem) o nadanym

Główne kwalifikatory – aktor v Aktor w UMLu jest klasą (nie obiektem) o nadanym stereotypie Actor. o Klasyczny symbol aktora może być stereotypowany aby rozróżnić między różnymi typami aktorów. klasyczny (człowiek) Modelowanie obiektowe system zewnętrzny UML – wprowadzenie urządzenie czas 24

Główne kwalifikatory – przypadki użycia v Przypadki użycia (Use Case) odwzorowują strukturę systemu tak,

Główne kwalifikatory – przypadki użycia v Przypadki użycia (Use Case) odwzorowują strukturę systemu tak, jak ją widzą jego użytkownicy. o v Ich głównym celem jest odwzorowanie funkcji projektowanego systemu w taki sposób, w jaki będą je widzieć jego użytkownicy. Przypadek użycia specyfikuje zachowanie systemu lub jego części. o Jest to opis zbioru ciągów akcji (i ich wariantów) wykonywanych przez system w celu dostarczenia określonemu aktorowi godnego uwagi wyniku. o Jest to zbiór scenariuszy powiązanych ze sobą wspólnym celem (użytkownika) Modelowanie obiektowe UML – wprowadzenie 25

Główne kwalifikatory – przypadki użycia v Przypadki użycia modeluje się w granicach budowanego systemu.

Główne kwalifikatory – przypadki użycia v Przypadki użycia modeluje się w granicach budowanego systemu. o o Nazwę, która powinna jasno i precyzyjnie określać cel, jaki aktor chce osiągnąć, umieszcza się w elipsie. Następnie łączy aktorów z przypadkami użycia, w których będą brali udział. Źródło: http: //owymaganiach. pl/? s=przypadek+użycia Modelowanie obiektowe UML – wprowadzenie 26

Główne kwalifikatory – przypadki użycia v Przypadek użycia reprezentuje kompletną funkcję dostępną dla aktora.

Główne kwalifikatory – przypadki użycia v Przypadek użycia reprezentuje kompletną funkcję dostępną dla aktora. v Przypadki użycia mogą być powiązane zależnościami: o Uszczegółowienie – specjalizowana wersja przypadku użycia. o Rozszerzanie – dodatkowa funkcjonalność przypadku użycia. o Zawieranie – wykonanie. Modelowanie obiektowe UML – wprowadzenie 27

Główne kwalifikatory – przypadki użycia Źródło: http: //wazniak. mimuw. edu. pl/images/7/76/Io-5 -wyk. pdf Modelowanie

Główne kwalifikatory – przypadki użycia Źródło: http: //wazniak. mimuw. edu. pl/images/7/76/Io-5 -wyk. pdf Modelowanie obiektowe UML – wprowadzenie 28

Relacje v Relacje (relationship) to związki zachodzący miedzy klasami lub obiektami. v Relacje to

Relacje v Relacje (relationship) to związki zachodzący miedzy klasami lub obiektami. v Relacje to fizyczny lub pojęciowy związek między obiektami, odwzorowujący związek istniejący między odpowiednimi bytami w analizowanej dziedzinie przedmiotowej. o Współpraca klas jest definiowana poprzez tzw. relacje, reprezentowane przez linie (krawędzie) z odpowiednim zakończeniem. o Podstawowe związki to: § § Asocjacja (association) Uogólnienie (generalisation) Zależność (dependence) Realizacja (realisation) Modelowanie obiektowe UML – wprowadzenie 29

Podstawowe związki – asocjacje v Asocjacje (association) oznaczają istnienie powiązania pomiędzy klasami. o o

Podstawowe związki – asocjacje v Asocjacje (association) oznaczają istnienie powiązania pomiędzy klasami. o o o Obiekty związane asocjacją są od siebie niezależne. Asocjacje oznaczane są za pomocą odcinków łączących obiekty (na odcinkach umieszcza się nazwy asocjacji). Asocjacje: § § posiadają liczność (krotność) wiążą 1 lub więcej klas mogą być nazwane i posiadać role mogą mieć własności i ograniczenia Modelowanie obiektowe UML – wprowadzenie 30

Podstawowe związki – asocjacje v Asocjacje mogą być wyposażone w oznaczenia liczności (mullttiiplliiciitty) –

Podstawowe związki – asocjacje v Asocjacje mogą być wyposażone w oznaczenia liczności (mullttiiplliiciitty) – krotności związku. o Liczność oznacza, ile obiektów danej klasy jest równocześnie związana z obiektami innej klasy o Zwykle określa się to poprzez parę liczb (znaków), oznaczającą minimalną i maksymalną liczbę takich obiektów. każde państwo posiada dokładnie jedną stolicę; każda stolica jest stolicą dokładnie jednego państwa firma zatrudnia dowolną liczbę pracowników; pracownik pracuje w dokładnie jednej firmie; osoba może, ale nie musi, mieć przypisany adres; do danego adresu może być przypisanych wiele osób w firmie pracuje co najmniej jedna osoba; osoba pracuje dla dokładnie jednej firmy Modelowanie obiektowe UML – wprowadzenie 31

Podstawowe związki – asocjacje v Asocjacja może mieć przypisaną nazwę, która określa istotę danego

Podstawowe związki – asocjacje v Asocjacja może mieć przypisaną nazwę, która określa istotę danego związku. o v Aby uniknąć niejednoznaczności, można podać kierunek odczytu w postaci trójkątnego znacznika umieszczonego za nazwą. Asocjacja może mieć przypisane role (role), które określają zarówno funkcję, jaką klasa pełni w asocjacji, jak i kierunek nawigowania. Modelowanie obiektowe UML – wprowadzenie 32

Podstawowe związki – asocjacje v Dla asocjacji (podobnie jak dla klasy) można zdefiniować opisujące

Podstawowe związki – asocjacje v Dla asocjacji (podobnie jak dla klasy) można zdefiniować opisujące ją atrybuty, tzw. atrybuty asocjacji. o o W języku UML atrybuty asocjacji są umieszczane w specjalnej klasie, zwanej klasą asocjacji, która jest połączona z asocjacją za pomocą przerywanej linii. Oprócz atrybutów, klasa asocjacji, tak jak każda "zwykła" klasa, może posiadać takie własności, jak asocjacje, metody itd. Źródło: http: //edu. pjwstk. edu. pl/wyklady/pri/scb/index 60. html Modelowanie obiektowe UML – wprowadzenie 33

Podstawowe związki – agregacja v Agregacja reprezentuje związek typu całość-część. o Występuje tutaj relacja

Podstawowe związki – agregacja v Agregacja reprezentuje związek typu całość-część. o Występuje tutaj relacja posiadania — co oznacza, że elementy mogą należeć do większej całości, jednak również mogą istnieć bez niej. o Na diagramie agregację oznacza się za pomocą linii zakończonej pustym rombem. agregacja częściowa agregacja całkowita Źródło: http: //brasil. cel. agh. edu. pl/~09 sbfraczek/diagram-klas, 1, 11. html Modelowanie obiektowe UML – wprowadzenie 34

Podstawowe związki – generalizacja v Generalizacja-specjalizacja jest związkiem łączącym pewną klasę, tzw. nadklasę, z

Podstawowe związki – generalizacja v Generalizacja-specjalizacja jest związkiem łączącym pewną klasę, tzw. nadklasę, z innymi klasami, tzw. podklasami, przy czym nadklasa modeluje byty bardziej ogólne niż byty modelowane przez podklasy. o Podklasa posiada wszystkie własności swojej nadklasy; poza tym podklasa może posiadać (i zazwyczaj posiada) także pewne dodatkowe własności. Modelowanie obiektowe UML – wprowadzenie 35

Podstawowe związki – realizacja v Realizacja (Realization) jest to związek między klasyfikatorami, z których

Podstawowe związki – realizacja v Realizacja (Realization) jest to związek między klasyfikatorami, z których jeden określa kontrakt (specyfikację), natomiast drugi zapewnia wywiązanie się (realizację) kontraktu. o Relacja realizacji łączy logiczny byt z bardziej konkretnym bytem, który go realizuje. Obiekt danych Dane rozliczenia realizuje obiekt Usługa aplikacji Rozliczanie jest realizowana przez komponent aplikacji Aplikacja finansowa. Modelowanie obiektowe biznesowy Faktura UML – wprowadzenie 36

UML – ograniczenia i komentarze v Ograniczenia służą do specyfikowania restrykcji nakładanych na elementy

UML – ograniczenia i komentarze v Ograniczenia służą do specyfikowania restrykcji nakładanych na elementy modelu. o Ograniczenia można zapisywać w języku naturalnym, w języku (pół)formalnym (np. języku OCL będącym częścią standardu UML), w postaci formuł matematycznych lub fragmentów kodu (czy też pseudokodu). Język angielski Język polski {complete} {podział całkowity} {incomplete} {podział częściowy} {disjoint} {podział rozłączny} {overlapping} {podział nierozłączny} {or} {lub} (suma logiczna) {xor} {albo} (różnica) {ordered} {uporządkowane} {subset} {podzbiór} {bag} {wielozbiór} {hierarchy} {hierarchia} Modelowanie obiektowe UML – wprowadzenie 37

UML – ograniczenia i komentarze v Komentarze, podobnie jak ograniczenia, są umieszczane w prostokącie

UML – ograniczenia i komentarze v Komentarze, podobnie jak ograniczenia, są umieszczane w prostokącie z zagiętym rogiem, ale w przeciwieństwie do ograniczeń nie stosuje się do nich nawiasów klamrowych. o Główna różnica polega jednak na tym, że komentarze nie mają wpływu na semantykę modelu. Modelowanie obiektowe UML – wprowadzenie 38