szacowanie złożoności oprogramowania
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 PresentationTRANSCRIPT
![Page 1: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/1.jpg)
Szacowanie złożoności oprogramowania
Maciej Wereski & Michał Wolski
![Page 2: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/2.jpg)
Wstęp
Szacowanie kosztów wyznaczamy na podstawie: Kosztu sprzętu i oprogrmowania wraz z konserwacją
Koszty podrózy i szkoleń Koszty pracy
![Page 3: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/3.jpg)
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
![Page 4: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/4.jpg)
Metody szacowania
Algorytmiczne modelowanie kosztówOcena ekspertów
Szacowanie przez analogięUstalanie ceny pod zwycięstwa (wpływ na koszty
ma klient – np. przetarg)
![Page 5: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/5.jpg)
Prawo Parkinsona
Koszt jest determinowany przez dostępne zasoby, a nie przez obiektywną ocenę.
![Page 6: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/6.jpg)
Pierwsze metody
LOC – szacowanie linii koduMetryka Halstead'aMetryka McCabe'a
![Page 7: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/7.jpg)
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.
![Page 8: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/8.jpg)
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
![Page 9: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/9.jpg)
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.
![Page 10: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/10.jpg)
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
![Page 11: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/11.jpg)
UFP – nieskorygowane punkty funkcyjne
gdzie: wij - wagi, nij - ilość elementów
![Page 12: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/12.jpg)
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
![Page 13: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/13.jpg)
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
![Page 14: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/14.jpg)
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)
![Page 15: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/15.jpg)
Zagadka
Czyje to „punkty funkcyjne?” ;)
![Page 16: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/16.jpg)
Metoda COCOMO
COCOMO – COnstructive COst Model Model empiryczny
![Page 17: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/17.jpg)
Metoda COCOMO
1. Szacujemy KDSI (Thousands of Delivered Source Code Instructions) – Tysiąc instrukcji
kodu źródłowego.
![Page 18: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/18.jpg)
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
![Page 19: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/19.jpg)
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
![Page 20: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/20.jpg)
COCOMO
![Page 21: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/21.jpg)
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
![Page 22: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/22.jpg)
COCOMO
![Page 23: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/23.jpg)
COCOMO
5. Liczymy liczbę osób:
Liczba osób = Nakład / Czas Większa liczba osób nie zawsze oznacza szybsze
zakończenie projektu!
![Page 24: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/24.jpg)
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ść
![Page 25: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/25.jpg)
COCOMO
![Page 26: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/26.jpg)
Rozwiązanie zagadkiJessica Alba ;)
![Page 27: Szacowanie złożoności oprogramowania](https://reader035.vdocuments.net/reader035/viewer/2022062500/568158c5550346895dc60e4f/html5/thumbnails/27.jpg)
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 ;)