Szacowanie wdrożeń

Zalety i wady metody FP

Szacowanie wdrożeń

Języki programowania a średnia wartość LOC/FP

Największą zaletą metody punktów funkcyjnych jest możliwość wykonania oszacowania już na etapie zbierania wymagań funkcjonalnych. Dysponując wizualizacją kolejnych ekranów i koncepcyjnym modelem danych można dokonać estymacji oprogramowania i oszacować pracochłonność. Główne wady szacowania tą metodą to brak możliwości rzetelnego oszacowania skomplikowanych, wyspecjalizowanych algorytmów (nie zawierają dużej liczby linii kodu, jednak czas ich opracowania może być bardzo długi) oraz brak szacunków niektórych elementów systemów np. projektów graficznych.

Metoda FP w Polsce jest stosowana bardzo rzadko. Firmy zazwyczaj tłumaczą to tym, że przystępując do przetargu nie znają wymagań na tyle dokładnie, by zastosować metodę FP, natomiast muszą podać dokładny koszt projektu. Taki koszt obliczany jest najczęściej „z powietrza”, a następnie cały projekt dopasowywany jest do tak utworzonego budżetu. Natomiast na całym świecie szacowanie wielkości systemów jest normalną praktyką i jedną z metod planowania kosztów wynikających z ich realizacji.

Jacek Mirecki jest prezesem zarządu ksi.pl sp. z o.o.

Metoda FP w praktyce

Za pomocą metody punktów funkcyjnych oszacowano koszt budowy aplikacji do generowania i drukowania faktur VAT na podstawie rekordów z połączeniami telefonicznymi centrali VOIP. Aplikacja posiada następujące funkcjonalności:

  • import plików z połączeniami CDR,
  • wprowadzenie danych o kontrahencie,
  • wprowadzenie danych o numerach telefonicznych kontrahenta,
  • generowanie faktur VAT za połączenia telefoniczne,
  • drukowanie faktur VAT,
  • drukowanie listy obecnych kontrahentów,
  • drukowanie listy numerów telefonicznych.

Dokonano obliczeń w fazie projektu (ang. Development) i otrzymano wynik PF = 58. Zakładając, że kod pisany będzie w Java (1PF odpowiada 53 liniom kodu), łatwo obliczymy:

LOC = 58 * 53 = 3074

Dla języka o takim poziomie jedna osoba w ciągu miesiąca może oprogramować od 10 do 20 punktów funkcyjnych (poziom języka 6), a zatem:

  • minimalny czas potrzebny dla implementacji projektu 58/20 = 2,9
  • maksymalny czas potrzebny do implementacji projektu 58/10 = 5,8

Implementacja oprogramowania zajmie jednej osobie od trzech do sześciu miesięcy. Podane szacowanie uwzględnia tylko prace programistyczne (bez stadium wymagań, projektowania, tworzenia dokumentacji, testowania i samego tworzenia oszacowania).

Wniosek: Dla tak małego projektu warto jest zmienić narzędzie - np. dla Sybase Power Builder powstanie 928 LOC, a projekt będzie trwał od dwóch do czterech miesięcy.*

* - oczywiście przy wyborze języka należy brać pod uwagę szereg dodatkowych elementów związanych z charakterem projektu.


TOP 200