IOpr, wykład 3, analiza i projekt(1)

background image

Inżynieria oprogramowania, wykład 3, slajd 1

Analiza i projektowanie oprogramowania

dr inż. Grzegorz
Bliźniuk

Inżynieria oprogramowania

wykład 3

background image

Inżynieria oprogramowania, wykład 3, slajd 2

Plan wykładu

1. Faza analizy systemów

2. Projektowanie architektoniczne

3. Przegląd metodyk pod kątem analizy i projektowania

4. Modele i wyniki pochodne fazy A&D

5. Narzędzia CASE

6. Podsumowanie

Bonus: materiały do samodzielnego studiowania

Przygotowane głównie na podstawie wykładu BYT K.Subiety,
D.Pierzchały
i materiałów własnych prowadzącego

background image

Inżynieria oprogramowania, wykład 3, slajd 3

1. Faza analizy

Celem fazy określenia wymagań jest udzielenie odpowiedzi na
pytanie:
Co i przy jakich ograniczeniach system ma robić?
Wynikiem tej fazy jest zbiór wymagań na system.

Celem fazy analizy jest ustalenie wszystkich tych czynników lub
warunków w dziedzinie przedmiotowej, w otoczeniu
realizatorów projektu, w istniejących lub planowanych
systemach komputerowych, które mogą wpłynąć na decyzje
projektowe, na przebieg procesu projektowego i na realizację
wymagań.
Wynikiem jest logiczny model systemu, opisujący sposób
realizacji przez system postawionych wymagań, lecz
abstrahujących od szczegółów implementacyjnych.

W odróżnieniu, celem fazy projektowania jest udzielenie odpowiedzi
na pytanie:
Jak system ma być zaimplementowany? Wynikiem jest opis sposobu
implementacji.

Określenie wymagań Projektowanie Implementacja Testowanie Konserwacja

Faza strategiczna

Analiza

Instalacja

Dokumentacja

background image

Inżynieria oprogramowania, wykład 3, slajd 4

Model analityczny

Z reguły wykracza poza zakres odpowiedzialności systemu. Przyczyny:

Ujęcie w modelu pewnych elementów dziedziny problemu nie
będących częścią systemu czyni model bardziej zrozumiałym.
Przykładem jest ujęcie w modelu systemów zewnętrznych, z
którymi system ma współpracować.

Na etapie modelowania może nie być jasne, które elementy
modelu będą realizowane przez oprogramowanie, a które w
sposób sprzętowy lub ręcznie.

Dostępne środki mogą nie pozwolić na
realizację systemu w całości.
Celem analizy może być wykrycie tych
fragmentów dziedziny problemu, których
wspomaganie za pomocą oprogramowania
będzie szczególnie przydatne.

Model analityczny

Zakres

odpowiedzialności

systemu

Dziedzina problemu

background image

Inżynieria oprogramowania, wykład 3, slajd 5

Cechy modelu analitycznego

(logicznego)

Uproszczony opis systemu;
Hierarchiczna dekompozycja funkcji systemu;
Model logiczny jest opisany przy pomocy notacji zgodnej z
pewną konwencją;
Jest on zbudowany przy użyciu dobrze rozpoznanych metod i
narzędzi;
Jest on używany do wnioskowania o przyszłym oprogramowaniu;
Model oprogramowania powinien być jego uproszonym opisem,
opisującym wszystkie istotne cechy oprogramowania na
wysokim poziomie abstrakcji.
Model ten jednakże nie zastępuje doświadczenia i wnikliwości
projektantów, lecz pomaga projektantom w zastosowaniu tych
walorów.

Logiczny model oprogramowania:

• pokazuje co system musi robić;

• jest zorganizowany hierarchicznie, wg poziomów
abstrakcji

• unika terminologii implementacyjnej

• pozwala na wnioskowanie „od przyczyny do skutku” i
odwrotnie.

background image

Inżynieria oprogramowania, wykład 3, slajd 6

Czynności w fazie analizy

Rozpoznanie, wyjaśnianie, modelowanie, specyfikowanie i
dokumentowanie rzeczywistości lub problemu będącego
przedmiotem projektu;

Ustalenie kontekstu projektu;

Ustalenie wymagań użytkowników;

Ustalenie wymagań organizacyjnych

Inne ustalenia, np. dotyczące preferencji sprzętowych,
preferencji w zakresie oprogramowania, ograniczeń
finansowych, ograniczeń czasowych, itd.

W zasadzie analiza nie powinna stawiać nacisku na zmianę
rzeczywistości poprzez wprowadzenie tam nowych elementów np.
w postaci systemu komputerowego. Jej celem jest rozpoznanie
wszystkich tych aspektów rzeczywistości, które mogłyby mieć
wpływ na postać, organizację lub wynik projektu.

background image

Inżynieria oprogramowania, wykład 3, slajd 7

Reguły modelu logicznego opartego na

funkcjach

Funkcje muszą mieć pojedyncze, zdefiniowane cele.
Funkcje powinny być zdefiniowane na tym samym poziomie

(np.

funkcja Oblicz Sumę Kontrolną jest niższego poziomu niż funkcja
Obsługa Protokołu Sieciowego).

Interfejsy do funkcji (wejście i wyjście) powinny być minimalne.
Pozwala to na łatwiejsze oddzielenie poszczególnych funkcji.
Przy dekompozycji funkcji należy trzymać się zasady „nie więcej
niż 7 funkcji podrzędnych”.
Opis funkcji nie powinien odwoływać się do pojęć i terminów
implementacyjnych

(takich jak plik, zapis, zadanie, moduł, stacja

robocza).

Należy podawać wskaźniki wydajnościowe funkcji

(szybkość,

częstość, itd)

wszędzie tam, gdzie jest to możliwe.

Powinny być zidentyfikowane funkcje krytyczne

(od których zależy

istota systemu).

Nazwy funkcji powinny odzwierciedlać ich cel i mówić co ma być
zrobione, a nie jak ma być zrobione.
Nazwy funkcji powinny mieć charakter deklaracyjny

(np.

Walidacja Zlecenia Zewnętrznego),

a nie proceduralny

(np. Czynności

Systemu po Otrzymaniu Zlecenia).

background image

Inżynieria oprogramowania, wykład 3, slajd 8

Notacje w fazie analizy

Rodzaje
notacji

Język naturalny
Notacje graficzne
Specyfikacje - ustrukturalizowany zapis tekstowy i numeryczny

Szczególne znaczenie maja notacje graficzne. Inżynieria
oprogramowania wzoruje się na innych dziedzinach techniki,
takich jak elektronika i mechanika. Zalety notacji graficznych
potwierdzają badania psychologiczne.

Funkcje notacji

Narzędzie pracy analityka i projektanta, zapis i analiza pomysłów
Współpraca z użytkownikiem
Komunikacja z innymi członkami zespołu
Podstawa implementacji oprogramowania
Zapis dokumentacji technicznej

Notacje powinny być przejrzyste, proste, precyzyjne, łatwo zrozumiałe,
umożliwiające modelowanie złożonych zależności.

background image

Inżynieria oprogramowania, wykład 3, slajd 9

Czynności procesu tworzenia

oprogramowania

Projektowanie i implementowanie wymagań:

– Charakterystyczne składowe analizy i projektowania:

Projektowanie
architektury

Specyfikowa
nie
abstrakcyjne

Projektowanie
interfejsów

Projektowanie
komponentów

Architektura
systemu

Specyfikacja
programowania

Specyfikacja
interfejsów

Specyfikacja
komponentów

Projektowan
ie
struktury
danych

Specyfikacja
struktury
danych

Specyfikacja
algorytmów

Projektowanie
algorytmów

Specyfikacja
wymagań

Produkty projektowania

Składowe projektowe

background image

Inżynieria oprogramowania, wykład 3, slajd 10

Czynności procesu tworzenia

oprogramowania

Zakres fazy analizy:

–Wykracza poza zakres odpowiedzialności systemu ->

kontekst użycia i współpracy;

–Ujęcie w modelu pewnych elementów nie będących

częścią systemu -> model jest bardziej zrozumiały;

–Abstrakcja modelowania -> podczas modelowania może

nie być jasne, które elementy modelu będą realizowane
przez oprogramowanie a które w sposób sprzętowy lub
ręcznie;

–Dostępne środki mogą nie pozwolić na realizację systemu

w całości -> analiza może wykryć fragmenty, które mogą
być szczególnie ważne;

background image

Inżynieria oprogramowania, wykład 3, slajd 11

Czynności procesu tworzenia

oprogramowania

Wybrane zadania i techniki fazy analizy i
projektowania:

–Ustalenie kontekstu projektu;
–Modelowanie i dokumentowanie rzeczywistości lub

problemu będącego przedmiotem projektu;

–Budowa statycznego modelu klas
–Analiza funkcji i przypadków użycia
–Weryfikacja klas i obiektów
–Identyfikacja i definiowanie metod oraz komunikatów
–Modelowanie stanów i przejść między stanami
–Modelowanie procesów i przepływów danych
–Modelowanie przepływu sterowania

background image

Inżynieria oprogramowania, wykład 3, slajd 12

Architektura systemu

System informatyczny jest złożoną konstrukcją, której

stopień skomplikowania zależy od złożoności architektury;

Wielkie systemy są zwykle podzielone na podsystemy, które

oferują pewien zbiór powiązanych ze sobą interfejsów;

Wymagane jest projektowanie architektoniczne, którego

wynikiem jest opis architektury oprogramowania;

Urzeczywistnienie pomysłów architektonicznych wymaga:

–idei (pomysł, cel),
–planów (architektura, zagospodarowanie),
–wiedzy (metody, techniki),
–zasobów (materiały, narzędzia, czas, ludzie),
–nadzoru i pielęgnacji we wszystkich

etapach życia (projekt, budowa,

użytkowanie, wycofanie);

background image

Inżynieria oprogramowania, wykład 3, slajd 13

Architektura systemu

Architektura systemu informatycznego jest modelem
systemu uwzględniającym decyzje analityka/projektanta
dotyczące podziału systemu na elementy składowe,
wzajemne relacje pomiędzy tymi elementami, interakcje
pomiędzy nimi, jak również ich przeznaczenie.

Często dla tego samego systemu opisuje się różne
architektury
stanowiące różne i komplementarne
punkty jego widzenia, np.: architektura przetwarzania
danych,

architektura

bezpieczeństwa

systemu,

architektura

sprzętowo-systemowa,

architektura

interoperacyjności, architektura warstw systemu itd.

background image

Inżynieria oprogramowania, wykład 3, slajd 14

Architektura systemu

Proces projektowania architektonicznego polega

na ustaleniu podstawowego zrębu systemu;

Podział architektoniczny jest niezbędny do

strukturalizacji i porządkowania specyfikacji;

Model architektoniczny jest zwykle punktem

początkowym do specyfikowania rozmaitych

części systemu;

Obejmuje identyfikację najważniejszych

komponentów systemu i komunikacji między

nimi;

Architektury są charakterystyczne dla różnych

dziedzin;

background image

Inżynieria oprogramowania, wykład 3, slajd 15

Architektura systemu

Składowe procesy projektowania architektonicznego:

–Strukturalizacja systemu:

»System jest dzielony na kilka podstawowych podsystemów,

przy czym podsystem jest niezależną jednostką
oprogramowania;

»Identyfikuje się tu komunikację między podsystemami;

–Modelowanie sterowania:

»Określa się ogólny model związków sterowania między

częściami systemu;

–Podział na moduły:

»Każdy zidentyfikowany podsystem jest dzielony na moduły;
»Architekt musi wskazać typy modułów i ich połączenia;

background image

Inżynieria oprogramowania, wykład 3, slajd 16

Architektura systemu

Wyniki projektowania architektonicznego:

–Dokumentacja zawierająca modele graficzne i opisy tekstowe;
–Modele przedstawiają rozmaite perspektywy architektury;

Modele architektoniczne:

–Statyczny model strukturalny - komponenty lub podsystemy,

które można zbudować jako niezależne jednostki;

–Model dynamiczny procesu - przedstawia się podział systemu

na procesy realizujące się podczas pracy systemu;

–Model interfejsów - definiuje się usługi oferowane przez każdy

podsystem za pośrednictwem jego interfejsu publicznego;

–Model związków - związki, takie jak przepływ danych między

podsystemami;

background image

Inżynieria oprogramowania, wykład 3, slajd 17

Architektura systemu

Wybrane wyniki projektowania architektonicznego:

–Podsystem:

»jest systemem autonomicznym;
»jego usługi nie zależą od usług oferowanych przez inne podsystemy;
»składa się z modułów i ma interfejsy do komunikacji z innymi

podsystemami;

–Moduł:

»jest komponentem systemu - nie jest traktowany jako niezależny

system;

»oferuje usługi innym modułom i korzysta z usług innych modułów;
»zazwyczaj zbudowany z kilku innych, prostszych komponentów:
»prezentowany jako:

Model obiektowy - system jest dzielony na zbiór porozumiewających się obiektów;

Model przepływu danych (strukturalny) - system jest dzielony na moduły
funkcjonalne, które pobierają dane wejściowe i przetwarzają je na dane wyjściowe;

background image

Inżynieria oprogramowania, wykład 3, slajd 18

Architektura systemu

Modele obiektowe:

–Model obiektowy architektury systemu dzieli

system na zbiór luźno uzależnionych od siebie
obiektów, z dobrze zdefiniowanymi interfejsami.

–Obiekty korzystają z usług oferowanych przez

inne obiekty.

–Podział obiektowy uwzględnia klasy obiektów,

ich atrybuty i operacje.

background image

Inżynieria oprogramowania, wykład 3, slajd 19

Architektura systemu

Modele przepływu danych:

–Przekształcenia funkcyjne przetwarzają swoje dane

wejściowe na dane wyjściowe.

–Dane przepływają od jednego do drugiego procesu i są

przekształcane w miarę swojej wędrówki przez cały ciąg.

–Każdy krok przetwarzania jest implementowany jako

przekształcenie.

–Dane wejściowe przepływają przez te przekształcenia do

chwili wytworzenia z nich danych wyjściowych.

–Przekształcenia mogą działać sekwencyjnie lub

równolegle.

–Przekształcenie może przetwarzać dane jedna po drugiej

lub w postaci jednego wsadu.

background image

Inżynieria oprogramowania, wykład 3, slajd 20

Architektura systemu

Modele przepływu danych:

Wystaw

upomnienia

Wystaw

pokwitowania

Zidentyfikuj

płatności

Odczytaj

wystawione

faktury

Płatności

Faktury

Upomnienia

Pokwitowanie

Znajdź

przetermino

wane

faktury

background image

Inżynieria oprogramowania, wykład 3, slajd 21

Architektura systemu

Własności architektury systemu:

–Efektywność (performance)

» Krytyczne operacje w niewielkiej liczbie podsystemów aby

zminimalizować komunikację

–Zabezpieczenie (security)

» Należy zastosować w architekturze strukturę warstwową, krytyczne

elementy w warstwie wewnętrznej

–Bezpieczeństwo (safety)

» Operacje dotyczące bezpieczeństwa powinny znaleźć się w jednym

podsystemie lub w niewielkiej liczbie podsystemów.

–Dostępność (availability)

» Należy uwzględnić w architekturze komponenty nadmiarowe.

–Zdatność do pielęgnacji (maintainability)

» Architektura systemu powinna składać się z drobnoziarnistych,

samodzielnych komponentów.

background image

Inżynieria oprogramowania, wykład 3, slajd 22

Architektura systemu

Własności architektury systemu - security vs.
safety:

–Security (zabezpieczenie):

»Niedopuszczenie do nieautoryzowanego dostępu do danych;
»Dotyczy narażenia na ryzyko prywatności;
»Przewiduje i zabezpiecza przed złośliwymi działaniami;

–Safety (bezpieczeństwo):

»Uniknięcie groźnych konsekwencji;
»Dotyczy bardziej narażenia na niebezpieczeństwo ludzkiego

życia, środowiska;

»Przewiduje nie tylko złośliwe działania, ale także te w dobrej

intencji, które mogą narazić na niebezpieczeństwo;

background image

Inżynieria oprogramowania, wykład 3, slajd 23

Czynności procesu tworzenia

oprogramowania

Projektowanie i implementowanie wymagań:

–Metodyki (metody) analizy i projektowania:

»strukturalne;
»coraz bardziej popularne obiektowe;

–Ich użycie polega głównie na opracowaniu graficznych

modeli systemu oraz opisów tekstowych wg ustalonych
szablonów;

–Metodyka:

»Strategia postępowania oparta na doświadczeniach i

heurystykach oraz zbiorach reguł, zasad, metod, technik i
narzędzi;

–Metoda:

»uporządkowane procedura, która poprzez zdefiniowane techniki

umożliwia posługiwanie się narzędziami;

background image

Inżynieria oprogramowania, wykład 3, slajd 24

3. Przegląd metodyk A&D

Obecnie dominują dwa podejścia:

1.

Podejście semantyczne (nazywane
również strukturalnym)

2.

Podeście obiektowe

background image

Inżynieria oprogramowania, wykład 3, slajd 25

Notacja a metodyka

Dowolny język, w tym notacje stosowane w metodykach, oprócz
składni posiada dwa znacznie od niej ważniejsze aspekty:
semantykę i pragmatykę.

Pragmatyka określa, jak do konkretnej sytuacji dopasować pewien wzorzec
notacyjny. Pragmatyka wyznacza więc procesy prowadzące do wytworzenia
zapisów wyników analizy i projektowania, które są zgodne z intencją
autorów tej notacji. Jakakolwiek notacja nie ma większego sensu bez
wiedzy o tym, w jaki sposób może być ona użyta w ramach pewnego
procesu analizy i projektowania.

W metodykach pragmatyka stosowanej notacji (czyli jak i do czego jej
użyć) jest sprawą podstawową. Jest ona zazwyczaj trudna do objaśnienia:
nie ma innego sposobu oprócz pokazania sposobów użycia na przykładach
przypominających realne sytuacje. Niestety, realne sytuacje są zazwyczaj
bardzo skomplikowane, co powoduje pewien infantylizm przykładów
zamieszczanych w podręcznikach.

Semantyka

określa, co należy rozumieć pod przyjętymi

oznaczeniami.

Pragmatyka

określa, w jaki sposób i do czego należy używać

przyjętych oznaczeń.

Składnia

określa, jak wolno kombinować ze sobą przyjęte

oznaczenia.

background image

Inżynieria oprogramowania, wykład 3, slajd 26

Metodyki strukturalne – podejście

semantyczne

Metodyki strukturalne - łączą statyczny opis danych oraz
statyczny opis procesów.

Do tej klasy należą:

• Metodyka Yourdona (DeMarco i Ward/Mellor);

• Structured System Analysis and Design Methodology (SSADM);

• Structured Analysis and Design Technique (SADT).

Uważa się, że wadą
metodyk
strukturalnych są
trudności w
zintegrowaniu modeli.

Zgodnie z DeMarco, analiza strukturalna używa następujących technik.

Diagramy Przepływu Danych (Data Flow Diagrams, DFD)

• Słownik Danych (Data Dictionary)

• Strukturalny Angielski (Structured English) -> strukturalny polski

• Tablice Decyzyjne (Decision Tables)

• Drzewa Decyzyjne (Decision Trees)

structured methodologies, structured analysis

Dodatkowo:

Schemat Transformacyjny (Transformation Schema)

• Diagram Przejść Stanów (State Transition Diagram)

• Lista Zdarzeń (Event List)

• Schemat Danych (Data Schema)

• Pre- i post- warunki (Pre- and Post-Conditions)

• Diagramy Encja-Związek (występują w SSADM)

• Historie Życia Encji (występują w SSADM)

background image

Inżynieria oprogramowania, wykład 3, slajd 27

Klasyczny cykl życia w analizie

strukturalnej

background image

Inżynieria oprogramowania, wykład 3, slajd 28

Strategia

Obejmuje:

–ogólny model przedsiębiorstwa,
–wymagania,
–harmonogram prac,
–ograniczenia finansowe i techniczne;

Modele:

–procesów (PD),
–danych (ERD),
–funkcji (FHD),
–przepływów (DFD);

background image

Inżynieria oprogramowania, wykład 3, slajd 29

Faza analizy strukturalnej

Głównym celem analizy jest wprowadzenie strukturalnej

specyfikacji opisu projektu za pomocą narzędzi

modelowania:

–diagramów przepływu danych — DFD,
–diagramów obiekt-relacja-atrybut — ERD,
–diagramów przejść stanów — STD;

Wynikiem analizy jest zbudowanie następujących modeli:

–model otoczenia,
–model zachowania systemu;

Modele są opisem formalnym systemu, niezależnym od

technologii, jakiej użyje się do implementacji nowego

systemu;

Na końcu etapu analizy określa się dokładniej niż w

poprzednim etapie budżet projektu oraz kalkulację

kosztów i zysków;

background image

Inżynieria oprogramowania, wykład 3, slajd 30

Faza projektowania strukturalnego

Polega na:

–wyodrębnienie tych części modelu zachowania systemu, które będą

implementowane w systemie informatycznym;

–przydzielenie poszczególnych części specyfikacji do odpowiednich

procesorów lub serwerów (przetwarzanie rozproszone); fragmenty
DFD (te, które będą implementowane) są mapowane na zadania;

–zaprojektowanie struktury hierarchii modułów wewnątrz danego

zadania;

–transformacja diagramów ERD na relacyjną bazę danych

(projektowanie logiczne danych);

W fazie implementacji:

–realizowane jest kodowanie i integracja modułów;
–stosuje się techniki programowania strukturalnego oraz

implementacji top-down;

background image

Inżynieria oprogramowania, wykład 3, slajd 31

Poziomy modelowania systemu

background image

Inżynieria oprogramowania, wykład 3, slajd 32

Modelowanie procesów

Określa kolejność i miejsce realizacji
funkcji przedsiębiorstwa;

Umożliwia i ułatwia komunikację
pomiędzy:

–różnymi działami firmy,
–użytkownikami a projektantami,
–projektantami a programistami;

Pozwala na zrozumienie
funkcjonowania organizacji;

background image

Inżynieria oprogramowania, wykład 3, slajd 33

Modelowanie danych

Służy określeniu potrzeb informacyjnych firmy lub

organizacji;

Modelowanie przepływu danych (ang. Dataflow

Diagrams)

:

–ma na celu zobrazowanie procesów zachodzących w organizacji,

wymiany informacji między nimi oraz miejsc wprowadzania i

wyprowadzania danych;

Modelowanie związków encji ma na celu:

–dostarczenie dokładnego modelu potrzeb informacyjnych

przedsiębiorstwa, który stanowiłby podstawę do konstruowania

nowych lub ulepszonych systemów;

–dostarczanie modelu niezależnego od sposobu przechowywania

danych i metod dostępu do nich, umożliwiającego podejmowanie

decyzji, dotyczących metod implementacji oraz współdziałania z

istniejącymi systemami;

background image

Inżynieria oprogramowania, wykład 3, slajd 34

Diagramy związków encji

background image

Inżynieria oprogramowania, wykład 3, slajd 35

Diagramy przepływu danych

Opisują przepływ informacji pomiędzy
funkcjami - procesami realizowanymi w
systemie

Reprezentuje wymianę danych między
elementami systemu i wymianę danych ze
światem zewnętrznym

background image

Inżynieria oprogramowania, wykład 3, slajd 36

Modelowanie hierarchii funkcji

Modelowanie hierarchii funkcji tworzy diagramy pokazujące
dekompozycję funkcji na różnych poziomach działalności
przedsiębiorstwa

background image

Inżynieria oprogramowania, wykład 3, slajd 37

Reguły dla modelowania funkcji

Funkcje muszą mieć pojedyncze, zdefiniowane cele.

Interfejsy do funkcji (wejście i wyjście) powinny być minimalne,

co pozwala to na łatwiejsze oddzielenie poszczególnych funkcji.

Przy dekompozycji funkcji należy trzymać się zasady „nie

więcej niż 7+/-2 funkcji podrzędnych”.

Opis funkcji nie powinien odwoływać się do pojęć i terminów

implementacyjnych (takich jak plik, zapis, moduł, stacja

robocza).

Należy podawać wskaźniki wydajnościowe funkcji (szybkość,

częstość, itd.) wszędzie tam, gdzie jest to możliwe.

Powinny być zidentyfikowane funkcje krytyczne (od których

zależy istota systemu).

Nazwy funkcji powinny odzwierciedlać ich cel i mówić co ma

być zrobione, a nie jak ma być zrobione.

Nazwy funkcji powinny mieć charakter deklaracyjny (np.

Walidacja Zlecenia Zewnętrznego), a nie proceduralny (np.

Czynności Systemu po Otrzymaniu Zlecenia).

background image

Inżynieria oprogramowania, wykład 3, slajd 38

Custom Development Method (CDM)

Przykład metodyki - CDM-Oracle-1996

–stosowana do procesów biznesowych i funkcji, które nie

mogą być obsłużone za pomocą dostępnych aplikacji „z
półki”;

–CDM jest zbiorem zdefiniowanych procesów tworzenia

oprogramowania, które zostały określone przy założeniu,
że w procesie wytwórczym stosowane są metody i
narzędzia CASE;

–zakłada, że potrzeby biznesowe zostają wyraźnie

zdefiniowane na samym początku cyklu projektowego
oraz że ich zweryfikowanie jest możliwe podczas całego
procesu wytwórczego;

background image

Inżynieria oprogramowania, wykład 3, slajd 39

Custom Development Method (CDM)

CDM wyróżnia następujące procesy:

–definicja potrzeb biznesowych (studium możliwości),
–analiza istniejących systemów,
–opracowanie architektury technicznej,
–projektowanie i budowa bazy danych,
–projektowanie i budowa modułów,
–konwersja danych,
–opracowanie dokumentacji technicznej,
–testowanie,
–szkolenie,
–przejście na nowy system,
–obsługa serwisowa;

background image

Inżynieria oprogramowania, wykład 3, slajd 40

Custom Development Method (CDM) –

ścieżka pełna

Procesy CDM:

Definicja wymagań

Analiza istniejących

systemów

Architektura

techniczna

Projekt i budowa

bazy danych

Projekt i budowa

modułów

Konwersja danych

Dokumentacja

Testowanie

Szkolenia

Wdrożenie

Obsługa serwisowa

Fazy

Definicja Analiza Projektowanie Programowanie

Wdrożenie Eksploatacja

ORACLE

background image

Inżynieria oprogramowania, wykład 3, slajd 41

Custom Development Method (CDM) –

ścieżka szybka

Procesy CDM:

Definicja wymagań

Analiza istniejących

systemów

Architektura

techniczna

Projekt i budowa

bazy danych

Projekt i budowa

modułów

Konwersja danych

Dokumentacja

Testowanie

Szkolenia

Wdrożenie

Obsługa serwisowa

Fazy

Modelowanie wymagań Projekt i generacja produkcji

Wdrożenie do produkcji

ORACLE

background image

Inżynieria oprogramowania, wykład 3, slajd 42

Metodyki strukturalne a obiektowe

Metodyki strukturalne:

–wadą metodyk strukturalnych są trudności w

zintegrowaniu modeli;

–metodyki strukturalne są dojrzałe, lecz mogą nie być

adekwatne do współczesnych tendencji wytwarzania
systemów informatycznych;

Metodyki obiektowe:

–młode i szybko zmieniające się;
–wymagają dużego nakładu pracy;
–wprowadzają narzuty implementacyjne;
–dobre dla systemów czasu rzeczywistego;

background image

Inżynieria oprogramowania, wykład 3, slajd 43

Obiektowe podejścia do wytwarzania

oprogramowania

System jest analizowany w sposób obiektowy jeśli:

Jest dzielony na obiekty posiadające:

»Tożsamość, Stan, Zachowanie

Obiekty są grupowane w klasy złożone z obiektów o
podobnych stanach i zachowaniu

Metody obiektowe:

są wygodnym narzędziem analizy złożonych systemów, w
szczególności systemów o dużej stronie pasywności i
złożonej funkcjonalności

ukrywają dane (hermetyzacja)

wykorzystują gotowe elementy

pozwalają na szybkie prototypowanie i przyrostowy rozwój

programowanie oparte na zdarzeniach

background image

Inżynieria oprogramowania, wykład 3, slajd 44

Metodyki obiektowe

Metodyka wykorzystująca pojęcia obiektowości dla celów
modelowania pojęciowego oraz analizy i projektowania
systemów informatycznych.
Podstawowym składnikiem jest diagram klas, będący zwykle
wariantem notacyjnym i pewnym rozszerzeniem diagramów
encja-związek.
Diagram klas zawiera: klasy, w ramach klas specyfikacje
atrybutów i metod, związki generalizacji, związki asocjacji i
agregacji, liczności tych związków, różnorodne ograniczenia
oraz inne oznaczenia.
Uzupełnieniem tego diagramu są inne: diagramy dynamiczne
uwzględniające stany i przejścia pomiędzy tymi stanami,
diagramy

interakcji

ustalające

zależności

pomiędzy

wywołaniami metod, diagramy funkcjonalne (będące zwykle
pewną mutacją diagramów przepływu danych), itd.
Koncepcja

przypadków

użycia

(use

cases)

zakłada

odwzorowanie struktury systemu z punktu widzenia jego
użytkownika.

Przykłady: Express, OODA(Booch), OMT(Rumbaugh), OOSA(Shlaer-
Mellor), Objectory(Jacobson), MOSES/OPEN, OOA/OOD(Coad/Yourdon),
Notacja UML - RUP.

background image

Inżynieria oprogramowania, wykład 3, slajd 45

Różnice pomiędzy metodykami

Podejścia proponowane przez różnych autorów różnią się
częściowo, nie muszą być jednak ze sobą sprzeczne. Nie ma
metodyk uniwersalnych. Analitycy i projektanci wybierają
kombinację technik i notacji, która jest w danym momencie
najbardziej przydatna.

Poszczególne

metodyki

zawierają

elementy

rzadko

wykorzystywane w praktyce (np. model przepływu danych w
OMT).

Notacje proponowane przez różnych autorów nie są
koniecznie nierozerwalne z samą metodyką. Np. notacji UML
można użyć dla metodyki Coad/Yourdon.

Narzędzia CASE nie narzucają metodyki; raczej, określają one
tylko notację. Twierdzenia, że jakieś narzędzie CASE “jest
oparte” na konkretnej metodyce jest często wyłącznie hasłem
reklamowym. Nawet najlepsze metodyki i narzędzia CASE nie
są w stanie zapewnić jakości projektów.

Kluczem

do

dobrego

projektu

jest

zespół

doświadczonych, zaangażowanych i kompetentnych
osób, dla których metodyki, notacje i narzędzia CASE
służą jako istotne wspomaganie.

background image

Inżynieria oprogramowania, wykład 3, slajd 46

UML - przykład notacji

UML (Unified Modeling Language) powstał jako synteza trzech
metodyk/notacji:

OMT (Rumbaugh): metodyka ta była dobra do
modelowania dziedziny przedmiotowej. Nie przykrywała
jednak dostatecznie dokładnie zarówno aspektu
użytkowników systemu jak i aspektu
implementacji/konstrukcji.

Objectory (Jacobson): metodyka ta dobrze podchodziła do
kwestii modelowania użytkowników i cyklu życiowego
systemu. Nie przykrywała jednak dokładnie modelowania
dziedziny przedmiotowej jak i aspektu
implementacji/konstrukcji.

OOAD (Booch): metodyka dobrze podchodziła do kwestii
projektowania, konstrukcji i związków ze środowiskiem
implementacji. Nie przykrywała jednak dostatecznie dobrze
fazy analizy i rozpoznania wymagań użytkowników.

Istniało wiele aspektów systemów, które nie były właściwie
przykryte przez żadne z wyżej wymienionych podejść, np.
włączenie prototypowania w cykl życiowy, rozproszenie i
komponenty, przystosowanie notacji do preferencji projektantów, i
inne. Celem UML jest przykrycie również tych aspektów.

background image

Inżynieria oprogramowania, wykład 3, slajd 47

Diagramy definiowane w UML

Diagramy przypadków użycia (use case)
Diagramy klas,

w tym diagramy pakietów

Diagramy zachowania się (behavior)

Diagramy implementacyjne

• Diagramy stanów

• Diagramy aktywności

• Diagramy sekwencji

• Diagramy współpracy (collaboration)

• Diagramy komponentów

• Diagramy wdrożeniowe (deployment)

Autorzy UML wychodzą z założenia, że żadna pojedyncza
perspektywa spojrzenia na projektowany system nie jest
wystarczająca. Stąd wiele środków:

Diagramy te zapewniają mnogość perspektyw systemu podczas analizy i rozwoju.

Opis wymagań

Analiza,

projekt

wstępny

Projekt

szczegółowy,

wstępna

implementacja

background image

Inżynieria oprogramowania, wykład 3, slajd 48

Proces tworzenia modelu obiektowego

Zadania:

Identyfikacja klas i obiektów

Identyfikacja związków pomiędzy klasami

Identyfikacja i definiowanie pól (atrybutów)

Identyfikacja i definiowanie metod i komunikatów

Czynności te są wykonywane iteracyjnie. Kolejność ich
wykonywania nie jest ustalona i zależy zarówno od stylu pracy,
jak i od konkretnego problemu.
Inny schemat realizacji procesu budowy modelu obiektowego
polega na rozpoznaniu funkcji, które system ma wykonywać.
Dopiero w późniejszej fazie następuje identyfikacja klas,
związków, atrybutów i metod. Rozpoznaniu funkcji systemu służą
modele funkcjonalne (diagramy przepływu danych) oraz model
przypadków użycia.

background image

Inżynieria oprogramowania, wykład 3, slajd 49

Identyfikacja klas i obiektów

Typowe klasy:

przedmioty namacalne (samochód, czujnik)
role pełnione przez osoby (pracownik, wykładowca, student)
zdarzenia, o których system przechowuje informacje (lądowanie
samolotu, wysłanie zamówienia, dostawa),
interakcje pomiędzy osobami i/lub systemami o których system
przechowuje informacje (pożyczka, spotkanie, sesja),
lokalizacje - miejsce przeznaczone dla ludzi lub przedmiotów
grupy przedmiotów namacalnych (kartoteka, samochód jako
zestaw części)
organizacje (firma, wydział, związek)
wydarzenia (posiedzenie sejmu, demonstracja uliczna)
koncepcje i pojęcia (zadanie, miara jakości)
dokumenty (faktura, prawo jazdy)
klasy będące interfejsami dla systemów zewnętrznych
klasy będące interfejsami dla urządzeń sprzętowych

background image

Inżynieria oprogramowania, wykład 3, slajd 50

3. Przegląd metodyk, c.d. - RUP

4. Przykłady modeli i wyników fazy A&D

Wcześniej pokazano kilka
przykładów diagramów z metody
CDM

Na kolejnych slajdach będą
pokazane modele z metodyki RUP

background image

Inżynieria oprogramowania, wykład 3, slajd 51

RUP

Ukierunkowany na przypadki użycia

Architekturo-centryczny

Iteracyjny

Przyrostowy

Sterowany ryzykiem

background image

Inżynieria oprogramowania, wykład 3, slajd 52

RUP

Dwa wymiary RUP

– FAZY (ang. phases)
– PRZEPŁYWY, DYSCYPLINY (ang. disciplines)

background image

Inżynieria oprogramowania, wykład 3, slajd 53

RUP

Proces budowy systemu informatycznego

składa się z dyscyplin, z których każda

dzielona jest na fazy:

–Rozpoczęcie
–Opracowanie
–Budowa
–Przekazanie

Kamienie milowe

Podejście iteracyjne

background image

Inżynieria oprogramowania, wykład 3, slajd 54

System mapy pogody

Przykład z książki Iana Sommerville’a „Inżynieria

oprogramowania”

System tworzący mapy pogody ma regularnie generować

mapy pogody;

Źródła danych:

–zdalne, niestrzeżone stacje meteorologiczne,
–inne źródła danych: obserwatorzy pogody, balony i satelity;

Stacje meteorologiczne

–przekazują dane do komputera obszaru na jego żądania;

System komputera obszaru

–weryfikuje i integruje dane zebrane z różnych źródeł;

Po zintegrowaniu dane są archiwizowane w zbiorach;

Lokalne mapy pogody są tworzone na podstawie archiwum i

bazy danych map komputerowych;

Mapy można drukować lub wyświetlać w różnych formatach;

background image

Inżynieria oprogramowania, wykład 3, slajd 55

System mapy pogody

Zadania systemu:

–zbieranie danych,
–integracja danych z różnych źródeł,
–archiwizowanie danych,
–tworzenie map pogody;

Każdy etap działania zależy jedynie od wyników
przetwarzania z poprzedniego etapu;

Proponowana architektura:

–warstwowa,
–odzwierciedla etapy przetwarzania danych w systemie:

zbieranie danych, integrację danych itd.;

background image

Inżynieria oprogramowania, wykład 3, slajd 56

Architektura warstwowa systemu mapy

pogody

Warstwa wyświetlania danych

Obiekty warstwy przygotowują dane w postaci
zrozumiałej dla człowieka

Warstwa archiwizacji danych

Obiekty warstwy zajmują się
składowaniem danych

Warstwa przetwarzania danych

Obiekty warstwy weryfikują i integrują
dane

Warstwa gromadzenia danych

Obiekty warstwy zajmują się
pozyskaniem danych ze zdalnych źródeł

Propozycja architektury systemu

Gromadzenie

danych

<<subsystem>>

Przetwarzanie danych

<<subsystem>>

Archiwizacja danych

Wyświetlanie danych

background image

Inżynieria oprogramowania, wykład 3, slajd 57

Podsystemy w systemie mapy pogody

<<subsystem>>

Gromadzenie

danych

Obserwator

Balon

Stacja meteoro-

logiczna

Satelita

Wspólne

<<subsystm
>>
Przetwarzan
ie
danych

Sprawdzanie

danych

Integracja

danych

<<subsystem>>

Wyświetlanie

danych

Interfejs

użytkownika

Mapa

Drukarka

map

Wyświetlacz

map

Składowanie

danych

Składnica

map

Składnica

danych

<<subsystem>>

Archiwizacja danych

background image

Inżynieria oprogramowania, wykład 3, slajd 58

Kontekst systemu i modele użycia

systemu

Pierwszy krok

procesu projektowania

oprogramowania:

–zrozumienie związków między projektowanym

oprogramowaniem a jego środowiskiem
zewnętrznym;

–określenie kontekstu systemu:

»model statyczny;
»tu jest to podsystem gromadzenia danych;

–określenie modeli użycia systemu

»model dynamiczny
»opisuje, w jaki sposób system porozumiewa się ze swoim

środowiskiem;

background image

Inżynieria oprogramowania, wykład 3, slajd 59

Przypadki użycia stacji

meteorologicznej

Dostrój

Uruchom

Wyłącz

Raportuj

Użytkownik

Testuj

background image

Inżynieria oprogramowania, wykład 3, slajd 60

Przypadki użycia stacji

meteorologicznej

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.

Przesyłane dane to: 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 (co 5 minut).

Bodziec

System gromadzenia informacji meteorologicznych

nawiązuje połączenie

ze stacją meteorologiczną i wywołuje

przekazanie danych.
Reakcja

Wysyłanie podsumowania danych do systemu

gromadzenia informacji

meteorologicznych.

Komentarz

Stacje meteorologiczne są proszone o raport zazwyczaj raz na

godzinę.

Ta częstotliwość może być inna dla różnych stacji i w

przyszłości może

ulec zmianie.

Opis przypadku użycia „Raportuj”

background image

Inżynieria oprogramowania, wykład 3, slajd 61

Projektowanie architektury

Drugi krok

procesu projektowania

oprogramowania:

–projektowanie architektury;

Architektura na przykładzie automatycznej stacji

meteorologicznej (model 3-warstwowy):

–1-warstwa interfejsu –

»porozumiewanie się z innymi częściami systemu i oferowanie

zewnętrznych interfejsów systemu;

–2-warstwa gromadzenia danych

»zarządzanie odczytem danych z przyrządów i podsumowywanie

danych meteorologicznych przed przesłaniem ich do systemu

tworzącego mapy;

–3-warstwa przyrządów

»pakiet przyrządów służących do gromadzenia surowych danych

o warunkach pogodowych;

background image

Inżynieria oprogramowania, wykład 3, slajd 62

Architektura stacji meteorologicznej

Stacja meteorologiczna

Gromadzenie

danych

<<subsystem>>

Przyrządy

<<subsystem>>

Interfejs

<<subsystem>>

Obsługuje całą
komunikację
zewnętrzną

Gromadzi i
podsumowuje dane

Pakiet przyrządów
do zbierania
surowych danych

background image

Inżynieria oprogramowania, wykład 3, slajd 63

Klasy obiektów stacji meteorologicznej

Trzeci

krok procesu projektowania oprogramowania:

–Identyfikacja (wynajdowanie) klas i obiektów;

StacjaMeteorologiczna - oferuje podstawowy interfejs
stacji meteorologicznej;

DaneMeteorologiczne - jej operacje służą do
gromadzenia i podsumowywania danych odczytanych
z różnych przyrządów stacji meteorologicznej;

Termometr gruntowy, Wiatromierz i Barometr -
bezpośrednio związane z przyrządami systemu;
odzwierciedlają namacalne byty sprzętowe systemu;
operacje służą do sterowania tym sprzętem;

background image

Inżynieria oprogramowania, wykład 3, slajd 64

Klasy obiektów stacji meteorologicznej

StacjaMeteorologiczna

identyfikator

raportPogodowy ()

dostrój (przyrządy)

testuj ()

uruchom (przyrządy)

wyłącz (przyrządy)

DaneMeteorologiczne

temperaturyPowietrza
temperaturyGruntu
siłyWiatru
kierunkiWiatru
cisnienia
opad

gromadź ()
podsumuj ()

Termometr
gruntowy

temperatura

testuj ()
dostrój ()


Wiatromierz

SiłaWiatru
kierunekWiat
ru

test ()

Barom
etr

ciśnieni
e
wysoko
ść

test ()
dostrój
()

Przykłady klas obiektów w systemie stacji meteorologicznej

background image

Inżynieria oprogramowania, wykład 3, slajd 65

Klasy obiektów stacji meteorologicznej

<<subsystem>>

Interfejs

SterownikKomunikacji

StacjaMeteorologiczna

DaneMeteorologiczne

<<subsystem>>

Gromadzenie danych

Stan

przyrządów

<<subsystem>>

Przyrządy

Termometr

powietrza

Termometr

gruntowy

Barometr

Łopatka

wiatrowa

Wskaźnik

opadu

Wiatromierz

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

background image

Inżynieria oprogramowania, wykład 3, slajd 66

Sekwencja zdarzeń

:Sterownik

Komunikacji

:Stacja

Meteorologiczna

:Dane

Meteorologiczne

podsumu
j ()

raportuj ()

wyślij (raport)

żądanie
(raport)

potwierdzenie ()

odpowiedź (raport)

potwierdzenie ()

Użytkownik

Czwarty

krok procesu projektowania

Przebieg operacji Gromadzenia danych

background image

Inżynieria oprogramowania, wykład 3, slajd 67

Diagramy stanów

Wyłączony

Działan
ie

Transmitowanie

Testowanie

Dostrajanie

Oczekiwanie

Podsumowywanie

Gromadzenie

uruchom
()

wyłącz
()

zegar

koniec
gromadzenia

koniec transmisji

testuj ()

dostrój ()

dostrojony

koniec testu

P
o
d
s
u
m
o
w
a
n
i
e

g
o
t
o
w
e

podsumowa
nie
gotowe

raportPogodow
y ()

Przykład dla klasy StacjaMeteorologiczna

Piąty

krok procesu projektowania

background image

Inżynieria oprogramowania, wykład 3, slajd 68

Specyfikowanie interfejsów obiektów

Szósty

krok procesu projektowania:

–specyfikowanie interfejsów między komponentami;

Pozwoli to na równoległe projektowanie
komponentów;

Jeden obiekt może mieć kilka interfejsów,
które

sposobami

postrzegania

oferowanych metod;

Realizacja w Java - interfejsy są deklarowane
w oderwaniu od obiektów, a obiekty
„implementują” interfejsy;

background image

Inżynieria oprogramowania, wykład 3, slajd 69

Specyfikowanie interfejsów obiektów

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

background image

Inżynieria oprogramowania, wykład 3, slajd 70

Ewolucja projektu

Kolejne

kroki projektowania:

–uszczegółowienie uproszczonego modelu;

Zmiana wstępnie ustalonych
szczegółów obiektu - nie wpłynie na
inne obiekty systemowe;

Wprowadzenie nowych obiektów - nie
prowadzi do istotnych konsekwencji
dla reszty systemu (obiekty są luźno
powiązane);

background image

Inżynieria oprogramowania, wykład 3, slajd 71

Ewolucja 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;

background image

Inżynieria oprogramowania, wykład 3, slajd 72

Ewolucja projektu

Przyrządy do pomiaru zanieczyszczeń

MiernikTlenkuAzotu

MiernikBenzenu

MiernikDymu

StacjaMeteorologiczna

Identifier

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

Jakość powietrza

poziomTlenkuAzotu
poziomDymu
poziomBenzenu

gromadź ()
podsumuj ()

Nowe obiekty do monitorowania zanieczyszczeń

background image

Inżynieria oprogramowania, wykład 3, slajd 73

CASE – Computer Aided Software Engineering

Dla dwóch podejść do analizy i projektowania systemów mamy

dwa wiodące na rynku systemy notacyjne i narzędzia CASE

pochodzące od:

IBM Rational UML

(Booch, Jacobson, Rumbaugh) –

Rational Rose

podejście obiektowe

Oracle CASE Method

(Barker) – Oracle Designer

podejście semantyczne

Narzędzia te poznamy w czasie zajęć laboratoryjnych

5. Narzędzia CASE

6. Podsumowanie

dziękuję za uwagę

background image

Inżynieria oprogramowania, wykład 3, slajd 74

Materiały dodatkowe

Do samodzielnego przestudiowania

przez Studentów

background image

Inżynieria oprogramowania, wykład 3, slajd 75

A

B

A

B

1

A

B

1

A

B

A

B

A

B

A

B

1..N

A

B

1,m

A

B

1+

A

B

A

B

A

B

0..
1

A

B

0,1

A

B

A

B

A

B

A

B

N

A

B

0,m

A

B

A

B

Równoważne wersje opisu siły i liczności

związków

(analisys)

background image

Inżynieria oprogramowania, wykład 3, slajd 76

Metodyki obiektowe

Wykorzystują pojęcia obiektowości do modelowania

oraz analizy i projektowania systemów informatycznych;

Podstawowym jest diagram klas, będący zwykle

wariantem notacyjnym i pewnym rozszerzeniem

diagramów encja-związek;

Uzupełnieniem diagramu klas są inne: diagramy

dynamiczne uwzględniające stany i przejścia pomiędzy

tymi stanami, diagramy interakcji ustalające zależności

pomiędzy wywołaniami metod, diagramy funkcjonalne

(będące zwykle pewną mutacją diagramów przepływu

danych);

Koncepcja przypadków użycia (use cases) zakłada

odwzorowanie struktury systemu z punktu widzenia

jego użytkownika;

background image

Inżynieria oprogramowania, wykład 3, slajd 77

Obiektowe podejścia do wytwarzania

oprogramowania

Analiza obiektowa

–opracowanie modelu obiektowego dziedziny zastosowania;
–rozpoznane obiekty odzwierciedlają byty i operacje związane z

rozwiązywanym problemem;

Projektowanie obiektowe

–opracowanie modelu obiektowego systemu oprogramowania, który

będzie implementacją zidentyfikowanych wymagań;

–obiekty projektu obiektowego są związane z rozwiązaniem

problemu;

Programowanie obiektowe

–realizacja projektu oprogramowania za pomocą języka

programowania obiektowego;

–języki obiektowe umożliwiają bezpośrednią implementację

obiektów i dostarczają udogodnienia do definiowania klas obiektów;

background image

Inżynieria oprogramowania, wykład 3, slajd 78

Faza analizy

Podstawowe rezultaty fazy analizy

–Poprawiony dokument opisujący wymagania;
–Słownik danych zawierający specyfikację

modelu;

–Dokument opisujący stworzony model

analityczny;

–Harmonogram fazy projektowania;
–Wstępne przypisanie ludzi i zespołów do zadań;
–Uzyskane przy użyciu dobrze rozpoznanych

metod i narzędzi;

background image

Inżynieria oprogramowania, wykład 3, slajd 79

Faza analizy

Model analityczny - uproszczony opis systemu:

–hierarchiczna dekompozycja funkcji systemu;
–logiczny model oprogramowania:

» uproszony opis oprogramowania, opisujący wszystkie istotne cechy

oprogramowania na wysokim poziomie abstrakcji;

» opisany przy pomocy notacji zgodnej z pewną konwencją;
» pokazuje co system musi robić;
» jest zorganizowany hierarchicznie, wg poziomów abstrakcji;
» unika terminologii implementacyjnej;
» pozwala na wnioskowanie „od przyczyny do skutku” i odwrotnie;

–w podejściu obiektowym zawiera:

» diagram przypadków użycia,
» diagram klas,
» diagramy sekwencji komunikatów (dla wybranych sytuacji),
» diagramy stanów (dla wybranych sytuacji),
» raport zawierający definicje i opisy klas, atrybutów, związków, metod;

background image

Inżynieria oprogramowania, wykład 3, slajd 80

Faza analizy

Identyfikacja aktorów:

–Grupy użytkowników wspierane przez system w:

»podstawowych i drugoplanowych zadaniach;
»administrowaniu i utrzymywaniu;

–Źródła danych wej. i odbiorcy wyników:

»osoby;
»zewnętrzne systemy lub urządzenia;

Identyfikacja przypadków użycia:

–Jakie zadania dla użytkownika realizuje system?
–Jakie dane z systemu interesują użytkownika lub system

zewnętrzny?

–Czy są zainteresowani zdarzeniami w systemie?
–Max liczba przypadków użycia: 5-15, 15-40, 40-100;

background image

Inżynieria oprogramowania, wykład 3, slajd 81

Faza analizy

Identyfikacja klas obiektów - typowe klasy:

–przedmioty namacalne (np. samochód, czujnik),
–role pełnione przez osoby (np. pracownik, wykładowca, student),
–zdarzenia, o których system przechowuje informacje (lądowanie

samolotu, wysłanie zamówienia, dostawa),

–interakcje pomiędzy osobami i/lub systemami o których system

przechowuje informacje (np. pożyczka, spotkanie, sesja),

–lokalizacje - miejsce przeznaczone dla ludzi lub przedmiotów,
–grupy przedmiotów namacalnych (np. kartoteka, samochód jako

zestaw części),

–organizacje (np. firma, wydział, związek),
–wydarzenia (np. posiedzenie sejmu, demonstracja uliczna),
–koncepcje i pojęcia (np. zadanie, miara jakości),
–dokumenty (np. faktura, prawo jazdy),
–interfejsy do systemów zewnętrznych,
–interfejsy do urządzeń sprzętowych;

background image

Inżynieria oprogramowania, wykład 3, slajd 82

Faza analizy

Obiekty, zbiory obiektów i metadane:

–W wielu przypadkach przy definicji klasy należy dokładnie ustalić, z

jakiego rodzaju abstrakcją obiektu mamy do czynienia;

–Należy zwrócić uwagę na następujące aspekty:

»

czy mamy do czynienia z konkretnym obiektem w danej chwili czasowej?

»

czy mamy do czynienia z konkretnym obiektem w pewnym odcinku

czasu?

»

czy mamy do czynienia z opisem tego obiektu (dokument, metadane)?

»

czy mamy do czynienia z pewnym zbiorem konkretnych obiektów?

Np. klasa „samochód” - może chodzić o:

–egzemplarz samochodu wyprodukowany przez pewną

fabrykę;

–model samochodu produkowany przez fabrykę;
–pozycję w katalogu samochodów opisujący własności

modelu;

–historię stanów pewnego konkretnego samochodu;

background image

Inżynieria oprogramowania, wykład 3, slajd 83

Faza analizy

Zalecenia dotyczące identyfikacji klas:

– Wyraźnie zdefiniować kontekst (w tym opis) klasy;
– Unikać w nazwie synonimów i nazw zbliżonych znaczeniowo;
– Pomijać klasy, które nie mieszczą się w zakresie systemu;
– Wyeliminować klasy będące w rzeczywistości:

» atrybutami lub grupami atrybutów (właściwościami) innych klas;
» operacjami (usługami) innych klas;
» związkami lub rolami pełnionymi w związkach przez inne klasy;
 można połączyć takie byty w większe klasy;

– Utworzyć wiele klas z jednej, jeżeli grupuje atrybuty lub operacje

kontekstowo odległe;

– Uzupełnić o atrybuty opisujące klasy w kontekście systemu;
– Klasy kontekstowo powiązane pogrupować w podsystemy – np.

kandydatami są grupy powiązane silnymi relacjami (np. dziedziczenie);

– Unikać w tej fazie klas reprezentujących elementy implementacyjne;

background image

Inżynieria oprogramowania, wykład 3, slajd 84

Faza analizy

Zalecenia dotyczące identyfikacji związków klas:

–Unikać związków bez klasy docelowej;
–Pomijać związki z elementami spoza systemu;
–Dążyć do związków dwuelementowych;
–Zwracać szczególną uwagę na związki trwałe w czasie –

związki nietrwałe wykorzystać podczas konstrukcji modelu

dynamicznego (np. do budowy komunikatów);

–Kompletować związki i role klas w związkach;
–Uszczegółowić związki o krotności obiektów;
–Klasy o podobnych cechach powiązać relacją dziedziczenia;
–Zweryfikować dostępność informacji w modelu klasy-

związki-klasy z różnych punktów startowych;

–Unikać w tej fazie związków reprezentujących zależności

implementacyjne;

background image

Inżynieria oprogramowania, wykład 3, slajd 85

Faza analizy

Zalecenia dotyczące modelu dynamicznego klas:

–Koncentrować się na behawioralnych aspektach systemu;
–Rozpatrzeć interakcje związane z pożądanym, błędnym i

awaryjnym zachowaniem systemu;

–Kompletować „trójki”: Nadawca (Aktor lub obiekt)-

zdarzenie-Odbiorca;

–Przedstawić uporządkowany w czasie przepływ zdarzeń w

systemie dla każdej klasy;

–Zdarzenia odpowiadające jednej klasie należy łączyć we

wspólny diagram;

background image

Inżynieria oprogramowania, wykład 3, slajd 86

Faza analizy

Kluczowe czynniki sukcesu fazy analizy

–Zaangażowanie właściwych osób ze strony klienta;
–Kompleksowe i całościowe podejście do problemu, nie

koncentrowanie się na partykularnych jego aspektach;

–Nie unikanie trudnych problemów (bezpieczeństwo,

skalowalność, szacunki objętości i przyrostu danych, itd.);

–Zachowanie przyjętych standardów, np. w zakresie

notacji;

–Sprawdzenie poprawności i wzajemnej spójności modelu;
–Przejrzystość, logiczny układ i spójność dokumentacji;

background image

Inżynieria oprogramowania, wykład 3, slajd 87

Od analizy do szczegółowego projektu

obiektów

Celem projektowania jest opracowanie szczegółowego opisu

implementacji systemu.

W odróżnieniu od analizy, w projektowaniu dużą rolę

odgrywa środowisko implementacji.

Dwa etapy fazy projektowania:

–projekt strategiczny, projekt systemy (strategic, system design):

» podział na podsystemy,

» współbieżność,

» przechowywanie danych,

» sterowanie.

–projekt szczegółowy (detailed design):

» uściślanie definicji klas,

» dziedziczenie,

» optymalizacja modelu,

» modularyzacja,

» ukrywanie informacji;

background image

Inżynieria oprogramowania, wykład 3, slajd 88

Faza projektowania

Zadania w etapach fazy projektowania:

–uściślenie istniejących definicji klas, np. metod,
–dziedziczenie klas i operacji,
–szczegółowy projekt operacji wraz z przeprojektowaniem ich

algorytmów,

–wprowadzenie ogólnych mechanizmów realizacji dynamiki

obiektów,

–decyzje o trwałości obiektów,
–modularyzacja i ukrywanie informacji,
–optymalizacja modelu,
–dokumentacja projektu;

Zatem projektanci muszą więc posiadać dobrą znajomość
języków, bibliotek, i narzędzi stosowanych w trakcie
implementacji;

background image

Inżynieria oprogramowania, wykład 3, slajd 89

Faza projektowania

Zadania fazy projektowania – przykład uściślenia
definicji metod;

–Podanie nagłówków metod oraz ich parametrów.
–Określenie, które z metod będą realizowane jako funkcje

wirtualne (poźno wiązane) a które jako zwyczajne funkcje
(wiązane statyczne).

–Zastąpienie niektórych prostych metod bezpośrednim

dostępem do atrybutów.

»Np. metody PobierzNazwisko, UstawNazwisko, etc.

–Zastąpienie niektórych atrybutów redundantnych przez

odpowiednie metody, np.

»Wiek = BieżącaData - DataUrodzenia;
»KwotaDochodu = KwotaPrzychodu - KwotaKosztów;

background image

Inżynieria oprogramowania, wykład 3, slajd 90

Faza projektowania

Zadania fazy projektowania – przykład sposobu
implementacji związków (asocjacji);

–Związki można zaimplementować na wiele sposobów, z reguły

poprzez wprowadzenie dodatkowych atrybutów (pól) - mogą one
być następujące:

» obiekty powiązanej klasy,
» wskaźniki (referencje) do obiektów powiązanej klasy,
» identyfikatory obiektów powiązanej klasy,
» klucze kandydujące obiektów powiązanej klasy;

–W zależności od przyjętego sposobu oraz od liczności związków

(

1:1, 1:n, n:1, m:n

) możliwe są bardzo różne deklaracje w

przyjętym języku programowania.

TypSłowoKluczowe SłowaKluczowe[100];
list< TypSłowoKluczowe *> SłowaKluczowe;
char * WskaźnikiSłówKluczowych[100];

Tablica obiektów:
Lista wskaźników:
Tablica wskaźników:

background image

Inżynieria oprogramowania, wykład 3, slajd 91

Podstawowe rezultaty fazy

projektowania

Poprawiony i uszczegółowiony dokument opisujący wymagania;

Poprawione i uszczegółowione modele;

Uszczegółowiona specyfikacja słownika danych;

Dokument opisujący stworzony projekt składający się z (dla

obiektowych):

diagramu klas

diagramów interakcji obiektów

diagramów stanów

innych diagramów, np. diagramów modułów, konfiguracji

zestawień zawierających:

» definicje klas

» definicje atrybutów

» definicje danych złożonych i elementarnych

» definicje metod

Zasoby interfejsu użytkownika, np. menu, dialogi;

Projekt bazy danych;

Projekt fizycznej struktury systemu;

Poprawiony plan testów;

Pierwszy harmonogram implementacji;

background image

Inżynieria oprogramowania, wykład 3, slajd 92

Jakość i poprawność modeli

Poprawność i kompletność projektu:

–Poprawność oznacza, że opis projektu jest zgodny z zasadami

posługiwania się notacjami.

–Nie gwarantuje, że projekt jest zgodny z wymaganiami użytkownika.
–Poprawny projekt musi być:

» kompletny
» niesprzeczny
» spójny
» zgodny z regułami składniowymi notacji

–Kompletność projektu oznacza, że zdefiniowane są:

» wszystkie klasy
» wszystkie pola (atrybuty)
» wszystkie metody
» wszystkie dane złożone i elementarne
» a także że opisany jest sposób realizacji wszystkich wymagań

funkcjonalnych.

–Spójność projektu oznacza semantyczną zgodność wszystkich

informacji zawartych na poszczególnych diagramach i w specyfikacji.

background image

Inżynieria oprogramowania, wykład 3, slajd 93

Jakość i poprawność modeli

Poprawność diagramów klas i stanów:

–Diagramy klas:

» Acykliczność związków generalizacji-specjalizacji;
» Opcjonalność cyklicznych związków agregacji;
» Brak klas nie powiązanych w żaden sposób z innymi klasami;

(Sytuacja taka może się jednak pojawić, jeżeli projekt dotyczy
biblioteki klas, a nie całej aplikacji)

» Umieszczenie w opisie metod informacji o parametrach wejściowych,

wyjściowych i specyfikacji wyniku;

–Diagramy stanów:

» Brak stanów (oprócz początkowego), do których nie ma przejścia;
» Brak stanów (oprócz końcowego), z których nie ma wyjścia;
» Jednoznaczność wyjść ze stanów pod wpływem określonych

zdarzeń/warunków;

background image

Inżynieria oprogramowania, wykład 3, slajd 94

Jakość i poprawność modeli

Optymalizacja projektu:

–Bezpośrednia implementacja projektu może prowadzić do

systemu o zbyt niskiej efektywności.

»Wykonanie pewnych funkcji jest zbyt wolne;
»Struktury danych mogą wymagać zbyt dużej pamięci operacyjnej i

masowej;

–Optymalizacja może być dokonana:

»Na poziomie projektu;
»Na poziomie implementacji;

–Sposoby stosowane na etapie implementacji:

»Stosowanie zmiennych statycznych zamiast dynamicznych

(lokalnych);

»Umieszczanie zagnieżdżonego kodu zamiast wywoływania procedur;
»Dobór typów o minimalnej, niezbędnej wartości;

background image

Inżynieria oprogramowania, wykład 3, slajd 95

Jakość i poprawność modeli

Co może przynieść zasadnicze zyski optymalizacyjne?

–Zmiana algorytmu przetwarzania.

» Np. zmiana algorytmu sortującego poprzez wprowadzenie pośredniego

pliku zawierającego tylko klucze i wskaźniki do sortowanych obiektów

może przynieść nawet 100-krotny zysk.

–Wyłowienie “wąskich gardeł” w przetwarzaniu i optymalizacja tych

wąskich gardeł poprzez starannie rozpracowane procedury.

» Znane jest twierdzenie, że 20% kodu jest wykonywane przez 80% czasu.

–Zaprogramowanie “wąskich gardeł” w języku niższego poziomu,

np. w C dla programów w 4GL.

–Denormalizacja relacyjnej bazy danych, łączenie dwóch lub więcej

tablic w jedną.

–Stosowanie indeksów, tablic wskaźników i innych struktur

pomocniczych.

–Analiza mechanizmów buforowania danych w pamięci operacyjnej

i ewentualna zmiana tego mechanizmu (np. zmniejszenie liczby

poziomów).

background image

Inżynieria oprogramowania, wykład 3, slajd 96

Diagram klas opisuje wynik analizy w podejściu
obiektowym

Course

Student

Professor

RegistrationUser

RegistrationForm

RegistrationManager

CourseOffering

ScheduleAlgorithm

addStudent(Course, StudentInfo

)

open()

addStudent(StudentInfo)

open()

addStudent(StudentInfo)

major

name

numberCredits

location

tenureStatus

name

1

0..*

0..*

1

1

1..*

4

3..10

0..4

1

UML Diagram asocjacji klas (CAD)

(analisys)

background image

Inżynieria oprogramowania, wykład 3, slajd 97

Diagramy stanów

(behavior)

Pochodzą od koncepcji „map stanów” (statecharts) Harela

Idea pierwotna: odwzorowanie stanu obiektów pewnej klasy

podczas ich cyklu życiowego oraz przejścia pomiędzy tymi

stanami powodowane przez zdarzenia.

W UML diagramy stanów zostały uogólnione i stanowią

raczej diagramy przepływu sterowania (flowcharts) z

drugorzędnymi opcjami syntaktycznymi i semantycznymi.

Stany odnoszą się nie do pojedynczego obiektu lecz raczej

do przebiegu pewnego procesu lub przypadku użycia.

W większości przypadków diagramy stanów są albo zbędne,

albo trudne do sporządzenia.

Powinny być tworzone tylko wtedy, kiedy zachowanie

danego procesu jest złożone i dające się dobrze zdefiniować.

background image

Inżynieria oprogramowania, wykład 3, slajd 98

Stan spoczynku

Sygnał ciągły

Wybieranie numeru

Łączenie

Dzwonek

Połączenie

Rozłączenie

Komunikat o błędzie

Koniec limitu czasu

Sygnał zajętości

położenie słuchawki

podniesienie
słuchawki

położenie słuchawki

czas się skończył

cyfra(n)

cyfra(n)

błędny numer

czas się
skończył

prawidłowy numer

linia zajęta

podniesienie
słuchawki przez
odbiorcę

położenie słuchawki
przez odbiorcę

koniec komunikatu

Diagramy stanów - przykład działania telefonu

(behavior)

background image

Inżynieria oprogramowania, wykład 3, slajd 99

Diagramy aktywności

(behavior)

W swoim pomyśle pochodzą od sieci Petriego (Petri
Nets)

Jest to odmiana diagramów stanów, w których stany są
aktywnościami reprezentującymi wykonywanie się
operacji, a dowolna tranzycja (przejście) wykonuje się
automatycznie po zakończeniu aktywności, w której
tranzycja ma źródło.

Zawierają elementy synchronizacji procesów
równoległych i współbieżnych.

Wykorzystywane najczęściej wtedy, gdy opisywany
proces lub przypadek użycia jest jest dostatecznie
złożony, ale możliwy do zobrazowania na diagramie o
rozsądnych rozmiarach.

background image

Inżynieria oprogramowania, wykład 3, slajd 100

Nasyp
kawy do
filtra

Dolej
wody do
zbiornika

Weź
filiżankę

Włóż filtr
do
maszynki

Włącz
maszynkę

Gotowani
e kawy

Nalej
kawę

Diagramy aktywności – przykład obsługi ekspresu

do kawy

(behavior)

background image

Inżynieria oprogramowania, wykład 3, slajd 101

Wymiar pionowy - czas

Wymiar poziomy -
obiekty (kolejność
obiektów nie ma
znaczenia)

Istotna jest kolejność
pewnych zdarzeń a nie
rzeczywista miara czasu

Dla systemów
uwarunkowanych
czasowo czas może być
przedstawiony w
pewnej mierzalnej skali

Obiekt 2:"Klasa 1"

Obiekt 1:"Klasa 1"

Zdarzenie 2

Zdarzenie 1

Zdarzenie 1

Zdarzenie 2

Zdarzenie 1

Zdarzenie 1

Diagramy sekwencji

(behavior)

background image

Inżynieria oprogramowania, wykład 3, slajd 102

Diagramy sekwencji – elementy notacji

(behavior)

Obiekt

aktywny

Obiekt

nieaktywny

Alternatyw

ne

zachowani

e się

obiektu

Tworzenie

i

kasowanie

obiektu

background image

Inżynieria oprogramowania, wykład 3, slajd 103

: Student

registration

form

registration

manager

math 101

1: fill in info

2: submit

3: add course(joe, math 01)

4: add(Joe)

5: are you open?

6: add (Joe)

math 101

section 1

Diagram sekwencji – przykład rejestracji

studenta

(behavior)

Spróbuj dokonać interpretacji poniższego
diagramu sekwencji:

background image

Inżynieria oprogramowania, wykład 3, slajd 104

Ze swojej natury są raczej słabym środkiem
specyfikacji programów.

Nadmierne wprowadzanie dodatkowych oznaczeń
może zaciemniać diagram, nie wprowadzając przy
tym wymaganej algorytmiczne precyzji.

W wielu sytuacjach diagramy te mogą znacznie
rozjaśnić zależności sterowania programu z
punktu widzenia modelowania pojęciowego.

Dla bardziej złożonych zależności sterowania lepiej
jest użyć diagramów stanów lub diagramów
aktywności.

Wady i zalety diagramów sekwencji

(behavior)

background image

Inżynieria oprogramowania, wykład 3, slajd 105

Kontekst współpracy stanowi
statyczna struktura obiektów w
niej uczestniczących (włączając
związki, atrybuty i operacje).

Sekwencja komunikatów
wymienianych pomiędzy
obiektami dla realizacji
konkretnego zadania.

Współpraca może dotyczyć:

– skutków powodowanych przez

dany fragment programu w
środowisku zewnętrznym

– wewnętrznej implementacji

obiektów i ich zachowania

Obiekt 1:"Klasa 1"

Obiekt 2:"Klasa 1"

5: Zdarzenie 1

4: Zdarzenie 1

2: Zdarzenie 1

1: Zdarzenie 1

6: Zdarzenie 2

3: Zdarzenie 2

Diagramy współpracy obiektów

(behavior)

background image

Inżynieria oprogramowania, wykład 3, slajd 106

: Registrar

course form :

CourseForm

theManager :

CurriculumManager

aCourse :

Course

1: set course info

2: process

3: add course

4: new course

Diagram współpracy – przykład definiowania

kursów

(behavior)

Diagram opisujący przepływ komunikatów w
systemie

background image

Inżynieria oprogramowania, wykład 3, slajd 107

Course

Course
Offering

Student

Professor

Course.dll

People.dll

Course

User

Register.exe

Billing.exe

Billing

System

Diagramy komponentów

(implementation)

Umożliwiają opis fizycznych komponentów
aplikacji wraz z przyporządkowaniem do
nich elementów modelu logicznego (np.
obiekty, aktorzy)

background image

Inżynieria oprogramowania, wykład 3, slajd 108

Diagramy wdrożeniowe (montażowe)

(implementation)

Registration

Database

Library

Dorm

Main

Building

Umożliwiają opis fizycznej alokacji poszczególnych
komponentów aplikacji – na przykład w serwerowniach
głównych, serwerowniach zapasowych, czy też miejscach
użytkowania aplikacji na urządzeniach statycznych i
urządzeniach mobilnych


Document Outline


Wyszukiwarka

Podobne podstrony:
IOpr, wykład 5, wzorce projekt(1)
Wykład 3 Dokumentacja projektowa i STWiOR
IOpr, wykład 1, wprowadzenie
WYKLAD ANALIZA MATEMATYCZNA
Wykłady i wzór projektu, Zarządzanie projektami wprowadzenie
Psychometria 2009, Wykład 9, Techniki projekcyjne
PODSTAWY ZARZ DZANIA WYKLAD, Zarządzanie projektami, Zarządzanie(1)
Wykład analiza do zal 5
WYKŁADY zarzadzanie projektami 15

więcej podobnych podstron