• Nie Znaleziono Wyników

 Wprowadzenie pojęcia obiektu i klasy obiektu  Reprezentacja systemu jako zbioru wzajemnie oddziaływujących obiektów  Poszczególne etapy procesu tworzenia obiektowego projektu systemu

N/A
N/A
Protected

Academic year: 2021

Share " Wprowadzenie pojęcia obiektu i klasy obiektu  Reprezentacja systemu jako zbioru wzajemnie oddziaływujących obiektów  Poszczególne etapy procesu tworzenia obiektowego projektu systemu"

Copied!
41
0
0

Pełen tekst

(1)

Zagadnienia

 Wprowadzenie pojęcia obiektu i klasy obiektu

 Reprezentacja systemu jako zbioru wzajemnie oddziaływujących obiektów

 Poszczególne etapy procesu tworzenia obiektowego projektu systemu

(2)

Charakterystyka projektowania

obiektowego (Object Oriented Design) (1/2)

Obiekty stanowią pewną abstrakcję rzeczywistości

Obiekty same zarządzają własnym stanem

Obiekty są niezależne, enkapsulują swój stan i dane które reprezentują

Funkcjonalność systemu zbudowanego w oparciu o obiekty wyrażona jest jako zbiór realizowanych przez nie usług

(3)

Charakterystyka projektowania obiektowego (2/2)

Zastosowanie obiektowego modelu eliminuje występowanie w systemie współdzielonych danych

Obiekty komunikują się z wykorzystaniem mechanizmów „przekazywania wiadomości”

Usługi oferowane przez obiekty mogą być wykonywane sekwencyjnie lub równolegle

(4)

Zalety projektowania obiektowego

Łatwe zarządzanie

Możliwość powtórnego użycia klas obiektów – projektowanie/programowanie komponentowe

W wielu przypadkach występuje stosunkowo proste mapowanie pomiędzy elementami rzeczywistego środowiska systemu a obiektami

Wsparcie ze strony narzędzi programistycznych oraz istnienie standardu notacji obiektowej (UML)

(5)

Obiekty i klasy obiektów

Obiekty (ang. object) stanowią w oprogramowaniu reprezentację elementów (rzeczy, przedmiotów, zjawisk itp.) pochodzących z rzeczywistego środowiska pracy oprogramowania

Klasy obiektów (ang. object class) są wzorcami na podstawie, których tworzone są obiekty (instancje klas)

Klasy obiektów mogą dziedziczyć właściwości (atrybuty, operacje) z innych klas

Klasy obiektów mogą pozostawać w różnych związkach (relacjach np. agregacji) z innymi klasami obiektów

(6)

Obiekty

Obiekt jest elementem, który posiada stan i zdefiniowany zestaw operacji, które mogą na nim operować i prowadzić do zmiany jego stanu. Stan obiektu reprezentowany jest jako zbiór wartości jego atrybutów. Zestaw opercji obiektu udostępnia usługi jakie mogą zostać wykonane przez obiekt na rzecz innych obiektów

Obiekty tworzone są z wykorzystaniem definicji obiektów zapisanej w postaci klasy obiektów. Klasa obiektu zawiera deklarację wszystkich atrybutów i operacji jakie powinny być związane z każdym obiektem (instancją) tej klasy

(7)

Klasa obiektu w notacji UML

Nazwa klasy

Atrybuty

Metody Format zapisu atrybutów:

widoczność nazwa-atrybutu: typ = wartość domyślna Fomat zapisu metod:

widoczność nazwa-metody(lista parametrów): typ zwracanej wartości

(8)

Obiekty - komunikacja

Koncepcyjnie obiekty komunikują się poprzez przesyłanie wiadomości/komunikatów gdzie nazwa wiadomości określa usługę do wykonania. Wiadomość zawiera również informacje niezbędne do wykonania operacji oraz posiada możliwość zwracania wartości będących wynikiem wykonania operacji

W praktyce przekazywanie wiadomości realizowne jest jako wywołanie metod zdefiniowanych w klasie obiektu:

Nazwa metody == nazwa wiadomości

Informacja == wartości paremetrów metody

Wynik operacji == wartość zwracana przez metodę

(9)

Proces tworzenia modelu obiektowego

Identyfikacja kontekstu (środowiska) pracy systemu

Określenie przypadków (modeli) wykorzystania systemu

Budowa obiektowego modelu architektury systemu:

Identyfikacja klas i obiektów

Identyfikacja związków klas i obiektów

Identyfikacja atrybutów klas

Identyfikacja i definiowanie metod i komunikatów – interfejsy obiektów

(10)

Przykład - system gromadzenia informacji pogodowych - opis

System gormadzenia informacji pogodowych (weather forecast system) służy do automatycznej generacji map pogodowych na podstawie danych gromadzonych przez zdalne stacje pogodowe (weather station) i inne źródła informacji pogodowych takie jak satelity i balony obserwcyjne. Każda stacja pogodowa przesyła zgromadzone dane do centralnego komputera w odpowiedzi na jego zapytanie. Komputer centralny weryfikuje otrzymane dane oraz integruje wszystkie dane przesłane z różnych źródeł.

Zgromadzone w ten sposób dane przechowywane są w archiwum danych. Na podstwie zapisanych informacji i bazy map system generuje lokalne mapy pogodowe dla różnych obszarów. Stworzone mapy mogą być drukowane na ploterze lub wyświetlane w różnych formatach.

(11)

Opis stacji pogodowej (weather station)

Stacja pogodowa (weather station) jest zbiorem przyrządów pomiarowych kontrolowanych za pomocą specjalizowanego oprogramowania. Przyrządy pomiarowe gromadzą dane pogodowe (np. temperaturę powietrza, wilgotność itp.), które następnie zostają poddane wstępnej analizie i w odpowiedzi na żądanie zostają przesłane do centralnego komputera. W skład przyrządów pomiarowych wchodzą termometry mierzące temperaturę powietrza i ziemi, prędkość wiatru, ciśnienie oraz ilość opadów. Dane z poszczególnych przyrządów odczytywane są w pięciominutowych odstępach. W momencie gdy zostanie odebrane żądanie przesyłu danych, oprogramowanie stacji pogodowej przetwarza zgromadzone dane i przesyła wyniki przetwarzania do komputera centralnego.

(12)

Identyfikacja kontekstu pracy systemu

Kontekst pracy systemu określa poszczególne elementy wchodzące w skład systemu lub

stanowiące jego otoczenie, z którym system

wchodzi w interakcję

(13)

Określenie przypadków wykorzystania systemu – przykład stacji pogodowej

Dynamiczny model określający sposób interakcji systemu

z poszczególnymi elementami otaczającego środowiska

(14)

Opis przypadku użycia (ang. use-case)

System: stacja pogodowa (weather station) Use-case: send report

Aktorzy: podsystem data collection

Przetwarzanie: w odpowiedzi na żądanie stacja pogodowa przesyła dane zgromadzone przez poszczególne przyrządy pomiarowe w ostatnim okresie gromadzenia danych. Przesyłane dane dotyczą minimalnej, maksymalnej i średniej temperatury powietrza i ziemi, minimalnego, maksymalnego i średniego ciśnienia powietrza, minimalnej, maksymalnej i średniej prędkości wiatru, całkowitej ilości opadów

Zdarzenie: podsystem data collection zestawia modemowe połączenie do stacji pogodowej i przesyła żądanie transmisji zgromadzonych danych

Odpowiedź: zgromadzone w ostatnim okresie dane zostają przesłane do podsystemu data collection

Komentarz: podystem data collection wysyła żądania przesłania raportów do stacji pogodowych w odstępach nie krótszych niż 10 minut

(15)

Budowa obiektowego modelu architektury systemu

Identyfikacja związków klas i obiektów

Identyfikacja i definiowanie atrybutów

Identyfikacja klas i obiektów

Identyfikacja metod i komunikatów

(16)

Logiczny model architektury systemu dla stacji pogodowej

(17)

Identyfikacja klas i obiektów – metoda klasyczna (1/2)

Poszukiwanie klas obiektów polegające na obserwacji, klas i obiektów w innych systemach. Na podstawie analizy listy typowych klas określa się klasy obiektów w analizowanym systemie. Do typowych klas można zaliczyć:

przedmiot namacalne (np.: samochód, czujnik)

role pełnione przez osoby (np.: pracownik, student, wykładowca)

zdarzenia, o których system przechowuje informacje (np.:

zamówienie, dostawa)

interakcje pomiędzy osobami, systemami, o których system przechowuje informacje (np.: spotkanie, konferencja)

(18)

Identyfikacja klas i obiektów – metoda klasyczna (2/2)

lokalizacje – miejsca przeznaczone dla ludzi lub przedmiotów (np.:

magazyn, mieszkanie)

grupy przedmiotów namacalnych (np.: czujniki, studenci)

organizacje (np.: firma, wydział, uczelnia)

koncepcje (np.: miara jakości)

dokumenty (np.: faktura, prawo jazdy)

interfejsy dla sytemów zewnętrznych lub urządzeń

Należy zwrócić uwagę, że pewne elementy mogą posiadać dwojakie znaczenie w zależności od interpretacji np.: pracownik może oznaczać klasę opisującą jeden z elementów systemu (np.: w systemie finansowo-księgowym) jak również system

(19)

Identyfikacja klas i obiektów – metoda analizy opisu w języku naturalnym

Na podstawie sporządzonego w fazie analizy wymagań opisu systemu określa się klasy obiektów oraz związane z nimi operacje. W opisie wyróżnia się rzeczowniki (wraz z opisującymi je przymiotnikami) oraz czasowniki.

Rzeczowniki traktuje sie jako potencjalne klasy, obiekty lub atrybuty. Czasowniki to potencjalne metody lub związki pomiędzy klasami.

Ze względu na niejednoznaczność i wieloznaczność języka naturalnego może powstać wiele czasami niepotrzebnych klas obiektów lub łączących je releacji.

(20)

Identyfikacja klas i obiektów – metoda analizy funkcji (przypadków użycia)

Analizie poddawane są kolejne use-case’y stworzone w fazie analizy wymagań. Na podstawie opisu skojarzonego z każdym use- case’m tworzony jest scenariusz interakcji obiektów jednocześnie wprowadzając niezbędne klasy i metody.

(21)

Weryfikacja klas i obiektów (1/2)

Weryfikując konieczność wprowadzenia danej klasy należy wziąć pod uwagę następujące czynniki:

Nieobecność atrybutów i metod – z reguły oznacza to, że klasa znajduje się poza zakresem odpowiedzialności systemu

Nieliczne pojedyńcze atrybuty i metody – istnieje możliwość, że pola i metody mogą zostać umieszczone w innej klasie

(22)

Weryfikacja klas i obiektów (1/2)

Tylko jeden obiekt danej klasy – w pewnych przypadkach może to oznaczać zbyt rozbudowaną hierachię dziedziczenia. Przykładowo dobrą klasą jest

„samochód” ze specjalizacją np.: „samochód ciężarowy” natomiast błędną specjalizacją jest np.:

„samochód studenta X”

Brak związków z innymi klasami – z reguły oznacza to, że klasa znajduje się poza zakresem odpowiedzialności systemu

(23)

Identyfikacja atrybutów klas (1/3)

Identyfikując pola klas należy spróbować odpowiedzieć na następujące pytania:

Jakie informacje potrzebne są do opisu klasy w ramach dziedziny problemu (np. klasa student wymaga atrybutów określających imię, nazwisko, nr albumu itp.)

Jakie dane będą potrzebne obiektom danej klasy do realizacji zadań (np.: klasa określająca grupę studentów musi posiadać kolekcję przechowującą np.:

identyfikatory studentów należących do danej grupy)

(24)

Identyfikacja atrybutów klas (2/3)

Jakie pola należy wprowadzić, aby opisać stany w jakich mogą znajdować się obiekty danej klasy (np.: klasa opisująca wiadomości email może posiadać atrybut określający stan jako wysłany, odebrany, zwrócony)

Na podstawie opisu w języku naturalnym można poprzez analizę występowania rzeczowników określić podstawowe atrybuty klas

Interfejs użytkownika zaakceptowany przez użytkownika może dostarczyć bardziej szczegółowych informacji na temat wprowadzanych, edytowanych i prezentowanych danych, które powinny być przechowywane jako atrybuty odpowiednich klas

(25)

Identyfikacja atrybutów klas (3/3) – przykład błędów w umieszczaniu

atrybutów w hierachii klas

Atrybut umieszczony zbyt wysoko w hierachii gdyż nie każdy student pracuje

Atrybuty umieszczony zbyt nisko w hierachii przez co niepotrzebnie powtarzają się w definicji klas pochodnych pomimo tego, że określają tę samą

(26)

Identyfikacja metod i komunikatów klas

Metody klas możemy zgrubnie podzielić na dwie kategorie:

Algorytmicznie proste

Algorytmicznie złożone

(27)

Identyfikacja metod i komunikatów klas

Metody algorytmicznie proste:

Konstruktory/destruktory oraz metody inicjalizujące stan obiektów klasy

Metody służące do pobierania wartości publicznych atrybutów klasy

Metody służące do ustawiania wartości atrybutów klas

Metody służące do implementacji związków pomiędzy klasami (np.: agregacji)

(28)

Identyfikacja metod i komunikatów klas

Metody algorytmicznie złożone:

Metody służące do realizacji obliczeń

Metody służące do monitorowania pracy systemów i urządzeń zewnętrznych

.... (wszystkie inne nie będące metodami prostymi) 

(29)

Identyfikacja metod i komunikatów

klas – analiza przypadków użycia (1/3)

Definiowanie metod klas poprzez analizę sposobu realizacji funkcji systemu wynikających z analizy poszczególnych use-case’ów

Scenariusz przepływu komunikatów (wywołań metod) między obiektami systemu tworzony jest według następującego schematu:

Wybranie jednego z komunikatów otrzymywanych przez system (zwykle jeden z use-caseów)

(30)

Identyfikacja metod i komunikatów

klas – analiza przypadków użycia (2/3)

Określenie klasy, która otrzyma komunikat (jeżeli klasa jeszcze nie istnieje należy ją stworzyć)

Wybranie metody, która będzie obsługiwała komunikat lub stworzenie nowej

Określenie czy do realizacji funkcji wystarczy jedna metoda. Jeżeli metoda nie jest elementarna należy określić jakie obiekty i odpowiednie ich metody będą brały udział w jej realizacji (krok ten może zostać wykonany w kolejnej iteracji)

(31)

Identyfikacja metod i komunikatów

klas – analiza przypadków użycia (3/3)

(32)

Diagramy interakcji (ang. interaction diagrams)

Diagramy interakcji:

Sequence diagram

Collaboration diagram

Diagramy interakcji należą do grupy pięciu diagramów wykorzytywanych w UML do modelowania dynamicznych aspektów systemów

Każdy diagram interakcji prezentuje dynamiczne zależności pomiędzy obiektami wchodzącymi w skład systemu, które wzjemnie wymieniając komunikaty (ang.

message) współdziałają w realizacji określonej funkcjonalności systemu.

(33)

Diagramy interakcji - komunikaty

Komunikat stanowi jedyną metodę wymiany informacji pomiędzy obiektami

Komunikat wysłany do obiektu pewnej klasy oznacza żądanie wykonania jednej z metod tej klasy

Komunikat może być wysłany przez system zewnętrzny lub przez obiekt jednej z klas systemu

Wysłanie komunikatu może wiązać się z przekazaniem pewnych danych wejściowych do wywoływanej metody oraz z pobraniem danych wyjściowych zwracanych przez metodę

Nazwa komunikatu jest nazwą wywoływanej metody

(34)

Diagramy typu sequence (1/5)

Diagramy typu sequence prezentują przepływ komunikatów pomiędzy wspołdziałającymi obiektami zwracając uwagę na kolejność komunikatów w czasie

Zazwyczaj stosowane są do opisywania szczegółów zachowania obiektów systemu i systemów zewnętrznych w ramach pojedyńczych use casów

Diagramy sequence zawierają następujące elementy:

Obiekty

Komunikaty

(35)

Diagramy typu sequence (2/5)

Nazwa klasy obiektu Linia życia obiektu

Nazwa obiektu (instancji klasy)

(36)

Diagramy typu sequence (3/5)

Powrót z wykonania metody Przesłanie komunikatu -

synchroniczne wywołanie metody

Komunikat tworzący nową instancję klasy

Obiekty

Czas

(37)

Diagramy typu sequence (4/5)

Rodzaje komuniaktów:

Synchroniczne

Asynchroniczne

Tworzące nowe instancje klas

Usuwające istniejące instancje klas

Powroty z wywołania metod

(38)

Diagramy typu sequence (5/5)

Usunięcie instancji Komunikat asynchroniczny

(39)

Diagram sequence opisany skryptem

Użytkownik żąda wyświetlenia diagramu Wyświetlane są wszystkie figury,

z których składa się diagram

Użytkownik może wydać kolejne polecenie po zakończeniu realizacji

wyświetlania diagramu

Skrypt

(40)

Podstawowe błędy popełniane w diagramach typu sequence

Symbol komunikatu błędnie użyty do zobrazowania przepływu danych

(41)

Podstawowe błędy popełniane w diagramach typu sequence

Symbol komunikatu błędnie użyty do zobrazowania zdarzenia

Cytaty

Powiązane dokumenty

[r]

[r]

Domyślny inicjalizujący pola klasy dowolnymi wartościami, a także drugi inicjalizowany czterema parametrami: imie, nazwisko, stanowisko, stazPracy. Klasa

Dla wszystkich obiektów klasy Ksiazka powinna zostać wywołana metoda PrzedstawSie(), natomiast dla obiektów klasy Film na ekran powinno zostać wypisane nazwisko reżysera oraz

komponentów, projekt struktur danych oraz projekt algorytmów.  Stosując dekompozycję funkcjonalną rozpatruje się system jako zbiór

koniec sekwencji aktywności koniec życia obiektu tej klasy (czyli usunięcie obiektu z systemu); jeśli w tekście wymagań nic się nie mówi o usuwaniu obiektów danej klasy z

Metoda jest implementacją operacji w jednej z klas, może być wiele metod.. implementujących daną

Termin rozpoczęcia projektu wyznacza data rozpoczęcia cyklu życia, a termin zakończenia jest datą zakończenia cyklu życia projektu.. Intensywność prac projektowych i