Object-oriented Design

Download Report

Transcript Object-oriented Design

Projektowanie obiektowe Projektowanie systemów przy wykorzystaniu oddziałujących na siebie obiektów i ich klas

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 1

Cele

    Dowiedzieć się, jak przedstawiać projekt oprogramowania w postaci zbioru oddziałujących na siebie obiektów, które mają swoje stany i operacje.

Poznać najważniejsze czynności projektowania obiektowego.

ogólnego procesu Poznać różne modele, które można zastosować do udokumentowania projektu obiektowego.

Poznać podstawy prezentacji tych modeli w UML-u (ang. Unified Modeling Language).

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 2

Zawartość

   Obiekty i klasy obiektów Proces projektowania obiektowego Ewolucja projektu ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 3

Projektowanie obiektowe

     To strategia projektowania, w ramach której projektanci systemu myślą w kategoriach „bytów”, a nie operacji albo funkcji.

Działający system składa się z oddziałujących na siebie obiektów, które przechowują swój lokalny stan i oferują operacje na tej informacji o stanie.

Obiekty ukrywają informację o reprezentacji stanu i w ten sposób ograniczają do niego dostęp.

Proces projektowania obiektowego obejmuje zaprojektowanie klas i związków pomiędzy nimi.

Gdy projekt przybierze już postać działającego programu, potrzebne obiekty są tworzone na podstawie definicji klas.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 4

System składający się z oddziałujących na siebie obiektów

o1: K1

stan o1 operacja1 ()

o3:K3

stan o3 operacja3 ()

o4: K4

stan o4 operacja4 ()

o2: K3

stan o2 operacja2 ()

o6: K1

stan o6 operacja6 ()

o5:K5

stan o5 operacja5 () ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 5

Zalety projektowania obiektowego

    Systemy powinny być łatwe w pielęgnacji, ponieważ obiekty są niezależne.

Można je poznawać i modyfikować jako samodzielne byty.

Zmiana implementacji obiektu lub dodanie usług nie powinno mieć wpływu na obiekty systemowe.

Obiekty są skojarzone z bytami, zwykle więc istnieje jasne odwzorowanie bytów świata rzeczywistego (np. komponentów sprzętowych) na sterujące nimi obiekty w systemie. Zwiększa to zrozumiałość i zarazem zdatność do pielęgnacji systemu.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 6

Podstawowe pojęcia

  

Analiza obiektowa

polega na opracowaniu modelu obiektowego dziedziny zastosowania. Rozpoznane obiekty odzwierciedlają byty i operacje związane z rozwiązywanym problemem.

Projektowanie obiektowe

polega obiektowego systemu oprogramowania, który będzie implementacją zidentyfikowanych wymagań. Obiekty projektu obiektowego są związane z rozwiązaniem problemu.

na opracowaniu modelu

Programowanie

klas obiektów.

obiektowe

polega na realizacji projektu oprogramowania za pomocą języka programowania obiektowego.

Języki obiektowe, takie jak Java, umożliwiają bezpośrednią implementację obiektów i dostarczają udogodnienia do definiowania ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 7

Obiekty

Obiekt jest bytem, który ma stan i zbiór zdefiniowanych operacji działających na tym stanie. Stan jest reprezentowany 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 definicja klasy obiektów.

Definicja klasy obiektów służy jako szablon do tworzenia obiektów. Zawiera deklaracje wszystkich atrybutów i operacji, które należy skojarzyć z obiektem tej klasy.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 9

UML

 Notacja używana do oznaczenia klas obiektów jest zdefiniowana przez UML.

Klasa obiektów jest przedstawiana jako nazwany prostokąt z dwoma sekcjami.

Atrybuty obiektu są wymieniane w górnej sekcji. Operacje związane z obiektem są wymieniane w dolnej sekcji.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 10

Obiekt pracownik

Pracownik

nazwisko : string adres : string dataUrodzenia : Date numerPracownika : integer PESEL : string dział : Dział przełożony : Pracownik wynagrodzenie : integer NIP : integer ...

dołącz() opuść() tatus: {current, left, retired} taxCode: integer . . .

join () leave () retire () changeDetails ( ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 11

Komunikacja pomiędzy obiektami

     Obiekty porozumiewają się przez żądania usług (wywołania metod) od innych obiektów, i jeśli trzeba, wymianę informacji niezbędnych do realizacji usługi.

Kopie informacji potrzebnych do wykonania usługi i wyniki jej wykonania są przekazywane jako parametry.

W niektórych systemach rozproszonych komunikację obiektów implementuje się po prostu jako tekstowe komunikaty wymieniane przez obiekty.

Obiekt odbiorca analizuje składniowo komunikat, rozpoznaje usługę i przekazane dane,m a następnie realizuje żądaną usługę.

Jeśli obiekty istnieją jednak w ramach tego samego programu, to wywołania metod implementuje się w taki sam sposób jak wywołania procedur i funkcji w językach C lub Ada.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 12

Przykłady komunikacji // Wywołaj metodę obiektu biura, która przekazuje następną wartość z bufora w = buforCykliczny.pobierz() // Wywołaj metodę obiektu termostatu, która ustala utrzymywaną temperaturę termostat.

ustawTemperaturę(20);

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 13

Hierarchia dziedziczenia

    Klasy obiektów można ułożyć w hierarchię dziedziczenia, w której widać związek między ogólnymi i bardziej szczegółowymi klasami obiektów.

Szczegółowa klasa obiektów jest w pełni zgodna z ogólną klasą obiektów, ale zawiera więcej informacji.

W UML uogólnienie obrazuje się za pomocą obrazów strzałki wskazującej klasę macierzystą.

W obiektowych językach programowania uogólnienie zwykle implementuje się za pomocą mechanizmu dziedziczenia. Klasa potomna dziedziczy atrybuty i operacje po klasie macierzystej.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 14

Hierarchia dziedziczenia

Pracownik Kierownik zarządzaneBudżety dataPrzyjęcia Programista przedsięwzięcie językiProg Kierownik Przedsięwzięcia przedsięwzięcia ©Ian Sommerville 2000 Kierownik Działu dział Inżynieria oprogramowania, Rozdział 12 Kierownik Strategiczny obowiązki Slide 15

Zalety dziedziczenia

 Klasy niższe w hierarchii mają te same atrybuty i operacje co ich klasy macierzyste, mogą jednak dodawać nowe atrybuty i operacje lub modyfikować niektóre z tych odziedziczonych.

 Jeśli w modelu użyto nazwy klasy macierzystej, to obiekt systemu może być zdefiniowany jako obiekt tej klasy albo jednego z jej potomków.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 16

Powiązania pomiędzy klasami obiektów

    Obiekty należące do klas obiektów biorą udział w związkach z innymi obiektami. Związki te można modelować przez opisanie powiązań między klasami obiektów.

W UML oznaczeniem powiązania jest kreska między klasami obiektów, która może mieć dodatkowe adnotacje.

Powiązanie jest bardzo ogólnym związkiem i w UML często używa się go do wskazania, że atrybut obiektu jest powiązanym obiektem albo że implementacja metody korzysta z powiązanego obiektu.

Jednym z najczęściej występujących powiązań jest agregacja, która służy do wskazania, jak obiekty składa się z innych obiektów.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 19

Model powiązań

Pracownik jest-członkiem jest-zarządzany-przez zarządza Dział Kierownik ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 20

Obiekty współbieżne

   Ogólny model oddziaływania obiektów umożliwia ich współbieżne wykonywanie w równoległych procesach.

Obiekty mogą działać na tym samym komputerze lub być obiektami rozproszonymi na różnych maszynach.

W praktyce funkcji.

większość obiektowych języków programowania domyślnie przyjmuje model działania sekwencyjnego, w którym żądania usług obiektów, są implementowane w taki sam sposób jak wywołania ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 21

Dwa rodzaje implementacji obiektów współbieżnych

 

Serwery

• Obiekty są tu realizowane jako równoległe procesy z metodami odpowiadającymi zdefiniowanym operacjom obiektu. Metody są uruchamiane w odpowiedzi na zewnętrzne komunikaty i mogą się wykonywać równolegle z metodami skojarzonymi z innymi obiektami.

Obiekty aktywne

• Stan obiektu może być zmieniony przez wewnętrzne operacje wykonywane przez obiekt w swoim wnętrzu. Proces reprezentujący obiekt nieustannie wykonuje te operacje, nigdy więc nie wstrzymuje swojego działania .

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 22

Przykład

    Klasa obiektów reprezentuje transponder samolotu.

Transponder śledzi położeniem samolotu za pomocą systemu nawigacji satelitarnej.

Może reagować na komunikaty pochodzące z komputerów centrum kontroli lotów.

Udostępnia bieżące położenie samolotu w odpowiedzi na wywołanie metody podajPołożenie.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 23

Implementacja obiektu aktywnego za pomocą wątków Javy

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 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 24

Etapy procesu projektowania obiektowego

     Zrozumienie i zdefiniowanie kontekstu oraz modelu użytkowania systemu.

Zaprojektowanie architektury systemu.

Identyfikacja głównych obiektów systemu.

Opracowanie modeli projektowych.

Wyspecyfikowanie interfejsów obiektów.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 26

System mapy pogody

System tworzący mapy pogody ma regularnie generować mapy pogody na podstawie informacji zgromadzonych przez zdalne, niestrzeżone stacje meteorologiczne i inne źródła danych, takie jak obserwatorzy pogody, balony i satelity. Stacje meteorologiczne przekazują dane do komputera obszaru w odpowiedzi na żądania przychodzące z tej maszyny.

System komputera obszaru weryfikuje zebrane dane i integruje dane z różnych źródeł. Zintegrowane dane są archiwizowane. Na podstawie tego archiwum i bazy danych map komputerowych tworzy się lokalne mapy pogody. Mapy można drukować w celu rozpowszechniania na specjalnej drukarce do map lub wyświetlać w kilku różnych formatach.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 27

System mapy pogody

Z tego opisu wynika, ze zadaniem części systemu jest zbieranie danych, inna część zajmuje się integracja danych z różnych źródeł, a jeszcze inna tworzeniem map pogody.

Na rysunku pokazano jedną z architektur tego systemu, którą można wywnioskować z tego opisu. Jest to architektura warstwowa, która odzwierciedla różne etapy przetwarzania zachodzącego w systemie: zbieranie danych, integrację danych, archiwizację danych i generowanie map. W tym wypadku architektura warstwowa jest właściwa, ponieważ każdy etap w swoim działaniu zależy jedynie od przetwarzania z poprzedniego etapu.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 28

Architektura warstwowa systemu tworzącego mapy pogody

<> Wyświetlanie danych Warstwa wyświetlania danych, której obiekty zajmują się przygotowaniem danych w postaci zrozumiałej dla człowieka <> Archiwizacja danych <> Przetwarzanie danych <> Gromadzenie danych ©Ian Sommerville 2000 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, Rozdział 12 Slide 29

Podsystemy w systemie tworzącym mapy pogody

<> Gromadzenie danych Obserwator <> Wyświetlanie danych Satelita Interfejs użytkownika Wspólne Wyświetlacz map Drukarka map Stacja meteoro logiczna Balon Mapa <> Przetwarzanie danych <> Archiwizacja danych Składowanie danych Sprawdzanie danych Integracja danych Składnica map Składnica danych ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 30

  

Kontekst systemu i modele użytkowania

Pierwszym etapem procesu projektowania oprogramowania jest zrozumienie związków między projektowanym oprogramowaniem a jego środowiskiem zewnętrznym. Kontekst systemu i modele użytkowania stanowią dwa uzupełniające się modele związków pomiędzy systemem a jego środowiskiem.

Kontekst systemu jest modelem statycznym, w którym opisuje się inne systemy obecne w tym środowisku.

Model użytkowania systemu jest modelem dynamicznym, w którym opisuje się, w jaki sposób system porozumiewa się ze swoim środowiskiem.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 31

Przypadki użycia stacji meteorologicznej

Uruchom Wyłącz Raportuj Dostrój Testuj Inżynieria oprogramowania, Rozdział 12 ©Ian Sommerville 2000 Slide 33

Opis przypadku użycia „Raportuj”

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 temperatury gruntu i powietrza, 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 Reakcja

System gromadzenia informacji meteorologicznych nawiązuje połączenie modemowe ze stacją meteorologiczną i żąda przekazania danych.

Wysył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.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 34

Projektowanie architektury

  Po zdefiniowaniu oddziaływania oprogramowania z jego środowiskiem można przystąpić do projektowania architektury systemu.

projektowanego systemu Przykład architektury automatycznej stacji przedstawionej za pomocą modelu warstwowego. Oto trzy warstwy oprogramowania takiej stacji meteorologicznej: meteorologicznej • Warstwa interfejsu, której zadaniem jest porozumiewanie się z innymi częściami systemu i oferowanie zewnętrznych interfejsów systemu.

• • Warstwa gromadzenia danych, której zadaniem jest zarządzanie odczytem danych z przyrządów i podsumowywanie danych meteorologicznych przed przesłaniem ich do systemu tworzącego mapy.

Warstwa przyrządów, która obudowuje wszystkie przyrządy służące do gromadzenia surowych danych o warunkach pogodowych.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 35

Architektura stacji meteorologicznej

Stacja meteorologiczna <> Interfejs <> Gromadzenie danych <> Przyrządy Obsługuje całą komunikację zewnętrzną Gromadzi i podsumowuje dane Pakiet przyrządów do zbierania surowych danych ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 36

Identyfikacja obiektów

   W praktyce ta czynność polega na wynajdowaniu

obiektów

.

Projekt jest pisany w kategoriach tych klas.

klas

Nie uchronimy się przed udoskonalaniem tych wstępnie rozpoznanych klas obiektów i ponownym przeglądem tego etapu procesu po tym, jak osiągnie się głębsze zrozumienie projektu.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 37

Sposoby identyfikacji

    Wykorzystanie analizy gramatycznej opisu systemu w języku naturalnym. Obiekty i atrybuty są rzeczownikami, a operacje i usługi czasownikami.

Wykorzystanie namacalnych bytów (rzeczy) z dziedziny zastosowania takich jak samolot, ról takich jak kierownik, zdarzeń takich jak żądanie, interakcji takich jak spotkanie, miejsc takich jak biura, jednostek organizacyjnych jak firmy itp. Wykorzystanie podejścia czynnościowego, w którym projektant zaczyna od zrozumienia ogólnego zachowania systemu. Różne zachowania przypisuje się do różnych części systemu.

Wykorzystanie analizy scenariuszy, w której rozpoznaje się i analizuje różne scenariusze w systemie. Po zanalizowaniu scenariusza zespół odpowiedzialny za tę analizę musi rozpoznać potrzebne obiekty, atrybuty i operacje.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 38

Klasy obiektów stacji meteorologicznej

   Klasa obiektów StacjaMeteorologiczna oferuje swojemu środowisku podstawowy interfejs stacji meteorologicznej.

Klasa obiektów podsumowanie wymagań danych.

DaneMeteorologiczne danych odczytanych z obudowuje różnych przyrządów stacji meteorologicznej. Skojarzone z nią operacje służą do gromadzenia i podsumowywania Klasy obiektów Termometr gruntowy, Wiatromierz i Barometr są bezpośrednio związane z przyrządami systemu. Odzwierciedlają namacalne byty sprzętowe systemu. Ich operacje służą do sterowania tym sprzętem.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 39

Przykłady klas obiektów w systemie stacji meteorologicznej

DaneMeteorologiczne StacjaMeteorologiczna

identyfikator raportPogodowy () dostrój (przyrządy) testuj () uruchom (przyrządy) wyłącz (przyrządy) temperaturyPowietrza temperaturyGruntu siłyWiatru kierunkiWiatru cisnienia opad gromadź () podsumuj ()

Barometr Termometr gruntowy Wiatromierz

temperatura SiłaWiatru kierunekWiatru ciśnienie wysokość testuj () dostrój () test () test () dostrój () Slide 40 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12

Rozpoznanie dalszych obiektów i usług

 Awarie przyrządów muszą być zgłaszane automatycznie.

Wymaga to atrybutów i operacji do sprawdzania poprawnego działania przyrządów.

 Liczba odległych stacji meteorologicznych jest duża.

Trzeba więc umieć rozpoznać dane pochodzące z poszczególnych stacji.

Stacje muszą zatem mieć identyfikatory.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 41

Modele projektowe

 Modele projektowe obejmują obiekty lub klasy obiektów systemu oraz, gdy ma to sens, różne rodzaje związków między tymi bytami.

 Mają być abstrakcyjne, żeby zbędne szczegóły nie zakrywały związków między nimi a wymaganiami systemowymi. Muszą tez zawierać wystarczająco dużo szczegółów, żeby programiści mogli podejmować decyzje implementacyjne.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 42

Rodzaje modeli projektowych

 Model statyczny, który służy do opisu statycznej struktury systemu w kategoriach klas obiektów systemowych i ich związków.

 Modele dynamiczne, które służą do opisu dynamicznej struktury systemu. Widać z nich interakcje między obiektami systemowymi.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 43

Przykłady modeli projektowych

   Modele podsystemów, w których uwzględnia się logiczne grupowanie obiektów w spójne podsystemy. Przedstawia się je na pewnego rodzaju diagramie klas, na którym każdy podsystem ma postać pakietu. Modele podsystemów są statyczne.

Modele przebiegu, w których uwzględnia się przebieg interakcji obiektów. W UML przedstawia się je w postaci diagramów przebiegu lub diagramów kooperacji. Modele przebiegu są dynamiczne.

Modele maszyn stanowych, z których wynika, w jaki sposób poszczególne obiekty zmieniają swój stan w odpowiedzi na zdarzenia. W UML przedstawia się je w postaci diagramów stanów.

Modele maszyn stanowych są dynamiczne.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 44

Przykład modelu podsystemów: powiązania obiektów stacji meteorologicznych

<> interfejs <> Gromadzenie danych SterownikKomunikacji DaneMeteorologiczne StacjaMeteorologiczna Stan przyrządów <> Przyrządy Termometr powietrza Termometr gruntowy ©Ian Sommerville 2000 Wskaźnik opadu Wiatromierz Barometr Łopatka wiatrowa Inżynieria oprogramowania, Rozdział 12 Slide 45

 

Przykład modelu dynamicznego: model przebiegu

Jednym z najbardziej przydatnych i zrozumiałych modeli dynamicznych, który można opracować, jest model przebiegu.

Dla każdego typu interakcji dokumentuje on przebieg zachodzących oddziaływań obiektów.

• • • • Obiekty biorące udział w interakcji są ułożone poziomo. Każdy z nich pod spodem ma podczepioną pionową kreskę.

Czas jest przedstawiony pionowo, tzn. czas biegnie w dół przerywanych pionowych linii.

Interakcje między obiektami mają postać podpisanych strzałek łączących pionowe linie.

Cienki prostokąt na linii życia obiektu reprezentuje okres, w którym ten obiekt steruje systemem.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 46

Przebieg operacji gromadzenia danych

żądanie (raport) :Sterownik Komunikacji :Stacja Meteorologiczna :Dane Meteorologiczne potwierdzenie () raportuj () podsumuj () odpowiedź (raport) potwierdzenie () wyślij (raport) ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 47

Modele maszyn stanowych

 Można wykorzystać model maszyny stanowej, w którym widać, jak egzemplarz zmienia swój stan w zależności od otrzymywanych komunikatów.

 Do zapisu modeli maszyn stanowych w UML oferuje diagramy stanów, które jako pierwszy wymyślił Harel (1987).

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 48

Diagram stanów obiektu StacjaMeteorologiczna

Wyłączony uruchom () wyłącz () ©Ian Sommerville 2000

Działanie

dostrój () Oczekiwanie testuj () Dostrajanie dostrojony Testowanie koniec transmisji koniec testu zegar koniec gromadzenia Transmitowanie Gromadzenie raportPogodowy () Podsumowywanie Inżynieria oprogramowania, Rozdział 12 podsumowanie gotowe o d s u m

Specyfikowanie interfejsów obiektów

    Ważną częścią komponenty.

procesu projektowania jest specyfikowanie interfejsów między różnymi komponentami. Trzeba wyspecyfikować interfejsy, aby można było równolegle projektować obiekty i Projektanci powinni unikać informacji o reprezentacji interfejsów w swoich projektach interfejsów.

Ten sam obiekt może mieć kilka interfejsów, które są sposobami postrzegania oferowanych metod.

W Javie można to bezpośrednio zrealizować, ponieważ interfejsy są deklarowane w oderwaniu od obiektów, a obiekty „implementują” interfejsy. Podobnie grupa obiektów może być dostępna przez jeden interfejs.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 50

Opis interfejsu stacji meteorologicznej w Javie

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 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 51

Ewolucja projektu

   Ważną zaletą podejścia obiektowego do projektowania jest uproszczenie procesu wprowadzania zmian w projekcie.

Wynika to z tego, że reprezentacja stanu obiektu nie wpływa na projekt. Zmiana wstępnie ustalonych wewnętrznych szczegółów obiektu prawdopodobnie nie wpłynie na inne obiekty systemowe.

Co więcej, obiekty są luźno powiązane, wprowadzenie nowych obiektów jest zatem zwykle łatwe i nie prowadzi do istotnych konsekwencji dla reszty systemu.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 52

Modyfikacja projektu

   Do obiektu StacjaMeteorologiczna na tym samym poziomie co obiekt DaneMeteorologiczne należy dodać obiekt o nazwie Jakość powietrza.

Należy dodać operację raport Jakości powietrza, której działanie polega na wysłaniu danych o zanieczyszczeniach do głównego komputera.

Należy dodać obiekty reprezentujące przyrządy do pomiaru poziomu zanieczyszczeń. W tym wypadku pomiarom będą podlegać tlenek azotu, dym i benzen.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 53

Nowe obiekty do monitorowania zanieczyszczeń

StacjaMeteorologiczna

Identifier raportPogodowy () raportJakościPowietrza () dostrój (przyrządy) testuj () uruchom (przyrządy) wyłącz (przyrządy)

Jakość powietrza

poziomTlenkuAzotu poziomDymu poziomBenzenu gromadź () podsumuj () Przyrządy do pomiaru zanieczyszczeń MiernikTlenkuAzotu MiernikDymu MiernikBenzenu ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 54

Główne tezy

    Projektowanie obiektowe jest sposobem projektowania oprogramowania, w którym zasadnicze komponenty projektu odpowiadają obiektom z ich prywatnym stanem i operacjami, a nie funkcjami.

Obiekt powinien mieć operacje konstruktowe i inspekcyjne, które umożliwiają odczyt stanu i jego modyfikację. Obiekt oferuje usługi (operacje korzystające z informacji o stanie) innym obiektom. Obiekty są tworzone w czasie wykonywania na podstawie specyfikacji zawartej w definicji klasy obiektów.

Obiekty można implementować sekwencyjnie lub współbieżnie. Obiekt współbieżny może być pasywny, wówczas jego stan jest zmieniany jedynie przez jego interfejs. Może być też obiektem aktywnym, który zmienia swój stan bez interwencji z zewnątrz.

Unified Modeling Language (UML) obejmuje wiele różnych notacji, które służą do dokumentowania interfejsów obiektów.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 55

Główne tezy

    Proces opisywania projektowania projektu za obiektowego pomocą obejmuje czynności projektowania architektury systemu, identyfikacji obiektów systemu, modeli obiektowych i dokumentowania interfejsów obiektów.

W trakcie procesu projektowania obiektowego można opracować wiele różnych modeli. W tej grupie są modele statyczne (modele klas, modele dziedziczenia, modele powiązań) i dynamiczne (modele przebiegu, modele maszyny stanowej).

Interfejsy obiektów należy precyzyjnie zdefiniować, żeby mogły z nich korzystać inne obiekty. Do dokumentowania interfejsów obiektu można użyć języka programowania, np. Javy.

Ważną zaletą projektowania obiektowego jest uproszczenie ewolucji systemu.

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 12 Slide 56