Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

OMT - Model obiektów, cz.2.

Podobne prezentacje


Prezentacja na temat: "OMT - Model obiektów, cz.2."— Zapis prezentacji:

1 OMT - Model obiektów, cz.2

2 OMT - model obiektów Agregacje - nieco dokładniej Klasy abstrakcyjne
Delegacja Wielokrotne dziedziczenie Jak obejść brak wielodziedziczenia? Jak obejść brak dziedziczenia? Klucze

3 Agregacje Agregacja jest specjalną formą związku, którego podstawową intencją jest odwzorowanie zależności część-całość. Kiedy warto używać agregacji? Decyzja jest często arbitralna. Czy właściwe jest użycie frazy “jest częścią”? Czy operacje na całości automatycznie są propagowane na jej części? Czy jakiś atrybut całości jest automatycznie propagowny do jej części? Czy istnieje wewnętrzna asymetria w asocjacji, kiedy jakaś klasa jest podporządkowana innej klasie? Firma Oddział Wydział Pracuje w Osoba

4 Agregacja vs. generalizacja
Wystąpienie agregacji wiąże dwa obiekty. Nie można mówić o wystąpieniu generalizacji; jest to związek między klasami. Lampa Lampa żarówkowa Lampa flurescencyjna Oprawa Klosz Wyłącznik Przewody Oprawka Dławik Zamocowanie świetlówki Starter Agregacje mogą być rekurencyjne; generalizacje nie mogą.

5 Propagacja operacji Przesunięcie agregatu (np. okienka na ekranie) implikuje przesunięcie wszystkich obiektów w tym okienku. Skopiowanie dokumentu oznacza skopiowanie wszystkich jego składowych. kopiuj kopiuj Osoba Posiada Dokument kopiuj Paragraf kopiuj Znak kopiuj Propagacja jest zaznaczona na diagramach OMT w postaci małej strzałki nad agregacją lub asocjacją, z zaznaczeniem operacji, która jest propagowana.

6 Delegacja Pojęcie ściśle związane z agregacją.
Samochód start stop Operacje start i stop samochodu są oddelegowane do operacji start i stop silnika, które z kolei są oddelegowane do operacji włącz i wyłącz rozrusznika i zapłonu. Silnik start stop W wielu przypadkach agregacja i delegacja umożliwiają obejście braku dziedziczenia i wielodziedziczenia. (wyjaśnienie będzie później) Rozrusznik włącz wyłącz Zapłon

7 Klasy abstrakcyjne Pracownik Masarz Piekarz Cukiernik . . .
Klasa abstrakcyjna nie bezpośrednich wystąpień. Jest ona wspólną częścia definicji innych klas. Klasa konkretna może mieć bezpośrednie wystąpienia. Klasa konkretna nie musi być liściem w drzewie klas. Pracownik Klasa Pracownik nie jest klasą abstrakcyjną ponieważ może być pracownik bez zawodu. Masarz Piekarz Cukiernik . . . Wielokropek oznacza istnienie innych podklas, które nie są przedstawione na diagramie, np. z powodu braku miejsca lub dlatego, że są mniej istotne dla rozpatrywanego przypadku

8 Abstrakcyjne operacje
Klasa abstrakcyjna może mieć abstrakcyjne operacje. Są one wyspecyfikowane w takiej klasie, ale ich implementacja znajduje się w ramach każdej pod-klasy Pracownik już-zarobił-w-tym-roku oblicz wypłatę {abstract} Pracownik godzinowy stawka godzinowa stawka świąteczna oblicz wypłatę Pracownik etatowy zarobek tygodniowy oblicz wypłatę Pracownik na zlecenie zarobek miesięczny oblicz wypłatę Specyfikacja metody oblicz wypłatę znajduje się w ramach klasy abstrakcyjnej Pracownik. Każda klasa konkretna zawiera specyficzną implementację tej metody.

9 Rozszerzenia i ograniczenia w ramach podklasy
Wystąpienie klasy jest jednocześnie wystąpieniem wszystkich jej nadklas. Podklasa nie może omijać lub dowolnie zmieniać atrybuty nadklasy. Podklasa może zmienić (przesłonić) metodę, ale bez zmiany jej zewnętrznej specyfikacji. Podlasa może dowolnie dodawać nowe atrybuty i metody (rozszerzać). Podklasa może ograniczać wartości atrybutów. Np. koło jest podklasą elipsy, gdzie obie średnice elipsy są sobie równe. Ograniczenia mogą spowodować, że część metod przestanie być poprawna. Np. zmiana jednej ze średnic elipsy nie jest dopuszczalna w podklasie koło, gdyż muszą tam być zmienione obie średnice.

10 Wielokrotne dziedziczenie (wielo-dziedziczenie)
Dopuszczalne jest, aby klasa miała więcej niż jedną nad-klasę. W wielu przypadkach wielodziedziczenie jest naturalnym odwzorowanie sytuacji; niekiedy wprowadza jednak dodatkową komplikację. Pracownik status płacowy stosunek do emerytury Pracownik godzinowy Pracownik etatowy Pracownik na zlecenie Pracownik nie emerytowany Pracownik emerytowany Pracownik godzinowy nie emerytowany Generalizacje mogą zależeć od aspektu

11 Transformacja diagramów klas
Zamiana diagramu wejściowego na równoważny diagram wyjściowy. Co to znaczy równoważny ? matematyczne udowodnienie równoważności diagramó nie jest możliwe, z powodu ich nieformalnej semantyki; możliwe jest to wyłacznie na podstawie dogłębnego zrozumienia problemu. metody nieformalne porównują diagramy poprzez intuicyjną ocenę możliwości odwzorowania w nich pewnych elementarnych informacji. Niekiedy może być pomocny język zapytań typu SQL, gdyż możemy wtedy w sposób nieco bardziej formalny ocenić, czy dla obydwu porównywanych diagramów istnieje zapytanie realizujące ten sam cel wyszukiwania. np. “Podaj wszystkich studentów promowanych przez Kowalskiego” Powody równoważnego przekształcania diagramów: Uproszczenie, zdekomponowanie Dopasowanie do bazy realizacyjnej SZBD Uwzględnienie ilościowych charakterystyk przetwarzania

12 Jak obejść brak wielo-dziedziczenia: delegacja z użyciem ról
Objeścia braku wielo-dziedziczenia są konieczne, ale często psują strukturę logiczną modelu i komplikują jego pielęgnację. Płace pracownika Pracownik Emerytura pracownika status płacowy stosunek do emerytury Pracownik godzinowy Pracownik etatowy Pracownik na zlecenie Pracownik nie emerytowany Pracownik emerytowany

13 Jak obejść brak wielo-dziedziczenia: użycie dziedziczenia i delegacji
Pracownik Emerytura pracownika status płacowy stosunek do emerytury Pracownik godzinowy Pracownik etatowy Pracownik na zlecenie Pracownik nie emerytowany Pracownik emerytowany Delegacja Dziedziczenie

14 Jak obejść brak wielo-dziedziczenia: zagnieżdżona generalizacja
Permutacja klas Pracownik status płacowy Pracownik godzinowy Pracownik etatowy Pracownik na zlecenie stosunek do emerytury stosunek do emerytury stosunek do emerytury Pracownik godzinowy nie emerytowany Pracownik godzinowy emerytowany Pracownik etatowy nie emerytowany Pracownik etatowy emerytowany Pracownik na zlecenie nie emerytowany Pracownik na zlecenie emerytowany

15 Brak wielo-dziedziczenia - zalecenia
Jeżeli klasa ma kilka super-klas, wszystkie jednakowo ważne, najlepiej użyć delegacji, która zachowuje symetrię modelu. Jeżeli jedna super-klasa wyraźnie dominuje, zaś inne są mniej ważne, tę jedną zaimplementować poprzez dziedziczenie, zaś pozostałe przez delegację. Jeżeli liczba kombinacji klas jest mała, można rozpatrywać zagnieżdżoną generalizację. Jeżeli jedna superklasa ma zdecydowanie więcej cech niż pozostałe lub może powodować wąskie gardło w wydajności, wyróżnić tę superklasę poprzez dziedziczenie. Przy zagnieżdżonej generalizacji, najważniejszy czynnik powinien być pierwszym kryterium podziału; pozostałe dalej, w hierarchii ważności. Unikać zagnieżdżonych generalizacji, jeżeli duża ilość kodu musi być powtórzona. Rozpatrzyć ważność utrzymania dokładnej tożsamości. Tylko zagnieżdżona generalizacja ją zapewnia.

16 Metody transformacji diagramu klas (1)
ZAMIANA HIERARCHII KLAS (wynika z braku możliwości reprezentacji hierarchii klas w wielu systemach zarządzania bazą danych, np. relacyjnych) HIERARCIA KLAS ==> NADKLASA - zamiana hierarchii klas (nad- i pod- klasy) na pojedynczą klasę poprzez dodanie atrybutów i metod podklas do atrybutów i metod nadklasy uogólnienia oraz dodanie atrybutu - dyskryminatora przypadku HIERARCHIA KLAS ==> PODKLASA - usunięcie nadklasy i pozostawienie podklas z propagacją atrybutów i metod nadklasy i dublowaniem asocjacji nadklasy dla każdej podklasy HIERARCHIA KLAS ==> AGREGACJE - zamiana hierarchii klas na zestaw agregacji łączących nadklasę ze wszystkimi podklasami

17 Metody transformacji diagramu klas (2)
PODZIAŁ KLASY: przyczyną jest fakt, że pewne operacje mają częsty dostęp do tych samych wystąpień lub atrybutów łącznie, a tym samym warto te wystąpienia lub atrybuty grupować PODZIAŁ POZIOMY - grupowanie wystąpień PODZIAŁ PIONOWY - grupowanie atrybutów i metod ŁĄCZENIE KLAS: stosuje się gdy wiele różnych operacji odwołuje się zawsze do kilku klas łącznie => możliwa utrata spójności modelu WYBÓR KLUCZA

18 Metoda: Hierarchia klas ==> nadklasa
1+ 1+ 1+ 1+ Klasa 2 Klasa 3 Klasa 2 Klasa 3

19 Metoda: Hierarchia klas ==> podklasy
Klasa 3 Klasa 3 As21 As22 As2 1+ 1+ 1+ Klasa 1 a1 a2 m1 m2 Klasa 11 a1 a2 a3 m1 m2 m3 Klasa 12 a1 a2 a4 m1 m2 m4 a5 Klasa 11 a3 m3 Klasa 12 a4 m4 As1 Klasa 2 1+ As1 Klasa 2 1+

20 Metoda: Hierarchia klas ==> agregacje
1+ 1+

21 Podział poziomy klasy Klasa 1 Klasa 1 As1 As11 As12 Klasa 2 a1 a2 m1 m2 Klasa 21 a1 a ? m1 m ? Klasa 22 a ? a2 m ? m2 As2 As21 As22 Klasa 3 Klasa 3 Niekiedy przy takim podziale w niektórych klasach można zredukować atrybuty i/lub metody.

22 Podział pionowy klasy Klasa 1 Klasa 1 Klasa 2 a1 a2 a3 a4 m1 m2 m3 m4

23 Klucze kandydujące Dla obiektów. ID, lub jakaś kombinacja atrybutów
Pojęcie znane z modelu relacyjnego Dla obiektów. ID, lub jakaś kombinacja atrybutów Dla asocjacji: Kombinacja nazw klas obiektów. Firma Osoba posiada akcje {Klucz kandydujący: (Osoba, Firma)} Osoba Kraj pracuje w ma stolicę Firma Miasto {Klucz kandydujący: (Osoba)} {Klucze kandydujące: (Kraj) (Miasto)}

24 Wybór klucza Może być wiele kluczy kandydujących ale tylko jeden klucz główny Kryteria wyboru klucza głównego: LICZBA OPERACJI, korzystających z danej klasy, odwołujących się bezpośrednio poprzez dany klucz TYP KLUCZA * klucze proste przed złożonymi * klucze wewnętrzne przed zewnętrznymi * klucze krótsze przed dłuższymi Pracownik Nazwisko Data_ur Nr_PESEL Nr_prac Nr_na_wydziale 1 Nazwisko + Data_ur 2 Nr_PESEL 3 Nr_prac Wydział Id_wydziału 4 Nr_na_wydziale


Pobierz ppt "OMT - Model obiektów, cz.2."

Podobne prezentacje


Reklamy Google