Dynamiczna analiza kodu w RSA

W dobie dążenia do budowania wysokiej jakości systemów informatycznych istotne jest badanie dynamicznych własności kodu. W Rational Software Architect ten obszar wspomaga mechanizm Runtime Analysis.

Czym tak naprawdę jest Runtime Analysis? Runtime Analysis to nic innego jak praktyka nakierowana na zrozumienie zachowania komponentów oprogramowania na podstawie danych zgromadzonych w czasie wykonywania komponentu. Nad definicją Runtime Analysis należy się zastanowić w aspekcie znaczenia dwóch tworzących ją słów:

  • ?Runtime? ? oznacza, że analiza nie obejmuje statycznych sposobów analizowania kodu źródłowego rozwijanego oprogramowania i relacji pomiędzy blokami budującymi oprogramowanie. Umożliwia ona raczej pozyskanie cennych informacji o tym jak dany komponent zachowuje się w czasie jego uruchomienia, zarówno w środowisku testowym, jak i w docelowym środowisku wdrożeniowym.
  • ?Analysis? ? oznacza, że czynność jest zaprojektowana w celu uzyskania wyjaśnień dla różnych, występujących lub potencjalnych złych zachowań.

Runtime Analysis jest często mylone z debugowaniem, które jest dobrze znaną czynnością wykonywaną przez wszystkich developerów oprogramowania.

Często zakładamy, że aplikacja będzie działała tak długo, jak długo kod źródłowy posiada prawidłową składnię, a komponent kompiluje się i linkuje bez żadnych błędów lub ostrzeżeń. To założenie jest jak najbardziej błędne. Nawet jeśli kompilator nie zgłosi żadnych błędów, to i tak aplikacja może nie być gotowa aby przedstawić ją klientowi. Przeważnie pisząc kod najpierw testujemy bazową funkcjonalność komponentu i upewniamy się czy wszystkie wymagania są spełnione. Później w cyklu rozwoju oprogramowania zespół przeważnie testuje oprogramowanie. Takie testy często skupiają się na funkcjonalności głównych scenariuszy przypadków użycia. Wnioskując zadajmy sobie pytanie. Czy jeżeli funkcjonalność głównych scenariuszy przypadków użycia jest potwierdzona, to czy aplikacja jest gotowa aby zaprezentować ją klientowi? Odpowiedz nadal brzmi nie. Aplikacja może bowiem zwracać błędy na niektórych maszynach, w niektórych kombinacjach scenariuszy lub w niektórych nie przetestowanych scenariuszach. Co więcej możliwe jest, że wydajność może nie być satysfakcjonująca. Zadaniem wszystkich ról biorących udział w rozwoju oprogramowania powinno być zminimalizowanie prawdopodobieństwa ze klient otrzyma wadliwy kod i w rezultacie nieprawidłowo działające oprogramowanie. Najlepszym sposobem aby to osiągnąć jest wykonywanie testów oprogramowania tak wcześnie jak to tylko możliwe. Bardzo rozsądnie jest uważać Runtime Analysis za rozszerzenie standardowego narzędzia debugującego i metodę, która pomaga zespołom ujawniać szczególne i bardzo często trudno do rozwiązania problemy.

Celem wykonania testów dynamicznych należy stworzyć profi dla projektu testu komponentu. Całe oprzyrządowanie analizy runtime jest dostępne właśnie poprzez tenże profil. Efekty realizacji danego punktu ćwiczeń laboratoryjnych przedstawione są poniżej:

clip_image004

Rys.1 Tworzenie profilu dla projektu testu komponentu

clip_image006

Rys.2 Tworzenie profilu dla projektu testu komponentu

clip_image008

Rys.3 Widok Profiling Monitor otworzony po stworzeniu profilu

Kolejnym etapem realizacji analizy dynamicznej jest uruchomienie aplikacji rezultatów analizy profilu i uruchomienie badanej aplikacji. Przeglądu analizy profilu dokonujemy z widoku Profiling Monitor. Przykładowe efekty realizacji przeglądu wyników analizy przestawione są poniżej:

clip_image010

Rys.4 Przegląd wyników analizy ? Basic Memory Analysis (Memory Statistics)

clip_image012

Rys.5 Przegląd wyników analizy ? Basic Memory Analysis (Object References)

clip_image014

Rys.6 Przegląd wyników analizy ? Execution Time Analysis (Execution Statistics)

clip_image016

Rys.7 Przegląd wyników analizy ? Method Code Coverage (Coverage Statistics)

Podsumowując, Runtime Analysis rozszerza standardowe czynności związane z rozwojem oprogramowania o jeden kluczowy wymiar, a mianowicie o dbałość o jakość. Wyznacza ona drogę w kierunku osiągnięcia wyższej jakości oprogramowania poprzez lepsze zrozumienie wewnętrznych procesów w rozwijanej aplikacji. Należy zapamiętać, że kompilacja kodu źródłowego nie jest żadnym dowodem jakości.

Technorati Tagi: Rational Software Architect,modelowanie systemów informatycznych,inżynieria oprogramowania
Podobne wpisy
Zintegrowane środowisko wytwarzania aplikacji web’owych na platformie .NET

W artykule przedstawiono opis pakietu narzędziowego VS.NET (Microsoft) z Rational XDE (IBM) do wytwarzania aplikacji webowych pracujących w środowisku urządzeń więcej

Rational Software Architect Pierwszy Krok

Technorati Tagi: Rational Software Architect,inżynieria oprogramowania W artykule zaprezentowano jak rozpocząć pracę z i opis elementów tego narzędzia CASE. Środowisko więcej

Wstęp do projektowania aplikacji w Rational Software Architect

Rational Software Architect jest kolejną po Rational Rose i Rational XDE generacją narzędzi wspierających twórców oprogramowania w czasie projektowania. RSA więcej

Rational Unified Process – Wstęp

Rational Unified Process jest zunifikowanym procesem wytwórczym oprogramowania dostarczającym praktycznych wskazówek, wzorców dokumentów i narzędzi, szablonów dokumentów oraz przykładów postępowania więcej

Reklama
MODESTO - licencje Enterprise Architect
Scroll to Top