DevAlert - interesująca koncepcja zwalczania błędów w oprogramowaniu
| Gospodarka AktualnościBłędy w oprogramowaniu, zwane potocznie bugami, są codziennością dla każdego programisty. W trakcie pracy nad programem można napotkać ich średnio 50 na tysiąc linijek kodu zanim oprogramowanie będzie w pełni funkcjonalne (wg Steve McConnell - Code Complete). Prawdziwym problemem są dopiero błędy odkryte już po wypuszczeniu produktu na rynek. Nie tylko psują one wizerunek firmy - nikt przecież nie chce kupować wadliwego oprogramowania - ale narażają również na dodatkowe koszty związane z akcją serwisową.
Koszty mogą wzrosnąć, jeśli bug nie zostanie wykryty dostatecznie szybko - błędy mają tendencję do szybkiego namnażania się - każdy niewłaściwie działający komponent może spowodować usterki w pracy pozostałych. Programiści korzystają z wielu sposobów wyszukiwania błędów i ich poprawiania. Jedno z ciekawszych rozwiązań w tej kwestii zaproponowała firma Percepio wypuszczając na rynek nowy produkt - DevAlert.
Jak działa DevAlert?
DevAlert to oparte na chmurze obliczeniowej rozwiązanie informujące programistę na bieżąco o wykrytych błędach w oprogramowaniu urządzenia. Całość składa się z 3 współpracujących ze sobą elementów. Pierwszym z nich jest firmware zainstalowany bezpośrednio w monitorowanym urządzeniu. W przypadku wykrycia anomalii bądź zakłócenia, podczas pracy urządzenia wysyła on informacje o błędzie do drugiego elementu - chmury obliczeniowej Amazon AWS IoT Core. Otrzymane w ten sposób informacje są analizowane przez system klasyfikacyjny. Jeśli anomalia zostanie zakwalifikowana jako bug, developer otrzymuje na bieżąco powiadomienie wraz z opisem błędu. W przypadku, w którym ten sam błąd wystąpi na wielu monitorowanych urządzeniach jednocześnie, powiadomienie wysyłane jest tylko raz. Ostatnim elementem DevAlertu jest graficzny interfejs diagnostyczny Tracealyzer, pozwalający twórcom na szybkie zwizualizowanie i naprawienie usterki.
Dzięki decentralizacji systemu na trzy części DevAlert może znaleźć swoje zastosowanie w systemach IoT w których inne, podobne, rozwiązania nie byłyby możliwe ze względu na zbyt ograniczoną pamięć. Wykorzystanie narzędzia firmy Percepio nie wymaga również istotnych zmian w kodzie - odwołanie się do API DevAlertu może odbywać się razem z istniejącymi już w kodzie procedurami obsługi błędów. Obecnie DevAlert wspiera wszystkie rozwiązania IoT oparte na mikrokontrolerach STM32 i systemach operacyjnych czasu rzeczywistego FreeRTOS i ThreadX. Developerzy planują w przyszłości rozszerzenie funkcjonalności również na inne systemy. (PM)