Szacowanie złożoności oprogramowania

Slides:



Advertisements
Podobne prezentacje
Mechanizm wnioskowania rozmytego
Advertisements

Inżynieria Oprogramowania 10. Szacowanie kosztu oprogramowania cz. 2
Zarządzanie operacjami
7-8 października 2003, I Seminarium Integrujące Komponenty B.1 i B.2Projekt Usuwania Skutków Powodzi - Polska, kredyt nr 4264 POL 1 System Monitoringu.
Role w zespole projektowym
PROGRAMOWANIE STRUKTURALNE
Analiza ryzyka projektu
Rola komputera w przetwarzaniu informacji.
Wykład no 11.
Zrównoleglanie programu sekwencyjnego
Inżynieria Oprogramowania 10. Szacowanie kosztu oprogramowania cz. 1
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Szacowanie kosztu oprogramowania l Szacowanie kosztu i pracy niezbędnej do wyprodukowania.
STRATEGIA LOKALIZACJI zarządzanie produkcją
Teoria kosztów.
Studia Podyplomowe IT w Biznesie Inżynieria Oprogramowania
Budowa i integracja systemów informacyjnych
Szacowanie rozmiaru i pracochłonności
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Szacowanie rozmiaru oprogramowania
Inżynieria Oprogramowania dla Fizyków
KOSZTY PRODUKCJI BUDOWLANEJ
Temat nr 10: System przerwań
Pomiary w inżynierii oprogramowania
Pomiary w inżynierii oprogramowania
Eksploatacja zasobów informatycznych przedsiębiorstwa
Metody Funkcyjne FPA Maciej Bukowski PJWSTK grudzień 2006.
Algorytmy i struktury danych
RENOWATOR Staże Ośrodka RENOWATOR.
Wstęp do interpretacji algorytmów
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 2 Cykl życia systemu informacyjnego
Zarządzanie projektami
WinPakSE/PE Zintegrowany System Ochrony Obiektów
Digitalizacja obiektów muzealnych
ANALIZA CZYNNIKÓW DETERMINUJĄCYCH ROZWIĄZANIA
Budowa systemu komputerowego
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Dana jest sieć dystrybucji wody w postaci: Ø      m- węzłów,
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Rynek tłumaczeń i lokalizacji w Polsce, Wrocław marca 2009r. Małgorzata Haas-Tokarska Maksymilian Nawrocki MORAVIA IT.
Wykład nr 1 Klasyfikacja kosztów w przedsiębiorstwie
Mirosław Górny Maria Śliwińska
Badania operacyjne, Solver
Kick-off meeting PROJEKT „Poprawa zdolności administracyjnych
Procesor – charakterystyka elementów systemu. Parametry procesora.
METODY PODEJMOWANIA DECYZJI
Systemy informatyczne wprowadzenie
Zarządzanie projektami informatycznymi
Studium osiągalności. Rozmiar projektu (np. w punktach funkcyjny projektu w porównaniu do rozmiaru zakładanego zespołu projektowego i czasu Dostępność.
Studium osiągalności. Rozmiar projektu (np. w punktach funkcyjny projektu w porównaniu do rozmiaru zakładanego zespołu projektowego i czasu Dostępność.
Systemy informatyczne
Temat 6: Dokumentacja techniczna urządzeń sieciowych.
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Studium osiągalności.
Eksploatacja zasobów informatycznych przedsiębiorstwa.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Szacowanie kosztu oprogramowania l Przedstawienie metod szacowania kosztu i pracy.
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Wstęp do interpretacji algorytmów
Wykład 2 – Zintegrowane systemy informatyczne Michał Wilbrandt.
Metody Inteligencji Obliczeniowej Adrian Horzyk Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii.
ANALIZA WARTOŚCI PRZEDSIĘWZIĘĆ PROJEKTOWYCH ZE SZCZEGÓLNYM UWZGLĘDNIENIEM KRYTERIUM ICH EFEKTYWNOŚCI Bartłomiej Czekaj Numer albumu: 1892 Promotor: Prof.
(c) InMoST 2006 Plan szkolenia ▪ Wprowadzenie (9:00-10:30): Czym jest szacowanie? (MO) Systematyczne podejście do planowania (ŁO) Planowanie, a kalendarz.
Budowa i integracja systemów informacyjnych
Wady i zalety pracy w chmurze
Modelowanie i podstawy identyfikacji
Efektywność algorytmów
Metody sztucznej inteligencji
Budowa i integracja systemów informacyjnych
Zapis prezentacji:

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ó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ę.

LOC – szacowanie linii kodu Metryka Halstead'a Metryka McCabe'a Pierwsze metody LOC – szacowanie linii kodu Metryka Halstead'a Metryka 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 - 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 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 + 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, 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 * 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)‏

Czyje to „punkty funkcyjne?” ;)‏ 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 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 Dla 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,32 Dla 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 zagadki Jessica 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łady Google Images ;)‏