Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 2
Zwi zki mi dzy klasami Asocjacja (ang. Associations) Uogólnienie, dziedziczenie (ang. Generalizations) Agregacja (ang. Aggregations) Kompozycja (ang. Composite aggregation) Zagnie»d»enia (ang. Nestings) Klasy asocjacyjne (ang. Association Classes) Zale»no±ci (ang. Dependencies)
Asocjacja Asocjacja jest podstawowym rodzajem zwi zków/relacji mi dzy klasami i oznacza istnienie trwaªego powi zania pomi dzy nimi. Asocjacja mo»e zawiera nazwane role na ka»dym ko«cu, liczebno±ci, kierunki i ograniczenia. Przykªady asocjacji: Student studiuje na uczelni Piªkarz gra w dru»ynie piªkarskiej Lekarz pracuje w szpitalu, itd
Nazwy, role i liczebno± asocjacji Nazwa asocjacji wskazuje bezpo±rednio czynno±, jaka zachodzi pomi dzy klasami. Mo»e tak»e wskazywa kierunek. Role okre±laj jak rol peªni dana klasa w asocjacji.
Nazwy, role i liczebno± asocjacji Liczebno± okre±la, ile obiektów jednej klasy bierze udziaª w asocjacji drugiej klasy. Liczebno± mo»na okre±li staª cyfr, np.: 1, 2, 3, 4, itd. Liczebno± mo»na okre±li jako niesko«czono± - oznaczane przez * Liczebno± mo»na okre±li przedziaªem, np. 0..4 - od 0 do 4 2..5 - od 2 do 5 10..1000 - od 10 do 1000 1..* - od 1 do niesko«czono± (minimum 1), itd
Klasy asocjacyjne Klasa asocjacyjna to klasa powi zana za pomoc linii przerywanej z asocjacj. Klasa asocjacyjna opisuje asocjacje pomi dzy klasami, których ta asocjacja dotyczy. Klasa asocjacyjna umo»liwia asocjacji posiadanie operacji i atrybutów.
Klasy asocjacyjne W przypadku wyst powania klasy asocjacyjnej w kodzie programu, klasy bior ce udziaª w asocjacji mog, ale nie musz, posiada bezpo±rednie poª czenia pomi dzy sob. Zatem nasza klasa Pracownik nie musi mie bezpo±redniego poª czenia z klas Projekt. Klasa Pracownik mo»e mie na przykªad poª czenie z klas Rola, za± klasa Rola z klas Projekt. Dzi ki temu przez po±rednictwo klasy asocjacyjnej Rola, klasa Pracownik jest powi zana z klas Projekt.
Dziedziczenie (generalizacja) Generalizacja odpowiada dziedziczeniu znanemu z j zyków programowania. Generalizacja to zwi zek pomi dzy bardziej ogóln klas (rodzicem) a klas bardziej szczegóªow (dzieckiem). Przykªady generalizacji: Kwadrat jest Figur Fiat jest Samochodem Pies jest Zwierz ciem, itd.
Agregacja Agregacje s wykorzystywane w celu przedstawienia elementów, które s zªo»one z mniejszych elementów. Agregacja, w skrócie, oznacza zawieranie, np. Dom zawiera okno Sygnalizacja ±wietlna zawiera»arówk Mieszkanie zawiera telefon Agregacj na diagramie UML oznacza si strzaªk z ko«cem zako«czonym pustym rombem, skierowany w kierunku klasy rodzicielskiej.
Kompozycja I Kompozycja jest szczególnym przypadkiem agregacji. Kompozycja od agregacji ró»ni si tym,»e klasa posiada obiekty (skªada si z obiektów), które bez tej klasy nie mogªy by istnie. Je±li rodzic w kompozycji jest usuwany, zwykle wszystkie jego cz ±ci s usuwane z nim; jednak»e cz ± mo»e zosta indywidualnie usuni te z kompozycji, bez konieczno±ci usuwania caªej kompozycji. Kompozycja jest relacj przechodni, asymetryczn i mo»e by rekurencyjne. Kompozycj na diagramie UML oznacza si strzaªk z ko«cem zako«czonym wypeªnionym rombem, skierowany w kierunku klasy rodzicielskiej.
Kompozycja II
Ró»nica mi dzy agregacj i kompozycj - przykªad Ksi»ka adresowa skªada si z wielu kontaktów i grup kontaktów. Grupa kontaktów to wirtualne grupowanie kontaktów; ka»dy kontakt mo»e by zawarty w wi cej ni» jednej grupie kontaktów. Usuni cie ksi»ki adresowej powoduje,»e wszystkie kontakty i grupy kontaktowe zostan usuni te. Usuni cie grupy kontaktów, nie powoduje usuni cia»adnego kontaktu.
Zagnie»d»enia Zagnie»d»enie jest relacj pokazuj c,»e element ¹ródªowy (np. klasa Element) jest zagnie»d»ona w elemencie docelowym (np. klasa Stos).
Zagnie»d»enia I c l a s s S t o s { p r i v a t e : c l a s s Element { public : i n t dana ; Element n e x t ; } ; Element Top ; public : S t o s ( ) ; ~Stos ( ) { c l e a r ( ) ; } ; bool empty ( ) const ; void c l e a r ( ) ; void push ( i n t ) ;
Zagnie»d»enia II } ; void pop ( ) ; i n t top ( ) ;
Zale»no±ci Zale»no±ci u»ywane s do modelowania szerokiego zakresu zwi zków pomi dzy elementami modelu. Zwykle stosowane s na wczesnym etapie procesu projektowania, gdy wiadomo,»e istnieje jaki± zwi zek mi dzy dwoma elementami, ale jest zbyt wcze±nie, aby dokªadnie wiedzie, jaki jest to zwi zek. W pó¹niejszym etapie procesu projektowania zale»no±ci zostan uszczegóªowione lub zast pione bardziej konkretnym typem zwi zku.
Diagramy klas i zwi zki- przykªad ródªo:http://www.uml-diagrams.org/class-diagrams-overview.html
Diagramy obiektów Diagram obiektu mo»e by uwa»ane za szczególny przypadek diagramu klasy. Diagramy obiektu wykorzystuj podzbiór elementów diagramu klas, aby podkre±li zwi zek pomi dzy instancjami klas w pewnym momencie czasowym. Diagramy obiektu nie pokazuj niczego architektonicznie innego do diagramów klas, ale odzwierciedlaj wielo± i role.
Diagramy obiektów - ró»nice w wygl dzie pomi dzy klas i obiektem Klasy skªada si z trzech cz ±ci: nazwa klasy, atrybuty i operacje. Domy±lnie obiekty nie maj takiego przedziaªu, posiadaj tylko nazw. Obiekty na diagramie prezentuje si za pomoc prostok tów, w których nazwa jest podkre±lona. Po niej, po dwukropku, znajduje si nazwa klasy, której obiekt reprezentuje dany prostok t.
Diagramy obiektów - przykªad ródªo:http: //www.uml-diagrams.org/class-diagrams-overview.html#object-diagram