metoda oceny efektywności oprogramowania na etapie jego

Transkrypt

metoda oceny efektywności oprogramowania na etapie jego
XII International PhD Workshop
OWD 2010, 23–26 October 2010
METODA OCENY EFEKTYWNOŚCI OPROGRAMOWANIA
NA ETAPIE JEGO PROJEKTOWANIA
PERFORMANCE EVALUATION OF SOFTWARE
DURING DESIGN STAGE
Arkadiusz Wrzosk, Wojskowa Akademia Techniczna
Abstract
Software performance estimation should be
applied on early stages. Correction of errors in
software architecture detected too late can be very
expensive. This paper describes an approach based
on simulation to performance prediction of software
system.
Performance is estimated during design stage
when software architecture is specified by UML.
UML is an industry standard used as a common OO
modeling language. Process-oriented simulation
model is derived from annotated diagrams: Use
Case, Sequence, Activity and Deployment.
UML diagrams are annotated using standard
UML extensions mechanisms aggregated in
performance profile. This profile allows designer to
include quantitative information, which are used to
build a simulation program.
Performance evaluation process can be
automated. This paper describes created IBM
Software Architect extensions used to automate
transformations and run simulation. UML profile,
diagrams transformation, and standard plugin
extension mechanism were used. Results are
reported using Business Intelligence and Reporting
Tools (BIRT).
This paper describes steps required to evaluate
performance using proposed approach. This steps
are defined in the context of Rational Unified
Process. Performance analysis is a role responsible
for performance evaluation.
Streszczenie
W pracy zaprezentowano metodę badania
efektywności oprogramowania na wczesnym etapie
jego wytwarzania, jakim jest projektowanie.
Zaproponowano
podejście
umożliwiające
przeprowadzenie badań z wykorzystaniem symulacji
komputerowej. W ramach pracy opisane zostało
narzędzie, pozwalające na przeprowadzenie badań
i stanowiące część platformy IBM Rational Software
Architect.
1. Wprowadzenie
Wczesna
ocena
poprawności
wymagań
funkcjonalnych i niefunkcjonalnych jest ważnym
aspektem procesu wytwarzania oprogramowania.
Szczególne
znaczenie
mają
wymagania
niefunkcjonalne takie, jak efektywność czy
niezawodność. Poprawienie późno wykrytych
błędów w projekcie architektury może być
kosztowne. Dlatego ocena parametrów systemu
powinna być wykonywana możliwie najwcześniej.
W niniejszej pracy opisano metodę oceny
architektury na etapie projektowania.
Językiem wybranym do zapisu architektury jest
Unified Modeling Language (skrót UML). Jest on
językiem
znormalizowanym,
służącym
do
dokumentowania projektu architektury. Może być
stosowany do obrazowania, specyfikowania,
tworzenia i dokumentowania artefaktów powstałych
podczas procesu budowy systemu informatycznego.
Jest on powszechnie akceptowanym i stosowany
w środowisku inżynierów. UML dostarcza
wygodnych
mechanizmów,
umożliwiających
rozszerzenie jego semantyki. Zbiór rozszerzeń może
być agregowany w tzw. profilu.
W oparciu o [1] i [4] zaproponowano profil, który
jest zbiorem stereotypów i notek umożliwiających
uzupełnienie projektu architektury o informacje
wymagane do przeprowadzenia badań.
Jako technikę oceny projektu architektury
zapisanego w języku UML wybrano symulację
dyskretno - zdarzeniową. Nie wymaga ona budowy
prototypu i pozwala na przeprowadzenie badań na
etapie
projektowania..
Symulacja
umożliwia
wyznaczenie ilościowych charakterystyk pracy oraz
badanie
wpływu
zmiany
parametrów
na
charakterystyki systemu, co w przypadku badań
architektury pozwala na ocenę i porównanie różnych
decyzji podjętych na etapie projektowania.
W oparciu o [1] opracowano kroki transformacji
modelu
architektury
oprogramowania
61
zgłoszenia pojawiają się co losowy czas. Aby
zdefiniować strumień zamknięty aktorowi należy
nadać stereotyp <<OpenWorkload>>. Rozkład czasu
pomiędzy kolejnymi zgłoszeniami definiujemy
z wykorzystaniem atrybutu occurence. Przypadki użycia
(skrót PU) reprezentują zbiór scenariuszy, które są
symulowane po nadejściu zgłoszenia. Dodatkowo do
asocjacji aktora z PU dodano informację o liczbie
wykonań PU (atrybut executions stereotypu
<<Transition>>),
co
umożliwia
szacowanie
prawdopodobieństwa jego uruchomienia.
*
*
udokumentowanej z wykorzystaniem języka UML do
modelu symulacyjnego. Zaproponowano następujące
diagramy UML opisujące architekturę wymagane do
jej oceny: przypadków użycia, sekwencji, aktywności,
komponentów i wdrożenia.
W ramach pracy powstała lista rozszerzeń
środowiska Rational Software Architekt wspierająca
proces oceny architektury oprogramowania.
Opisana w pracy metoda ma zastosowanie
w przypadku badań własności oprogramowania
modelowanego
z
wykorzystaniem
metod
obiektowych. Została ona opisana w kontekście
metodyki RUP i powinna stanowić kroki dyscypliny
analizy i projektowania.
*
2. Transformacja projektu
architektury do modelu
symulacyjnego
Niestety w obecnej chwili nie istnieje język
umożliwiający modelowanie dowolnej dziedziny
systemu. Dlatego twórcy języka UML zapewnili
możliwość kontrolowanego rozszerzania jego
notacji. W celu modelowania dziedziny badania
efektywności systemów zdefiniowany został profil
UML. Umożliwia on dodanie do diagramów
informacji niezbędnych do przeprowadzenia badań
z wykorzystaniem symulacji. Na poniższym rysunku
przedstawiono, na jakie elementy modelu
symulacyjnego będą transformowane poszczególne
diagramy.
Diagramy UML
Model symulacyjny
Przypadków użycia
Obciążenie
Wdrożenia
Zasoby
Komponentów
Komponenty
Aktywności
Akcje
Stereotypy
Parametry
Rys. 1. Mapowanie elementów UML na model
symulacyjny
Fig. 1. UML diagrams to simulation model mapping
2.1 Adnotacje UML
Obciążenie
systemu
modelowane
jest
z wykorzystaniem diagramów przypadków użycia.
Aktorzy reprezentują strumień napływających do
systemu zgłoszeń. W pracy zdefiniowano dwa typy
strumieni.
Skończony
strumień
zgłoszeń
i nieskończony strumień zgłoszeń. W skończonym
strumieniu zgłoszeń, każde zgłoszenie po
zakończeniu scenariusza, zanim ponownie uruchomi
kolejny, spędza określony czas poza systemem.
Skończony strumień zgłoszeń definiujemy nadając
aktorowi stereotyp <<ClosedWorkload>>. Wielkość
populacji definiowana jest atrybutem population,
natomiast rozkład czasu spędzonego poza systemem
przez atrybut extDelay. W nieskończonym strumieniu
Rys. 2. Diagram przypadków użycia z adnotacjami
Fig.2. Annotated Use Case diagram
Diagramami,
które
zawierają
informacje
o
scenariuszach,
są
diagramy
interakcji.
W proponowanym podejściu wykorzystane zostały
diagramy sekwencji. W prawdzie służą one do
pozyskiwania informacji o klasach, ich metodach
i powiązaniach między nimi, ale zawierają również
informacje o kolejnych krokach scenariusza PU. Do
problemu uzupełnienia diagramów o informacje
wymagane do przeprowadzenia badań, możemy
podejść w dwojaki sposób. Możemy wkomponować
informacje w diagramy sekwencji, bądź utworzyć na
podstawie
diagramów
sekwencji,
diagramy
aktywności i dopiero na nie nanieść potrzebne
adnotacje. Ze względu na to, że stereotypy wnoszą
na diagram informacje dodatkowe, wybrano
podejście drugie, tj. generacja diagramów aktywności
na podstawie diagramów sekwencji. Dzięki temu,
użytkownik dokumentacji nie będzie miał
problemów z jej czytelnością.
Aktywności na utworzonych diagramach
reprezentują żądanie dostępu do zasobu.
Podstawowym typem aktywności jest akcja prosta,
reprezentująca krok obliczeniowy i związana
z żądaniem wykorzystania zasobu aktywnego. W celu
zdefiniowania takiej akcji do aktywności należy
dodać stereotyp <<SimpleAction>>. Podstawowym
atrybutem tej akcji jest atrybut demand, który definiuje
czas żądania dostępu do zasobu aktywnego.
Dodatkowo może ona przeprowadzić dowolne
obliczenia zanim zażąda dostępu do zasobów
(atrybut delay) oraz może być wykonana wielokrotnie,
w określonych odstępach czasu (atrybuty: repetitions,
interval). Kolejnym typem akcji jest akcja informująca
o zakończeniu wywołania akcji prostej, która jest
z nią powiązana (stereotyp <<CommStep>>).
Ostatnimi typami akcji są akcje związane z alokacją
i zwalnianiem zasobów pasywnych. Definiujemy je
62
z wykorzystaniem stereotypów: <<AcquireAction>>
oraz <<ReleaseAction>>. Podstawowym atrybutem
tych akcji jest atrybut quantity, który w zależności od
typu akcji, reprezentuje liczbę tokenów zasobu do
zaalokowania
lub
zwolnienia.
Specjalnymi
stereotypami są: <<ForkAction>>, <<JoinAction>>.
Służą one do modelowania współbieżnego
wykonania akacji i są nanoszone na diagramach
sekwencji. Ma to ułatwić automatyczne tworzenie
współbieżnych ciągów akcji na diagramach
aktywności. Podczas transformacji komunikatów
z diagramu sekwencji zachowywana jest informacja
o klasie implementującej metodę. Będzie ona
wykorzystywana na etapie automatycznego wiązania
zasobów z akcjami.
o1:Klasa1
o2:Klasa2
<<SimpleAction>>
Komunikat 1
Komunikat 1
<<CommStep>>
Komunikat 1
Komunikat 2
<<SimpleAction>>
Komunikat 2
<<CommStep>>
Komunikat 2
Rys. 4. Diagram wdrożenia z adnotacjami
Fig. 4. Annotated deployment diagram
Na diagramach wdrożenia należy dodatkowo
nanieść informacje o komponentach, które są na
nich uruchomione.
Dodatkowym
diagramem,
który
jest
wykorzystywany w proponowanym podejściu jest
diagram komponentów. Powinien on zawierać
informacje o klasach implementujących dany
komponent
oprogramowania.
Asocjacja
komponentu z pakietami lub klasami wspomaga
jednoznaczną identyfikację powiązania akcji
z komponentem (na podstawie sygnatury metody
przypisanej do akcji).
Mając na diagramie aktywności informacje
o
klasie
implementującej
metodę,
której
reprezentacją jest dana akcja, komponencie, który
jest implementowany z wykorzystaniem tej klasy
i węźle, na którym uruchomiony jest wybrany
komponent możemy automatycznie uzyskać
informację o zasobie, na którym uruchomiona jest
akcja. Jest to istotne, ponieważ przy dużych
systemach nanoszenie na diagramy aktywności
informacji o zasobie, na którym jest uruchomiona
definiowana akcja, może być bardzo czasochłonne.
2.2 Transformacja modeli
Rys. 3. Diagramy sekwencji i aktywności z adnotacjami
Fig. 3. Annotated sequence and activity diagram
Zasoby modelowane są z wykorzystaniem
diagramów wdrożenia. Rozróżniamy dwa rodzaje
zasobów: aktywne i pasywne. Zasoby aktywne
definiujemy
z
wykorzystaniem
stereotypu
<<ActiveResource>>.
Reprezentują
one
wieloprocesorowe maszyny obsługujące zgłoszenia.
Założono, że wszystkie procesory są jednakowe
i charakteryzują się taką samą mocą obliczeniową.
Liczbę procesorów definiujemy z wykorzystaniem
atrybutu procNum, natomiast częstotliwość pracy
zegara, z wykorzystaniem atrybutu rate. Zasoby
pasywne definiujemy z wykorzystaniem stereotypu
<<PassiveResource>>. Reprezentują one zasoby, które
są alokowane. Dostępna jest skończona ilość danego
zasobu (określona przez liczbę tokenów). Liczbę
dostępnych tokenów definiujemy z wykorzystaniem
atrybutu capacity, natomiast czas potrzebny na zajęcie
zasobu, definiowany jest atrybutem accessTime.
Zwalnianie zasobu nie powoduje upływu czasu.
Każdy zasób obsługuje akcje zgodnie z określonym
algorytmem. W przypadku zasobu pasywnego
zaimplementowano algorytmy: LIFO i FIFO.
W
przypadku
zasobów
aktywnych
zaimplementowano dodatkowo algorytm Time
Sparing (atrybut schedPolicy).
Ogólny algorytm transformacji modelu systemu
zapisanego w języku UML na model symulacyjny jest
następujący:
- każdy aktor tłumaczony jest na obciążenie
systemu,
- każda akcja na diagramie aktywności
tłumaczona jest na krok symulacji,
- węzły na diagramach aktywności mapowane są
na zasoby,
- komponenty transformowane są na obiekty
komponentów w modelu symulacyjnym.
Diagramy przypadków użycia służą do uzyskania
informacji o obciążeniu. W zależności od stereotypu
przypisanego do aktora tworzona jest instancja klasy
reprezentującej
strumień
skończony
lub
nieskończony. Z każdym aktorem powiązana jest
pewna liczba przypadków użycia. Każdy z nich
agreguje zbiór scenariuszy, które zobrazowane są na
diagramie aktywności. Dla każdego przypadku użycia
tworzona jest akcja złożona.
Dla każdej akcji z diagramu aktywności, bazując
na jej stereotypie, tworzona jest instancja klasy,
odpowiadająca krokowi symulacji. Akcje wiązane są
następnie w relacji poprzednik – następnik.
Na podstawie zawartości diagramów wdrożenia
tworzone są instancje zasobów aktywnych
i pasywnych, na których działają akcje.
63
Na podstawie
tworzone
są
oprogramowania.
diagramów
instancje
komponentów
komponentów
3. Metoda badania własności
oprogramowania
wartość analityczną. Artefakty stanowią dane
wejściowe i wyjściowe czynności. Poza tym
określona jest również rola za nie odpowiedzialna.
W poniższej tabeli przedstawiono powiązania
opisywanego artefaktu.
Tab. 1.
Powiązania raportu o wydajn ości systemu
Opracowana metoda ma zastosowanie tylko
Software a rchitect ure per for mance repor t associations
w przypadku badań wydajności architektury na etapie
Odpowiedzialna:
Modyfikuje:
projektowania, modelowanej z wykorzystaniem Role
analityk
wydajności
analityk wydajności
metod obiektowych. Powinna zostać umiejscowiona
w dyscyplinie analizy i projektowania procesu, jakim
Zadania Wejście dla:
Wyjście z:
jest Rational Unified Process (RUP). Konkretna
udoskonalenie
ocena wydajności
konfiguracja zależy od specyfiki organizacji
architektury
architektury
i projektu.
3.2. Kroki metody badania oprogramowania
3.1 Charakterystyka podstawowych
elementów metody
Opracowana metoda stanowi fragment metodyki
RUP. Omówiona jest w kontekście ról, artefaktów
i czynności. Kolejne punkty zawierają szczegółowy
opis tych elementów.
W celu przeprowadzenia badań oprogramowania
należy wyznaczyć rolę, odpowiedzialną za ich
wykonanie. Utworzona rola to: analityk wydajności.
Jest
ona
odpowiedzialna
za
koordynacje
i przeprowadzenie badań wydajnościowych. Każda
rola związana jest ze zbiorem artefaktów oraz
kroków, za których wykonanie jest odpowiedzialna.
Na poniższym rysunku przedstawiono powiązania
roli analityka wydajności.
Rys. 5. Powiązania roli analityka wydajności
Fig. 5. Performance analyst associations
Osoba w roli analityka odpowiedzialna jest za
poprawne
przeprowadzenie
następujących
czynności:
- wzbogacenie diagramów UML o informacje
wymagane do przeprowadzenie badań,
- przeprowadzenie badań,
- przeprowadzenie analizy uzyskanych wyników,
- poinformowanie o stanie architektury
wszystkich ról za nią odpowiedzialnych.
Osoba pełniąca rolę analityka powinna posiadać
wiedzę na temat języka UML oraz zagadnień
związanych z badaniem wydajności.
Do artefaktów powstałych w trakcie prowadzenia
oceny
wydajności
należy
raport
o wydajności systemu, zawierający wyniki badań.
Celem utworzenia tego artefaktu jest prezentacja
wyników badania systemu w postaci posiadającej
Czynność oceny wydajności wiąże się z realizacją
pewnych kroków, w konsekwencji których powstaje
raport o wydajności. Omówiono je kolejno
w punktach poniżej.
1. Określenie celów badania.
Cel: Określenie elementów architektury, które
będą badane ze szczególną uwagą.
Na tym etapie należy określić główne cele
badania oraz ewentualnie zmodyfikować projekt
systemu, w celu poprawnego przeprowadzenia badań
w ich kontekście.
2. Uzupełnienie modelu przypadków użycia.
Cel: Definiowanie parametrów obciążenia.
Jednym z podstawowych elementów związanych
z badaniami wydajności jest obciążenie systemu. Dla
każdego aktora należy zdefiniować typ strumienia
generowanych
zgłoszeń.
Typ
strumienia
identyfikujemy w następujący sposób:
- jeśli liczba użytkowników systemu jest
ograniczona, to modelujemy to za pomocą
strumienia zamkniętego,
- w przeciwnym wypadku będzie to strumień
otwarty.
Każdy aktor związany jest z uruchamianymi
przypadkami użycia. Przypadki użycia opisują
dostarczane usługi i agregują scenariusze interakcji
użytkownika z systemem. Należy określić to, ile razy
podczas współpracy użytkownika z systemem
wykonywany jest określony przypadek użycia.
3. Utworzenie perspektywy wydajnościowej.
Cel: Utworzenie modelu wydajnościowego
zawierającego scenariusze działania systemu.
Jedną z danych wejściowych wymaganych do
przeprowadzenia badań oprogramowania są
scenariusze interakcji użytkownika z systemem.
Modelują one zachowanie systemu podczas
działania. Należy utworzyć model opisujący
scenariusze działania systemu, na którym zostaną
naniesione
informacje,
wymagane
do
przeprowadzenia
badań.
Należy
pamiętać
o poprawnym modelowaniu współbieżności
i punktów decyzyjnych.
64
4. Uzupełnienie diagramów aktywności
Cel: Określenie obciążenia generowanego przez
poszczególne akcje.
Każda akcja wykonywanego scenariusza wiąże się
z wykorzystaniem do jej realizacji pewnych zasobów.
Należy określić obciążenie, jakie akcja generuje.
5. Uzupełnienie modelu wdrożenia.
Cel: Definiowanie typu zasobów.
W ramach badań wydajnościowych wyróżniane są
różne typy zasobów. W tym kroku należy
zdefiniować i sparametryzować zasoby aktywne
i pasywne. Identyfikacji typu zasobu można dokonać
w następujący sposób:
- zasób aktywny - maszyna wieloprocesorowa
udostępniająca usługi obliczeniowe,
- zasób pasywny - część systemu, którego ilość
jest ograniczona np. pula połączeń do bazy danych.
Po identyfikacji typu zasobu należy zdefiniować
parametry opisujące dany typ.
6. Dobór metryk.
Cel: Wybór metryk umożliwiających porównanie
różnych rozwiązań architektonicznych.
Należy dobrać metryki tak, aby możliwe było
porównanie różnych rozwiązań architektonicznych
z różnych badań.
7. Przeprowadzenie badań.
Cel:
Przygotowanie
danych
do
oceny
architektury.
Podstawą do oceny wydajności architektury są
wyniki
przeprowadzonych
badań.
Danymi
wejściowymi do analizy są następujące elementy:
- model przypadków użycia, przedstawiający
obciążenie systemu i usługi dostarczone przez
system,
- model wdrożenia, przedstawiający zasoby
udostępnione przez system,
- scenariusze działania systemu z perspektywy
wydajnościowej,
model
przedstawiający
komponenty,
pozwalający na powiązanie zasobów z akcjami na
nich wykonywanymi.
Na podstawie powyższych danych powinny
zostać przeprowadzone badania wydajnościowe.
Wyniki tych badań powinny zostać zarchiwizowane
i przygotowane do dalszej analizy. Na podstawie
uzyskanych wyników powinien zostać stworzony
raport,
przedstawiający
obraz
wydajności
architektury.
8. Analiza wyników symulacji.
Cel: Ocena wydajności architektury.
Wyniki uzyskane podczas przeprowadzonych
badań powinny zostać przeanalizowane. Na ich
podstawie powinna zostać przygotowana lista
ewentualnych uwag dotyczących wydajności
architektury. O wszelkich problemach związanych
z wydajnością powinny zostać poinformowane
wszystkie osoby odpowiedzialne za architekturę
systemu.
3.3. Listy kontrolne
W ramach metodyki RUP udostępniono
mechanizm list kontrolnych, umożliwiających
weryfikację poprawności wykonanej czynności.
Poniżej przedstawiono listę kontrolną dla czynności
oceny wydajności architektury. Zawiera ona
następujące punkty:
- dla każdego aktora został określony typ
strumienia,
- dla każdego przypadku użycia określono liczbę
jego wykonań,
- dla każdego przypadku użycia zdefiniowano
jego realizacje,
- na diagramach obrazujących realizacje
przypadku użycia zaznaczono punkty rozwidleń
i scaleń,
- komponenty powiązane są z artefaktem
opisującym zasób, na którym jest on uruchomiony,
- komponenty powiązane są z pakietami i klasami,
które je implementują,
- określono typ każdego zasobu,
- każda akcja modelu wydajnościowego zawiera
informacje o generowanym obciążeniu zasobów.
4. Rozszerzenie środowiska Rational
Software Architect (RSA)
Opisana w punkcie 3 metoda jest wspierane przez
zbiór rozszerzeń środowiska RSA. W celu
umożliwienia przeprowadzenia badań na podstawie
diagramów opisujących architekturę, rozszerzenie
środowiska
powinno
umożliwić
stworzenie
i uruchomienie modelu symulacyjnego badanego
oprogramowania. Na rysunku został przedstawiony
proces, jaki musi zostać zrealizowany, aby osiągnąć
wyżej postawiony cel. Zaznaczono również na nim
wykorzystane metody rozszerzenia platformy RSA.
Rys. 6. Rozszerzenie platformy IBM Rational Software
Architekt
Fig. 6. IBM Rational Software Architect extensions
W
celu
implementacji
oprogramowania
umożliwiającego
przeprowadzenie
badań
skorzystano
z
następujących
mechanizmów
rozszerzeń środowiska RSA: profilu UML,
transformacji, wtyczek.
Profil UML został stworzony w celu
modelowania dziedziny problemowej badań
systemów z wykorzystaniem symulacji. W punkcie
65
2.1 zostały omówione podstawowe elementy tego
profilu.
Mechanizm transformacji wykorzystany został
w dwóch przypadkach. Pierwszy z nich rozwiązuje
problem scenariuszy działania oprogramowania.
W opisywanym podejściu należy dokonać
transformacji diagramów sekwencji na diagramy
aktywności. Zastosowanie ma tutaj mechanizm
transformacji jednego modelu do drugiego. Drugim
punktem, w którym zostały wykorzystane
transformacje, jest konwersja modelu stworzonego w
UML na model symulacyjny. Generowany jest plik
interpretowany później przez oprogramowanie
implementujące program symulacyjny.
Ostatnim mechanizmem rozszerzenia, jaki został
wykorzystany,
jest
standardowa
wtyczka,
umożliwiający uruchomienie symulacji i archiwizację
wyników.
Podstawową
jej
częścią
jest
zaimplementowana
biblioteka,
umożliwiająca
uruchomienie symulacji. Nazwano ją UMLSimKit.
Do jej implementacji wykorzystana została biblioteka
do symulacji zorientowanej procesowo o nazwie
DESKit.
Wyniki prezentowane są z wykorzystaniem
systemu raportowego o nazwie Business Intelligence
and Reporting Tools (BIRT) dostarczony wraz
z platformą IBM.
Rozszerzenie środowiska dostarczone jest jako
zbiór wtyczek, realizujących wyżej opisaną
funkcjonalność.
Conclusion
This paper describes approach for performance
evaluation of a system on early developing process
stages. UML as an OO modeling language was used.
Performance evaluation process is supported by
Rational Software Architect extensions.
Future research should focus on other diagrams
and their possible use for performance evaluation.
State diagrams are especially interesting. Other
problem which should be considered is reliability of
passive and active resources. This is an important
issue in high availability systems.
Provided RSA extensions should be furtherly
developed. They should support a designer in
making decision about changes on an architectural
level.
Literatura
1. M. Marzolla, Simulation-Based Performance Modeling
of UML Software Architectures, Universita
Ca'Foscari, Wenecja 2004
2. P. Kruchten, Rational Unified Process od strony
teoretycznej, WNT, Warszawa 2000
3. G. Booch, J. Rumbaugh, I.Jacobson, UML
przewodnik użytkownika, WNT, Warszawa 2000
4. Object Management Group (OMB), UML profile
for schedulability, performance and time specification,
OMG Adopted Specification ptc/07-08-04,
OMG 2007
Adres służbowy autora:
5. Wnioski
W pracy przedstawiono metodę oceny
architektury oprogramowania oraz narzędzie
wspierające ten proces. Jako język modelowania
wykorzystano UML oraz dostarczone wraz
z nim mechanizmy rozszerzenia jego semantyki.
Wybór symulacji jako techniki oceny, pozwolił
odzwierciedlić działanie systemu na wybranym
poziomie. Proces oceny architektury wspierany jest
przez zaimplementowany zestaw wtyczek do
środowiska Rational Software Architect. Wyniki
badań są archiwizowane i mogą być prezentowane
w
zrozumiałej
formie
zainteresowanym
użytkownikom.
Elementem do dalszej analizy jest włączenie do
badań kolejnych diagramów. Szczególną uwagę
należałoby zwrócić na diagramy stanów, które
modelują zachowanie obiektu i jego reakcje na
zdarzenia. Dodatkowym zagadnieniem, które
należałoby włączyć do analizy, jest niezawodność
zasobów aktywnych i pasywnych. Może mieć to
szczególne znaczenie w systemach, w których
wymaga się dużej dostępności. Należałoby również
zaimplementować
mechanizm,
wspierający
podejmowanie decyzji o zmianach w architekturze.
66
mgr inż. Arkadiusz Wrzosk
Wojskowa Akademia Techniczna
ul. gen. Sylwestra Kaliskiego 2
00-908 Warszawa 49
tel. 600 263 093
email: [email protected]