inżynieria oprogramowani13 2ERTLIHFPILODEV4Q4WDHC5TSKIME7XG4PGY4JI


Inżynieria oprogramowania - 12 Slide 1

Projektowanie obiektowe

Projektowanie systemów przy

użyciu samodzielnych obiektów i

klas obiektów

Inżynieria oprogramowania - 12 Slide 2

Cele

. Wyjaśnienie w jaki sposób projekt

oprogramowania może być przedstawiony jako

zbiór oddziałujących na siebie obiektów które

mają stan i operacje

. Opis czynności procesu projektowania

obiektowego

. Wprowadzenie różnych modeli, które można

zastosować do udokumentowania projektu

obiektowego

. Przedstawienie w jaki sposób język UML może

być użyty do reprezentowania tych modeli

Inżynieria oprogramowania - 12 Slide 3

Zawartość

. Obiekty i klasy obiektów

. Proces projektowania obiektowego

. Ewolucja projektu

Inżynieria oprogramowania - 12 Slide 4

Charakterystyki projektowania

obiektowego

. Obiekty są abstrakcjami świata rzeczywistego lub

jednostek systemu

. Obiekty są niezależne posiadają swój stan lokalny i

informację o reprezentacji stanu

. Funkcjonalność systemu jest wyrażana pod względem

usług obiektów

. Zostały zlikwidowane obszary danych

współdzielonych. Obiekty komunikują się poprzez

przekazywanie wiadomości

. Obiekty mogą być rozproszone i mogą wykonywać

działania sekwencyjnie lub równolegle

Inżynieria oprogramowania - 12 Slide 5

Oddziałujące na siebie obiekty

o1 : K1

stan o1

operacja1()

o4 : K4

stan o4

operacja4()

o3 : K3

stan o3

operacja3()

o2 : K3

stan o2

operacja3()

o5 : K5

stan o5

operacja5()

o6 : K1

stan o6

operacja1()

Inżynieria oprogramowania - 12 Slide 6

Zalety projektowania obiektowego

. Łatwiejsze utrzymanie. Obiekty mogą być

traktowane jako oddzielne, niezależne jednostki

. Obiekty są potencjalnymi komponentami

wielokrotnego użycia

. Dla niektórych systemów, istnieje oczywiste

odwzorowanie jednostek świata rzeczywistego w

obiekty systemu

Inżynieria oprogramowania - 12 Slide 7

Tworzenie obiektowe

. Analiza obiektowa, projektowanie obiektowe i

programowanie obiektowe są ze sobą powiązane

lecz wyraźnie dają się wyodrębnić

. Analiza obiektowa polega na opracowywaniu modelu

obiektowego dziedziny zastosowania

. Projektowanie obiektowe polega na opracowywaniu

modelu systemu obiektowego, który będzie

implementacją wymagań

. Programowanie obiektowe polega na realizacji

projektu oprogramowania za pomocą języka

programowania obiektowego, np. Java, C++

Inżynieria oprogramowania - 12 Slide 8

Obiekty i klasy obiektów

. Obiekty są jednostkami w systemie

oprogramowania, reprezentującymi przykłady

świata rzeczywistego i jednostki systemu

. Klasy obiektów są szablonami dla obiektów.

Mogą być używane do tworzenia obiektów

. Klasy obiektów mogą dziedziczyć atrybuty i

usługi z innych klas obiektów

Inżynieria oprogramowania - 12 Slide 9

Obiekty i klasy obiektów

Obiekt jest bytem, który ma stan i zdefiniowany zbiór operacji

działających na tym stanie. Stan reprezentowany jest jako zbiór

atrybutów obiektu. Operacje skojarzone z obiektem służą do

oferowania usług innym obiektom (klientom), które mogą żądać

tych usług, gdy potrzebują wykonania pewnych obliczeń.

Obiekty są tworzone zgodnie z definicją klasy obiektów. Definicja

klasy obiektów służy jako szablon do tworzenia obiektów. Zawiera

deklaracje wszystkich atrybutów i usług które powinny być

skojarzone z obiektem tej klasy.

Inżynieria oprogramowania - 12 Slide 10

The Unified Modeling Language

. W latach 80-tych i 90-tych zaproponowano kilka

żnych notacji opisujących projekty obiektowe

. Język UML jest integracją tych notacji

. UML opisuje notacje dla kilku różnych modeli

które mogą być opracowane podczas analizy i

projektowania obiektowego

. UML stał się de facto standardem dla

modelowania obiektowego

Inżynieria oprogramowania - 12 Slide 11

Obiekt pracownik (UML)

Pracownik

nazwisko : string

adres : string

dataUrodzenia : Date

numerPracownika : integer

PESEL : string

dział : Dział

przełożony : Pracownik

wynagrodzenie : integer

stan : {zatrudniony, zwolniony, emerytowany)

NIP : integer

...

dołącz()

opuść()

przejdźNaEmeryturę()

zmieńSzczegóły()

Inżynieria oprogramowania - 12 Slide 12

Komunikacja obiektów

. Koncepcyjnie, obiekty komunikują się poprzez

przekazywanie wiadomości

. Wiadomości

. Nazwa usługi żądanej przez obiekt wywołujący

. Kopie informacji potrzebnych do wykonania usługi i wyniki jej

wykonania

. W praktyce, wiadomości często implementowane

są poprzez wywołania procedur

. Name = procedure name.

. Information = parameter list.

Inżynieria oprogramowania - 12 Slide 13

Przykłady wiadomości

// Wywołaj metodę skojarzoną z obiektem

// bufora, która zwraca następną wartość z

// bufora

v = circularBuffer.Get () ;

// Wywołaj metodę skojarzoną z obiektem

// termostatu, która ustawia zadaną temperaturę

thermostat.setTemp (20) ;

Inżynieria oprogramowania - 12 Slide 14

Uogólnienie i dziedziczenie

. Obiekty są członkami klas które definiują typy

atrybutów i operacje

. Klasy obiektów mogą być ułożone w hierarchię klas

gdzie jedna klasa (superklasa) jest uogólnieniem

jednej lub więcej innych klas (podklas)

. Podklasa dziedziczy atrybuty i operacje po swojej

superklasie i może dodawać własne atrybuty i

operacje

. W UML uogólnienie implementowane jest jako

mechanizm dziedziczenia

Inżynieria oprogramowania - 12 Slide 15

Hierarchia uogólnień

Kierownik

zarządzaneBudżety

dataPrzyjęcia

Pracownik

Programista

przedsięwzięcie

językiProg

Kierownik

Przedsięwzięcia

przedsięwzięcia

Kierownik

Działu

dział

Kierownik

Strategiczny

obowiązki

Inżynieria oprogramowania - 12 Slide 16

Zalety dziedziczenia

. Jest to abstrakcyjny mechanizm który może być

używany do klasyfikowania jednostek

. Jest to mechanizm używany zarówno na poziomie

projektowania jak programowania

. Graf dziedziczenia jest źródłem wiedzy o

organizacji dziedziny i systemu

Inżynieria oprogramowania - 12 Slide 17

Problemy z dziedziczeniem

. Klasy obiektów są samodzielne, nie mogą być

zrozumiałe bez odniesienia do ich superklas

. Projektanci mają tendencje do wielokrotnego

wykorzystywania grafu dziedziczenia

stworzonego podczas analizy. Może to prowadzić

do znacznego obniżenia wydajności

. Grafy dziedziczenia stworzone podczas analizy,

projektowania i implementacji posiadajążne

funkcje i powinny być utrzymywane oddzielnie

Inżynieria oprogramowania - 12 Slide 18

Dziedziczenie a projektowanie

obiektowe

. Istnieje odmienne poglądy w kwestii czy dziedziczenie

jest fundamentalną częścią dla projektowania

obiektowego

. Pogląd 1 - identyfikacja hierarchii dziedziczenia jest fundamentalną częścią

projektowania obiektowego. Oczywiście dziedziczenie może być

implementowane tylko przy użyciu języków programowania obiektowego.

. Pogląd 2 - Dziedziczenie jest użyteczną koncepcją implementacji,

pozwalającą na wielokrotne użycie atrybutów i definicji operacji.

Identyfikacja hierarchii dziedziczenia w etapie projektowania wprowadza

niepotrzebne ograniczenia w procesie implementacji

. Dziedziczenie wprowadza złożoność i jest

nieodpowiednim mechanizmem zwłaszcza dla systemów

krytycznych

Inżynieria oprogramowania - 12 Slide 19

Powiązania UML

. Obiekty i klasy obiektów biorą udział związkach

z innymi obiektami i klasami obiektów

. W języku UML ogólny związek jest wskazywany

poprzez powiązanie

. Powiązania mogą być przypisane wraz z

informacją która opisuje te powiązania

. Powiązania są ogólne lecz mogą wskazywać, że

dany atrybut obiektu jest powiązanym obiektem

albo że implementacja metody korzysta z

powiązanego obiektu

Inżynieria oprogramowania - 12 Slide 20

Model powiązań

Pracownik Dział

Kierownik

jest-członkiem

zarządza

jest-zarządzany przez

Inżynieria oprogramowania - 12 Slide 21

Obiekty współbieżne

. Natura obiektów będących samodzielnymi

jednostkami czyni je odpowiednimi dla

współbieżnej implementacji

. Model przekazywania wiadomości w

komunikacji obiektów może być

zaimplementowany bezpośrednio jeśli obiekty

wykonują się na oddzielnych procesorach w

systemach rozproszonych

Inżynieria oprogramowania - 12 Slide 22

Serwery i obiekty aktywne

. Serwery.

. Obiekty są tu realizowane jako równoległe procesy z metodami

odpowiadającymi zdefiniowanym operacjom obiektu. Jeśli nie

ma żadnego żądania, obiekt wstrzymuje swoje działanie i czeka

na następne żądania usług

. Obiekty aktywne

. Obiekty implementowane są jako równoległe procesy a

wewnętrzny stan obiektu może być zmieniony przez sam obiekt

a nie poprzez zewnętrzne wywołanie

Inżynieria oprogramowania - 12 Slide 23

Aktywny obiekt transpondera

. Atrybuty obiektów aktywnych mogą być

modyfikowane przez operacje lub niezależnie

poprzez użycie operacji wewnętrznych

. Obiekt transpondera rozgłasza pozycję samolotu.

Pozycja może być uaktualniana dzięki systemowi

nawigacji satelitarnej. Obiekt okresowo

uaktualnia pozycję za pomocą triangulacji

satelitarnej

Inżynieria oprogramowania - 12 Slide 24

Aktywny obiekt transpondera

Class Transponder extends Thread {

Położenie bieżącePołożenie;

Współrzędne w1, w2;

Satelita sat1, sat2;

Nawigator nawigator;

public Położenie podajPołożenie ()

{

return bieżącePołożenie;

}

public void run ()

{

while (true)

{

w1 = sat1.położenie();

w2 = sat2.położenie();

bieżącePołożenie = nawigator.wyznacz(w1,w2);

}

}

} // Transponder

Inżynieria oprogramowania - 12 Slide 25

Wątki w języku Java

. Wątki w języku Java są pojedynczymi

konstruktorami dla implementacji obiektów

współbieżnych

. Wątki muszą zawierać metodę run(), którą

uruchamiana jest przez system wykonawczy Javy

. Aktywne obiekty typowo zawierają nieskończoną

pętlę tak więc nieustannie wykonują obliczenia

Inżynieria oprogramowania - 12 Slide 26

Procesy projektowania obiektowego

. Zdefiniowanie kontekstu i modelu użytkowania

systemu

. Zaprojektowanie architektury systemu

. Identyfikacja głównych obiektów systemu

. Opracowanie modeli projektowych

. Wyspecyfikowanie interfejsów obiektów

Inżynieria oprogramowania - 12 Slide 27

Opis systemu tworzącego mapy pogody

System tworzący mapy pogody ma za zadanie opracowywanie map pogody

na podstawie informacji zgromadzonych przez zdalne, autonomiczne stacje

meteorologiczne i inne źródła danych takie jak obserwatorzy pogody,

balony czy satelity. Stacje meteorologiczne przekazują dane do komputera

obszaru w odpowiedzi na żądanie przychodzące z tej maszyny.

Komputer obszaru weryfikuje zebrane dane i integruje dane z różnych

źródeł. Zintegrowane dane są archiwizowane i na podstawie tego archiwum

oraz bazy danych map komputerowych tworzy się zbiór lokalnych map

pogody. Mapy mogą być drukowane w celu rozpowszechniania na

specjalnej drukarce do map lub wyświetlane w kilku różnych formatach.

Inżynieria oprogramowania - 12 Slide 28

Opis stacji meteorologicznej

Stacja meteorologiczna jest pakietem oprogramowania służącym

do sterowania narzędziami które zbierają dane, wstępnie je

przetwarzają i transmitują w celu dalszego przetwarzania.

Narzędziami są termometr powietrza, termometr gruntowy,

wiatromierz, wiatrowskaz, barometr oraz przyrząd do pomiaru

opadów. Dane zbierane są co pięć minut.

Kiedy wydana zostaje komenda transmisji danych pogodowych,

stacja meteorologiczna przetwarza i streszcza dane a następnie

transmituje je do odpowiedniego komputera.

Inżynieria oprogramowania - 12 Slide 29

Architektura warstwowa

Warstwa wyświetlania danych, której

obiekty zajmują się przygotowaniem i

przedstawieniem danych w postaci

zrozumiałej dla człowieka

<< subsystem >>

Wyświetlanie danych

<< subsystem >>

Archiwizacja danych

<< subsystem >>

Przetwarzanie danych

<< subsystem >>

Gromadzenie danych

Warstwa archiwizacji danych, której

obiekty zajmują się składowaniem danych

do późniejszego przetwarzania

Warstwa przetwarzania danych, której

obiekty zajmują się sprawdzaniem i

integracją zgromadzonych danych

Warstwa gromadzenia danych, której

obiekty zajmują się zdobywaniem danych

ze zdalnych źródeł

Inżynieria oprogramowania - 12 Slide 30

Kontekst systemu i modele użytkowania

. Zrozumienie związków pomiędzy projektowanym

oprogramowaniem a jego środowiskiem

zewnętrznym.

. Kontekst systemu

. Statystyczny model, który opisuje inne systemy w środowisku.

W celu pokazania innych systemów wykorzystuje się model

podsystemów.

. Model użytkowania systemu

. Dynamiczny model, który opisuje w jaki sposób system

porozumiewa się ze swoim środowiskiem.

Inżynieria oprogramowania - 12 Slide 31

Podsystemy w systemie tworzącym mapy pogody

Obserwator

Stacja

meteorologiczna

Satelita

<< subsystem >>

Gromadzenie

danych

Balon

Wspólne

Sprawdzanie

danych

<< subsystem >>

Przetwarzanie

danych

Sprawdzanie

danych

<< subsystem >>

Archiwizacja

danych

Składnica

map

Składnica

danych

Składowanie

danych

<< subsystem >>

Wyświetlanie

danych

Mapa

Drukarka

map

Interfejs

użytkownika

Wyświetlacz

map

Inżynieria oprogramowania - 12 Slide 32

Przypadki użycia stacji meteorologicznej

Startup

Shutdown

Report

Calibrate

Test

Uruchom

Wyłącz

Raportuj

Dostrój

Testuj

Inżynieria oprogramowania - 12 Slide 33

Opis przypadku użycia

System Stacja meteorologiczna

Przypadek użycia Raportuj

Aktorzy System gromadzenia informacji meteorologicznych, stacja meteorologiczna

Dane Stacja meteorologiczna wysyła do systemu gromadzenia informacji

meteorologicznych podsumowanie danych meteorologicznych odczytanych z

przyrządów w określonym czasie. Wysyła się maksymalne, minimalne i

średnie ciśnienia powietrza, maksymalną, minimalną i średnią prędkość

wiatru, całkowity opad i kierunek wiatru próbkowany co pięć minut.

Bodziec System gromadzenia informacji meteorologicznych nawiązuje połączenie

modemowe ze stacją meteorologiczną i żąda przekazania danych

Reakcja Wysłanie podsumowania danych do systemu gromadzenia informacji

meteorologicznych

Komentarz Stacje meteorologiczne są zwykle proszone o raport raz na godzinę, ale ta

częstotliwość może być inna dla różnych stacji i może w przyszłości ulec

zmianie

Inżynieria oprogramowania - 12 Slide 34

Projektowanie architektury

. Po zrozumieniu i zdefiniowaniu oddziaływań systemu z

jego środowiskiem, używamy tych informacji w celu

zaprojektowania architektury systemu

. Dla stacji meteorologicznej odpowiednia jest architektura

warstwowa:

. Warstwa interfejsu do obsługi komunikacji

. Warstwa gromadzenia danych, która zarządza odczytem danych z

przyrządów i podsumowaniem danych meteorologicznych przed przesłaniem

ich do systemu

. Warstwa przyrządów, która obudowuje wszystkie przyrządy służące do

gromadzenia surowych danych o warunkach pogodowych

. W skład modelu architektonicznego nie powinno wchodzić

więcej niż siedem jednostek (bytów)

Inżynieria oprogramowania - 12 Slide 35

Architektura stacji meteorologicznej

Obsługuje całą

komunikację

zewnętrzną

Gromadzi i

podsumowuje

dane

Pakiet przyrządów

do zbierania

surowych danych

Stacja meteorologiczna

<< subsystem >>

Interfejs

<< subsystem >>

Gromadzenie

danych

<< subsystem >>

Przyrządy

Inżynieria oprogramowania - 12 Slide 36

Identyfikacja obiektów

. Identyfikacja obiektów (lub klas obiektów) jest

najtrudniejszą częścią projektowania obiektowego

. Nie istnieje .magiczna formuła. dla identyfikacji

obiektów. Zależy to od umiejętności,

doświadczenia i znajomości dziedziny

projektantów systemu

. Identyfikacja obiektów jest procesem

iteracyjnym. Istnieje bardzo małe

prawdopodobieństwo zidentyfikowania obiektów

podczas pierwszej iteracji.

Inżynieria oprogramowania - 12 Slide 37

Sposoby identyfikacji

. Wykorzystanie analizy gramatycznej opisu systemu w języku

naturalnym (wykorzystywane w projektowaniu obiektowym

HOOD)

. Wykorzystanie namacalnych bytów (rzeczy) z dziedziny

zastosowania

. Wykorzystanie podejścia czynnościowego, w którym

projektant zaczyna od zrozumienia ogólnego zachowania

systemu. Identyfikacji obiektów dokonuje się na podstawie

tego kto bierze udział w jakim zachowaniu

. Wykorzystanie analizy scenariuszy. Identyfikuje się obiekty,

atrybuty i operacje w każdym ze scenariuszy

Inżynieria oprogramowania - 12 Slide 38

Klasy obiektów stacji meteorologicznej

. Termometr gruntowy, Wiatromierz, Barometr

. Obiekty dziedziny zastosowania które są obiektami

.sprzętowymi. utożsamia się z urządzeniami w systemie

. Stacja meteorologiczna

. Podstawowy interfejs stacji meteorologicznej do swojego

środowiska. Odzwierciedla interakcje zidentyfikowane w

modelu przedstawiającym przypadki użycia

. Dane meteorologiczne

. Obudowuje podsumowanie danych odczytanych z różnych

przyrządów

Inżynieria oprogramowania - 12 Slide 39

Klasy obiektów w systemie stacji

meteorologicznej

StacjaMeteorologiczna

identyfikator

raportPogodowy ()

dostrój (przyrządy)

testuj ()

uruchom (przyrządy)

wyłącz (przyrządy)

DaneMeteorologiczne

temperaturyPowietrza

temperaturyGruntu

siełyWiatru

kierunekWiatru

ciśnienia

opady

gromadź ()

podsumuj ()

Termometr

gruntowy

temperatura

testuj ()

dostrój ()

Wiatromierz

siłaWiatru

kierunekWiatru

test ()

Barometr

ciśnienie

wysokość

test ()

dostrój ()

Inżynieria oprogramowania - 12 Slide 40

Dalsze obiekty i ich udoskonalanie

. Wykorzystanie wiedzy o dziedzinie zastosowania

do rozpoznania dalszych obiektów i operacji

. Stacje meteorologiczne powinny mieć unikalne identyfikatory

. Stacje meteorologiczne znajdują się w miejscach oddalonych tak

więc awarie przyrządów muszą być zgłaszane automatycznie.

Wymaga to atrybutów i operacji służących do sprawdzania

poprawnego działania.

. Obiekty aktywne i pasywne

. W tym przypadku, obiekty są pasywne i zbierają dane na

żądanie a nie automatycznie.

Inżynieria oprogramowania - 12 Slide 41

Modele projektowe

. Modele projektowe przedstawiają obiekty i klasy

obiektów oraz związki pomiędzy tymi

jednostkami (bytami)

. Modele statyczne opisują statyczną strukturę

systemu pod względem klas obiektów i ich

związków

. Modele dynamiczne opisują dynamiczne

interakcje pomiędzy obiektami systemowymi

Inżynieria oprogramowania - 12 Slide 42

Przykłady modeli projektowych

. Modele podsystemów, które przedstawiają

logiczne grupowania obiektów w spójne

podsystemy

. Modele przebiegu, które przedstawiają przebieg

interakcji obiektów

. Modele maszyn stanowych, które przedstawiają

w jaki sposób poszczególne obiekty zmieniają

swój stan w odpowiedzi na zdarzenie

. Inne modele takie jak modele przypadków użycia,

modele agregacji, modele uogólnienia, itd.

Inżynieria oprogramowania - 12 Slide 43

Modele podsystemów

. Przedstawiają w jaki sposób projekt podzielony

jest na logicznie powiązane grupy obiektów

. W języku UML, istnieją pakiety, które są

narzędziami obudowania. Jest to model logiczny.

Rzeczywista organizacja obiektów w systemie

może być inna.

Inżynieria oprogramowania - 12 Slide 44

Pakiety stacji meteorologicznej

SterownikKomunikacji

StacjaMeteorologiczna

<< subsystem >>

Interfejs

DaneMeteorologiczne

Stan

przyrządów

<< subsystem >>

Gromadzenie danych

Termometr

powietrza

<< subsystem >>

Przyrządy

Termometr

gruntowy

Wiatromierz

Łopatka

wiatrowa

Wskaźnik

opadu

Barometr

Inżynieria oprogramowania - 12 Slide 45

Modele przebiegu

. Modele przebiegu przedstawiają przebieg

zachodzących oddziaływań obiektów

. Obiekty ułożone są poziomo

. Czas przedstawiony jest pionowo, tak więc model czytany jest z

góry na dół

. Interakcje między obiektami reprezentowane są poprzez

podpisane strzałki, różne style strzałek reprezentujążne typy

interakcji

. Cienki prostokąt na linii życia obiektu reprezentuje okres w

którym ten obiekt steruje systemem

Inżynieria oprogramowania - 12 Slide 46

Przebieg operacji gromadzenia danych

:CommsController

request (report)

acknowledge ()

report ()

summarise ()

reply (report)

acknowledge ()

send (report)

:WeatherStation :WeatherData :Sterownik

Komunikacji

:Stacja

Meteorologiczna

:Dane

Meteorologiczne

żądanie (raport)

potwierdzenie()

raportuj ()

podsumuj ()

wyślij (raport) odpowiedz

(raport)

potwierdzenie()

Inżynieria oprogramowania - 12 Slide 47

Diagram stanów

. Przedstawia w jaki sposób obiekty odpowiadają

na różne żądania usług oraz stany przejściowe

powodowane tymi żądaniami

. Jeśli obiekt jest w stanie .Wyłączony. wtedy może on reagować

tylko na komunikat uruchom()

. W stanie .Oczekiwanie. system czeka na dalsze komunikaty

. Po otrzymaniu komunikaty raportPogodowy() system

przechodzi do stanu .Podsumowanie.

. Po otrzymaniu komunikatu dostrój() system przechodzi w stan

.Dostrajanie.

. Po otrzymaniu sygnału zegarowego system przechodzi do stanu

.Gromadzenie.

Inżynieria oprogramowania - 12 Slide 48

Diagram stanów obiektu Stacja

Meteorologiczna

Dostrajanie

Testowanie

Transmitowanie

Podsumowanie

Gromadzenie

Oczekiwanie Wyłączony

uruchom ()

wyłącz ()

dostrój ()

testuj ()

Działanie

koniec transmisji

zegar koniec

gromadzenia

dostrojony

koniec testu

podsumowanie

gotowe

raportPogodowy()

Inżynieria oprogramowania - 12 Slide 49

Specyfikowanie interfejsów obiektu

. Interfejsy obiektu muszą być wyspecyfikowane po to

aby możliwe było równoległe projektowanie

obiektów i innych komponentów

. Projektanci powinni unikać projektowania

reprezentacji interfejsu, reprezentacja ta powinna być

ukryta w samym obiekcie

. Obiekty mogą mieć kilka interfejsów, które są

sposobami postrzegania oferowanych metod

. W języku UML, do specyfikacji interfejsów używa

się diagramów klas; można także używać do tego

celu Javy

Inżynieria oprogramowania - 12 Slide 50

Interfejsy stacji meteorologicznej

interfejs StacjaMeteorologiczna {

public StacjaMeteorologiczna () ;

public void uruchom () ;

public void uruchom (Przyrząd p) ;

public void wyłącz () ;

public void wyłącz (Przyrząd p) ;

public void raportPogodowy () ;

public void testuj () ;

public void testuj (Przyrząd p) ;

public void dostrój (Przyrząd p) ;

public int podajID () ;

} // StacjaMeteorologiczna

Inżynieria oprogramowania - 12 Slide 51

Ewolucja projektu

. Ukrywanie informacji wewnątrz obiektów oznacza,

że zmiany dokonane na obiektach nie wpływają w

sposób nieprzewidywalny na inne obiekty

. Załóżmy, że do każdej stacji meteorologicznej trzeba

dodać mechanizmy monitorowania zanieczyszczeń.

Mechanizmy te próbkują powietrze i obliczają ilość

żnych zanieczyszczeń w atmosferze

. Odczyty zanieczyszczeń są transmitowane razem z

danymi o pogodzie

Inżynieria oprogramowania - 12 Slide 52

Wymagane zmiany

. Dodaj obiekt o nazwie .Jakość powietrza. jako

część obiektu StacjaMeteorologiczna

. Dodaj do obiektu StacjaMeteorologiczna operację

raportJakościPowietrza. Zmodyfikuj

oprogramowanie sterujące odczytami

zanieczyszczeń

. Dodaj obiekty reprezentujące przyrządy do

pomiaru poziomu zanieczyszczeń

Inżynieria oprogramowania - 12 Slide 53

Monitorowanie zanieczyszczeń

StacjaMeteorologiczna

identyfikator

raportPogodowy ()

raportJakościPowietrza ()

dostrój (przyrządy)

testuj ()

uruchom (przyrządy)

wyłącz (przyrządy)

Jakość powietrza

poziomTlenekAzotu

poziomDymu

poziomBenzenu

gromadź ()

podsumuj ()

MiernikTlenkuAzotu MiernikDymu

MiernikBenzenu

Przyrządy do pomiaru zanieczyszczeń

Inżynieria oprogramowania - 12 Slide 54

. Projektowanie obiektowe jest sposobem

projektowania oprogramowania, w którym

komponenty projektu posiadają własny stan i operacje

. Obiekty powinny mieć operacje konstruktorowe i

inspekcyjne. Obiekty oferują usługi innym obiektom

. Obiekty mogą być implementowane sekwencyjnie lub

współbieżnie

. Język UML (The Unified Modeling Language)

obejmuje wiele różnych notacji, które służą do

definiowania różnych modeli obiektowych

Główne tezy

Inżynieria oprogramowania - 12 Slide 55

Główne tezy

. W trakcie procesu projektowania obiektowego

można opracować wiele różnych modeli,

klasyfikowanych jako statyczne i dynamiczne

. Interfejsy obiektów powinny być definiowane

precyzyjnie przy użyciu np. języka

programowania Java

. Projektowanie obiektowe upraszcza proces

ewolucji systemu



Wyszukiwarka

Podobne podstrony:
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
ZadanieNaZaliczenie, WAT, semestr IV, Inżynieria oprogramowania
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
zagadnienia egzaminacyjne z przedmiotu inżynieria oprogramowania zIO
Inżynieria oprogramowania Diagramy ERD
2006 06 Wstęp do Scrum [Inzynieria Oprogramowania]
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania
2007 05 Mechanizm koncepcji w języku C nowe oblicze szablonów [Inzynieria Oprogramowania]
Inżynieria oprogramowania syllabus IV niestac 07 08, Prywatne, WAT, SEMESTR IV, IO, io, Materiały od
Rafał Polak 12k2 lab9, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
inżynieria oprogramowani5s 3D2LFW6JYNMO6D276CSZQV5ONUNVXOTKWFXHA3A
inżynieria oprogramowani1 2EM7Y2ON72DKTCAQF3UOSCLXHY5636FZE7C7PUQ
inżynieria oprogramowani5 G46UQE27RE6UDINZWBW2TXNEOUUYOYV2MMVZ2NI
2008 06 Java Microedition – metody integracji aplikacji [Inzynieria Oprogramowania]
Inżynieria oprogramowania II
Opracowanie na Inżynierie Oprogramowania
Przykład diagramu sekwencji, Inżynieria oprogramowania
Inżynieria oprogramowania, Studia, Informatyka, Informatyka, Informatyka

więcej podobnych podstron