Odpluskwianie niezbędne

Błędy oprogramowania są nieuniknione. Różnego rodzaju testy mogą wykazać jedynie ich istnienie, nigdy zaś brak

Błędy oprogramowania są nieuniknione. Różnego rodzaju testy mogą wykazać jedynie ich istnienie, nigdy zaś brak.

Jednak stosowanie odpowiednich procedur w fazie wykonawczej, narzędzi programowych i usług sprawdzania kodu w znacznym stopniu może ograniczyć liczbę pluskiew w oprogramowaniu. Oprogramowanie wolne od pluskiew nie istnieje. Według różnych badań średnia liczba błędów na tysiąc wierszy kodu waha się od 5 do 20. Większość z nich to błędy składniowe, które na ogół nie stanowią problemu. Jednak przy aplikacjach liczących miliony wierszy kodu prawdopodobieństwo popełnienia krytycznej pomyłki w konkretnej aplikacji bardzo szybko wzrasta.

Nietrudno znaleźć przykłady. Wystarczy przytoczyć listę nieszczelności programowania Microsoftu, pierwsze wydanie Oracle E-Business Suite 11i czy inne. Odbiór takich wiadomości wśród użytkowników jest jednoznaczny: zapluskwienie osiągnęło poziom krytyczny.

Przykłady narzędzi i usług do odpluskwiania

Przykłady narzędzi i usług do odpluskwiania

Wpływ błędów oprogramowania na wydajność pracy jest znaczny. Instytut NIST (National Institute of Standards and Technology) opublikował w 2002 r. raport, w którym zawarto oszacowanie kosztów błędów oprogramowania. Jak podano w nim, roczne straty z tego tytułu w Stanach Zjednoczonych wyniosły 59,5 mld USD. Jednocześnie w raporcie zawarto tezę, że jedna trzecia tych kosztów może być wyeliminowana przez ulepszone testowanie, pozwalające na wcześniejsze i bardziej efektywne identyfikowanie i usuwanie błędów.

Błędy oprogramowania pojawiają się z trzech powodów. Po pierwsze, oprogramowanie jest prawdopodobnie najbardziej złożonym wytworem ludzkim, jaki stworzono w naszych czasach. Po drugie, natura programów jest taka, że nie można całkowicie wyeliminować błędów (nie da się przeprowadzić formalnego "dowodu poprawności działania oprogramowania"). Powód trzeci jest związany z faktem braku należytej staranności projektantów oprogramowania w testowaniu i sprawdzaniu, czy oprogramowanie wykonuje to, co było założone.

Większość specjalistów jest zgodna: najlepszym sposobem zwiększenia jakości oprogramowania jest staranne jego testowanie przez projektantów i ustalenie zrozumiałych procedur spełniania wymagań biznesowych. Pluskwy są często rezultatem ludzkich omyłek, ale także równie często winne są niewłaściwie określone wymagania biznesowe. Gdy coś nie pracuje, jak zamierzono, dla użytkownika nie jest ważne, czy spowodował to programista, czy źle sformułowany dokument wymagań.

Prawidłowa inżynieria programowania oznacza dokładne określenie tego, co ma być zbudowane, a następnie staranne opracowanie architektury projektu przed przystąpieniem do pisania kodu. Efektywne jest też stosowanie techniki projektowania zakładającej cząstkowe testowanie projektowanego kodu (kod jest testowany dostatecznie wcześnie w procesie tworzenia, a nie na końcu, kiedy proces ten jest dużo droższy i mniej efektywny).

Minimalizowanie liczby będów w oprogramowaniu

  • Pełne dokumentowanie wymagań aplikacyjnych

  • Gruntowne sprawdzenie logiki biznesowej przed kodowaniem

  • Testowanie oprogramowania na wczesnych etapach fazy projektowania w celu uzyskania iteracyjnego sprzężenia zwrotnego

  • Iteracyjne sprzężenia zwrotne w komunikacji pomiędzy projektantem a użytkownikiem

  • Stosowanie narzędzi do sprawdzania kodu i zarządzania cyklem "życia" aplikacji

  • Korzystanie z zewnętrznych usług sprawdzenia kodu, jeżeli wewnętrzna kontrola jakości nie jest dostateczna


TOP 200