Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "Związki Agregacje Związki n-arne Ograniczenia."— 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. Związek 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 :Osoba Ewa :Osoba Jasio Osoba imię pracuje_w pracuje_w pracuje_w pracuje_w :Firma Krawiecka :Firma Szewska Firma rodzaj Klasy i związeki na diagramie klas Obiekty i powiązania na diagramie obiektów 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ą. 1 pracuje_dla 1..* Firma Osoba 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.

4 Liczność związeku (1) Liczność związeku, to cecha o dużym znaczeniu informacyjnym w analizie i modelowaniu. Jeżeli związek wiąże klasy A i B, to istotne jest: 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. Zwykle, minimalna liczba jest 0 lub 1, maksymalna zaś 1 lub * (dowolnie dużo). a) b) a) b) A A A A A A A A A A A A 1,2 2,3 B B B B B B 0..1 1..3 A B: min = 0, max = 1 A B: min = 1, max = 3 B B B A: min = 1, max = 2 B A: min = 2, max = 3

5 Liczność związeku (2) UML znaczenie 1 1..* 2..* 3-5 2,4,18 0..1 0..* *
Liczność jest oznaczana na obu końcach związeku. Przykłady: UML znaczenie Państwo Stolica 1 1..* 2..* 3-5 2,4,18 0..1 0..* * 1 1, 2, 3, ... 2, 3, 4, ... 3, 4, 5 2, 4, 18 1, ? 0, 1 0, 1, 2, ... 1 * Firma Pracownik 0..* 0..1 Osoba Adres Oznaczać czy nie oznaczać liczność 1?

6 Związki skierowane Zamówienie dataZłożenia czyZapłacone sumaDoZapłaty
realizuj() zamknij() Klient nazwisko adres wiarygodność() * 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 * 1 Produkt

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. podwładny * pracuje_dla 1..* Firma * Osoba pracodawca pracownik 0..1 szef 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. Firma 1 1..* Pracownik

8 jest_przewodniczącym
Role związku (2) * jest_członkiem * Osoba Komitet 1 jest_przewodniczącym * 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 0..1 szef 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 Prawo dostępu dostęp Osoba Firma nazwisko nazwa
* dostępny dla Prawo dostępu dostęp zatrudnia Osoba nazwisko pesel adres Firma nazwa adres 1..* 0..1 { dostęp oznacza: czytanie lub czytanie-pisanie} * szef Użytkownik Zatrudnienie zarobek stanowisko 0..1 kieruje * pracownik Ocena wydajności ocena 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.

10 Kiedy stosować atrybuty związku?
pracuje_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 1..* 0..1 Zatrudnienie zarobek stanowisko pracuje_w Osoba nazwisko pesel adres zarobek stanowisko Firma nazwa adres 1..* 0..1 Forma nie zalecana, mniej elastyczna: np. po zmianie powiązania na wiele-do-wielu trzeba zmieniać położenie atrybutó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 /. atrybut pochodny: /wiek data_urodzenia /wiek Osoba {wiek = data_bieżąca - data_urodzenia} zatrudnia Wydział * Sekcja * Pracownik * * zlokalizowana_w /pracuje_w Budynek związek pochodny: /pracuje_w 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.

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

13 Agregacja 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!

14 Kompozycja jako mocna postać agregacji
Pojęcie agregacji jest rozumiane na dwa sposoby: 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. 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. K Ks K 1 Ks * * * agregacja kompozycja

15 Agregacja a kompozycja; przykład
{ordered} Punkt 3..* 0..1 0..1 Wielobok Okrąg promień * * Styl kolor czyWypełniony 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.

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

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

18 Związek kwalifikowany (1)
Bank Osoba nr konta 0..1 1..* 0..1 Bank nr konta kwalifikator związku 1 Osoba Bank Osoba * * Bank nr konta * Bank/Osoba nr konta 0..1 Osoba 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.

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

20 Związki n-arne Notacja
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. związek 3-arny związek 4-arny Notacja K1 K3 K1 nazwa związku K3 K2 K2

21 Związek n-arny; 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 Rok * sezon * Zespół Gracz * bramkarz Zapis Mecz gole nasze gole ich

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ść. K1 K3 K2 KA a1 a2 m1 A K1 K3 K2 KA a1 a2 m1 związk n-arny zostaje zamieniona na klasę i n związków binarnych.

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

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


Pobierz ppt "Związki Agregacje Związki n-arne Ograniczenia."

Podobne prezentacje


Reklamy Google