Analiza i Projektowanie Obiektowe PowerPoint PPT Presentation

presentation player overlay
1 / 31
About This Presentation
Transcript and Presenter's Notes

Title: Analiza i Projektowanie Obiektowe


1
Analiza i Projektowanie Obiektowe
Analiza - studium dziedziny problemu Grady
Booch, Object - Oriented Design with
Applications, 1991 James Rumbaugh i in,
Object-Oriented Modelling and Design, 1991 James
Martin, James Odell, Object-Oriented Analysis
and Design, Object-Oriented Methods a
Foundation, 1993 Ian Graham, Object Oriented
Methods, 1994 Peter Coad, Edward Yourdon,
Analiza obiektowa, Projektowanie obiektowe,
1991 Peter Coad, Jill Nicola, Programowanie
obiektowe, 1993 S. Shlaer, S.J.Mellor, Object
Oriented System Analisis - Modelling the World in
Data, 1988 S. Shlaer,S.J.Mellor, Object -
Lifecycles Modelling the World in States, 1991
2
Historia metod obiektowych
  • Faza I - lata 70-te, The Age of Invention
    (wynalezienia)
  • symulacja (discrete event simulation),
  • Simula 67,
  • Smalltalk Alan Key, Xerox rResearch Center
  • Faza II - lata 80-te, The Age of Confusion
    (zamieszania)
  • rozwój graficznych interfejsów uzytkownika - GUI
  • WIMP interfejs (Windows, Icons, Mice and
    Poiters),
  • podejscie obiektowe umozliwilo szybki rozwój
    takich interfejsów (Macintosh),
  • sztuczna inteligencja (Actor systems, systemy
    równolegle),
  • glowne problemy
  • efektywnosc,
  • brak baz danych operujacych na obiektach
  • Eiffel. C, inne jezyki hybrydowe
  • Faza III - The Age of Ripening (przyspieszonego
    rozwwoju)
  • zwrócenie uwagi na analize i projektowanie,
  • systemy CASE dla metod obiektowych,
  • postrelacyjne i obiektowe bazy danych,
  • standardy OMG
  • OMG - Object Management Group, zrzesza duze
    firmy komputerowe, opracowuje standardy dla metod
    obiektowych

3
Pojecia i terminologia
  • obiekt podstawowa cegielka, sklada sie z
    atrybutów (ukrytych) i metod (interfejs)
  • klasa kolekcja obiektów posiadajacych te same
    metody i takie same atrybuty, implementacja
    abstrakcyjnego typu danych
  • hermetyzacja ukrywanie informacji, udostepnianie
    tylko metod (interfejs), ukrywanie szczególów
    implement.
  • abstrakcja zasada ignorowania tych aspektów
    przedmiotu, które nie sa istotne z punktu
    widzenia biezacego celu
  • dziedziczenie technika wyrazania podobienstw,
    wyrazanie zwiazku generalizacja - specjalizacja
  • komunikat, komunikowanie sie poprzez wysylanie
    komunikatów
  • protokól zbiór komunikatów rozumianych przez
    obiekt
  • polimorfizm mozliwosc uzycia tego samego
    wyrazenia do oznaczenia róznych operacji,
    dynamiczne wiazanie metod
  • Struktury klas
  • struktura dziedziczenia, generalizacja -
    specjalizacjaAKO (is a kinf of ...)
  • struktura calosc - czesc, APO (is a part of...)

4
Analiza i Projektowanie - metody obiektowe
  • Wspólna zasada zaczynamy od rozpoznania
    struktury obiektów. Najwazniejsze jest, czym sa
    obiekty, a nie co robia.
  • Wspólne kroki wszystkich metod obiektowych
  • Identyfikacja klas i obiektów, ich atrybutów i
    metod
  • Ustalenie powiazan miedzy obiektami
  • Ustalenie interfejsu kazdego obiektu (protokolu)
  • Ustalenie wspólpracy obiektów, przeplyw
    informacji
  • Implementacja, tworzenie prototypu.

Analiza - Metoda Coad/Yourdon 5 glównych
czynnosci 1. znajdowanie klas i obiektów 2.
identyfikacja struktur 3. identyfikacja
tematów 4. definiowania atrybutów 5. definiowania
uslug model analizy obiektowej zawiera 5
warstw 1. warstwa tematów 2. warstwa klas i
obiektów 3. warstwa struktury 4. warstwa
atrybutów 5. warstwa uslug
5
Analizametoda OMT(metoda Rumbaugh)
OMT - Object Modelling Technique 3 czesci
skladowe modelu, pokazujace rózne jego
aspekty Model Obiektów (OMT Object
Model) statyczny obraz struktury modelu - klasy
- atrybuty - operacje - relacje miedzy klasami i
instancjami (powiazania - asocjacje, calosc -
czesc (agregacje), gen- spec) Model Dynamiczny
(OMT Dynamic Model) wspóldzialanie obiektów
(powiazania wyznaczone przez komunikaty). Tu
mieszcza sie rózne diagramy pokazujace przeplyw
sterowania, takze ograniczenia i warunki na
wartosci atrybutów. Model Funkcyjny (OMT
Functional Model) specyfikacja operacji jako
funkcji przeksztalacacych wejscie na wyjscie,
warunki poprawnosci (asercje).
6
I. Klasy i obiekty
W danej dziedzinie problemu szukamy klas i
obiektów (tylko tych, które sa potrzebne do
wyrazenia zadan systemu - abstrakcja na poziomie
systemu) Przyklad Agencja Sprzedazy
Nieruchomosci. Obiekty mieszkania, klienci,
urzednicy, wlasciciele agencji, umowy,
biuro, przedmioty stanowiace wyposazenie biura
itp.
Sposoby szukania obserwacje, rozmowy, czytanie
opisów i dokumenacji itd. Przyklad If a
customer enters a store with the intention of
buing a toy for a child, then advice must be
available within a reasonable time concerning the
suitability of the toy for a child. This will
depend on the age range of the child and the
attributes of the toy. If the toy is a dangerous
item, then it is unsuitable. potencjalne
klasy potencjalne uslugi (akcje) Wynik klasy
customer, store, toy, child, advice, time, age
range, dangerous item operacje enter, buy,
giving the advice
7
System rejestracji pojazdów i tytulów
wlasnosci Sformulowanie problemu System
przechowuje informacje o nastepujacych
rzeczach Organizacja nazwa, kierownik, adres,
telefon Urzednik nazwisko, adres, jednoznaczny
identyfikator, autoryzacja, data poczatkowa, data
koncowa Wlasciciel nazwisko, adres,
telefon Tytul wlasnosci numer, dowód wlasnosci,
przedstawiony tytul wlasnosci, data i czas tytulu
wlasnosci, oplata Rejestracja data i czas,
poczatkowa data i czas, koncowa data i czas, opis
tablicy rejestracyjnej, nalepka,
oplata Pojazd numer, rok, marka, model, rodzaj
nadwozia, kolor, wartosc oraz dla ciezarówek
liczba pasazerów, przebieg, rodzaj
paliwa, nosnosc dla motocykli liczba pasazerów,
przebieg dla przyczep waga brutto dla przyczep
podróznych liczba pasazerów, przebieg, rodzaj
paliwa, numer nadwozia, dlugosc Urzednicy sa
odpowiedzialni za rejestracje i wydany tytul
wlasnosci oraz za przyjete oplaty. Kazdy urzednik
nalezy do Organizacji (powiat, gmina itd). System
wysyla zawiadomienie o koniecznosci wznowienia
rejestracji. Potencjalne klasy i obiekty -
klasy pochodzace z innego systemu (rózne
pojazdy) - zapamietane zdarzenia (czynnosc
urzedowa wydania tytulu wlasnosci,
czynnosc urzedowa rejestracji) - odgrywane role
(Osoba wlasciel, osoba urzednik) - organizacja
8
Coad/Yourdon
II. Znajdowanie struktury (sposób organizacji)
struktura Gen - Spec (generalizacja -
specjalizacja) oznacza jest, jest
rodzajem np. pojazd -- pojazd osobowy, pojazd
osobowy jest pojazdem
generalizacja
specjalizacja1
specjalizacja2
Przy decydowaniu o strukturze Gen-Spec trzeba
rozpoznac podobienstwa klas, wspólne atrybuty i
uslugi, nowe atrybuty i uslugi czy podklasa
jest rodzajem nadklasy
9
Struktura gen - spec musi odzwierciedlac
generalizacje - spec. istniejaca w dziedzinie
problemu !
Hierarchia
Krata
Osoba_urzednik_wlasciciel
10
Struktura calosc - czesc
Oznacza posiada samolot -- silnik samolot
posiada silnik
calosc
1,m
1,m
1
1
czesc1
czesc2
Oznaczenia liczbowe a, b 0 lt a lt b
a 0 lt a
calosc sklada sie z 1 lub
wiecej czesci kazda czesc nalezy do dokladnie
jednej calosci Strategia zajdowania struktury
calosc - czesc Zwracamy uwage na warianty
zestawienie -- czesci samolot -- silnik
pojemnik --- zawartosc samolot -- ladunek
kolekcja --- elementy itp. firma --
pracownik Klasy reprezentujace czesci powinny
nalezec do dziedziny problemu i miec dla niej
znaczenie.
11
III. Zajdowanie tematów
Podzial calej dziedziny na mniejsze, jednorodne
czesci, rzadko sie komunikujace, jak najbardziej
niezalezne od siebie. Przyklad z rejestracja
pojazdów
1. Organizacja
3. Osoba
2. CzynnoscUrzedowa
4. Pojazd
Po przemysleniu i minimalizacji styków i
zaleznosci
1. Ludzie
1. Prawo
IV. Definiowanie atrybutów
Atrybuty to sa pewne dane (stan systemu), dla
których kazdy obiekt ma swoja wlasna wartosc.
(1) znalezienie atrybutów (stwierdzenie, jakie
wiadomosci o obiekkcie sa potrzebne) (2)
umieszczenie atrybutów we wlasciwej klasie (moze
zmienic sie struktura gen - spec) (3)
znalezienie powiazan obiektów (niejawne
atrybuty) (4) sprawdzenie sensownosci i potrzeby
pewnych atrybutów (5) specyfikacja atrybutów
(typ, domyslna wartosc, czy obowiazkowy,
zaleznosci od innych atrybutów, jaki jest
do niego dostep itp.)
12
Powiazania miedzy obiektami (associations)
Powiazanie obiektów jest modelem relacji miedzy
obiektami. Liczby przy powiazaniach oznaczaja ile
obiektów widzi dany obiekt.
Samolot
PlanLotu
0, m
1
Powiazanie jeden do wielu lub zera. Samolot
jest opisany w wielu (lub zadnym) planie
lotu, PlanLotu opisuje dokladnie jeden Samolot.
Inne rodzaje powiazan wiele do wielu ---
tego nalezy unikac (chyba, ze sie nie da) jeden
do wielu jeden lub nic do jednego
itp. Pozbywanie sie powiazania wiele do wielu
0, m
Student
Egzamin
0, m
0, m
0, m
Praca egzaminacyjna
1
Ocena
1
13
Rysunek z Yourdona - warstwy tematów i atrybutów
14
Metoda OMT (Rumbaugh) Model obiektów
Wykonujemy kolejne kroki K1. Piszemy
specyfikacje systemu w jezyku naturalnym K2.
Tworzymy diagram klas - rozpoznajemy klasy -
identyfikujemy atrybuty obiektów (rodzaj, typ
itd) - definiujemy operacje obiektu - ustalamy
relacje miedzy obiektami K3. Tworzymy tekstowa
specyfikacje kazdej klasy, tzn. dokladny opis
kazdej klasy, atrybutów, operacji, zwiazków
relacyjnych - dokumentacja systemu (na ogól
system CASE sam to robi) K4. Wypelniamy slownik
danych, czyli opis slowny wszystkich elementów
modelu (obiektów, powiazan , atrybutów i
operacji) K5. Sprawdzamy zgodnosc z innymi
modelami (dynamicznym i funkcyjnym) K6.
Generujemy prototyp.
Instancja
Klasa
Nazwa
atrybut typ atrybut typ wart. pocz.
(nazwa klasy) atrybut wartosc ...
operacja (pf) typ .....
atrybuty klasowe poprzedzone
Powiazania
nazwa powiazania
klasa 1
klasa 2
rola 1
rola 2
nazwa powiazania
klasa 1
klasa 2
kwal.
rola 1
rola 2
kwalifikator
15
jeden do jednego
jeden do zero lub jednego
jeden do zero lub wielu
wiele do wielu
jeden do co najmniej jednego
1
atrybut powiazania
calosc - czesc (sklada sie z ... )
nadklasa
powiazanie - association (ma, wie o , ...)
podklasa
samolot wiezie wielu (byc moze zero) poasazerów
samolot sklada sie z wielu (byc moze zera) kól
16
Przyklad - samochód K1. Specyfikacja
systemu System ma przechowywac informacje o
samochodzie, takie jak ilosc benzyny
(gasQuantity). Uzytkownik moze uruchomic
samochód, prowadzic go, zatrzymac, dodac
pasazera, usunac pasazera, zatelefonowac z
telefonu komórkowego i odebrac taki telefon. K2.
Diagram klas
K3. Specyfikacja kazdej klasy, atrybutów,
operacji i powiazan, moze byc wedlug jakiegos
szablonu K4. Slownik danych, np Vehicle klasa
abstrakcyjna, pojazd Car klasa, posiada jeden
obiekt, konkretny rodzaj
pojazdu
17
Powiazania
1. Powiazania nie-binarne. Programista programuje
w jezyku w danym projekcie. Diagram klas..
Diagram instancji klas.
2. Nazwa powiazania i role, jakie pelnia obiekty
w tym powiazaniu.
18
3. Atrybuty powiazan i role.
pracuje dla
szef
placa nr umowy
pracownik
ocena wydajnosci
4. Kwalifikacja powiazania - redukuje
liczebnosc powiazania
katalog zawiera wiele plików, plik nalezy do 1
katalogu.
plik jest jednoznacznie identyfikowany przez
nazwe w katalogu
5. Calosc - czesc (sklada sie z.., jest zbudowany
z ...). Ma wlasnosc propagacji (operacja na
calosci przenosi sie na czesci)
1
19
Propagacja operacji automatyczne zastosowanie
operacji do czesci.
Metadane - dane opisujace inne dane (np. klasa
opisuje instancje) realacja instancjonowania
(instantiation) opisuje zaleznosc miedzy klasa a
jej instancja, lub (na innym poziomie) miedzy
pewnym szblonem a konkretnymi obiektami bedacymi
instancjami tego szablonu, lub miedzy metadana a
danymi przez nie opisywanymi.
Rus. 4.5 z Rumbaough - str. 61
20
Przyklad - system okien
21
Coad - Yourdon Definiowanie uslug (akcji obiektu)
Uslugi okreslaja sposób zachowania sie
obiektu. Uslugi proste tworzenie i inicjowanie
nowego obiektu (usluga klasy) pobranie /
ustawienie atrybutu ustalenie / skasowania
powiazania usuwanie obiektu uslugi specyficzne
dla problemu ..... Uslugi zlozone funkcje cos
obliczajace, posiadajace nietrywialny
algorytm Kazdy komunikat wyznacza polaczenie
(relacje)
Nadawca
Odbiorca
usluga
Aby wyznaczyc takie polaczenia (i sprawdzic
kompletnosc modelu) uzywamy watków wykonania
(chodzimy po relacji wyznaczonej przez
komunikaty) - rodzaj symulacji zachowania
systemu. Specyfikacja uslugi - jak zwykla
specyfikacja funkcji.
22
Przyklad scenariusza komunikacji (watku
wykonania) Wydanie polecenia sprzedaj
produktowi (watek komunikacji z
kasa) Produkt dostaje polecenie, ze mam sie
sprzedac M1 znam swoja cene wiem, z która
kasa jestem zwiazany wysylam do kasy komunikat,
zeby zebrala pieniadze inkasuj Kasa M2 dostaje
pieniadze wezPieniadze zwracam ilosc
zebranych pieniedzy Produkt Jesli otrzymana
kwota jest wieksza lub równa mojej cenie, M1
kaze mojemu dystrybutorowi, zeby mnie
wydal wydaj kaze mojej kasie wydac reszte
zwrócReszte w przeciwnym przypadku zwracam
wynik nie wydane nadawcy polecenia Kasa M3
wydaje reszte Produkt M1 zwracam wynik
wydane do nadawcy polecenia
M1 sprzedaj M2 inkasuj M3 zwrócReszte
Dystrybutor
wydaj
0, m
Kasa
1
1
inkasuj wezPieniadze zwrócReszte
Produkt
0, m
sprzedaj
23
Rysunek z Yourdona - warstwy tematów, klas i uslug
24
Metoda OMT II. Model Dynamiczny
Szereg diagramów pokazujacych dynamiczne
zachowanie sie systemu - reakcje na zdarzenia,
zmiany stanu i przekazywanie komunikatów
(przeplyw sterowania) Opisujemy zaleznosci
zdarzenie -- wyslanie komunikatu (ów) -- wynik
Krok 1. Flow diagram dla zdarzen systemu
Krok 2. Opisanie sekwencji komunikatów
(scenariusz, watek) odpowiadajacej kazdemu
zdarzeniu
Sekwencja nadawca odbiorca 1 external
user car1.start() 2 car1 motor1.start()
3 car1.Accept
Extern
25
Krok 3. Diagram interakcji obiektów (2 sposoby)
Krok 4. State transition diagram - model systemu
jako automatu skonczonego. Ustalamy stany,
operacje, warunki przejscia od stanu do
stanu, zdarzenia zewnetrzne (dla kazdego obiektu).
26
Notacja
przejscie ze stanu do stanu
zdarzenie (atrybuty) warunek /wykonywana akcja
operacja - akcja wywolana zdarzeniem, jej czas
trwania jest nieistotny
operacja moze byc zwiazana takze ze stanem
zdarzenie
stan
do operacja
w tym przypadku operacja trwa od momentu wejscia
do stanu do momentu jego opuszczenia.
Uwaga takie diagramy powinny byc rysowane dla
calego systemu, i dla kazdego obiektu (jesli
obiekt ma jakies dynamiczne zachowanie). Diagramy
posiadaja strukture, tzn elementem diagramu moze
byc inny diagram, przejscie moze byc
uszczególowione przez diagram itd.
27
Przyklad - telefon.
scenariusz (watek) caller lifts receiver dial
tone begins caller dials digit (5) dial tone
ends caller dials digit (5) caller dials digit
(5) caller dials digit (1) caller dials digit
(2) caller dials digit (3) caller dials digit
(4) called phone begins ringing ringing tone
apperars in calling phone called party
answers called phone stops ringing ringing tone
disappears in calling phone phones are
connected called party hangs up phones are
disonnected caller hangs up event trace diagram
(identyfikujemy nadawców i odbiorców)
rys. 5.3 Rumbaugh
28
Identyfikujemy stany obiektów lub systemu i
opisujemy je co oznacza stan, zdarzenia, ktore
do niego prowadza, warunki charakteryzujace stan
(wlasnosci spelniane przez atrybuty) akceptowane
zdarzenia i podejmowane akcje Diagram zmiany
stanów (automat) Diagram zmiany stanów linii
telefonicznej (tylko dla jednej klasy,
ale opisuje dzialanie wszystkich obiektów tej
klasy).
rys. 5.10 Rumbaugh
29
Metoda OMT III. Model Funkcyjny
Co robi system? Opisujemy wejscie i wyjscie
kazdej operacji, na poziomie calego systemu (np.
operacja start) i na poziomie kazdego
obiektu. Forma opisu - dowolna (tabelka, opis
tekstowy, formuly logiczne, diagramy data -
flow). Zbiór transformacji i asercji (warunki
wstepne, koncowe, niezmienniki, zglaszane
wyjatki i bledy). Przykladowa forma opisu
Opis operacji start dla samochodu
30
Diagramy przeplywu danych (data flow diagrams)
oznacza przeplyw. System przechodzi no nastepnego
stanu, jesli zostaly zebrane wszystkie dane
(starowanie danymi)

proces
sluzy do przechowywania danych na pózniej
procesy opisuja akcje atomowe lub
zlozone (poddiagramy)
opis danych
aktor
przeplyw danych
warunek
aktywny obiekt sterujacy przeplywem danych
przeplyw sterowania bez przekazania
danych
zakodowane haslo
sprawdzenie
saldo
haslo OK
haslo
ile chce
klient
aktualizacja
gotówka
31
Analiza - podsumowanie metody OMT
Model swiata rzeczywistego. 3 modele OMT budowane
sa iteracyjnie.
Users
Generate Requests
Developers
Managers
Generate Requests
Analiza
Projekt
Write a Comment
User Comments (0)
About PowerShow.com