Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "Projektowanie i programowanie obiektowe II - Wykład I Copyright by Wojciech Tarnawski dr inż. Wojciech Tarnawski"— Zapis prezentacji:

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

2 Cel przedmiotu (wykład + lab.): Zapoznanie z metodami projektowania i analizy obiektowo zorientowanych systemów informatycznych. (podstawy modelowania obiektowego i notacji graficznej w ujednoliconym języku modelowania UML - Unified Modeling Language, niezależnie od konkretnego języka programowania) Copyright by Wojciech Tarnawski

3 Literatura P. Coad, E. Yourdon, Analiza obiektowa, Oficyna Wydawnicza READ ME, Warszawa P. Coad, E. Yourdon, Projektowanie obiektowe, Oficyna Wydawnicza READ ME, Warszawa M. Flasiński, Wstęp do analitycznych metod projektowania systemów informatycznych, WNT Warszawa J. Grębosz, Symfonia C++ t. III, Oficyna Wydawnicza Kallimach, Kraków Gamma Erich, Helm Richard, Johnson Ralph, Vlissides John, Wzorce projektowe, seria Inżynieria oprogramowania Copyright by Wojciech Tarnawski Oprogramowanie STAR UML ObjectIf Środowisko MS Visual …

4 Plan przedmiotu Wprowadzenie, przegląd i porównanie stosowanych technik programowania, podstawowe koncepcje programowania obiektowego: abstrakcja, modularność i hermetyzacja, relacyjność, typowanie, współbieżność Analiza i identyfikacja zachowań systemu obiektowo zorientowanego Projektowanie systemu obiektowo zorientowanego przy pomocy języka modelowania UML (języka graficznego (grafów, diagramów) do modelowania różnych perspektyw systemu informatycznego) Wzorce projektowe – teoria i praktyka Copyright by Wojciech Tarnawski

5 Przegląd technik programowania (wg historycznej hierarchii): Programowanie liniowe (BASIC, ASSEMBLER,...) Programowanie proceduralne (Pascal, C, Fortran,...) Programowanie z ukrywaniem danych (C, Pascal - wprowadzenie pojęć: rekord, struktura) Programowanie oparte o obiekty (C++, Object Pascal - wprowadzenie pojęć: klasa, obiekt) Programowanie obiektowo zorientowane lub programowanie obiektowe (C++, SmallTalk, Java - wprowadzenie pojęć: dziedziczenie, polimorfizm (funkcje wirtualne) ) Copyright by Wojciech Tarnawski

6 Podstawowe koncepcje i pojęcia programowania obiektowego Copyright by Wojciech Tarnawski ABSTRAKCJA - zasada ignorowania tych aspektów przedmiotu, które nie są istotne z punktu widzenia bieżącego problemu, by móc pełniej skoncentrować się na właściwych. Programowanie obiektowe = modelowanie świata rzeczywistego na wysokim poziomie abstrakcji (np. C++ - język wysokiego poziomu, gdzie program widziany jest jako sekwencja instrukcji operujących na pojęciach (danych) z dziedziny problemu (liczby, znaki, obiekty).

7 Copyright by Wojciech Tarnawski ABSTRAKCJA DANYCH- zasada polegająca na zdefiniowaniu nowego typu danych tzw. KLASY, która jak najlepiej odzwierciedla fragment otaczającego nas świata wraz z operacjami, które możemy na tych danych zrealizować. WNIOSEK: Stosując abstrakcję danych projektant systemu obiektowo zorientowanego może zdefiniować pewien wycinek rzeczywistości (klasę) przez skoncentrowanie się na pewnym zasadniczym pojęciu (problemie) ignorując szczegóły. Klasa opisana składa się ze składników: tj. atrybutów (pól) oraz operacji (metod), które mają wyłączność na operowanie tymi atrybutami. Podając określone szczegóły (np. nadając wartości atrybutom klasy) opisujemy OBIEKT, czyli element danej klasy Formowanie klasy i obiektu

8 Copyright by Wojciech Tarnawski OBIEKTEM (instancją, przejawem), nazywamy element należący do pewnej dziedziny (klasy), który jest specyfikowany w tej dziedzinie przez: - stan obiektu (stan wewnętrzny) - wartości atrybutów obiektów (pola) - sposób zachowania - interakcje z innymi obiektami (także innych klas) - tożsamość unikatową - każdy obiekt w systemie posiada unikalny identyfikator

9 Przykład formowania klasy i obiektu Przypadek ze świata realnego: audycja telewizyjna typu talk-show o tytule: Szymon Majewski Show z poniedziałku Audycja jest nagrywana, emitowana i oglądana przez widzów Do uformowania klasy i obiektu potrzebujemy np.: tytułu - Szymon Majewski Show czasu emisji - poniedziałek, , godz. 21:30 kto był zaproszony - Doda Elektroda, Copyright by Wojciech Tarnawski

10 Obiekt: Szymon Majewski Show 23 poniedziałek, , godz. 21:30 Doda Elektroda,... Zmiana z 21:30 na 22:00 zmień Dodę na Mandarynę KLASAOBIEKT Nazwa Atrybuty Operacje Klasa: audycja telewizyjna typu talk-show nr audycji czas emisji kto był zaproszony... zmodyfikuj czas emisji zmień zaproszonych gości...

11 Atrybut to nazwana właściwość klasy, określa zbiór wartości, jakie mogą przyjmować obiekty klasy. Operacje to implementacje pewnej usługi, której wykonania można zażądać od każdego obiektu tej klasy. Operacje możemy określić także przy pomocy tzw. Sygnatury : nazwy i listy parametrów Przykład sygnatury: zmodyfikuj czas emisji (string godzina) Każda klasa musi mieć nazwę, która ją jednoznacznie identyfikuje Copyright by Wojciech Tarnawski Podstawowe rodzaje operacji realizowanych przez obiekty: - konstrukcja (tworzenie) obiektu - modyfikacja stanu obiektu - selekcja (udostępnienie informacji o obiekcie) - iteracja ( sekwencyjny dostęp do składowych obiektu) - destrukcja (niszczenie) obiektu Operacje charakteryzujemy przy pomocy: warunków wstępnych, semantyki (opis przebiegu), warunków końcowych, sytuacji wyjątkowych

12 Podział obiektów ze względu na ich związki operatorowe z innymi obiektami w systemie obiektowo zorientowanym: Aktorzy - obiekty, które dokonują operacji na innych obiektach, ale nigdy nie podlegają operacjom ze strony innych obiektów Serwery - obiekty podlegające operacjom ze strony innych obiektów i nie operujące na innych obiektach Agenci - obiekty, które operują na innych obiektach i mogą być przedmiotem operacji ze strony innych obiektów Copyright by Wojciech Tarnawski Inne uwagi: klasa może mieć dowolną liczbę atrybutów, a nawet nie mieć ich wcale symbol klasy nie musi zawierać wszystkich atrybutów i operacji, jeśli jest ich wiele (wtedy w odpowiedniej sekcji na końcu umieszczamy wielokropek

13 MODULARNOŚĆ (enkapsulacja=kapsułkowanie) cecha umożliwiająca utrzymanie razem powiązanych ze sobą składników obiektu. Dzięki kapsułkowaniu otrzymujemy pewien moduł zawierający dane i metody na nich operujące. HERMETYZACJA (widoczność składników klasy, ukrywanie informacji zawartych w klasie) - wynikająca z abstrakcji danych cecha zapewniająca bezpieczeństwo obiektowi (jego składnikom), uniemożliwiająca dostęp z zewnątrz poprzez inne obiekty Rodzaje hermetyzacji składowych klasy: - składowe publiczne (+) : widzialne dla wszystkich innych obiektów klas widzialnych z danej klasy - składowe chronione (#): widzialne tylko dla obiektów podklas tej klasy (p. dziedziczenie) - składowe prywatne (-): najbardziej intymny obszar klasy, który nie jest widzialny przez obiekty innych klas. Istnieje możliwość dopuszczenia składowych prywatnych danego obiektu dla innych obiektów przez tzw. zaprzyjaźnienie TYPOWANIE - pojedynczy obiekt jest określonego typu (obiekt z danej klasy) Copyright by Wojciech Tarnawski

14 Relacyjność (hierarchizacja) - cecha umożliwiająca podanie relacji (związków, hierarchii) między obiektami z wcześniej zdefiniowanych klas. Wyróżniamy następujące rodzaje związków (relacji): - powiązanie (agregacja, komunikacja) - uogólnienie (dziedziczenie) - zależność (związek użycia) Szersze omówienie w dalszej części wykładu Copyright by Wojciech Tarnawski

15 WSPÓŁBIEŻNOŚĆ - możliwość konstrukcji systemu informatycznego w oparciu o system wieloprocesorowy lub wielowątkowy Ze względu na współbieżność modelowane systemy dzielimy na: - systemy sekwencyjne: w danym momencie mamy do czynienia z jednym obiektem, który jest czynny, pozostałe są nieczynne. Aktywacja innego obiektu następuje po przesłaniu komunikatu od obiektu czynnego - systemy współbieżne: więcej niż jeden obiekt może być czynny w danym momencie, obiekty takie są przez cały czas czynne i nie potrzebują aktywacji z zewnątrz. Copyright by Wojciech Tarnawski

16 System obiektowy Model fizyczny Model logiczny Model klas Model funkcjonalny Model dynamiczny Opisuje: Tożsamość Atrybuty Operacje Związki Opisuje wszystkie możliwe stany obiektów i związane z nimi zdarzenia (cykle życiowe obiektów) Opisuje zachowanie się systemu w czasie, umożliwia definicję wzajemnej współpracy i komunikacji między obiektami

17 Projektowanie systemów informatycznych obiektowo zorientowanych (plan projektu) 1. Identyfikacja zachowań systemu 2. Identyfikacja klas obiektów występujących w systemie 3. Klasyfikacja 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

18 Ad. 1 Identyfikacja zachowań systemu (usystematyzowanie wiedzy o problemie) A) Przedstawienie krótkiego streszczenia. Powinno ono zawierać jasne i zwięzłe podanie tego, co chce się zaprojektować, czyli cel przedsięwzięcia, motywację, genezę itp. B) Analiza wymagań użytkownika. Szczegółowy opis rzeczywistości (tzw. scenariusz działania), którą zamierzamy informatyzować, np. w formie eseju lub w postaci wypunktowanej. Określamy podstawowe założenia projektowe. Jeśli informatyzujemy tylko część systemu, to powinniśmy określić jego miejsce, jakie zajmuje on w całej architekturze. W szczególności opisujemy komunikację z resztą systemu. Copyright by Wojciech Tarnawski


Pobierz ppt "Projektowanie i programowanie obiektowe II - Wykład I Copyright by Wojciech Tarnawski dr inż. Wojciech Tarnawski"

Podobne prezentacje


Reklamy Google