Projektowanie systemw informacyjnych Wykad 4 OMT Model obiektw
Projektowanie systemów informacyjnych Wykład 4: OMT - Model obiektów, cz. 1 Kazimierz Subieta Instytut Podstaw Informatyki PAN, Warszawa Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 1
Plan wykładu Obiekt, klasa obiektów, atrybuty Operacje i metody Powiązania i asocjacje Agregacje Generalizacje, specjalizacje Dziedziczenie, przesłanianie Diagram asocjacji klas K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 2
Obiekt, klasa obiektów Obiekt Pojęcie, abstrakcja lub rzecz istniejąca w świecie rzeczywistym, posiadająca dobrze określone granice i relewantna dla problemu SI, sprzyjająca zrozumieniu modelowanego świata rzeczywistego i implementowalna komputerowo. Obiekt posiada tożsamość i stan. Obiekty mogą być identyczne, posiadać ten sam stan, ale być innymi obiektami. Tożsamość oznacza, że obiekty są wyróżnialne w rzeczywistości poprzez ich istnienie, a nie poprzez jakikolwiek ich własności. Klasa (obiektów) Grupa obiektów posiadających • podobne własności (atrybuty), • podobne zachowanie (operacje), • podobne związki z innymi obiektami, • podobną semantykę. Osoba (Osoba) Jan Nowak Klasa K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 3 (Osoba) Ewa Stycz (Osoba) Obiekty (wystąpienia)
Atrybuty Atrybut jest (nazwaną) wartością przechowywaną przez obiekty w ramach klasy. nazwisko wiek atrybuty obiektu Osoba Atrybut jest wartością, nie jest obiektem. Nie posiada tożsamości. Osoba (Osoba) nazwisko: string wiek: integer Jan Nowak 53 Ewa Stycz 24 Klasa z atrybutami Obiekty (wystąpienia) z wartościami Atrybut unikalnie identyfikujący obiekt (klucz) nie jest wymagany. System obiektowy automatycznie generuje wewnętrzny unikalny identyfikator obiektu. Nie mają one znaczenia dla dziedziny problemu. K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 4 Osoba nr_osoby: nr nazwisko: string wiek: integer
Operacje i metody Operacja jest funkcją lub transformacją, która może być zastosowana do obiektu (lub przez obiekt). Jest ona własnością klasy obiektów. zatrudnij zwolnij wypłać_dewidendę operacje na obiektach klasy Firma Wszystkie obiekty w ramach klasy podlegają tym samym operacjom. Ta sama operacja może być zastosowana do obiektów wielu różnych klas => polimorfizm. Metoda jest implementacją operacji dla jednej klasy. Plik ASCII drukuj Plik postscript Plik graficzny K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 5 Różne operacje drukowania
Argumenty operacji Operacja/metoda może mieć argumenty (oprócz obiektu, który jest argumentem implicite). Sygnatura operacji: liczba i typ argumentów + typ wyniku operacji. Wszystkie metody implementujące daną operację muszą mieć tę samą sygnaturę. Osoba Plik nazwisko wiek nazwa_pliku długość_w_bajtach ostatnia_zmiana zmień_pracę zmień_adres operacje drukuj Jeżeli argumenty nie są specyfikowane, to może ich być dowolnie dużo. zwolnij() - zero argumentów Obiekt geometryczny kolor pozycja przesuń( delta: Wektor ) wewnątrz( p: Punkt ): Boolean obróć( kąt ) Nie zaleca się pomijania specyfikacji wyniku operacji Cecha jest pojęciem ogólniejszym zarówno dla atrybutu jak i dla operacji. K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 6
Powiązania i asocjacje Powiązanie Fizyczny lub pojęciowy związek pomiędzy wystąpieniami obiektów Asocjacja Grupa powiązań posiadających wspólną strukturę i semantykę. Powiązanie jest wystąpieniem asocjacji. Osoba pracuje_w Firma Klasy i asocjacja (Osoba) Kasia pracuje_w (Osoba) Ewa (Osoba) Jasio pracuje_w (Firma) Krawiecka pracuje_w (Firma) Szewska Obiekty i powiązania Powiązania i asocjacje nie mają kierunku (ale ich nazwy mogą ten kierunek określać). Asocjacje mogą mieć więcej argumentów niż dwa (ale nie jest to zalecane). Asocjacja może być nie nazwana, jeżeli jej znaczenie wynika z klas, które łączy. K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 7
Liczność asocjacji (1) cardinality Cecha o dyżym znaczeniu informacyjnym w analizie i modelowaniu. Jezeli asocjacja wiąże klasy A i B, to istotne jest: • jaka jest minimalna liczba wystąpień obiektów B widziana z jednego obiektu A, • jaka jest maksymalna liczba wystąpień obiektów B widziana z jednego obiektu A, • jaka jest minimalna liczba wystąpień obiektów A widziana z jednego obiektu B, • jaka jest maksymalna liczba wystąpień obiektów A widziana z jednego obiektu B. Zwykle, minimalna liczbaje jest 0 lub 1, maksymalna zaś 1 lub n (dowolnie dużo). A A B A B A B A A B: min = 0, max = 1 A B: min = 1, max = n B A: min = 1, max = n K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 8 Rózne metodyki mają rózne notacje dla oznaczenia liczności asocjacji.
Liczność asocjacji (2) Liczność asocjacji określa jak wiele wystąpień jednej klasy może być związana z jednym wystąpieniem drugiej klasy. Generalnie, może to być dowolny podzbiór liczb całkowitych nieujemnych. OMT wprowadza następujące oznaczenia liczności: 1 2+ 3 -5 2, 4, 18 Wielokrotność jest oznaczana specjalnymi końcówkami linii asocjacji 1 2, 3, 4, . . . 3, 4, 5 2, 4, 18 1 dokładnie 1 Państwo 0+ zero, jeden lub więcej Firma Pracownik 0, 1 zero lub jeden Osoba Adres K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 9 Stolica
Atrybuty powiązań Atrybuty mogą być przypisane nie tylko do obiektów ale również do powiązań. Osoba Plik Dostępny przez szef prawo dostępu czytanie-pisanie nazwisko pesel adres Kieruje pracownik Użytkownik ocena wydajności K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 10 Pracuje_w Firma nazwa adres zarobek stanowisko
Zalecany przypadek atrybutów powiązań Zalecenie: Starać się przypisać do klasy tylko te atrybuty, które są dla tej klasy stabilne. W przeciwnym przypadku diagram staje się mniej elastyczny. Forma nie zalecana (nie elastyczna; np. po zmianie powiązania na wiele-do-wielu) Osoba nazwisko pesel adres zarobek stanowisko K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 11 Pracuje_w Firma nazwa adres zarobek stanowisko Pracuje_w Firma nazwa adres Forma zalecana (bardziej elastyczna)
Modelowanie asocjacji jako klasy Użytkownik Ma autoryzację na Stacja robocza Autoryzacja priorytet przywileje start sesji główny katalog użytk. Katalog (Wydaje się, że taka potrzeba występuje rzadko) K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 12
Role asocjacji, uporządkowanie asocjacji Role mogą dodatkowo specyfikować końce asocjacji. Osoba pracownik pracodawca Pracuje-w Firma Role są konieczne, jeżeli związek łączy obiekty tej samej klasy. właściciel Użytkownik Katalog uprawniony zawartość Uporządkowanie asocjacji: Okno {uporządkowane} Widoczne na K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 13 Ekran zawierający
Asocjacje ternarne, n-arne ternary association, n-ary association Projekt Język Osoba (Projekt) System księgowy (Język) Cobol (Osoba) Maria (Projekt) Program CAD (Język) C Dość często asocjacje wyższego rzędu wymagają zastosowania nazw ról. Oznaczenia dla liczności asocjacji wyższego rzędu są pewnym problemem: należy traktować rombik tak jak klasę. K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 14
Asocjacja kwalifikowana wiąże dwie klasy i kwalifikator, który jest specjalnym atrybutem redukującym efektywnie liczność asocjacji. Kwalifikowane mogą być asocjacje 1: n i m: n. Kwalifikator jest stawiany od strony “wiele” Katalog nazwa pliku Plik może należeć do jednego katalogu. Wewnątrz tego katalogu nazwa pliku jest unikalna. Stąd, Katalog + nazwa pliku związek 1: 1 K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 15 Plik
Agregacje (1) Specjalna forma asocjacji, określająca związek “część-całość”. Obiekty będące komponentami czegoś są zwi ązane z obiektem będącym całością. Np. jakaś część zawiera składowe części. Relacja agregacji jest tranzytywna A jest częścią B, B jest częścią C A jest częścią B i antysymetryczna: A jest częścią C nieprawda, że B jest częścią A Pewne własności całości są propagowane do jej składowych: Samochód znajduje się w miejscu X Silnik tego samochodu znajduje się w miejscu X Dokument Paragraf K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 16 Zdanie
Agregacje (2) aggregation Jak odróżnić agregację od asocjacji? Autor Tytuł Dane identyfikacyjne Artykuł Pozycja Streszczenie Faktura Akceptacja Rozdział Suma Literatura Kryterium istnienia: pod-obiekt nie może istnieć bez ojcowskiego obiektu. Kryterium wstawiania: pod-obiekt nie może być samotnie wprowadzony do bazy danych Kryterium usuwania (słaby obiekt): usunięcie obiektu implikuje usunięcie pod-obiektu Kryterium fizycznej części: jakiś obiekt jest fizyczną częścią innego obiektu K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 17
Generalizacje/specjalizacje generalization/specialization Są to abstrakcje polegające na budowie pojęć bardziej ogólnych (bardziej szczegółowych), jeżeli mamy pojęcia bardziej szczegółowe (bardziej ogólne) Sklep nazwa adres Rodzaj towaru Firma nazwa adres. . . Rodzaj towaru? . . . Rodzaj usługi? Firma usługowa nazwa adres Rodzaj usługi Generalizacja Firma nazwa adres Sklep Rodzaj towaru K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 18 Specjalizacja Firma usługowa Rodzaj usługi
Generalizacja i dziedziczenie Generalizacja jest związkiem pomiędzy klasą i jedną lub więcej jej specjalizacji. Klasy bardziej wyspecjalizowane dziedziczą wszystkie własności klasy bardziej ogólnej. Dziedziczenie jest tranzytywne. Wyposażenie nazwa wytwórca waga koszt dyskryminator typ wyposażenia Pompa Wymiennik ciepła cisnienie ssania cisnienie tłoczenia przepływ powierzchnia wymiany średnica rury typ pompy K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 19 . . . typ zbiornika Zbiornik objętość ciśnienie pod-klasy nie są rozłączne
Użycie generalizacji, przesłanianie Generalizacja jest użyteczna zarówno do modelowania, jak i do implementacji. Generalizacja wspomaga modelowanie poprzez wprowadzenie struktury klas i określenie ich podobieństwa i różnic. Dziedziczenie operacji jest pomocne w implementacji jako środek do tworzenia kodu wielokrotnego użycia. Dziedziczenie jest własnościa obiektowych języków programowania. Klasa może przesłonić jakąś cechę odziedziczoną z klasy bardziej generalnej. Powody, np: • wyspecyfikowanie specyficznego zachowania się podklasy • dookreślenie zachowania się • lepszy czas wykonania Sygnatura operacji nie powinna być przesłaniana K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 20
Przykład diagramu asocjacji klas Okno x 1 y 1 x 2 y 2 wyświetl zdejmij na czubek na spód Okno przesuwalne przesunięcie-x przesunięcie-y przesuń Okno graficzne cx 1 cy 1 cx 2 cy 2 dodaj-element usuń-element Okno tekstowe ciąg znakowy wstaw usuń Przesuwalna grafika okno elementy Przycisk napis zwolniony Panel nazwa pozycji Pozycja panelu x rejestruj y zdarzenie Zdarzenie etykieta akcja Figura zamknięta kolor wypełnienia deseń wypełnienia zdarzenie na klawiaturze K. Subieta. Projektowanie systemów informacyjnych, Wykład 4, Folia 21 Figura kolor szer-linii Pozycja wyboru bież wybór {podzbiór} Pozycja tekstowa max długość obecny napis Elipsa x y a b rysuj wybory Element wyboru napis wartość Linia x 1 y 1 x 2 y 2 rysuj Poligon rysuj wierzchołki {uporządkowany} Punkt x y
- Slides: 21