Modelowanie obiektowe systemów Dr inż. Ludmiła Rekuć www.ioz.pwr.wroc.pl/pracownicy/l_rekuc
Literatura Dąbrowski M.,Stasiak A.,Wolski M. Modelowanie systemów informatycznych w języku UML 2. PWN, 2009 Wrycza S.i inni Język UML 2.0 w modelowaniu systemów informatycznych. Helion 2005 Śmiałek M. Zrozumieć UML 2.0 Metody modelowania obiektowego Helion 2005 Eriksson H., Penker M., Business modeling with UML. Wiley&Sons, 2000 Booch G. Rumbaugh J.Jacobcon I. UML przewodnik użytkownika. Inżynieria oprogramowania.wnt Warszawa 200 Fowler M.Kendall S. UML w kropelce. LTP 2002r. www.omg.org 2
Cel kursu zaprezentować możliwości języka UML w dziedzinie modelowania organizacji i jej procesów jako środowiska SI; zapoznać z wybranymi technikami budowania modeli. 3
Plan wykładu Model i modelowanie organizacji a SI Modelowanie obiektowe - UML. Obiekty i klasy Diagram klas Diagram obiektów 4
Model abstrakcja systemu, która reprezentuje spójne i kompletne (z pewnego punktu widzenia) uproszczenie rzeczywistości. Po co modelować organizację i jej procesy?. zrozumieć, diagnozować, doskonalić, projektować procesy; porozumieć się między sobą członkom zespołu; określić wymagania do systemów informatycznych.. 5
Procesy organizacji a SI informatyzacja procesów gospodarczych w organizacjach wzrasta; integracja często różnorodnych aplikacji informatycznych wymaga zbudowania modeli procesów; zarządzanie procesami wymaga modeli; koncepcja MDA (Model Driven Architecture) stwarza nadzieje na możliwość wygenerowania kodu aplikacji z modelu. Wniosek: wzrasta rola modeli!. 6
Język modelowania wprowadza pojęcia umożliwiające opis systemu na różnych poziomach szczegółowości, z różnych punktów widzenia i w różnych celach; określa reguły używania tych pojęć; łączy z pojęciami graficzną prezentację. Nie ma jeszcze ogólnie przyjętego standardowego języka modelowania procesów gospodarczych!. 7
UML( Unified Modeling Language) OMG.4,.5 --> 2.0 Dlaczego zmiany? Nowa rola modeli procesów biznesowych: - Model wykonalny w WF, procesy oparte o usługi sieciowe. - Kod z modelu! UML 2.0 3 diagramów Struktura: klas, struktur złożonych, komponentów, obiektów, rozmieszczenia, pakietów. Zachowanie: czynności, interakcji, maszyny stanów, przypadków użycia. 8
UML Bloki konstrukcyjn e Reguły łączenia bloków Ogólne mechanizmy (zasady) Element y Związki Diagram y Zależność Powiązanie Uogólnienie Struktural ne Czynnościo we Grupując e Komentujące Klasa Przypadek użycia Interfejs... Realizacja Interakcj a Maszyna stanów 9
UML 2.0 Diagram UML Struktury Zachowania Klas Obiektów Komponentów Pakietów Struktury złożonej Przypadków Użycia Czynności Maszyny stanów Interakcji Rozmieszczenia 0
UML 2.0 Diagram UML Struktury Zachowania Przypadków Użycia Czynności Maszyny stanów Interakcji Sekwencji (Sequence) Komunikacji (Communication) Przegłądowy (Interaction overview) Czasowy (timing)
UML do modelowania organizacji gospodarczej?! podobienstwo konceptualnych założeń: organizacja jak i system infiormatyczny może być opisana w kategoriach procesów służących osiąganiu celów poprzez współdziałanie obiektów repezentujących zasoby różnego typu. Reguły definiują warunki i ograniczenia związane z procesami, strukturą i zachowaniem obiektów, związków między obiektami, ich interakcjami. wypróbowane techniki podejścia obiektowego: wieloletnia praktyka udowodniła zdolność do opisywania dużych i złożonych systemów. Opracowano szereg wzorców, niektóre mogą być stosowane do modelowania systemów gospodarczych. standardowa notacja:uml. W dziedzinie modelowania organizacji gospodarczej brak ogólnie przyjętej notacji. UML pozwala wykorzystać to samo narzędzie do modelowania organizacji i wspierającego ją SI. wykorzystanie tych samych pojęć z dziedziny obiektowości i przez analityków biznesowych i przez projektantów SI zmniejsza lukę między dwoma światami. podejście funkcyjne nie jest właściwe do opisu współczesnego biznesu. 2
Obiekt Obiekt: byt o dobrze określonych granicach, który ma tożsamość, cechy statyczne ( atrybuty i związki z innymi obiektami), które określają jego stan oraz cechy dynamiczne, które określają jego zachowanie. Obiekt łączy w sobie dane i funkcje podejścia strukturalnego. Obiekty mogą oznaczać fizyczne istniejące rzeczy (np. samochód, student itp.) lub abstrakcję - informację (np. zebranie, stanowisko itp.) Atrybuty cechy statyczne obiektu - co wiemy o obiekcie? Atrybut: nazwana właściwość związana z dziedziną wartości. Operacje -cechy dynamiczne - co obiekt może wykonać? Operacja: nazwana usługa realizowana przez obiekt. Metoda realizacja usługi w pewnym języku programowania (kod). Obiekty nie są identyfikowane przez wartości atrybutów - mają tożsamość! 3
Klasa obiektów Klasa: reprezentacja grupy podobnych (danego typu) obiektów, które mają takie same cechy (statyczne i dynamiczne) i znaczenie. Obiekt jest egzemplarzem (instancją, wystąpieniem,urzeczywistnieniem) klasy. Klasa jest definicją podobnych (danego typu) obiektów. 4
Prezentacja graficzna klasy Konto numer:int właściciel:string saldo: double depozyt() wypłata() Nazwa klasy jest obowiązkowa Sekcja atrybutów (opcjonalna). widoczność / nazwa : typ [krotność] = wartość domyślna { właściwość-string } Atrybut klasy, wartość którego jest wspólna dla wszystkich obiektów (np. liczba faktur klasy Faktura jest podkreślany. Sekcja operacji (opcjonalna). widoczność nazwa ( lista parametrów ) : typ zwracanej wartości { właściwość-string } Operacja klasy, zasięg działania której stanowią wszystkie obiekty (np. oblicz sumaryczną należność za okres klasy Faktura jest podkreślana. 5
Prezentacja graficzna obiektów księgowość tylko nazwa obiektu rekućkonto:konto nazwa obiektu i klasa numer:23 właściciel: Ludmiła Rekuć saldo: 300.00 :Student tylko klasa indeks:2223 nazwisko: Kowalski imie: Jan 6
Związki w UML W UML zdefiniowano cztery rodzaje związków, każdy z których może wystąpić miedzy klasami: powiązania (asocjacji) powodem jest powiązanie między obiektami danych klas generalizacji/specjalizacji (uogólnienia) związek znaczeniowy wskazuje, że jedno pojęcie (nadklasa) jest ogólniejsze w stosunku do jego innego (podklasy) zależności wskazuje, że jeden element modelu wymaga innego elementu modelu realizacji - wskazuje, że jeden element modelu jest definicją a inny realizacją tej definicji (lub uszczegółowieniem) 7
System informatyczny System informacyjny Przedsiębiorstwo Przykład:Przedsiębiorstwo jest zależne od systemu informacyjnego, który jest zrealizowany na bazie komputerów. Diagram klas Diagram klas graf, wierzchołkami którego są klasy, łukami związki między klasami. Na diagramie klas mogą wystąpić pakiety, komponenty. 8
Związek powiązania ( asocjacji) na diagramie klas Powiązanie(asocjacja) Zespół 0.. Składa się z członek 2..* Osoba Powiązanie klas wskazuje na związek między ich obiektami oznaczane jest linią ciągłą; może mieć nazwę z ewentualnie dodanym kierunkiem odczytu; ma końce (dwa lub więcej) wskazujące na klasy; końce mogą być oznaczone nazwami ról, w których występują w związku obiekty danych klas; na końcu związku może być pokazana liczebność (krotność), która wskazuje, ile obiektów danej klasy może być związana z jednym obiektem po drugiej stronie powiązania (tylko w związkach binarnych, wiążących dwie klasy). 9
Związek powiązania oznaczenie liczebności... z jednym obiektem danej klasy może być związany:. 0.. jeden lub żaden, opcjonalne powiązanie; 0..* jeden, wiele lub żaden, * wiele lub żaden, wskazuje na niedokładność zbadania;..* jeden lub wiele; tylko jeden; 2..7 od dwóch do siedmiu Brak wiele lub żaden, wskazuje na niedokładność zbadania;(w UML.5 - tylko jeden). Miasto od * Trasa do * 20
Powiązanie zwrotne Powiązanie zwrotne wskazuje na związek między obiektami tej samej klasy Osoba mąż żona małżeństwo 2
Klasa powiązania (asocjacji) Firma *..* Osoba pracodawca pracownik Zatrudnienie wynagrodzenie zawrzyjumowę Powiązanie, które ma własne atrybuty i/lub operacje może być modelowane jako klasa. 22
Klasa powiązania przykład zastosowania Student * zalicza * Kurs klasa powiązania Zaliczenie ocena * Indeks 23
Klasa zwykła zamiast klasy powiązania: oznaczenie powiązania, które może być wyprowadzone z innych Firma /pracuje dla Osoba Pracodawca Pracownik * * Stanowisko 0.. Kierownik powiązanie zwrotne.. * Podwładny Kieruje 24
Agregacja: związek całość składa się z części lub właściciel i jego własność * * Zdjęcie Osoba * DowódTożsamości Agregacja słaba (współdzielona) - pewien obiekt może należeć do wielu innych, jest częścią wielu, oznacza się niewypełnionym rombem po stronie "całości. Agregacja całkowita - kompozycja - wyłączna własność całości nad częścią; czas życia "części" nie może być dłuższy niż czas życia "całości", oznacza się wypełnionym czarnym rombem po stronie "całości"; 25
Agregacja - przykłady Trasa * 2..* {ordered} Przystanek Faktura..* PozycjaFaktury 26
Ograniczenia Ograniczenia: (w nawiasach klamrowych) dodatkowe wymagania, które nie udaje się wyrazić za pomocą standardowych konstrukcji diagramu. Mogą one dotyczyć powiązań, operacji, związku miedzy atrybutami, wartości atrybutów i tp. Konto * {XOR} Osoba Zespół członek * {podzbiór} Osoba Konto jest związane z osobą lub z firmą * Firma szef szef jest jednym z członków zespołu Faktura nr data podstawa..* {ordered} PozycjaFaktury lp symbol ilość {XOR} oznacza, że wystąpienia związków są alternatywne. {Ordered} - na końcu powiązania oznacza, że jeden obiekt danej klasy może być związany z kilkoma obiektami klasy docelowej i obiekty te są uporządkowane. 27
Uogólnienie (generalizacja/specjalizacja) Osoba * uczy Klasy mogą być jednocześnie w związku uogólnienia i innych, np. powiązania Student * Wykładowca Uogólnienie: związek między klasą bardziej ogólną (nadklasą) a bardziej specyficzną (podklasą). Podklasa dziedziczy cechy nadklasy: atrybuty operacje związki ograniczenia Podklasy mogą: - dodać nowe atrybuty i operacje do odziedziczonych; - zmienić odziedziczone operacje zapewniając inną treść operacji przy zachowaniu tego samego nagłówka. 28
Uogólnienie - przykład Zawodnik nazwisko waga wysokość podajpiłkę() strzelkosza() Obrońca Skrzydłowy Środkowy róbprzechwyt() róbasystę() zróbwsad() Źródło: J.Schmuller UML dla każdego, HELION, 2003, str. 63. 29
Uogólnienie - przykład Osoba Płeć {kompletny, rozłączny} Zawód Kobieta Mężczyzna Lekarz Prawnik 30
Przykład diagramu klas nr Egzemplarz * Umiejscowienie..* Temat nazwa opis * * Dokument 0.. poprzednik TypDokumentu * tytuł autor datawydania zawartość jest wersją nazwa * * * zawier a 3
Diagram obiektów Na diagramie klas klasy i ich związki. Na diagramie obiektów instancje klas i ich związek w pewnej chwili czasowej. Osoba..* pracownik 0..* pracodawca Firma Rekuć:Osoba PWr:Firma 32
Diagram klas - przykład Przedsiębiorstwo 0.. Dział..* 0..* jest nadrzędnym dla kierownik 0.. Osoba..* AdresKontaktowy 33
Diagram obiektów p:przedsiębiorstwo d:dział d2:dział nazwa = "Sprzedaż" nazwa = "Produkcja" d3:dział nazwa = "Sprzedaż internetowa" kierownik o:osoba nazwisko = "Kowal" ID = 4389 stanowisko = "Kierownik sprzedaży" :AdresyKontaktowe adres = "Kluczowa 0" Diagram przedstawia obiekty i ich wiązania w konkretnej chwili. 34
Modelowanie obiektowe a klasy Obiektowo zorientowany model dowolnego systemu (np. sterowania samoletem czy rekrutacji pracowników w przedsiebiorstwie ) jest zbudowany w oparciu o pojęcia świata rzeczywistego danej dziedziny problemowej. Dlaczego? Ułatwia to zrozumienie modelu i pracę nad nim. Jaki zestaw obiektów odwzorować w modelu? Jest to sztuka, rozwiązań może być wiele. 35
Identyfikacja klas Dziedzina wiedzy atrybut atrybut2 atrybut3 oper() oper2() Nazwa rzeczowniki rzeczowniki - dopełniacze. czasowniki. 36
Identyfikacja klas Właściwy zestaw klas odzwierciedla dziedzinę problemu, klasy mają nazwy ze świata rzeczywistego, które nie powodują mylących skojarzeń. Szukając klas modelu stanowiącego podstawę budowania systemu informatycznego przedsiębiorstwa warto zadać pytania: o czym SI powinien pamiętać lub przetwarzać? jakie systemy zewnętrzne współdziałają z systemem modelowanym? i przedstawić je jako klasę; jakie gotowe składniki systemu będą wykorzystane? i przedstawić je jako klasę; Jako klasy mogą być modelowane części organizacji role 37
Pytania kontrolne. Czy każda klasa może mieć obiekty? 2. Czy każda sekcja definicji klasy jest obowiązkowa? 3. Czy prawdziwe jest twierdzenie: należy pokazać wszystkie atrybuty klasy lub nie pokazywać je wcale? 4. Czy klasa powiązania może mieć związki z innymi zwykłymi klasami? 5. Co dziedziczy podklasa po nadklasie? 6. Czy mogą wystąpić dwa obiekty klasy z takimi samymi wartościami atrybutów? 38