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
róż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ą róż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ą róż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ść
róż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