io w12 projektowanie architekury opr

background image

1

Inżynieria oprogramowania

wykład 12

Projektowanie architektury systemów

background image

2/31

Informacje podstawowe

projekt architektury → reprezentacja struktury programu i
danych

projekt architektury umożliwia i pomaga:

analizować zgodność projektu z wymaganiami

rozważać różne podejścia do tworzenia programu

ograniczyć ryzyko związane z konstruowaniem oprogramowania

architektura * :

ułatwia wymianę informacji między poszczególnymi uczestnikami
procesu wytwórczego

pozwala określić początkowe decyzje projektowe mające duży
wpływ na prowadzone później prace wytwórcze i sukces działania
systemu

stanowi model struktury systemu i współdziałania jego składników

style i wzorce architektury mogą być użyte w procesie
projektowania innych systemów (są przenośne)

* L. Bass, P. Clements, R. Kazman: „Software architecure in practice” , Addison-Wesley, 1998

background image

3/31

Architektura oprogramowania

architektura oprogramowania* → struktura połączenia jego
składników programowych, widoczne z zewnątrz cechy
tych składników i związki, które między nimi zachodzą

składniki programowe → moduły programu, złożone
obiekty (bazy danych), oprogramowanie pośredniczące np.
w sieci typu klient-serwer

widoczne z zewnątrz cechy składników → pozwalają
zrozumieć współdziałanie składników programowych z
innymi, bez uwzględniania cech wewnętrznych np. użytych
algorytmów

związki między składnikami → wywołanie procedury z
innego modułu, protokoły dostępu do bazy danych, itp.

* L. Bass, P. Clements, R. Kazman: „Software architecture in practice” , Addison-Wesley, 1998

background image

4/31

Projektowanie danych - opis

pierwszym krokiem jest opisanie danych oraz informacji
przetwarzanych przez oprogramowanie na wysokim poziomie
abstrakcji (z punktu widzenia użytkownika)

tak powstały opis w kolejnych krokach jest uszczegóławiany

architektura danych może mieć znaczący wpływ na architekturę
programu przetwarzającego te dane

na poziomie modułów i procedur poprawnie zaprojektowane struktury
danych mogą wpływać na jakość oprogramowania

na poziomie aplikacji struktura danych ma wpływ na realizację założeń
dotyczących funkcjonalności systemu

na poziomie przedsiębiorstwa/firmy dane zgromadzone w bazach
danych umożliwiają przeszukiwanie i gromadzenia danych/wiedzy,
kluczowe ze względu na działalność firmy

background image

5/31

Projektowanie danych -realizacja

wynikiem modelowania analitycznego danych są
diagramy encja-związek i tzw. słowniki danych
(kompletny opis obiektu: nazwa, miejsca i sposób
użycia, zawartość, ograniczenia, wartości domyślne
itp.)

projektowanie danych polega na tłumaczeniu zapisów z
modelu analitycznego na konkretne struktury danych

realizacja odbywa się na poziomie pojedynczych
modułów i procedur, czasem (bazy danych) na
poziomie aplikacji

background image

6/31

Zasady specyfikowania danych*

do specyfikowania danych powinny być stosowane zasady analizy stosowane do
opisu funkcji i zachowań systemu, z uwzględnieniem zawartości danych,
przepływu danych, organizacji danych i ich wpływu na projektowany system

niezbędna jest identyfikacja wszystkich struktur danych i operacji na nich

zalecane jest wykorzystywanie gotowych słowników danych

decyzje „niskopoziomowe” powinny być podejmowane możliwie najpóźniej –
wstępnie określanie ogólne architektury i uściślanie przy projektowaniu
konkretnych modułów

wewnętrzna struktura danych widoczna tylko wewnątrz modułów jej używających

w miarę możliwości gotowe struktury i wzorce operacji można gromadzić w
postaci szablonów w bibliotekach i wykorzystywać w innych projektach

zalecane jest posługiwanie się językami projektowania i programowania
udostępniającymi mechanizmy specyfikowania i realizowania abstrakcyjnych
typów danych

* A. Wasserman: „ Principles of systematic data design and implementation”, w: P. Freeman, A. Wasserman
„Software design techniques”, IEEE Computer Society Press, 1980

background image

7/31

Style architektury

architektura skoncentrowana na danych

architektura oparta na przepływie danych

architektura wywołań i powrotów

architektura obiektowa

architektura warstwowa

background image

8/31

Architektura skoncentrowana
na danych

głównym elementem jest magazyn danych, w formie pliku lub bazy
danych

z magazynu danych mogą korzystać inne moduły systemu (klienci),
wykonując operacje dodawania, usuwania i modyfikowania danych

magazyn pasywny → każdy klient może korzystać z zawartości
magazynu niezależnie od działań i modyfikacji wykonywanych przez
innych klientów

systemy o takiej architekturze można łatwo integrować – dodawać i
modyfikować składniki będące klientami – nie ma to wpływu na
działanie innych klientów (działają niezależnie)

dane przekazywane są między klientami poprzez magazyn

klient samodzielnie uruchamia potrzebne mu inne moduły klienckie

background image

9/31

Architektura skoncentrowana
na danych - schemat

magazyn

danych

klient

klient

klient

klient

klient

background image

10/31

Architektura oparta na
przepływie danych

przydatna szczególnie w systemach przetwarzających
dane wejściowe na wyjściowe w formie ciągu operacji
wykonywanych przez różne moduły systemu (filtry)

moduły działają niezależnie od siebie

moduły obierają dane w pewnym formacie a przekazują
dane w innym

potoki → połączenia przekazujące dane między
modułami

systemy z modułami powiązanymi w linii nazywane są
systemami sekwencyjnego przetwarzania wsadowego

background image

11/31

Architektura oparta
na przepływie danych - przykład

filtr

filtr

filtr

filtr

filtr

filtr

filtr

filtr

filtr

filtr

filtr

filtr

filtr

architektura oparta

na przepływie

architektura

przetwarzania

sekwencyjnego

potoki

background image

12/31

Architektura wywołań i powrotów

charakteryzują się możliwością łatwych zmian i
rozbudowy

rodzaje

architektura głównego programu → stosowana
często w programach komputerowych, wykorzystuje
hierarchię sterowania, program główny wywołuje
pewną liczbę procedur, które mogą wywoływać inne
procedury – projektowanie strukturalne

architektura zdalnego wywoływania procedur →
program główny i podprogramy rozmieszczone na
wielu komputerach połączonych w sieć

background image

13/31

Architektura głównego
programu - przykład

M

a

b

e

d

c

f

h

g

i

j

l

k

n

m

o

p

background image

14/31

Architektura obiektowa

system składa się z:

danych

operacji manipulowania danymi

komunikacja i koordynacja między składnikami
→ prowadzona poprzez przesyłanie
komunikatów

background image

15/31

Architektura warstwowa

system zbudowany jest z kilku warstw

warstwy odpowiedzialne są za różne zadania

składniki w warstwie wewnętrznej
odpowiedzialne są za komunikację z systemem
operacyjnym

składniki zewnętrzne odpowiedzialne są za
interfejs użytkownika

składniki warstw pośrednich realizują zadania
pomocnicze i funkcje programu

background image

16/31

Architektura warstwowa - schemat

warstwa

jądra

warstwa

narzędzi

warstwa

aplikacji

warstwa interfejsu

użytkownika

składniki

warstwy

warstwy

architektury

background image

17/31

Analiza wyboru projektu
architektury

analiza jakościowa metodą ATAM

analiza ilościowa

analiza złożoności architektury

background image

18/31

Analiza jakościowa projektu
architektury metodą ATAM

ATAM (architecture trade-off analysis method) → metoda analizy
kompromisów w architekturze*

czynności analizy, wykonywane (powtarzane) wielokrotnie:

zebranie scenariuszy użycia – z punktu widzenia użytkownika

ustalenie wymagań, ograniczeń i opisów otoczenia

opis stylów/wzorców architektury wybranych do realizacji ustalonych
scenariuszy i spełnienia wymagań z perspektywy: modułów (ocena podziału
zadań i ukrywania danych), procesów (ocena efektywności systemu) i
przepływu danych (oceny czy architektura odpowiada wymaganiom
funkcjonalnym)

ocena kryteriów jakości (niezawodność, efektywność, bezpieczeństwo,
łatwość pielęgnacji, elastyczność, łatwość testowania)

ustalenie wrażliwości kryteriów jakości na cechy stylu architektury (np.
poprzez wprowadzenie drobnych zmian, kryteria jakości ulegające wtedy
zmianie to punkty wrażliwości)

porównanie różnych możliwych stylów architektury ze względu na
wrażliwość na zmiany

* R. Kazman i inni: „The architectural tradeoff analysis method” , Software Engineering Institute, 1998

background image

19/31

Analiza ilościowa projektu
architektury* - analiza spektrum

polega na ulokowaniu analizowanego projektu między najlepszymi i
najgorszymi rozwiązaniami na podstawie oceny poszczególnych
kryteriów jakości

suma ocen kryteriów jakości implikuje ocenę całkowitą S

oblicza się również ocenę S

w

dla hipotetycznego najsłabszego

możliwego projektu i ocenę S

b

dla optymalnego projektu

indeks spektrum I

S

=[(S-S

W

)/(S

b

-Sw)]∙100

wartość I

S

– określa stopień zbliżenia projektu na optymalnego

indeks usprawnienia I

mp

=I

S1

-I

S2

w przypadku wprowadzania zmian w

projekcie, I

mp

>0 oznacza że system S1 jest lepszy niż S2.

* T. Asada i inni: „The quantified design space” , w M.Shaw, D. Garlan :„Software architecture”, Prentice-Hall,
1996

background image

20/31

Analiza ilościowa projektu architektury* -
indeks wyboru projektu

d=(N

s

/N

a

)∙100

N

s

– liczba kryteriów spełnionych przez analizowane

rozwiązanie

N

a

– liczba wszystkich rozważanych kryteriów

im większa wartość d tym analizowany projekt bardziej
zbliżony jest do ideału

* T. Asada i inni: „The quantified design space” , w M.Shaw, D. Garlan :„Software architecture”, Prentice-Hall,
1996

background image

21/31

Analiza ilościowa projektu architektury* -
analiza wkładu

pomaga określić przyczyny pogorszenia wyników będące
następstwem określonych decyzji projektowych

wykonuje się analizę podobną do QFD (jakość rozwijania
funkcji, wymagania normalne, oczekiwane i ekscytujące)

identyfikowane są wymagania klienta i mechanizmy ich
realizacji w postaci cech architektury

dla każdej analizowanej architektury ocenia się (1-10)
wagę związków między mechanizmami realizacji a
wymaganiami

* T. Asada i inni: „The quantified design space” , w M.Shaw, D. Garlan :„Software architecture”, Prentice-Hall,
1996

background image

22/31

Analiza ilościowa projektu architektury* -
złożoność architektury

ocena ogólnej złożoności architektury na podstawie
zależności między składnikami architektury

związki ustalane na podstawie przepływu informacji i
sterowania w programie

zależności*:

dzielenia danych → przypadek korzystania przez dwa składniki z
tych samych zasobów lub dostarczania danych do tego samego
składnika

przepływu danych → przypadek gdy moduł x musi zakończyć
działanie przed przekazaniem sterowania do modułu y lub gdy
moduł x wywołuje moduł y z odpowiednimi parametrami

ograniczająca → ograniczenia na przepływ sterowania (np.
wykluczenie jednoczesnego wykonywania)

* J. Zhao: „On assessing the complxity of software architectures”, ACM, 1998

background image

23/31

Miary złożoności projektów
architektury* (1)

złożoność strukturalna modułu i
S(i)=f

2

out

(i)

f

out

(i) – rozgałęzienie wyjściowe modułu i

złożoność danych – stopień skomplikowania interfejsu
modułu i
D(i)=v(i)/[f

in

(i) +1]

v(i) – liczba zmiennych wejściowych oraz wyjściowych
modułu i
f

in

(i) – rozgałęzienie wejściowe modułu i

złożoność systemowa
C(i)=S(i)+D(i)

--
rosnące wartości miar → rosnąca złożoność architektury

* D. N. Card, R. L.Glass: „Measuring software design quality”, Prentice-Hall, 1990

background image

24/31

Miary złożoności projektów
architektury* (2)

miara oparta na liczeniu rozgałęzień wejściowych i
wyjściowych dla architektury wywołań i powrotów *
HKM = l(i)∙[f

in

(i) + f

out

(i)]

2

l(i) – liczba instrukcji w module i
f

in

(i), f

out

(i) – rozgał. wejściowych/wyjściowych modułu i

miary morfologii (kształtu) architektury **

wielkość = liczba wierzchołków + liczba krawędzi

głębokość – najdłuższa ścieżka między modułami na najwyższymi
najniższym poziomie

szerokość – największa liczba wierzchołków na jednym poziomie

liczba krawędzi/liczba wierzchołków – gęstość struktury wywołań,
oszacowanie liczby sprzężeń między modułami

* S. Henry, D. Kafura: „Software structure metrics based on information flow”, IEEE Trans. Software
Engineering , 1981

** N. Fenton: „Software metrics”, Chapman and Hall, 1991

background image

25/31

Odwzorowanie wymagań dla
systemu na jego architekturę

wykorzystuje się tu diagramy przepływu danych
(DFD)

etapy:

określenie rodzaju przepływu informacji (transformacja,
przepływ transakcji)

określenie granic przepływu informacji

odwzorowanie diagramów DFD na strukturę systemu

zdefiniowanie hierarchii sterowania

ulepszanie struktury na bazie miar jakości

rozwinięcie i uściślenie architektury

background image

26/31

Transformacja

dane zewnętrzne wpływają do systemu i są
przekształcane na format wewnętrzny
(przepływy wejściowe)

przekształcone wstępnie dane wpływają do
jądra systemu (centrum transformacji) i zostają
przetwarzane

przetworzone dane przepływają do
zewnętrznych odbiorców (przepływ wyjściowy)

przepływ zachodzi wzdłuż jednej lub maks.
kilku prostych ścieżek

background image

27/31

Przepływ transakcji

przepływ danych opisany względem pojedynczego
elementu danych (transakcja)

przepływ danych realizowany jedną z wielu możliwych
ścieżek

istnieje jedna wejściowa ścieżka przepływu danych,
gdzie dane zewnętrzne zamieniane są na transakcję

transakcja podlega analizie, otrzymana wartość
powoduje skierowanie transakcji na jedną z wielu
możliwych ścieżek akcji

węzeł z którego wychodzą możliwe ścieżki akcji →
centrum przetwarzania transakcji

diagramy dużych systemów mogą zawierać zarówno
elementy przepływu transakcji jak i transformacji

background image

28/31

Odwzorowanie transformacji –
czynności projektowe

przegląd podstawowego modelu systemu (DFD zerowego poziomu,
analiza specyfikacji systemu i specyfikacji wymagań)

przegląd i uściślenie DFD – uzupełnienie szczegółami

określenie czy DFD ma cechy transformacji czy przepływu transakcji
(mogą występować oba)

określenie granic centrum transformacji przez zaznaczenie granic
przepływów wejściowych i wyjściowych

faktoryzacja 1. poziomu – zdefiniowanie hierarchii architektury w której
moduły na górze hierarchii mają cechy sterujące, moduły na dole
hierarchii przetwarzają dane a moduły pośrednie częściowo sterują a
częściowo przetwarzają dane

faktoryzacja 2. poziomu – odwzorowanie wszystkich procedur z DFD
na moduły w strukturze systemu

uściślenie wstępnej wersji architektury w oparciu o zasady poprawy
jakości oprogramowania

background image

29/31

Odwzorowanie przepływu
transakcji – czynności projektowe

przegląd podstawowego modelu systemu

przegląd i uściślenie DFD

określenie czy DFD ma cechy transformacji czy przepływu
transakcji (mogą występować oba)

określenie granic przetwarzania transakcji i rodzaju
przepływu na ścieżkach akcji

odwzorowanie DFD na strukturę systemu odpowiednią do
przetwarzania transakcji (faktoryzacja 1. poziomu) –
zdefiniowanie gałęzi wejściowej i rozdzielającej

faktoryzacja i uściślanie struktury przetwarzania transakcji i
struktury ścieżek akcji

udoskonalanie wstępnej wersji architektury w oparciu o
zasady poprawy jakości oprogramowania

background image

30/31

Uściślanie projektu architektury

wykonywane po przygotowaniu i udoskonaleniu
struktury programu

obejmuje czynności

opis działania modułów (sposób przetwarzania danych)

opis interfejsów modułów (zewnętrznych i wewnętrznych)

definicja lokalnych i globalnych struktur danych

określenie ograniczeń i limitów projektu (typy danych, rozmiar,
wartości skrajne, sytuacje nie przewidziane w projekcie)

przegląd elementów projektu (zwrócenie uwagi na wymaganie
stawiane systemowi, łatwość testowania, pielęgnacji, itp.)

analiza zasadności udoskonalenia projektu

background image

31

Dziękuję za uwagę

źródło: „Praktyczne podejście do inżynierii oprogramowania”, R.S. Pressman


Wyszukiwarka

Podobne podstrony:
IO wyk6 projektowanie architektura v2
IO wyk6 projektowanie architektura v2
projekt architektoniczno budowlany domku jednorodzinnego
66 251103 projektant architekt systemow teleinformatycznych
ppa, Studia, Sem 3, 01.SEMESTRIII Maja, podstawy projektowania architekt
Podstawy projektowania architektonicznego
PROJEKT ARCHITEKTONICZNO-BUDOWLANY DOMKU JEDNORODZINNEGO, PROJEKT, PROJEKT
5 umowa o prace projektowe, Architektura i budownictwo, Budowlane, prawo budolwane
09 Projektowanie architektoniczne
kolo projektowanie, ARCHITEKTURA KRAJOBRAZU(12)
zagadnienia architektura2012, PWR, Podstwy projektowania architektonicznego śliwowski
tematy na zaliczenie, Studia, Sem 3, III, III Semestr, Podstawy projektowania architektonicznego, Po
DzU217-2005poz1837domy pomocy społecznej, Architektura, przepisy - projektowanie architektoniczne
III ROK ARCH projektowanie architektury PRZEMYSŁOWEJ, Zakład produkcji mebli, Materiały pomocnicze
Projekt architektoniczno budowlany
Ochrona gruntów rolnych i leśnych, Architektura, przepisy - projektowanie architektoniczne

więcej podobnych podstron