Techniki Analizy Kodu Źródłowego W Weryfikacji Własności Rzeczywistych Programów W Języku Java

Abstract

W dzisiejszych czasach komputery można znaleźć praktycznie we wszystkich obszarach działalności człowieka. Nowoczesne społeczeństwo jest niezwykle mocno uzależnione od komputerów—są one wykorzystywane m.in. w edukacji, do zarządzania systemami transportu, w bankowości i handlu, stosują je organizacje rządowe i wojsko. W praktyce komputery wykorzystywane do nadzorowania pracy elektrowni jądrowych i lotów kosmicznych niewiele różnią się od komputerów osobistych czy nawet telefonów komórkowych. Architektura dzisiejszych procesorów może się różnić, ale języki programowania wykorzystane do tworzenia oprogramowania w większości przypadków pozostają takie same. Wraz ze wzrostem popularności komputerów rośnie zapotrzebowanie na programy komputerowe. Wartość światowego rynku oprogramowania w 2009 roku była szacowana na około 250 miliardów dolarów [9]. Sam rynek aplikacji na telefony komórkowe miał w 2010 wartość około 7miliardów dolarów i szacuje się jego wzrost do 25miliardów dolaróww 2015 roku [16]. Ciągle rozwijający się przemysł komputerowy wymaga budowy coraz to bardziej potężnych i skomplikowanych systemów, które potrzebują bardzo zaawansowanego i złożonego oprogramowania. Jego poziom skomplikowania i duży rozmiar niesie za sobą rosnące prawdopodobieństwo wystąpienia błędów. W historii znane są spektakularne wypadki spowodowane przez niewielkie błędy w oprogramowaniu, jak chociażby przypadek samozniszczenia rakiety Ariane 5 tuż po starcie [11]. Rosnąca rola komputerów i powierzanie im coraz to poważniejszych obowiązków wymaga większego nacisku na zapewnienie jakości wytwarzanego oprogramowania. Istnieje wiele metod służących niwelowaniu liczby błędów. Najpopularniejszą jest weryfikacja dynamiczna, w której sprawdza się działającą aplikację, przeprowadzając na niej różnego rodzaju testy, np. testy funkcjonalne, testy jednostkowe, testywydajności. Popularność tejmetodywynika głównie z łatwości jej zrozumienia, co przekłada się także na wykorzystanie testów podczas odbioru oprogramowania przez zamawiającego. Niestety, dynamiczne podejście nie jest w stanie zapewnić, że program nie zawiera błędów, gdyż testowane są tylko wybrane scenariusze. W praktyce bardzo rzadko zdarza się, że można pokryć testami wszystkie przypadki.

Cite this paper

@inproceedings{Jakubczyk2013TechnikiAK, title={Techniki Analizy Kodu Źr{\'o}dłowego W Weryfikacji Własności Rzeczywistych Program{\'o}w W Języku Java}, author={Krzysztof Jakubczyk}, year={2013} }