1 / 27

Szacowanie złożoności oprogramowania

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

trinh
Télécharger la présentation

Szacowanie złożoności oprogramowania

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Maciej Wereski & Michał Wolski Szacowanie złożoności oprogramowania

  2. Szacowanie kosztów wyznaczamy na podstawie: Kosztu sprzętu i oprogrmowania wraz z konserwacją Koszty podrózy i szkoleń Koszty pracy Wstęp

  3. 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

  4. Algorytmiczne modelowanie kosztów Ocena ekspertów Szacowanie przez analogię Ustalanie ceny podzwycięstwa (wpływ na koszty ma klient – np. przetarg)‏ Metody szacowania

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

  6. LOC – szacowanie linii kodu Metryka Halstead'a Metryka McCabe'a Pierwsze metody

  7. 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 - program słownik P zawiera n = n1 + n2 elementów wielkość P wynosi N = N1 + N2 twierdzenie: szacunkowa wartość N wynosi n1*logn1 + n2*logn2 twierdzenie: 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 Halsteada

  8. 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 Metryka McCabe'a

  9. 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

  10. 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 Metoda analizy punktów funkcyjnych

  11. gdzie: wij - wagi, nij - ilość elementów UFP – nieskorygowane punkty funkcyjne

  12. 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

  13. 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 Korekcja Punktów Funkcyjnych

  14. 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)‏ Skorygowane Punkty Funkcyjne

  15. Czyje to „punkty funkcyjne?” ;)‏ Zagadka

  16. Metoda COCOMO • COCOMO – COnstructive COst Model • Model empiryczny

  17. 1. Szacujemy KDSI (Thousands of Delivered Source Code Instructions) – Tysiąc instrukcji kodu źródłowego. Metoda COCOMO

  18. 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

  19. 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 Metoda COCOMO

  20. COCOMO

  21. 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 Metoda COCOMO

  22. COCOMO

  23. COCOMO 5. Liczymy liczbę osób: • Liczba osób = Nakład / Czas • Większa liczba osób nie zawsze oznacza szybsze zakończenie projektu!

  24. 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ść

  25. COCOMO

  26. Jessica Alba ;) Rozwiązanie zagadki

  27. 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 ;)‏ Bibliografia

More Related