Analiza oprogramowania na miarę współczesnego złożonego świata
Statyczna analiza programu jest techniką komputerową, która opiera się na szacowaniu wszystkich możliwych wyników działania programu komputerowego. Typowy proces analizy może skupiać się na kodzie, który może zostać wykonany, bądź na przykład na sposobach komunikacji oprogramowania z użytkownikami lub siecią. „Zawodowi programiści wykorzystują wyniki analizy statycznej do usprawniania swojego oprogramowania, przyspieszania jego działania lub naprawiania błędów w kodzie”, wyjaśnia Yannis Smaragdakis, koordynator projektu PARSe oraz profesor wydziału informatyki i telekomunikacji Uniwersytetu Ateńskiego. „Narzędzia do analizy mogą na przykład podpowiedzieć programiście, które elementy kodu z pewnością nie zostaną nigdy wykonane. Takie fragmenty kodu mogą następnie zostać usunięte”.
Skomplikowany świat
Głównym wyzwaniem, któremu muszą stawiać czoła programiści, jest fakt, że w dzisiejszych czasach postęp technologiczny odbywa się z karkołomną prędkością. „Współczesne programy komputerowe należą do najbardziej złożonych konstrukcji zbudowanych w historii ludzkości”, zauważa Smaragdakis. W ostatnich dziesięcioleciach byliśmy świadkami geometrycznego wzrostu złożoności oprogramowania, któremu towarzyszyło jego rosnące znaczenie w naszym codziennym życiu. Zaawansowane oprogramowanie otacza nas ze wszystkich stron – są to bowiem zarówno aplikacje, które pobieramy na nasze smartfony, jak i narzędzia do modelowania statystycznego, wykorzystywane przez gigantów internetowych do gromadzenia i interpretacji olbrzymich zbiorów danych. „Na rynku istnieje niezaspokojone zapotrzebowanie na niezawodne i wydajne oprogramowanie”, zauważa koordynator. „W praktyce oznacza to, że programiści muszą mieć dostęp do bardziej zaawansowanych technik analizy, które pozwalają na badanie nawet najbardziej złożonego oprogramowania”. Zespół projektu PARSe rozpoczął prace w 2015 roku z myślą o wypełnieniu tej luki na rynku. „Naszym celem było połączenie wyników najnowocześniejszych badań w dziedzinie analizy statycznej z zaawansowanymi aplikacjami wykorzystywanymi przez programistów do tworzenia oprogramowania”, wyjaśnia Smaragdakis. Aby zrealizować to założenie, zespół projektu opracował prototypowy interfejs użytkownika wykorzystujący przeglądarkę internetową, zapewniający programistom dostęp do narzędzi analitycznych i pozwalający im na łatwiejsze przeglądanie kodu złożonych programów. Programiści mogą wykorzystywać usługę analizy statycznej w celu poszukiwania odpowiedzi na ważne pytania, na przykład dotyczące luk w zabezpieczeniach programu. Odpowiedzi na zadawane pytania są udzielane dzięki algorytmom opracowanym w ramach projektu SPADE, finansowanego przez ERBN. Dzięki połączeniu tych algorytmów z interfejsem użytkownika w przeglądarce internetowej, zespołowi projektu PARSe udało się pójść o krok dalej w rozwoju tej dziedziny.
Dostęp do zaawansowanej analizy
Smaragdakis jest przekonany, że już na etapie prototypu nowe narzędzie może pomóc zawodowym programistom w optymalizacji kodu i wykrywaniu błędów nawet w najbardziej złożonych programach. „To obecnie jedno z największych wyzwań stojących przed współczesnymi twórcami oprogramowania”, zauważa. „Największe korporacje inwestują olbrzymie kwoty w przeprowadzanie analiz oraz wspieranie procesu rozwoju oprogramowania. Ostatnie przejęcia firm zajmujących się analizą statyczną wiązały się z kwotami sięgającymi setek milionów euro”. W tym kontekście rozwój i komercjalizacja narzędzi do analizy statycznej nowej generacji może stanowić niezwykle cenny rezultat projektu. Zespół już teraz skupia się na przygotowaniu opracowanej przez siebie technologii do wprowadzenia na rynek. „Opracowaliśmy narzędzie optymalizacyjne dla systemu Android, aby umożliwić wykorzystywanie naszego rozwiązania na telefonach i tabletach” dodaje Smaragdakis. „Taki ruch pozwoli programistom na badanie całości opracowywanego przez siebie kodu. Obecnie dostępne na rynku rozwiązania są niezwykle skomplikowane i często podatne na błędy”. W chwili obecnej zespół skupia się na badaniu możliwości komercjalizacji prototypowego rozwiązania we współpracy z akceleratorem przedsiębiorczości Uniwersytetu Ateńskiego. „Mam nadzieję, że któregoś dnia doczekam się momentu, w którym prototyp PARSe stanie się narzędziem wykorzystywanym na całym świecie”, dodaje. „To rozwiązanie toruje jednocześnie drogę do bardziej zaawansowanych badań nad analizą statyczną i wykorzystywaniem ich rezultatów w procesie tworzenia oprogramowania”.
Słowa kluczowe
PARSe, kod, programista, oprogramowanie, cyfrowe, Android, sieć, internet