Modelowanie obiektowe Diagramy klas Dr Karolina Muszyńska Na podst.: http://www.csun.edu/~dn58412/IS431/IS431_SP13.html S. Wrycza, B. Marcinkowski, K. Wyrzykowski „Język UML 2.0 w modelowaniu SI”
Modelowanie obiektowe – diagramy klas Ujęcie statyczne- diagramy klas rola pojęcia podstawowe pojęcia zaawansowane przykłady No additional notes
Diagramy klas/obiektów - rola Diagram klas – rodzaj diagramów UML pokazujących statyczny obraz systemu, stanowiących podstawę dla przyszłej bazy danych. Diagramy klas opisują strukturę obiektów systemu i pokazują klasy obiektów, z których złożony jest system, jak również relacje pomiędzy klasami. Diagramy obiektów – są podobne do diagramów klas ale zamiast opisywać klasy przedstawiają model rzeczywistych wystąpień obiektów, ukazując strukturę systemu w danym momencie czasu. No additional notes
Diagramy klas - typy Diagram konceptualny – diagram klas zawierający podstawowe elementy, wykorzystujący nazwy klas, atrybutów oraz metod zrozumiałe dla użytkownika. Diagram implementacyjny – diagram klas wzbogacony o dodatkowe elementy takie jak typy danych, widoczność, klasy asocjacyjne, związki uogólnienia (dziedziczenia), czy realizacje. No additional notes
Diagramy klas/obiektów –pojęcia podstawowe Obiekt – to coś co można zobaczyć, dotknąć, albo w inny sposób wyczuć i o czym użytkownicy gromadzą dane i czemu przypisują określone procedury (metody) Atrybuty - to dane, które reprezentują cechy charakteryzujące obiekt (wszystko co wiemy na temat obiektu jest reprezentowane przez atrybuty) Operacje/metody - odnoszą się do tych rzeczy, które obiekt może robić i które odpowiadają funkcjom wykonywanym na danych (atrybutach) obiektu Klasa - to zbiór obiektów, które posiadają taką samą strukturę – te same atrybuty i metody oraz wspólne relacje i znaczenie.
Diagramy klas –pojęcia podstawowe Klasa Nazwa klasy Atrybuty z typami danych Metody z typami danych wyjściowych
Diagramy klas –pojęcia podstawowe Relacja klas to naturalne biznesowe powiązanie, które istnieje między klasami. Są cztery typy relacji pomiędzy klasami: asocjacja, uogólnienie (dziedziczenie), zależność i realizacja. Asocjacja - główny typ relacji opisujący możliwe związki pomiędzy obiektami powiązanych klas. Nawigacja jest zdefiniowanym kierunkiem komunikacji pomiędzy klasami; jeżeli nie jest zdefiniowana domyślnie jest ona dwustronna. Liczebność określa ile wystąpień jednej klasy może być w związku z jednym wystąpieniem innej klasy.
Notacje UML dotyczące liczebności Notacja Znaczenie Liczebność Związki z liczebnościami UML asocjacji Pracownik pracuje w jednym i tylko jednym oddziale. Oddział Pracownik 1 pracuje dla Dokładnie1 1 Employee Department Pracownik może ale nie musi mieć jednego współmałżonka. 0..1 ma Współmałżonek Pracownik Zero lub jeden 0..1 0..* dokonuje Płatność Klient 0..* lub * Klient może nie dokonać żadnej płatności, albo wielu płatności. Zero lub więcej Płatność Klient dokonuje * Uniwersytet oferuje co najmniej jeden lub wiele kursów. Kurs Uniwersytet oferuje 1..* Jeden lub więcej 1..* Zespół ma 7, 8 lub 9 przypisanych gier Określony zakres Gra Zespół 7..9 ma 7..9 przypisanych
Diagramy klas –pojęcia podstawowe Nazwa asocjacji Asocjacja 0..* Klient Zamówienie składa 1 zamawiający zamówienie Liczebność Liczebność Role Role
Diagramy klas –pojęcia podstawowe Agregacja – to specjalny rodzaj relacji, pokazujący, że niektóre klasy składają się z innych klas. Poprzez stworzenie relacji agregacji możemy podzielić bardzo złożony obiekt i wyznaczać metody i atrybuty poszczególnym obiektom, składającym się na niego. Są dwa typy relacji agregacji: całkowita /kompozycja/- wszystkie obiekty- części składają się na obiekt-całości i są z nim nierozerwalnie związane, częściowa/agregacja/ - zakłada, że obiekty- części mogą być współdzielone przez wiele obiektów-całości.
Relacja agregacji Zespół operacyjny Doktor Pielęgniarka Anestezjolog Relacja typu “jest częścią” (obiekty-części mogą być współdzielone przez wiele obiektów-całości)
Relacje typu “składa się z” Relacja kompozycji Zamówienie Pozycja zamówienia Książka Strona Relacje typu “składa się z” (wszystkie obiekty-części składają się na obiekt-całość i są z nim nierozerwalnie związane)
Diagramy klas –pojęcia zaawansowane Asocjacja zwrotna – sytuacja kiedy istnieje asocjacja pomiędzy różnymi obiektami tej samej klasy (asocjacja wiążąca klasę z samą sobą). 1 Pojazd platforma 1..10 osobowy < transportuje
Diagramy klas – pojęcia zaawansowane Relacja uogólnienia – wskazuje, że jedna z dwóch powiązanych klas – podklasa (dziecko) uważana jest za rodzaj drugiej klasy - nadklasy (rodzica) i nadklasa uważana jest za ‘uogólnienie’ podklasy. Innymi słowy klasa dziecko jest specyficznym typem klasy rodzic i dziedziczy wszystkie cechy i metody z klasy rodzica. Związek uogólnienia występuje również pod nazwą związku dziedziczenia. Klasa rodzic może być albo konkretną klasą albo abstrakcyjną. Klasa abstrakcyjna nie ma konkretnych instancji obiektów, stanowi jedynie uogólnienie obiektów konkretnych znajdujących się na niższych poziomach hierarchii jako klasy dzieci.
Relacja uogólnienia/dziedziczenia Pracownik Doktor Pielęgniarka administracji Relacja typu “jest rodzajem”
Tworzenie diagramu klas Znalezienie potencjalnych obiektów (najlepszy sposób to przegląd każdego przypadku użycia w poszukiwaniu rzeczowników). Wybór proponowanych obiektów (oczyszczenie listy z: synonimów, rzeczowników nie dotyczących systemu, rzeczowników które są rolami, lub rzeczowników które są akcjami lub atrybutami). Identyfikacja atrybutów i metod dla klas. Identyfikacja asocjacji i liczebności. Identyfikacja relacji uogólnienia (należy wyszukać związków jeden-do-jednego gdyż to są potencjalne relacje uogólnienia, jak również klas o wspólnych atrybutach lub metodach). Identyfikacja relacji agregacji (należy pamiętać, że relacje agregacji nie oznaczają dziedziczenia ale propagują metody). W pierwszej kolejności należy zidentyfikować klasy i stworzyć diagram klas dla każdego przypadku użycia a następnie zbudować zintegrowany diagram klas dla całego systemu.