Szacowanie złożoności oprogramowania

Post on 01-Feb-2016

43 views 0 download

description

Maciej Wereski & Michał Wolski. Szacowanie złożoności oprogramowania. Szacowanie kosztów wyznaczamy na podstawie: Kosztu sprzętu i oprogrmowania wraz z konserwacją Koszty podrózy i szkoleń Koszty pracy. Wstęp. Koszty pracy. Udostępnienie, ogrzanie, oświetlenie przestrzeni biurowej - PowerPoint PPT Presentation

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 ;)