Ogólne
Metoda ta zaproponowana przez Allana Albrechta (IBM) w 1979 bazowała na projektach ekranów oraz architekturze systemu. Była to próba przezwyciężenia problemów związanych z użyciem liczby linii kodu (która nie jest znana na etapie definicji wymagań a była podstawą do estymacji) jako miary wielkości oprogramowania i jednocześnie próba opracowania metody przewidzenia wysiłku związanego z produkcją oprogramowania. W metodzie tej występowało pięć głównych klas atrybutów produktywności, które charakteryzowały system:
zewnętrzne wejścia (ang. External Inputs)
zewnętrzne wyjścia (ang. External Outputs)
zewnętrzne zapytania (ang. External Inquires)
pliki wewnętrzne (ang. Internal Logical Files)
pliki zewnętrzne (ang. External Interface Files)
Dla każdej kategorii zdefiniowane były trzy stopnie złożoności: prosty, średni i złożony. Z kolei z każdym stopniem złożoności były związane ustalone wartości wag.
W metodzie punktów funkcyjnych należało zidentyfikować wszystkie wskazane komponenty systemu i zakwalifikować je do jednaj z klas złożoności. Następnie wyliczano globalną wartość nieskorygowanych punktów funkcyjnych wg formuły:
gdzie: NFP – nieskorygowane punkty funkcyjne, w – wartość współczynnika wagi, n – liczna elementów w projekcie, i – numer elementu przetwarzania, j – numer poziomu złożoności.
Następnie przeprowadzało się korekcję wyliczonych wartości punktów funkcyjnych w związku z warunkami realizacji systemu. Określało się uwarunkowania realizacyjne konkretnego systemu, podając wpływ 14 czynników. Każdy z czynników oceniany był w skali od 0 do 5, gdzie 0 oznaczał brak wpływu, a 5 bardzo duży wpływ. Wyróżniano współczynniki korygujące poprzez próbę odpowiedzi na następujące pytania:
Następnie należało wyliczyć kompleksowy współczynnik korygujący na podstawie poniższej formuły:
gdzie: FP – kompleksowa wartość skorygowanych punktów funkcyjnych, NFP – nieskorygowana wartość punktów funkcyjnych, k – wartość współczynnika korygującego. Wielkości 0,65 i 0,01 to stałe współczynniki, ustalone na podstawie doświadczeń i badań statystycznych wykonywanych systemów.
Ostatnim krokiem było wyznaczenie pracochłonności, które polegało na odczytaniu wartości pracochłonności w zależności od wyliczonej wartości skorygowanego punktu funkcyjnego FP.
Wady i krytyka
Mimo że metoda jest najbardziej dopracowaną i najpopularniejszą metodą szacowania wartości funkcji ocenianego programu, to nie pozostaje ona bez wad. Jedną z nich, wskazaną już przez Albrechta, jest subiektywność wartościowania złożoności typu jako niskiej, średniej lub dużej. Istotność tej wady obecnie jest niwelowana opracowaną przez IFPUG metodyką oceny złożoności (file type complexity).
Kolejnym problemem jest czasochłonność (koszt) procesu wyliczania punktów funkcyjnych, gdyż z powodu nieznanej dokładności takich wyliczeń nie jest stosowana automatyzacja. tego procesu , ponieważ nieznana jest w takim przypadku - nie wiadomo czy jest duża czy mała.
Innym mankamentem jest to, że wyniki metody w przypadku małych systemów mogą być mało dokładne.
Metoda punktów funkcyjnych nie bierze również pod uwagę złożoności implementacji algorytmów działających wewnątrz systemu
Podsumowanie
Metoda punktów funkcyjnych nie jest popularna w Polsce. Jednak na świecie stosowana jest powszechnie- jest metodą sprawdzoną, skuteczną i ciągle rozwijaną. Ułatwia oszacowanie czasu i kosztów potrzebnych do realizacji projektu.