Nasza strona używa cookies. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Jak mierzyć złożoność oprogramowania?

Poznaj metody pomiaru złożoności stosowane w Polsce - IFPUG oraz COSMIC.

Zgodnie z normą, metoda mająca być uznana za miarę funkcjonalną musi być skonstruowana w oparciu o reguły zapewniające powtarzalność pomiaru przeprowadzanego przez różne osoby. W praktyce sama zgodność z normą nie jest wystarczająca, by zapewnić praktyczną wiarygodność pomiaru.

Miary funkcjonalne to formalna nazwa dla grupy metod pomiaru złożoności funkcjonalnej oprogramowania. Czyli metod, które wyznaczają liczbową wartość złożoności oprogramowania. Złożoność oprogramowania to cecha, która z założenia ma przekładać się na pracochłonność i czas jego wytworzenia lub modyfikacji. Za miary funkcjonalne uznawane są różne metody, lecz tylko część z nich jest objęta normą ISO/IEC 14143, która definiuje to pojęcie. Z metod stosowanych w Polsce są to metody IFPUG oraz COSMIC. Miarą funkcjonalną nie jest metoda Karnera (znana też jako metoda Use Case Points).


Rozpatrzmy przykład pomiaru złożoności przypadków użycia

Przykładową jednostką funkcjonalną, jaka podlega pomiarowi w typowych zastosowaniach, jest przypadek użycia. Przypadek użycia zgodny z definicją, jaką zawiera notacja UML, nie ma określonej granulacji. Objawia się to przykładowo w ten sposób, że przypadek użycia jest funkcjonalność „Zarządzanie uprawnieniami” jak i poszczególne funkcjonalności będące specjalizacjami tego przypadku użycia np. „Zdefiniowanie uprawnień”, „Modyfikacja uprawnień”, „Przypisanie roli”. Miary funkcjonalne by były zgodne z normą ISO/IEC 14143 muszą być niezależne od granulacji, na jakiej jest zdefiniowany przypadek użycia. Powinny tym samym zmierzyć złożoność „Zarządzania uprawnieniami” jako sumę złożoności jego potencjalnych specjalizacji.

W przypadku metody Karnera nie jest to spełnione, gdyż metoda ta zakłada trzy poziomy złożoności per przypadek użycia: 5, 10 lub 15 Use Case Points. Niezależnie od poziomu, na jakim zdefiniowany jest przypadek użycia. Metoda ta jest zatem niewiarygodna już z tego względu (poza innymi).

Metoda IFPUG wyznacza rozmiar na podstawie zależności od liczby atrybutów przekraczających granicę systemu (czyli wymienianych pomiędzy operatorem a aplikacją) oraz od liczby wykorzystywanych niezależnych struktur danych. Samo to byłoby dobrą aproksymacją złożoności gdyby nie fakt, że metoda ta odgórnie ogranicza rozmiar przypadku użycia do jednej z trzech wartości: 3, 4, 5, 6 lub 7 Punktów Funkcyjnych. Rozmiar bowiem określają macierze mające na jednej osi liczbę atrybutów a na drugiej liczbę struktur danych.

Przypadek użycia „Zarządzanie uprawnieniami” byłby zmierzony jako wykorzystujący sumę niepowtarzalnych atrybutów i struktur, z jakich korzystają jego specjalizacje. A zatem jego rozmiar nie byłoby sumą złożoności jego specjalizacji, gdyż te wykorzystują te same atrybuty i struktury niezależnie. Dodatkowo macierze metody IFPUG mają tylko po trzy kolumny i trzy wiersze zatem jeśli przypadek użycia wykorzystuje więcej atrybutów lub struktur danych, niż największe wartości w tej macierzy jego rozmiar będzie ograniczony do maksymalnej wartości wskazanej w macierzy złożoności.

W metodzie COSMIC sprawa wygląda inaczej. Metoda ta definiuje pomiar jako liczbę przesunięć grup danych w ramach przypadku użycia. Czyli wszystkie przesunięcia grup danych, jakie dotyczą unikalnych przebiegów funkcjonalności, dają w sumie złożoność przypadku użycia. Rozmiar może przybrać wartość od dwóch do dowolnej liczby całkowitej – nie ma odgórnego ograniczenia. Tym samym rozmiar przypadku użycia „Zarządzanie uprawnieniami” będzie w ogólności sumą wszystkich przesunięć grup danych w jego specjalizacjach. Przesunięć zarówno pomiędzy operatorem a aplikacją jak i aplikacją a jej pamięcią trwałą. Szczególnie to ostatnie jest istotną pozytywną cechą metody COSMIC, gdyż odzwierciedla wewnętrzną złożoność przypadku użycia.

Jak widać z powyższej analizy, każda metoda inaczej podchodzi do pomiaru przypadku użycia i tylko metoda COSMIC jest niezależna od stopnia granulacji, na jakim jest on zdefiniowany. W praktyce metoda COSMIC zdecydowanie lepiej niż metoda IFPUG sprawdza się pomiarze przypadków użycia notacji UML.

By w pełni wykorzystać metodę COSMIC, należy zdefiniować, zgodnie z tym co nakazuje norma, strategię pomiaru jak i zasady wymiarowania wstępnego, ale o tym w następnych artykułach.

Z praktycznego względu jeśli decydować się na stosowanie metod punktów funkcyjnych to najlepszym wyborem jest metoda COSMIC. Jej prawidłowe wdrożenie niesie ze sobą wiele korzyści związanych np. z możliwościami: uzyskania benchmarku, czyli pomiaru efektywności cyklu wytwórczego, doświadczenia z licznych pomiarów wskazują, że metoda COSMIC daje pomiar, który realnie przekłada się na pracochłonność prac, transparentnego dla klienta pomiaru złożoności danych prac, bramki jakości dla dokumentacji analitycznej, gdyż wykorzystanie metody COSMIC pomaga w kontroli kompletności specyfikacji funkcjonalnej.

Zobacz kogo teraz szukają