1 / 21

Projektowanie systemów informacyjnych

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. Plan wykładu. Obiekt, klasa obiektów, atrybuty Operacje i metody

tansy
Download Presentation

Projektowanie systemów informacyjnych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Plan wykładu Obiekt, klasa obiektów, atrybuty Operacje i metody Powiązania i asocjacje Agregacje Generalizacje, specjalizacje Dziedziczenie, przesłanianie Diagram asocjacji klas

  3. Obiekt, klasa obiektów 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. Obiekt 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) Jan Nowak (Osoba) Ewa Stycz (Osoba) Osoba Klasa Obiekty (wystąpienia)

  4. Osoba nazwisko: string wiek: integer Osoba nr_osoby: nr nazwisko: string wiek: integer 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) Jan Nowak 53 (Osoba) 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.

  5. 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 Różne operacje drukowania Plik postscript drukuj Plik graficzny

  6. Osoba nazwisko wiek zmień_pracę zmień_adres Plik nazwa_pliku długość_w_bajtach ostatnia_zmiana drukuj 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ę. Obiekt geometryczny kolor pozycja przesuń( delta: Wektor ) wewnątrz( p: Punkt ): Boolean obróć( kąt ) operacje Jeżeli argumenty nie są specyfikowane, to może ich być dowolnie dużo. zwolnij() - zero argumentów Nie zaleca się pomijania specyfikacji wyniku operacji Cecha jest pojęciem ogólniejszym zarówno dla atrybutu jak i dla operacji.

  7. Powiązania i asocjacje Powiązanie Fizyczny lub pojęciowy związek pomiędzy wystąpieniami obiektów Grupa powiązań posiadających wspólną strukturę i semantykę. Powiązanie jest wystąpieniem asocjacji. Asocjacja (Osoba) Kasia (Osoba) Ewa (Osoba) Jasio Osoba pracuje_w pracuje_w pracuje_w pracuje_w (Firma) Szewska (Firma) Krawiecka Firma Klasy i asocjacja 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.

  8. A B: min = 1, max = n B A: min = 1, max = n 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 A A A A A A A A Rózne metodyki mają rózne notacje dla oznaczenia liczności asocjacji. B B B B B B A B: min = 0, max = 1 B A: min = 1, max = n

  9. 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 1 2,3,4,... 3,4,5 2,4,18 Państwo Stolica Wielokrotność jest oznaczana specjalnymi końcówkami linii asocjacji 1 0+ 0,1 dokładnie 1 zero, jeden lub więcej zero lub jeden Firma Pracownik Osoba Adres

  10. Firma nazwa adres Osoba nazwisko pesel adres zarobek stanowisko prawo dostępu ocena wydajności Atrybuty powiązań Atrybuty mogą być przypisane nie tylko do obiektów ale również do powiązań. Pracuje_w Plik szef Dostępny przez Kieruje czytanie czytanie-pisanie pracownik Użytkownik

  11. Firma nazwa adres Osoba nazwisko pesel adres zarobek stanowisko Firma nazwa adres Zalecany przypadek atrybutów powiązań Forma zalecana (bardziej elastyczna) Zalecenie: Starać się przypisać do klasy tylko te atrybuty, które są dla tej klasy stabilne. W przeciwnym przypadku diagram staje się mniej elastyczny. Pracuje_w Pracuje_w Forma nie zalecana (nie elastyczna; np. po zmianie powiąza- nia na wiele-do-wielu) Osoba nazwisko pesel adres zarobek stanowisko

  12. Modelowanie asocjacji jako klasy Ma autoryzację na Użytkownik Stacja robocza Autoryzacja priorytet przywileje start sesji główny katalog użytk. Katalog (Wydaje się, że taka potrzeba występuje rzadko)

  13. Role asocjacji, uporządkowanie asocjacji Role mogą dodatkowo specyfikować końce asocjacji. pracownik pracodawca Osoba Firma Pracuje-w Role są konieczne, jeżeli związek łączy obiekty tej samej klasy. właściciel zawierający Użytkownik Katalog uprawniony zawartość Uporządkowanie asocjacji: {uporządkowane} Okno Ekran Widoczne na

  14. Projekt Język Osoba (Projekt) System księgowy (Język) Cobol (Osoba) Maria (Projekt) Program CAD (Język) C Asocjacje ternarne, n-arne ternary association, n-ary association 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ę.

  15. Asocjacja kwalifikowana 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 Plik nazwa pliku Plik może należeć do jednego katalogu. Wewnątrz tego katalogu nazwa pliku jest unikalna. Stąd, Katalog + nazwa pliku Plik związek 1:1

  16. Samochód znajduje się w miejscu X Silnik tego samochodu znajduje się w miejscu X 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. A jest częścią B, B jest częścią C Relacja agregacji jest tranzytywna i antysymetryczna: A jest częścią C A jest częścią B nieprawda, że B jest częścią A Pewne własności całości są propagowane do jej składowych: Dokument Paragraf Zdanie

  17. Autor Tytuł Streszczenie Rozdział Agregacje (2) aggregation Jak odróżnić agregację od asocjacji? Dane identyfikacyjne Artykuł Pozycja Faktura Akceptacja 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

  18. Sklep nazwa adres Rodzaj towaru Firma usługowa nazwa adres Rodzaj usługi Sklep Rodzaj towaru Firma usługowa Rodzaj usługi 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) Firma nazwa adres ...Rodzaj towaru? ...Rodzaj usługi? Firma nazwa adres Specjalizacja Generalizacja

  19. Wyposażenie nazwa wytwórca waga koszt Pompa cisnienie ssania cisnienie tłoczenia przepływ Wymiennik ciepła powierzchnia wymiany średnica rury Zbiornik objętość ciśnienie 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. dyskryminator typ wyposażenia ... pod-klasy nie są rozłączne typ zbiornika typ pompy

  20. 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

  21. Przykład diagramu asocjacji klas Okno tekstowe ciąg znakowy wstaw usuń Linia x1 y1 x2 y2 rysuj Okno przesuwalne przesunięcie-x przesunięcie-y przesuń Okno x1 y1 x2 y2 wyświetl zdejmij na czubek na spód Figura zamknięta kolor wypełnienia deseń wypełnienia Przesuwalna grafika Okno graficzne cx1 cy1 cx2 cy2 dodaj-element usuń-element okno elementy Figura kolor szer-linii Przycisk napis zwolniony Elipsa x y a b rysuj Poligon rysuj Panel Pozycja wyboru nazwa pozycji wierzchołki {uporządkowany} bież wybór Pozycja panelu x y etykieta {podzbiór} wybory Punkt x y Pozycja tekstowa max długość obecny napis rejestruj zdarzenie Element wyboru napis wartość Zdarzenie akcja zdarzenie na klawiaturze

More Related