Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Związki Agregacje Związki n-arne Ograniczenia. Powiązanie a związek binarny Fizyczny lub pojęciowy związek między obiektami, odwzorowywujący związek istniejący.

Podobne prezentacje


Prezentacja na temat: "Związki Agregacje Związki n-arne Ograniczenia. Powiązanie a związek binarny Fizyczny lub pojęciowy związek między obiektami, odwzorowywujący związek istniejący."— Zapis prezentacji:

1 Związki Agregacje Związki n-arne Ograniczenia

2 Powiązanie a związek binarny Fizyczny lub pojęciowy związek między obiektami, odwzorowywujący związek istniejący między odpowiednimi bytami w analizowanej dziedzinie przedmiotowej. Grupa powiązań posiadających wspólną strukturę i semantykę. Powiązanie jest wystąpieniem związeku. Związek, który łączy dwie klasy nazywana jest binarną. :Osoba Kasia :Firma Krawiecka pracuje_w :Osoba Jasio :Firma Szewska :Osoba Ewa pracuje_w Obiekty i powiązania na diagramie obiektów Osoba imię Firma rodzaj pracuje_w Klasy i związeki na diagramie klas Powiązanie Związek związeki mogą też łączyć więcej niż dwie klasy, tzw. związek n-arne.

3 Oznaczanie związku Czarny trójkącik określa kierunek (czytania) wyznaczony przez nazwę związeku. W danym przypadku określa on, że osoba pracuje dla firmy, a nie firma pracuje dla osoby. Nazwy związeku, takie jak np. pracuje_dla, wyznaczają znaczenie tego związeku w modelu pojęciowym opisującym dziedzinę przedmiotową. Firma Osoba pracuje_dla 1..* związeki mogą być wyposażone w oznaczenia liczności. Liczność oznacza, ile obiektów innej klasy może być powiązane z jednym obiektem danej klasy; zwykle określa się to poprzez parę liczb (znaków), oznaczającą minimalną i maksymalną liczbę takich obiektów. 1

4 Liczność związeku (1) jaka jest minimalna liczba obiektów B powiązana z jednym obiektem A, A --> B jaka jest maksymalna liczba obiektów B powiązana z jednym obiektem A, A --> B jaka jest minimalna liczba obiektów A powiązana z jednym obiektem B, B --> A jaka jest maksymalna liczba obiektów A powiązana z jednym obiektem B, B --> A. AAAA B A BB AB: min = 0, max = 1 BA: min = 1, max = 2 AB: min = 1, max = 3 BA: min = 2, max = 3 A B A B a) b) ,2 AAAA B A BB ,3 b) a) Zwykle, minimalna liczba jest 0 lub 1, maksymalna zaś 1 lub * (dowolnie dużo). Jeżeli związek wiąże klasy A i B, to istotne jest: Liczność związeku, to cecha o dużym znaczeniu informacyjnym w analizie i modelowaniu.

5 Liczność związeku (2) Liczność jest oznaczana na obu końcach związeku. 1 1, 2, 3,... 2, 3, 4,... 3, 4, 5 2, 4, 18 1, ? 0, 1 0, 1, 2, * 2..* 3-5 2,4, * * UMLznaczenie PaństwoStolica FirmaPracownik OsobaAdres 1* 0..*0..1 Oznaczać czy nie oznaczać liczność 1? Przykłady:

6 Związki skierowane Zamówienie dataZłożenia czyZapłacone sumaDoZapłaty realizuj() zamknij() Klient nazwisko adres wiarygodność() *1 Produkt *1 1 * Na diagramach UML można zaznaczać kierunek nawigacji wzdłuż danego związeku. W takim przypadku związeku jest rysowana w postaci strzałki; nawigacja jest możliwa zgodnie z jej kierunkiem, ale nie odwrotnie. PozycjaZamówienia ilość cena czyZrealizowana

7 Role związeku (1) Związki mogą być wyposażone w nazwy ról (przy końcach), np. pracodawca i pracownik.. Rola określa kierunek nawigowania, specyfikując klasę cel, np. rola pracodawca wyznacza kierunek nawigowania od obiektu klasy Osoba do powiązanych z nim obiektów klasy Firma. W tym sensie liczność związeku oznacza liczność roli. Firma Osoba pracuje_dla * 1..* pracodawcapracownik szef podwładny * 0..1 Role związku są niezbędne, gdy powiązania łączą obiekty tej samej klasy. Jak oznaczać związeki binarne? (1) Można opuszczać nazwę związeku, gdy jest oczywista (?) i jest jedynm związekiem łączącym dwie klasy. FirmaPracownik 1..*1

8 Role związku (2) Osoba Komitet jest_członkiem ** jest_przewodniczącym 1* Na diagramie powyżej, dwa związki łączą te same klasy; w wypadku, gdy dwie klasy są połączone więcej niż jednen związek, wszystkie związki muszą być oznaczone. (2) Do oznaczenia związku można użyć nazwy lub dwóch ról lub jednej roli. Pracownik szef * 0..1 Z diagramów, z założenia, usuwa się wszelką informację redundantną (dla zwiększenia ich czytelności) - dlatego używanie nazwy i ról związku jednocześnie nie jest polecane.

9 Atrybuty związku Plik Użytkownik Prawo dostępu dostęp dostępny dla { dostęp oznacza: czytanie lub czytanie-pisanie} * * Osoba nazwisko pesel adres Firma nazwa adres Zatrudnienie zarobek stanowisko szef zatrudnia Ocena wydajności ocena kieruje * Jeśli klasa związeku nie zawiera metod ani związeku do innych klas to jej nazwa może być opuszczona dla podkreślenia faktu, że chodzi tu wyłącznie o atrybuty związku. pracownik *

10 Kiedy stosować atrybuty związku? Forma nie zalecana, mniej elastyczna: np. po zmianie powiązania na wiele-do-wielu trzeba zmieniać położenie atrybutów. Zalecane jest, by przypisywać do klasy tylko te atrybuty, które są dla tej klasy stabilne. Eksperyment myślowy: co będzie, jeżeli liczność związku się zmieni? Dość często okazuje się wtedy, że atrybut jest atrybutem związku, a nie klasy. Osoba nazwisko pesel adres Firma nazwa adres pracuje_w Zatrudnienie zarobek stanowisko * Osoba nazwisko pesel adres zarobek stanowisko Firma nazwa adres pracuje_w *

11 Atrybuty i związki pochodne Cecha pochodna jest zdefiniowana poprzez funkcję działającą na jednym lub więcej bytach modelu, które też mogą być pochodne. Cecha pochodna oznaczana jest ukośnikiem /. data_urodzenia /wiek {wiek = data_bieżąca - data_urodzenia} związek pracuje_w jest związkiem pochodnym, który można wyznaczyć poprzez związek zatrudnia i zlokalizowana_w. związek pochodny można oznaczyć poprzedzając ukośnikiem nazwę lub rolę związku. atrybut pochodny: /wiek WydziałSekcjaPracownik Budynek zatrudnia zlokalizowana_w /pracuje_w * * * * Osoba związek pochodny: /pracuje_w

12 Przykładowy diagram klas poprzedza następuje_po zawiera zapisany_na prowadzi PracownikStudent Osoba Kurs Profesor Wykład 1..* * *

13 Agregacja jest szczególnym przypadkiem związku wyrażającym zależność część- całość. Np. silnik jest częścią samochodu. Nie istnieje jednak powszechnie akceptowana definicja agregacji. P. Coad podaje przykład agregacji jako związek pomiędzy organizacją i jej pracownikami; dla odmiany J. Rumbaugh twierdzi, że firma nie jest agregacją jej pracowników. W wielu przypadkach związki agregacji są oczywiste. Jednakże wątpliwości powstają nawet w przypadku samochodu i silnika. Np. silnik może być towarem w sklepie nie związanym z żadnym samochodem. Ponadto, czy chodzi o konkretny samochód i silnik, czy też o typ samochodu i typ silnika? Mętlik dookoła pojęcia agregacji wynika również z tego, że jest ona nadużywana w celu usprawiedliwienia pewnych ograniczeń modelu obiektowego. Np. popularne wyjaśnienie powodów braku (wielo) dziedziczenia podaje, że można je obejść przez agregację, co jest nonsensem z punktu widzenia celów modelowania pojęciowego, tak samo jak zdanie: związki są zbędne, bo można je obejść przez atrybuty. Wszysto można obejść.... w assemblerze! Agregacja

14 Pojęcie agregacji jest rozumiane na dwa sposoby: W UML te dwie sytuacje zostały rozdzielone. Pierwszą formę nazwano kompozycją. Kompozycja oznacza, że cykl życiowy składowej zawiera się w cyklu życiowym całości, oraz że składowa nie może być współdzielona. Jako związek część-całość pomiędzy obiektami świata rzeczywistego; np. silnik jest częścią samochodu. Jako pomocniczy środek do modelowania dowolnej innej sytuacji, kiedy trzeba wydzielić podobiekty w pewnych obiektach. np. informacja o ubezpieczeniach wewnątrz obiektów pracowników. Kompozycja jako mocna postać agregacji KKsK * * * agregacjakompozycja 1

15 Wielobok Punkt Styl kolor czyWypełniony Okrąg promień { ordered } 3..* * * Agregacja a kompozycja; przykład W przedstawionym rozwiązaniu, punkt na płaszczyźnie, w którym przecinają się okrąg i wielobok, jest odwzorowywany w dwa (?) obiekty klasy Punkt. 0..1

16 Modelowanie generalizacji-specjalizacji Dzięki kompozycji, podobiekty Student czy Pracownik są mocniej związane z obiektem Osoba, niż gdyby do użyto modelowania związku. Osoba StudentPracownik {overlapping} Osoba Student Pracownik 0..1 Osoba Student Pracownik Osoba StudentPracownik 0..1 {xor} zastosowano dziedziczeniezastosowano kompozycję

17 Obejście dziedziczenia wielokrotnego Osoba Student Pracownik Student/Pracownik Osoba Student Pracownik Student/Pracownik 0..1 Osoba Student Pracownik 0..1 nie polecane 11

18 Kwalifikator jest atrybutem związku (lub zestawem atrybutów), którego wartości służą do podziału zbioru obiektów definiowanych przez klasę znajdującą się na jednym z końców tego związku. Związek kwalifikowany (1) Bank Osoba nr konta Bank 1..* 0..1 Bank Osoba nr konta Bank Osoba * * * Bank/Osoba nr konta Osoba nr konta kwalifikator związku

19 Związek kwalifikowany (2) nazwa produktu Zamówienie WierszZamówienia ilość 0..1 pozycja Zamówienie WierszZamówienia nazwa produktu ilość * pozycja 1 1

20 Związki n-arne związek n-arny to związek, którego wystąpienia łączą n obiektów, będących instancjami co najwyżej n klas: 3-arny - 3 obiekty (inna nazwa dla tej związeki to ternarna), 4-arny - 4 obiekty, itd. Dana klasa może pojawić się na więcej niż jednej pozycji w związki. związek binarny ze swoją uproszczoną notacją i pewnymi dodatkowymi własnościami (takimi jak możliwość ustalania kierunku nawigowania, kwalifikatorów, związków agregacji czy kompozycji) jest specjalnym rodzajem związku n-arnego (dla n=2). związek binarny i 2- arny są równoważne, nie istnieje między nimi różnica semantyczna, inny jest tylko sposób reprezentowania. Wymienione wyżej dodatkowe własności związków binarnych są zabronione dla związku n-arnego, gdzie n > 2. Notacja K1 K2 K3 nazwa związku K1 K2 K3 związek 3-arny związek 4-arny

21 Związek n-arny; liczności Liczności Specyfikowanie liczności dla związków n-arnych nie jest tak oczywiste, jak dla związków binarnych i różni autorzy wygłaszają na ten temat różne zdania. UML odrzuciła poglądy, że liczność danej roli powinna być ustalana w odniesieniu do liczności pozostałych ról, traktowanych oddzielnie. Przyjęto zasadę, że liczność n-tej roli jest opisana przez zbiór możliwych wartości liczności, gdy sytuacja na n-1 końcach związku jest ustalona. Np. dla ternarnego związku łączącej klasy A,B i C liczność roli C specyfikuje, ile obiektów klasy C jest powiązanych z każdą możliwą parą obiektów klas A i B. Taka reguła jest zgodna z regułą przyjętą dla specyfikowania liczności związków binarnych. Atrybuty ZespółGracz Rok Zapis gole nasze gole ich * bramkarz sezon * * Mecz

22 Obejście związku n-arnego związki n-arne mają sens wtedy, gdy do identyfikacji powiązania (n-arnego) potrzebne są wszystkie obiekty, tzn. gdy liczność każdej z ról jest wiele. W pozostałych przypadkach związki n-arne warto jest zastępować związkami binarnymi, które są łatwiejsze do implementacji i wyposażone w dodatkowe własności, o których była mowa poprzednio. Niestety traci się informację o związku, łączącym grupę obiektów w pewną całość. K1K3 K2 KA a1 a2 m1 związk n-arny zostaje zamieniona na klasę i n związków binarnych. K1K3 K2 KA a1 a2 m1 A

23 Ograniczenia; przykład (1) Konto Firma Osoba {xor} 0..1 Pracownik dane osobowe stanowisko pensja {pensja <= 5000} {pensja nigdy nie maleje} ograniczenie dynamiczne (ważny jest poprzedni stan) ograniczenie statyczne Ograniczenia stanowią kolejny z mechanizmów rozszerzalności w UML (po stereotypach i wartościach etykietowanych). 1 1

24 Ograniczenie lub adnotacja Osoba Komitet jest_członkiem ** jest_przewodniczącym * {podzbiór} Osoba Firma zatrudnia 0..1 * pracownikpracodawca podwładny szef 0..1 * {Osoba.pracodawca = Osoba.szef.pracodawca} Ograniczenia; przykład (2)


Pobierz ppt "Związki Agregacje Związki n-arne Ograniczenia. Powiązanie a związek binarny Fizyczny lub pojęciowy związek między obiektami, odwzorowywujący związek istniejący."

Podobne prezentacje


Reklamy Google