Szacowanie złożoności oprogramowania
description
Transcript of Szacowanie złożoności oprogramowania
Szacowanie złożoności oprogramowania
Maciej Wereski & Michał Wolski
Wstęp
Szacowanie kosztów wyznaczamy na podstawie: Kosztu sprzętu i oprogrmowania wraz z konserwacją
Koszty podrózy i szkoleń Koszty pracy
Koszty pracy
Udostępnienie, ogrzanie, oświetlenie przestrzeni biurowej
Personel pomocniczy (sekretarki, księgowe, sprzątaczki)
Sieć oraz telekomunikacja Udogodnienia centralne (biblioteka,
pomieszczenia rekreacyjne) Ubezpieczenia społeczne oraz świadczenia dla
pracowników
Metody szacowania
Algorytmiczne modelowanie kosztówOcena ekspertów
Szacowanie przez analogięUstalanie ceny pod zwycięstwa (wpływ na koszty
ma klient – np. przetarg)
Prawo Parkinsona
Koszt jest determinowany przez dostępne zasoby, a nie przez obiektywną ocenę.
Pierwsze metody
LOC – szacowanie linii koduMetryka Halstead'aMetryka McCabe'a
Metryka Halsteada
Oznaczenia: n1 - liczba różnych operatorów n2 - liczba różnych operandów
N1 - całkowita liczba wystąpień operatorów w P N2 - całkowita liczba wystąpień operandów w P
P - programsłownik P zawiera n = n1 + n2 elementów
wielkość P wynosi N = N1 + N2twierdzenie: szacunkowa wartość N wynosi n1*logn1 + n2*logn2twierdzenie: wysiłek potrzebny do wytworzenia P wynosi: E = n1*N2*N*logn/2*n2 (jednostek elementarnych)twierdzenie: czas potrzebny do wytworzenia P wynosi:
T = E/18 sek.
Metryka McCabe'a
Jesli g jest schematem blokowym programu P i G posiada e krawędzi (łuków) i n węzłów, to
v(P) = e - n + 2gdzie: v(P) jest liczbą niezależnych ścieżek w G
Prościej, jeśli d jest liczbą węzłów decyzyjnych w G, wtedy:
v(P) = d+1
Metoda analizy punktów funkcyjnych
Metoda punktów funkcyjnych oszacowuje koszt projektu na podstawie funkcji użytkowych, które system ma realizować. Stąd wynika, ze metoda ta może być
stosowana dopiero wtedy, gdy funkcje te są z grubsza znane.Metoda jest oparta na zliczaniu ilości wejść i wyjść systemu, miejsc
przechowywania danych i innych kryteriów. Te dane są następnie mnożone przez zadane z góry wagi i sumowane. Rezultatem jest liczba „punktów
funkcyjnych”.Punkty funkcyjne mogą być następnie modyfikowane zależnie od dodatkowych
czynników złożoności oprogramowania. Istnieją przeliczniki punktów funkcyjnych na liczbę linii kodu, co może być podstawą dla metody
COCOMO.
Metoda analizy punktów funkcyjnych
Liczbę nie skorygowanych punktów funkcyjnych wylicza się na podstawie formuły korzystając z następujących danych:
Wejścia użytkownika: obiekty wejściowe wpływających na dane w systemie
Wyjścia użytkownika: obiekty wyjściowe związane z danymi w systemie
Zbiory danych wewnętrzne: liczba wewnętrznych plików roboczych. Zbiory danych zewnętrzne: liczba plików zewnętrznych zapełnianych
przez produkt programowy Zapytania zewnętrzne: interfejsy z otoczeniem programu
UFP – nieskorygowane punkty funkcyjne
gdzie: wij - wagi, nij - ilość elementów
Korekcja punktów funkcyjnych
Dodatkowo wprowadza się korekcję w zależności od 14 czynników:
występowanie urządzeń komunikacyjnych rozproszenie przetwarzania długość czasu oczekiwania na odpowiedź systemu stopień obciążenia sprzętu istniejącego częstotliwość wykonywania dużych transakcji wprowadzanie danych w trybie bezpośrednim wydajność użytkownika końcowego
Korekcja Punktów Funkcyjnych
aktualizacja danych w trybie bezpośrednim złożoność przetwarzania danych możliwość ponownego użycia programów w innych
zastosowaniach łatwość instalacji łatwość obsługi systemu rozproszenie terytorialne łatwość wprowadzania zmian - pielęgnowania systemu
Skorygowane Punkty Funkcyjne
FP = UFC * TCFgdzie TCF – współczynnik złożoności technicznej
(między 0,65 a 1,35)
http://www.ifpug.org/ - Międzynarodowa Grupa Użytkowników Punktów Funkcyjnych (m.in. określają zasady liczenia FP)
Zagadka
Czyje to „punkty funkcyjne?” ;)
Metoda COCOMO
COCOMO – COnstructive COst Model Model empiryczny
Metoda COCOMO
1. Szacujemy KDSI (Thousands of Delivered Source Code Instructions) – Tysiąc instrukcji
kodu źródłowego.
Metoda COCOMO
2. Zaliczamy projekt do jednej z klas:Projekt organiczny – mały zespół, znana
dziedzina problemu, do 50 KDSIProjekt półoderwany – różny stopień
zaawansowania członków zespołu, nie dokońca znana dziedzina problemu, do 300 KDSI
Projekt osadzony – brak doświadczenia członków zespołu w podobnych projektach, bardzo złożone
systemy
Metoda COCOMO
3. Liczymy Nakład (w osobogodzinach):
Dla organicznych: Nakład = 2,4(KDSI)^1,05Dla półoderwanych: Nakład = 3(KDSI)^1,12
Dla osadzonych: Nakład = 3,6(KDSI)^1,20
COCOMO
Metoda COCOMO
4. Liczymy Czas (w miesiącach):
Dla organicznych: Czas = 2,5(Nakład)^0,32Dla półoderwanych: Czas = 2,5(Nakład)^0,35
Dla osadzonych: Czas = 2,5(Nakład)^0,38
COCOMO
COCOMO
5. Liczymy liczbę osób:
Liczba osób = Nakład / Czas Większa liczba osób nie zawsze oznacza szybsze
zakończenie projektu!
COCOMO – Czynniki modyfikujące
Wymagania wobec niezawodności systemu Rozmiar bazy danych w stosunku do rozmiaru
kodu Wymagania co do wydajności Ograniczenia pamięci Zmienność sprzętu i oprogramowania
tworzącego środowisko pracy systemu Różne firmy tworzące oprogramowanie mają
różną wydajność
COCOMO
Rozwiązanie zagadkiJessica Alba ;)
Bibliografia
Ian Sommerville – Inżynieria Oprogramowania, WNT, 2003
Andrzej Jaszkiewicz – Inżynieria Oprogramowania CASE, Helion, 1997
Inżynieria Oprogramowania w projekcie informatycznym pod redakcją Janusza Górskiego, Mikom, 2000
WykładyGoogle Images ;)