Szacowanie zoonoci oprogramowania Maciej Wereski Micha Wolski Wstp

  • Slides: 27
Download presentation
Szacowanie złożoności oprogramowania Maciej Wereski & Michał Wolski

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

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

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ów Ocena ekspertów Szacowanie przez analogię Ustalanie ceny pod zwycięstwa

Metody szacowania Algorytmiczne modelowanie kosztów Ocena 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ę.

Prawo Parkinsona Koszt jest determinowany przez dostępne zasoby, a nie przez obiektywną ocenę.

Pierwsze metody LOC – szacowanie linii kodu Metryka Halstead'a Metryka Mc. Cabe'a

Pierwsze metody LOC – szacowanie linii kodu Metryka Halstead'a Metryka Mc. Cabe'a

Metryka Halsteada Oznaczenia: n 1 - liczba różnych operatorów n 2 - liczba różnych

Metryka Halsteada Oznaczenia: n 1 - liczba różnych operatorów n 2 - liczba różnych operandów N 1 - całkowita liczba wystąpień operatorów w P N 2 - całkowita liczba wystąpień operandów w P P - program słownik P zawiera n = n 1 + n 2 elementów wielkość P wynosi N = N 1 + N 2 twierdzenie: szacunkowa wartość N wynosi n 1*logn 1 + n 2*logn 2 twierdzenie: wysiłek potrzebny do wytworzenia P wynosi: E = n 1*N 2*N*logn/2*n 2 (jednostek elementarnych) twierdzenie: czas potrzebny do wytworzenia P wynosi: T = E/18 sek.

Metryka Mc. Cabe'a Jesli g jest schematem blokowym programu P i G posiada e

Metryka Mc. Cabe'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 + 2 gdzie: 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,

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

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

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ń

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

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 * TCF gdzie TCF – współczynnik złożoności technicznej

Skorygowane Punkty Funkcyjne FP = UFC * TCF gdzie 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? ” ; )

Zagadka Czyje to „punkty funkcyjne? ” ; )

Metoda COCOMO – COnstructive COst Model empiryczny

Metoda COCOMO – COnstructive COst Model empiryczny

Metoda COCOMO 1. Szacujemy KDSI (Thousands of Delivered Source Code Instructions) – Tysiąc instrukcji

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ół,

Metoda COCOMO 2. Zaliczamy projekt do jednej z klas: Projekt organiczny – mały zespół, znana dziedzina problemu, do 50 KDSI Projekt 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, 05

Metoda COCOMO 3. Liczymy Nakład (w osobogodzinach): Dla organicznych: Nakład = 2, 4(KDSI)^1, 05 Dla półoderwanych: Nakład = 3(KDSI)^1, 12 Dla osadzonych: Nakład = 3, 6(KDSI)^1, 20

COCOMO

COCOMO

Metoda COCOMO 4. Liczymy Czas (w miesiącach): Dla organicznych: Czas = 2, 5(Nakład)^0, 32

Metoda COCOMO 4. Liczymy Czas (w miesiącach): Dla organicznych: Czas = 2, 5(Nakład)^0, 32 Dla półoderwanych: Czas = 2, 5(Nakład)^0, 35 Dla osadzonych: Czas = 2, 5(Nakład)^0, 38

COCOMO

COCOMO

COCOMO 5. Liczymy liczbę osób: Liczba osób = Nakład / Czas Większa liczba osób

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

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

COCOMO

Rozwiązanie zagadki Jessica Alba ; )

Rozwiązanie zagadki Jessica Alba ; )

Bibliografia Ian Sommerville – Inżynieria Oprogramowania, WNT, 2003 Andrzej Jaszkiewicz – Inżynieria Oprogramowania CASE,

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łady Google Images ; )