Czynniki jakości oprogramowania

Różne czynniki wpływające na oprogramowanie nazywane są czynnikami oprogramowania. Można je ogólnie podzielić na dwie kategorie. Pierwsza kategoria czynników to czynniki, które można zmierzyć bezpośrednio, takie jak liczba błędów logicznych, a druga kategoria obejmuje czynniki, które można zmierzyć tylko pośrednio. Na przykład łatwość konserwacji, ale każdy z czynników ma być zmierzony, aby sprawdzić zawartość i kontrolę jakości.

Na przestrzeni lat zaproponowano kilka modeli czynników jakości oprogramowania i ich kategoryzacji. Klasyczny model czynników jakości oprogramowania, zaproponowany przez McCalla, składa się z 11 czynników (McCall i in., 1977). Podobnie modele składające się z 12 do 15 czynników zostały zaproponowane przez Deutscha i Willisa (1988) oraz Evansa i Marciniaka (1987).

Wszystkie te modele nie różnią się zasadniczo od modelu McCall. Model czynnikowy McCalla zapewnia praktyczną, aktualną metodę klasyfikacji wymagań programowych (Pressman, 2000).

Model czynnikowy McCalla

Model ten klasyfikuje wszystkie wymagania oprogramowania na 11 czynników jakości oprogramowania. Te 11 czynników jest podzielonych na trzy kategorie - działanie produktu, rewizja produktu i czynniki przejścia produktu.

  • Product operation factors - Poprawność, niezawodność, wydajność, integralność, użyteczność.

  • Product revision factors - Konserwowalność, elastyczność, testowalność.

  • Product transition factors - Przenośność, możliwość ponownego użycia, interoperacyjność.

Czynniki jakości oprogramowania operacyjnego produktu

Zgodnie z modelem McCall, kategoria działania produktu obejmuje pięć czynników jakości oprogramowania, które dotyczą wymagań bezpośrednio wpływających na codzienne działanie oprogramowania. Są następujące -

Poprawność

Wymagania te dotyczą poprawności danych wyjściowych systemu oprogramowania. Obejmują one -

  • Misja wyjściowa

  • Wymagana dokładność wyników, na którą mogą mieć negatywny wpływ niedokładne dane lub niedokładne obliczenia.

  • Kompletność informacji wyjściowych, na którą mogą mieć wpływ niekompletne dane.

  • Aktualność informacji zdefiniowana jako czas między zdarzeniem a odpowiedzią systemu oprogramowania.

  • Dostępność informacji.

  • Standardy kodowania i dokumentowania systemu oprogramowania.

Niezawodność

Wymagania dotyczące niezawodności dotyczą awarii usługi. Określają maksymalną dopuszczalną awaryjność systemu oprogramowania i mogą odnosić się do całego systemu lub do jednej lub więcej jego oddzielnych funkcji.

Wydajność

Zajmuje się zasobami sprzętowymi potrzebnymi do wykonywania różnych funkcji systemu oprogramowania. Obejmuje możliwości przetwarzania (podane w MHz), pojemność pamięci (podaną w MB lub GB) oraz zdolność przesyłania danych (podaną w MBPS lub GBPS).

Dotyczy również czasu pomiędzy doładowaniami jednostek przenośnych systemu, takich jak jednostki systemu informatycznego zlokalizowane w komputerach przenośnych lub jednostki meteorologiczne umieszczone na zewnątrz.

Integralność

Czynnik ten dotyczy bezpieczeństwa systemu oprogramowania, czyli uniemożliwienia dostępu osobom nieuprawnionym, a także rozróżnienia między grupą osób, które mają otrzymać pozwolenie na odczyt i zapis.

Użyteczność

Wymagania dotyczące użyteczności dotyczą zasobów kadrowych potrzebnych do przeszkolenia nowego pracownika i obsługi systemu oprogramowania.

Czynniki jakościowe rewizji produktu

Zgodnie z modelem McCall, kategoria wersji produktu obejmuje trzy czynniki jakości oprogramowania. Czynniki te są następujące -

Konserwowalność

Czynnik ten uwzględnia wysiłki, które będą potrzebne użytkownikom i personelowi konserwacyjnemu, aby zidentyfikować przyczyny awarii oprogramowania, naprawić awarie i zweryfikować skuteczność poprawek.

Elastyczność

Czynnik ten dotyczy możliwości i wysiłków wymaganych do obsługi adaptacyjnej konserwacji oprogramowania. Obejmują one dostosowanie obecnego oprogramowania do dodatkowych okoliczności i klientów bez zmiany oprogramowania. Wymogi tego czynnika wspierają również perfekcyjne czynności konserwacyjne, takie jak zmiany i dodatki do oprogramowania w celu usprawnienia jego obsługi i dostosowania go do zmian w środowisku technicznym lub handlowym firmy.

Testowalność

Wymagania testowalności dotyczą testowania systemu oprogramowania, a także jego działania. Zawiera predefiniowane wyniki pośrednie, pliki dziennika, a także automatyczną diagnostykę wykonywaną przez system oprogramowania przed uruchomieniem systemu, aby dowiedzieć się, czy wszystkie elementy systemu są sprawne i uzyskać raport o wykrytych błędach. Inny rodzaj tych wymagań dotyczy automatycznych testów diagnostycznych stosowanych przez techników utrzymania ruchu w celu wykrycia przyczyn awarii oprogramowania.

Współczynnik jakości oprogramowania zmiany produktu

Zgodnie z modelem McCall trzy czynniki jakości oprogramowania są zawarte w kategorii przejścia produktu, która dotyczy adaptacji oprogramowania do innych środowisk i jego interakcji z innymi systemami oprogramowania. Czynniki te są następujące -

Ruchliwość

Wymagania dotyczące przenośności mają tendencję do dostosowywania systemu oprogramowania do innych środowisk składających się z innego sprzętu, różnych systemów operacyjnych i tak dalej. Oprogramowanie powinno umożliwiać dalsze korzystanie z tego samego oprogramowania podstawowego w różnych sytuacjach.

Możliwość ponownego użycia

Czynnik ten dotyczy wykorzystania modułów oprogramowania pierwotnie zaprojektowanych dla jednego projektu w obecnie opracowywanym nowym projekcie oprogramowania. Mogą także umożliwić przyszłym projektom wykorzystanie danego modułu lub grupy modułów aktualnie tworzonego oprogramowania. Oczekuje się, że ponowne użycie oprogramowania pozwoli zaoszczędzić zasoby programistyczne, skrócić okres opracowywania i zapewnić moduły o wyższej jakości.

Interoperacyjność

Wymagania dotyczące interoperacyjności koncentrują się na tworzeniu interfejsów z innymi systemami oprogramowania lub z innym oprogramowaniem sprzętowym. Na przykład oprogramowanie sprzętowe maszyn produkcyjnych i wyposażenia testującego łączy się z oprogramowaniem sterującym produkcją.