Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Projektowanie i programowanie obiektowe II - Wykład II

Podobne prezentacje


Prezentacja na temat: "Projektowanie i programowanie obiektowe II - Wykład II"— Zapis prezentacji:

1 Projektowanie i programowanie obiektowe II - Wykład II
dr inż. Wojciech Tarnawski  Copyright by Wojciech Tarnawski

2 Projektowanie systemów informatycznych obiektowo zorientowanych (plan projektu)
1. Identyfikacja zachowań systemu 2. Identyfikacja klas obiektów występujących w systemie 3. Klasyfikacja klas obiektów - pod względem dziedziczenia ( związek uogólniania) - pod względem zawierania się w sobie (powiązanie:agregacja) 4. Określenie powiązań komunikacji i związków użycia między obiektami ze zdefiniowanych klas. 5. Precyzyjna specyfikacja składowych klas (atrybutów i operacji) 6. Składanie modelu logicznego - określenie sekwencji działań obiektów (model funkcjonalny, model dynamiczny, przesyłanie komunikatów)  Copyright by Wojciech Tarnawski

3 Ad. 2 Identyfikacja klas obiektów występujących w systemie
Szukanie klas, które mogą wystąpić w systemie - utworzenie tzw. słownika pojęć, czyli rzeczowników mających dla nas znaczenie tzn. będą kandydowały na przyszłe klasy. Przy tworzeniu słownika pojęć możemy posłużyć się tzw. listą zachowań systemu: Kto,co ?(rzeczownik) Działanie Kogo? Rezultat Np. Użytkownik Dodaje Element dopisanie elementu System Uruchamia się uruchomienie programu, sprawdzenie hasła, ...

4 Na tym etapie podajemy wstępnie obowiązki klasy, widoczne własności, współpracowników klasy (tworzenie „kart modelujących”) ( precyzyjną definicję składowych klasy wykonamy na etapie piątym) np. Klasa Klient jest opisana przez nazwisko, imię itd., może on być obsługiwany, zapisywany, usuwany przez Pracownika UWAGA! Dążymy do tego, aby klas było jak najmniej i aby były jak najbardziej hermetyczne i „zakapsułkowane” !!!  Copyright by Wojciech Tarnawski

5 Ad. 3 Klasyfikacja klas obiektów
„Tutaj chodzi konkretnie o to, aby zastanowić się, czy klasy nie są ze sobą powiązane [...] w jakieś hierarchie, ewentualnie czy obiekty jednej klasy nie mieszczą w sobie obiektów innej klasy” J. Grębosz, Symfonia C++ T. 3 Klasyfikacja klas obiektów: a) pod względem dziedziczenia ( związek uogólniania) b) pod względem zawierania się w sobie (agregacja)  Copyright by Wojciech Tarnawski

6 Ad. a) Klasyfikacja klas obiektów pod względem dziedziczenia
Dziedziczenie (związek uogólniania, związek hierarchiczny) - „to technika pozwalająca na definiowanie nowej klasy przy wykorzystaniu klasy już wcześniej istniejącej” (J. Grębosz) Klasa bazowa Klasę nadrzędną (znajdującą się wyżej w hierarchii) nazywamy klasą bazową (podstawową, superklasą) Klasę podrzędną nazywamy klasą pochodną Klasa pochodna  Copyright by Wojciech Tarnawski

7 Klasyfikacja obiektów pod względem dziedziczenia to klasyfikacja będąca rezultatem analizy ze względu na: I semantykę problemu II wtórne użycie obiektów Ad I) ...analiza semantyk (z etapu I): „..jest szczególnym rodzajem...” np. „samolot jest środkiem transportu” „samochód jest środkiem transportu” „dyrektor jest pracownikiem biura” „sekretarka jest pracownikiem biura” „klient jest ... pracownikiem biura” (nie!)  Copyright by Wojciech Tarnawski

8 samochód jest pojazdem <----> samolot jest pojazdem (nie!)
Ad II ...ze względu na wtórne użycie obiektów - możliwość późniejszego rozbudowywania systemu, w szczególności należy pamiętać o definicji prawidłowych klas abstrakcyjnych, które mogą być później stosowane. samochód jest pojazdem <----> samolot jest pojazdem (nie!) samochód jest środkiem transportu <----> samolot jest środkiem transportu  Copyright by Wojciech Tarnawski

9 Oznaczenie klasy abstrakcyjnej
w modelu klas Klasa bazowa abstrakcyjna Klasa pochodna  Copyright by Wojciech Tarnawski

10 Przykład z klasą abstrakcyjną
 Copyright by Wojciech Tarnawski

11 Rodzaje związków dziedziczenia: publiczne prywatne chronione
Na podstawie: Symfonia C++ - J. Grębosz Sposób dziedziczenia opisujemy na diagramie po zbudowaniu modelu klas.  Copyright by Wojciech Tarnawski

12 Dziedziczenie wielokrotne
Klasa Trójkąt Koło Trójkąt wpisany w Koło Dziedziczenie wielokrotne jest podejściem bardzo „elastycznym” ale zwiększającym złożoność modelu klas.  Copyright by Wojciech Tarnawski

13 Dziedziczenie wirtualne (wirtualne klasy bazowe)
~  Copyright by Wojciech Tarnawski

14 Kuriozum: dziedziczenie wirtualne i niewirtualne
 Copyright by Wojciech Tarnawski

15 Dziedziczenie wirtualne a zakres klasy bazowej - wystarczy, aby choć jedno dziedziczenie wirtualne było publiczne, a efekt jest taki, jakby wszystkie pozostałe dziedziczenia tej klasy były także publiczne Przykład: 3 dziennikarzy otrzymuje tę samą informację (dziedziczenie wirtualne) ale dwóch zobowiązuje się do milczenia (private) a trzeci ją publikuje (public) - w efekcie informacja ta staje się publiczna.  Copyright by Wojciech Tarnawski

16 Polimorfizm - „wielość form”
Pojęcie polimorfizmu jest związane z istnieniem tzw. operacji (funkcji) wirtualnych, których działanie jest „zorientowane” na obiekty z których są wywoływane ( dotyczy wyłącznie klas powiązanych związkami dziedziczenia) Polimorfizm jest często (ale nie zawsze) wykorzystywany w związkach z klasami abstrakcyjnymi Klasy zawierające funkcje wirtualne oznaczamy trójkątem w prawym dolnym rogu, a funkcje te podkreślamy ... Klasa F. wirtualna  Copyright by Wojciech Tarnawski


Pobierz ppt "Projektowanie i programowanie obiektowe II - Wykład II"

Podobne prezentacje


Reklamy Google