OMT - Model obiektów, cz.1.

Slides:



Advertisements
Podobne prezentacje
Programowanie obiektowe
Advertisements

Związki w UML.
Programowanie obiektowe
Modelowanie przypadków użycia
Modelowanie klas i obiektów
Projektowanie systemów informacyjnych
Agregacja Agregacja jest rodzajem asocjacji; zadaniem agregacji jest modelowanie związku całość-część. agregacja jest asocjacją: dla obu jej końców są.
Projektowanie systemów informacyjnych
PROGRAMOWANIE STRUKTURALNE
Kamil Łącki Dominik Strzelichowski
Implementacja asocjacji
Projektowanie Aplikacji Komputerowych
08: ERD – podencje, łuki i pułapki
Struktury.
Projektowanie systemów informacyjnych
Projektowanie systemów informacyjnych
Diagramy klas w języku UML
Projektowanie systemów informacyjnych
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Modele baz danych - spojrzenie na poziom fizyczny
Projektowanie - wprowadzenie
Wykład 4 Analiza i projektowanie obiektowe
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Automatyczne dereferencje w języku SBQL
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Źródła: podręcznikopracował: A. Jędryczkowski.
System raportowania, ewaluacji oraz badania satysfakcji Klienta.
OMT - Model obiektów, cz.3.
WPROWADZENIE W ŚWIAT OBIEKTÓW
Związki w UML Do zrobienia jest: -Przerysować jak ktoś ma Visio te dwa diagramy tak żeby podmienić tylko nazwy a reszta Taka sama, -I dodać po jednym zdaniu.
Wybrane zagadnienia relacyjnych baz danych
Związki Agregacje Związki n-arne Ograniczenia.
Programowanie obiektowe – język C++
OMT - Model obiektów, cz.2.
1 Analiza obiektowa Peter Coad / Edward Yourdon Analiza obiektowa wydawnictwo: Oficyna Wydawnicza READ ME, Warszawa 1994 dr Waldemar Wolski.
Notacja w UML Klasy.
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
2 Odizolowanie danych od kodu może prowadzić do przypadkowych zmian danych przez funkcje, które nie są z nimi logicznie związane. Ponadto modyfikacja.
FUNKCJE Opracował: Karol Kara.
Modelowanie obiektowe Diagramy klas
Programowanie w języku C++
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Interakcja człowiek – komputer Podstawy metod obiektowych mgr inż. Marek Malinowski Zakład Matematyki i Fizyki Wydz. BMiP PW Płock.
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
System plików.
Diagram klas Kluczowymi elementami są: klasy (class)
Diagram obiektów Diagram obiektów ukazuje elementy i związki z diagramu klas w ustalonej chwili. Diagram obiektów jest grafem złożonym z wierzchołków i.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Programowanie Zaawansowane
Modelowanie model związków encji
Wstęp do systemów informatycznych Diagramy klas. Odbiór świata  Myślenie o dziedzinie problemu powinno być możliwie zbliżone do myślenia o systemie 
Wykład 5 Model obiektowy (3)
E. Stemposz. UML i Analiza Obiektowa, Wykład 4, Slajd 1/20 Wykład 4 Model obiektowy (2) dr inż. Ewa Stemposz
E. Stemposz. UML i Analiza Obiektowa, Wykład 3, Slajd 1/18 Wykład 3 Model obiektowy (1) dr inż. Ewa Stemposz
Asocjacja,Kompozycja,Agregacja
Implementacja asocjacji (z atrybutami i bez) przy użyciu: referencji (kolekcji referencji) tablic asocjacyjnych przygotował: Kamil Kowalczyk.
Temat: Tworzenie bazy danych
Inżynieria systemów informacyjnych
T. 18. E Proces DGA - Działania (operatorka).
Projektowanie wspomagane komputerem
Programowanie Obiektowe – Wykład 2
Projektowanie systemów informacyjnych
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

OMT - Model obiektów, cz.1

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)

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 Osoba nazwisko: string wiek: integer 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. 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 Różne operacje drukowania Plik postscript drukuj Plik graficzny

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 nazwisko wiek zmień_pracę zmień_adres Plik nazwa_pliku długość_w_bajtach ostatnia_zmiana drukuj 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.

Powiązania i związki 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 związku. związek (Osoba) Kasia (Osoba) Ewa (Osoba) Jasio Osoba pracuje_w pracuje_w pracuje_w pracuje_w (Firma) Krawiecka (Firma) Szewska Firma Klasy i związek Obiekty i powiązania Powiązania i związek nie mają kierunku (ale ich nazwy mogą ten kierunek określać). związek mogą mieć więcej argumentów niż dwa (ale nie jest to zalecane). związek a może być nie nazwana, jeżeli jej znaczenie wynika z klas, które łączy.

Liczność związku (1) cardinality Cecha o dyżym znaczeniu informacyjnym w analizie i modelowaniu. Jezeli związek 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 związek i. B B B B B B A B: min = 0, max = 1 A B: min = 1, max = n B A: min = 1, max = n B A: min = 1, max = n

Liczność związku (2) Liczność związku 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 Wielokrotność jest oznaczana specjalnymi końcówkami linii związek i Państwo Stolica 1 0+ 0,1 dokładnie 1 zero, jeden lub więcej zero lub jeden Firma Pracownik Osoba Adres

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

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 Osoba nazwisko pesel adres Firma nazwa adres zarobek stanowisko Pracuje_w Forma nie zalecana (nie elastyczna; np. po zmianie powiąza- nia na wiele-do-wielu) Osoba nazwisko pesel adres zarobek stanowisko Firma nazwa adres

Modelowanie związku 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)

Role związku, uporządkowanie związku Role mogą dodatkowo specyfikować końce związku. 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 związek i: {uporządkowane} Okno Ekran Widoczne na

Związki ternarne, n-arne ternary association, n-ary association Projekt Język Osoba (Projekt) System księgowy (Osoba) Jan Program CAD (Język) Cobol C Dość często związek wyższego rzędu wymagają zastosowania nazw ról. Oznaczenia dla liczności związku wyższego rzędu są pewnym problemem: należy traktować rombik tak jak klasę.

Związek kwalifikowany związek kwalifikowany wiąże dwie klasy i kwalifikator, który jest specjalnym atrybutem redukującym efektywnie liczność związku. Kwalifikowane mogą być związki 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

Agregacje (1) Specjalna forma związku, 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: Samochód znajduje się w miejscu X Silnik tego samochodu znajduje się w miejscu X Dokument Paragraf Zdanie

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

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? Sklep nazwa adres Rodzaj towaru Firma usługowa nazwa adres Rodzaj usługi Firma nazwa adres Generalizacja Specjalizacja Sklep Rodzaj towaru 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 cisnienie ssania cisnienie tłoczenia przepływ Wymiennik ciepła powierzchnia wymiany średnica rury ... Zbiornik objętość ciśnienie pod-klasy nie są rozłączne typ zbiornika typ pompy

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

Przykład diagramu związku 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 Okno graficzne cx1 cy1 cx2 cy2 dodaj-element usuń-element Przesuwalna grafika okno elementy Figura kolor szer-linii Przycisk napis zwolniony Elipsa x y a b rysuj Poligon rysuj Panel Pozycja wyboru nazwa pozycji bież wybór wierzchołki {uporządkowany} Pozycja panelu x y etykieta {podzbiór} wybory Pozycja tekstowa max długość obecny napis Punkt x y rejestruj zdarzenie Element wyboru napis wartość Zdarzenie akcja zdarzenie na klawiaturze