Projektowanie i programowanie obiektowe II - Wykład II

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

Programowanie obiektowe
Związki w UML.
Programowanie obiektowe PO PO - LAB 2 Wojciech Pieprzyca.
Programowanie obiektowe
Programowanie obiektowe PO PO - LAB 4 Wojciech Pieprzyca.
Programowanie obiektowe
Programowanie obiektowe
Modelowanie klas i obiektów
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Zaawansowane metody programowania – Wykład V
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Programowanie w środowisku sieciowym
PROGRAMOWANIE STRUKTURALNE
Kamil Łącki Dominik Strzelichowski
Szkolenie dla NaviExpert, Wprowadzenie.
08: ERD – podencje, łuki i pułapki
Dziedziczenie i jego rodzaje
C++ wykład 6 ( ) Polimorfizm.
C++ wykład 2 ( ) Klasy i obiekty.
Inteligentne Systemy Informacyjne
Zasady zaliczenia Warunki uzyskania zaliczenia:
Normalizacja : Głównym celem projektowania bazy przeznaczonej dla systemu relacyjnego jest właściwa reprezentacja danych, związków i więzów. W identyfikowaniu.
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład I
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie - wprowadzenie
Wykład 4 Analiza i projektowanie obiektowe
Wykład 5 UML - Unified Modeling Language
Wykład 3 Analiza i projektowanie strukturalne
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Źródła: podręcznikopracował: A. Jędryczkowski.
Budowanie tabel i relacji
Programowanie obiektowe III rok EiT
WPROWADZENIE W ŚWIAT OBIEKTÓW
Dziedziczenie Maciek Mięczakowski
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Algorytmy.
Podsumowanie metodologii OMT
Programowanie obiektowe – język C++
1 Analiza obiektowa Peter Coad / Edward Yourdon Analiza obiektowa wydawnictwo: Oficyna Wydawnicza READ ME, Warszawa 1994 dr Waldemar Wolski.
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
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
Diagram klas Kluczowymi elementami są: klasy (class)
Modelowanie obiektowe - system zarządzania projektami.
K URS JĘZYKA C++ – WYKŁAD 6 ( ) Polimorfizm.
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
Projektowanie postaci formularza:
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
Unified Modeling Language
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
InMoST: Innowacyjne metody wytwarzania oprogramowania – II edycja (c) Bartosz Walter Wprowadzenie do obiektowości (1) Plan szkolenia – Część.
Inżynieria systemów informacyjnych
Programowanie Obiektowe – Wykład 6
T. 18. E Proces DGA - Działania (operatorka).
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
Programowanie Obiektowe – Wykład 2
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
PGO Dziedziczenie Michail Mokkas.
Zapis prezentacji:

Projektowanie i programowanie obiektowe II - Wykład II dr inż. Wojciech Tarnawski e-mail:wojciech.tarnawski@pwr.wroc.pl www.zssk.pwr.wroc.pl  Copyright by Wojciech Tarnawski

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

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

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

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

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

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

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

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

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

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

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

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

Kuriozum: dziedziczenie wirtualne i niewirtualne  Copyright by Wojciech Tarnawski

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

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