Szacowanie pracochłonności i budżetu projektu



Podobne dokumenty
Zarządzanie czasem projektu

Zarządzanie projektami. Zarządzanie czasem w projekcie

Oszacowanie pracochłonności wykonania systemu metodą punktów funkcyjnych

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

Zarządzanie projektami. Zarządzanie czasem w projekcie

Ograniczenia projektu. Zakres (co?) Czas (na kiedy?) Budżet (za ile?)

Metody pomiaru i szacowania oprogramowania

Inżynieria oprogramowania wykład III Faza strategiczna

Analiza punktów funkcyjnych Miara wielkość funkcjonalnej oprogramowania

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

Michał Gadomski. Grzegorz Poręcki

Microsoft Project laboratorium zarządzania projektami

Średni. Mały. Zakres Dół Środek Góra

Zarządzanie projektami. Wykład 3 Wyznaczanie zakresu projektu Planowanie projektu

Inżynieria oprogramowania II

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Spis treści: 1Wstęp...3 2Metody szacowania...3 3Wady metod opartych na jednostkach programowych...3 4Metoda punktów funkcyjnych (MPF)...

Metoda Punktów Funkcyjnych

Wymiarowanie projektów informatycznych Metoda punktów funkcyjnych.

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Wymiarowanie projektu informatycznego

Zarządzanie projektami. Wykład 3 dr inż. Agata Klaus-Rosińska

Wprowadzenie do programu ProjectLibre

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Wybór metod szacowania kosztów modyfikacji na wstępnych etapach cyklu życia oprogramowania ERP

Zarządzanie projektami zadaniowymi w oparciu o metodykę PMI

Nieprawidłowości w wymiarowaniu punktami funkcyjnymi

Szacowanie rozmiaru oprogramowania

Przypadki użycia. Czyli jak opisywać funkcjonalność. Jerzy Nawrocki Mirosław Ochodek

Zarządzanie projektami. Wykład 2 Zarządzanie projektem

Wstęp do zarządzania projektami

Organizacja projektowa

AL 1302 ZARZĄDZANIE PROJEKTAMI W OPARCIU O METODYKĘ PRINCE2

Studencka Pracownia Inżynierii Oprogramowania Zespół nr 2, IIUWR 2008/09. Bartłomiej Gałkowski, Marek Kembrowski, Tomasz Maciejewski.

Planowanie projektu. Magdalena Marczewska Wydział Zarządzania UW

Zarządzanie projektami. Porównanie podstawowych metodyk

Wykorzystanie inżynierskich metod pomiaru rozmiaru oprogramowania Wisła, r.

Systemy Open Source w zarządzaniu projektami, na przykładzie Redmine i OpenProject. Rafał Ciszyński

Wykład 1 Inżynieria Oprogramowania

Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania. Pomiary w inżynierii oprogramowania

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

Wstęp do zarządzania projektami

Wstęp do zarządzania projektami

Zarządzanie projektem prawnym w praktyce

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zasady organizacji projektów informatycznych

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

Rysunek 8. Rysunek 9.

Projekt Kompetencyjny - założenia

Zarządzanie Projektami zgodnie z PRINCE2

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny

OFERTA. Zarządzanie projektami O K R E Ś L E N I E Z A S O B Ó W

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

IO - inżynieria oprogramowania

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Zarządzanie projektem prawnym w praktyce

PRAKTYKA ZARZĄDZANIA PROJEKTAMI W OPARCIU O PMBOK GUIDE 5TH.ED.

Wprowadzenie do narzędzi zarządzania projektami informatycznymi.

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 6 Wskazówki i sugestie

Dobre wdrożenia IT cz. I Business Case.

Optymalizacja Automatycznych Testów Regresywnych

Zarządzanie projektami

Procesowa specyfikacja systemów IT

ZARZĄDZANIE PROJEKTAMI I PROCESAMI Zajęcia ćwiczeniowe (część zarządzania projektami)

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Cele przedsięwzięcia

Zarządzanie projektami

Język UML w modelowaniu systemów informatycznych

Zarządzanie projektem informatycznym, w2

FAZA STRATEGICZNA. Podstawowe hasło: Nie skupiać się na szczegółach! (na razie) Czynności w fazie strategicznej: Decyzje strategiczne:

Wytwórstwo oprogramowania. michał możdżonek

Inżynieria Programowania Zarządzanie projektem

How to run successfully Clinical Trial Project?

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

Zarządzanie projektem budowlanym

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Zarządzanie projektami. Wykład 2 Czym jest zarządzanie projektami?

Wsparcie narzędziowe zarządzania ryzykiem w projektach

Zarządzanie Projektami Inwestycyjnymi

Zarządzanie projektem informatycznym

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Inżynieria oprogramowania wykład IV Faza określenia wymagań

MACIERZ LOGICZNA PROJEKTU. Ułatwia sformułowanie spójnego i realistycznego projektu,

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

Podstawy programowania III WYKŁAD 5

Porównanie aplikacji do tworzenia harmonogramów.

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

Określanie wymagań. Cele przedsięwzięcia. Kontekst przedsięwzięcia. Rodzaje wymagań. Diagramy przypadków użycia use case diagrams

Przykładowy Projekt i

Inżynieria oprogramowania. Część 8: Metoda szacowania ryzyka - PERT

Metryki oprogramowania. Marian Jureczko

Planowanie projektów jako jeden z procesów zarządzania projektami

Koszty związane z tworzeniem aplikacji on demand versus zakup gotowych rozwiązań

Zarządzanie projektami - narzędzia, software, dokumentacja, metodyka PMBOK

ECDL ZARZĄDZANIE PROJEKTAMI

Bezpieczeństwo aplikacji i urządzeń mobilnych w kontekście wymagań normy ISO/IEC oraz BS doświadczenia audytora

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Transkrypt:

Inżynieria oprogramowania 2 Szacowanie pracochłonności i budżetu projektu Piotr Miklosik Piotr.Miklosik@put.poznan.pl Mirosław Ochodek Miroslaw.Ochodek@cs.put.poznan.pl

Cel wykładu Jakie są podejścia do szacowania pracochłonności i kosztów? Przegląd wybranych metod 2

Plan wykładu Wprowadzanie Rozmiar oprogramowania punkty funkcyjne Szacowanie pracochłonności Miary dokładności szacowania pracochłonności Przegląd metod szacowania pracochłonności Przez analogię Eksperckie Algorytmiczne Harmonogram i budżet

Plan wykładu Wprowadzanie Rozmiar oprogramowania punkty funkcyjne Szacowanie pracochłonności Miary dokładności szacowania pracochłonności Przegląd metod szacowania pracochłonności Przez analogię Eksperckie Algorytmiczne Harmonogram i budżet

Dlaczego szacujemy pracochłonność? Czy powinniśmy podpisać kontrakt? Ile to będzie kosztowało? Jak stworzyć harmonogram 60-80% projektów przekracza budżet i harmonogram K. Moløkken and M. Jørgensen. A review of software surveys on software effort estimation. In Empirical Software Engineering, 2003. ISESE 2003. Proceedings. 2003 International Symposium on, pages 223 230.

Skutki błędnej estymacji pracochłonności przeszacowanie utrata kontraktu prawo Parkinsona Syndrom studenta niedoszacowanie przekroczenie budżetu i terminu niska jakość

Dlaczego szacujemy pracochłonność? Planowanie w wydaniu Jasia Fasoli

Czy chodzi o estymację? Cel Zobowiązanie Estymacja 8

Dobra estymata pracochłonności Czego mogę oczekiwać od metod szacowania? 9

Dobra estymata pracochłonności? Dobre oszacowanie to takie które wspiera czynności związane z zarządzanie projektem takie jak planowanie i negocjacja zasobów projektu, zarządzanie zmianą i ryzykiem, itd..

Wybór metody szacowania Model finansowania projektu Dziedzina oraz rodzaj produktów Różne etapy szacowania Różny poziom samoświadomości organizacji

Wybór metody szacowania Model finansowania projektu Dziedzina oraz rodzaj produktów Różne etapy szacowania Różny poziom samoświadomości organizacji

Trójkąty równowagi w projekcie Everybody wants things good, wants them fast, and wants them cheap. Everyone knows you can actually achieve any two of the three [John Boddie]. You need to decide which two do you want?

Trójkąty równowagi w projekcie Jakość Optymalizacja zakresu Funkcjonalność Zasoby

Trójkąty równowagi w projekcie Jakość Optymalizacja zakresu Pracochłonność Funkcjonalność Produktywność Ludzie Optymalizacja zasobów Czas trwania

Trójkąty równowagi w projekcie Jakość Optymalizacja zakresu Stały zakres Klient Pracochłonność Funkcjonalność Produktywność Ludzie Optymalizacja zasobów Czas trwania

Trójkąty równowagi w projekcie Jakość Optymalizacja zakresu Stały zakres Klient Pracochłonność Funkcjonalność Produktywność Ludzie Optymalizacja zasobów Czas trwania

Trójkąty równowagi w projekcie Pytanie: Jaki będzie koszt wytworzenia systemu? Jakość Optymalizacja zakresu Stały zakres Klient Pracochłonność Funkcjonalność Produktywność Ludzie Optymalizacja zasobów Czas trwania

Trójkąty równowagi w projekcie Jakość Optymalizacja zakresu Stała cena Pracochłonność Klient Funkcjonalność Produktywność Ludzie Optymalizacja zasobów Czas trwania

Trójkąty równowagi w projekcie Jakość Optymalizacja zakresu Stała cena Pracochłonność Klient Funkcjonalność Produktywność Ludzie Optymalizacja zasobów Czas trwania

Trójkąty równowagi w projekcie Pytanie: Czy i w jakim stopniu będę w stanie rozwiązać mój problem? Jakość Optymalizacja zakresu Stała cena Pracochłonność Klient Funkcjonalność Produktywność? Optymalizacja zasobów Ludzie Czas trwania

Wybór metody szacowania Model finansowania projektu Dziedzina oraz rodzaj produktów Różne etapy szacowania Różny poziom samoświadomości organizacji

Dziedzina i rodzaj produktów Software Standardowe Półstandardowe Innowacyjne Hardware Mieszane

Wybór metody szacowania Model finansowania projektu Dziedzina oraz rodzaj produktów Różne etapy szacowania Różny poziom samoświadomości organizacji

Szacowanie na różnych etapach Krótka perspektywa czasowa (stała) Planowanie projektu Planowanie wydania ~Stały zespół Niezależne zadania o podobnej złożoności Zadanie Zadanie Zadanie Miara Velocity

Szacowanie na różnych etapach Planowanie projektu Planowanie wydania Produkt Produkt Zadanie Zadanie Zadanie

Szacowanie na różnych etapach Planowanie projektu Planowanie wydania Produkt Produkt niedokreślony Produkt Ryzyka, zmiany Pytanie o wykonalność

Agile - Scrum, XP, Planowanie projektu Planowanie wydania Produkt Produkt Zadanie Zadanie Zadanie

Barry Boehm et al. Cost Models for Future Software Life Cycle Processes: COCOMO Stożek niepewności B. Boehma

Barry Boehm et al. Cost Models for Future Software Life Cycle Processes: COCOMO Stożek niepewności B. Boehma

Wybór metody szacowania Model finansowania projektu Dziedzina oraz rodzaj produktów Różne etapy szacowania Różny poziom samoświadomości organizacji

Proces szacowania kosztów Jak wygląda typowy proces szacowania kosztów? 32

Systematyczne podejście do planowania Szacowanie rozmiaru Szacowanie pracochłonności Szacowanie budżetu i harmonogramu

Plan wykładu Wprowadzanie Rozmiar oprogramowania punkty funkcyjne Szacowanie pracochłonności Miary dokładności szacowania pracochłonności Przegląd metod szacowania pracochłonności Przez analogię Eksperckie Algorytmiczne Harmonogram i budżet

Rozmiar oprogramowania Miary kodu Miary funkcjonalności 35

Allan Albrecht 1984 Function Points Wejście Wyjście Zapytania Pliki wewnętrzne Pliki zewnętrzne 36

Allan Albrecht 1984 Function Points Niska, średnia, wysoka Wejście +14 czynników technicznych +/- 35% Wyjście Zapytania Pliki wewnętrzne Pliki zewnętrzne 37

IFPUG International Function Point User Group Założona w 1986 roku Counting Practices Committee Counting Practices Manual (4.3.1) Certyfikacja ISO/IEC 20926:2009 http://www.ifpug.org/ 38

IFPUG FPA 4.3.1 1. Gather the available documentation 2. Determine counting scope and boundary and identify functional user requirements 3. Measure data functions 4. Measure transactional functions 5. Calculate functional size 6. Document and report 39

IFPUG FPA 4.3.1 1. Gather the available documentation 2. Determine counting scope and boundary and identify functional user requirements 3. Measure data functions 4. Measure transactional functions 5. Calculate functional size 6. Document and report 40

Przykład: menadżer zadań Celem pomiaru jest: Dokonanie pomiaru rozmiaru funkcjonalnego tworzonej aplikacji do delegowania zadań. Development project FP count jest to nowo tworzona aplikacja. 41

Przykład: menadżer zadań Zakres pomiaru: Wymagania zdefiniowane dla pierwszego przyrostu tworzonego systemu: dodawanie zadań, wyświetlanie zadań wyświetlanie liczby zadań dla osoby przypisywanie osób do zadań 42

Przykład: menadżer zadań Granica systemu Zarządzanie zadaniami należy do menadżera zadań, natomiast osobami zarządza książka kontaktów 43

IFPUG FPA 4.3.1 1. Gather the available documentation 2. Determine counting scope and boundary and identify functional user requirements 3. Measure data functions 4. Measure transactional functions 5. Calculate functional size 6. Document and report 44

IFPUG FPA 4.3.1 3. Measure data functions 45

Przykład: menadżer zadań Pliki logiczne zadanie + lokalizacje (lokalizacja bez zadania nie ma znaczenia z punktu widzenia użytkownika) osoby 46

Przykład: menadżer zadań Internal Logical File (ILF) czy? External Interface File (EIF) 47

Przykład: menadżer zadań Data Element Type (DET) Nazwa Nazwa lokalizacji Termin Opis Imię i nazwisko Adres e-mail Telefon Adres 48

Przykład: menadżer zadań Data Element Type (DET) Nazwa Nazwa lokalizacji Termin Opis Imię i nazwisko Adres e-mail Telefon Adres +1xDET 3xDET +1xDET 4xDET 2xDET 49

Przykład: menadżer zadań Data Element Type (DET) Nazwa Nazwa lokalizacji Termin Opis Imię i nazwisko Adres e-mail Telefon Adres 5xDET 6xDET 50

Przykład: menadżer zadań Record Element Type podgrupa DET ów, która jest rozpoznawalna przez użytkownika. 2xRET 1xRET 51

Przykład: menadżer zadań ILF? EIF? EIF/ILF 2xRET 6xDET 1xRET 5xDET 52

Przykład: menadżer zadań ILF Low (7) EIF Low (5) EIF/ILF 2xRET 6xDET 1xRET 5xDET 53

IFPUG FPA 4.3.1 1. Gather the available documentation 2. Determine counting scope and boundary and identify functional user requirements 3. Measure data functions 4. Measure transactional functions 5. Calculate functional size 6. Document and report 54

IFPUG FPA 4.3.1 4. Measure transactional functions 55

IFPUG FPA 4.3.1 External Input Dokonuje modyfikacji danych w ILF Faktura Dodaj fakturę 56

IFPUG FPA 4.3.1 External Inquiry Dane na zewnątrz bez przetwarzania Faktura Pobierz fakturę 57

IFPUG FPA 4.3.1 External Output Dane na zewnątrz z przetwarzaniem Faktura Wyświetl łączną wartość produktów na fakturach w tym miesiącu 58

Przykład: menadżer zadań Elementarne procesy: dodawanie zadań, wyświetlanie zadań wyświetlanie liczby zadań dla osoby przypisywanie osób do zadań EI EQ EO EI EQ EO EI EQ EO EI EQ EO 59

Przykład: menadżer zadań Elementarne procesy: dodawanie zadań, wyświetlanie zadań wyświetlanie liczby zadań dla osoby przypisywanie osób do zadań EI EQ EO EI EQ EO EI EQ EO EI EQ EO 60

Przykład: menadżer zadań Liczba DET ów: dodawanie zadań 8x DET, wyświetlanie zadań 12x DET, wyświetlanie liczby zadań dla osoby 2x DET, przypisywanie osób do zadań 3x DET, 62

Przykład: menadżer zadań Liczba plików logicznych: dodawanie zadań 1x ILF, wyświetlanie zadań 1x ILF + 1x EIF, wyświetlanie liczby zadań dla osoby 1x ILF + 1x EIF, przypisywanie osób do zadań 1x ILF + 1x EIF, 63

IFPUG FPA 4.3.1 EI 4. Measure transactional functions EO/EQ Niska, średnia, wysoka 64

Przykład: menadżer zadań Złożoność / rozmiar funkcjonalny: dodawanie zadań low / 3, wyświetlanie zadań average / 4, wyświetlanie liczby zadań dla osoby low / 4, przypisywanie osób do zadań low / 3, 65

IFPUG FPA 4.3.1 1. Gather the available documentation 2. Determine counting scope and boundary and identify functional user requirements 3. Measure data functions 4. Measure transactional functions 5. Calculate functional size 6. Document and report 66

Przykład: menadżer zadań Rozmiar funkcjonalny: DFP = 7 + 5 + 3 + 4 + 4 + 3 = 26 Funkcje danych Funkcje transakcyjne 67

Plan wykładu Wprowadzanie Rozmiar oprogramowania punkty funkcyjne Szacowanie pracochłonności Miary dokładności szacowania pracochłonności Przegląd metod szacowania pracochłonności Przez analogię Eksperckie Algorytmiczne Harmonogram i budżet

Dokładność a precyzja Lepsze oszacowanie liczby Pi? 3,143323223214141 3,14 Precyzja Dokładność 69

Miary oceny dokładności szacowania Mean Magnitude of Relative Error MMRE

Miary oceny dokładności szacowania Prediction Quality Pred e - estimation error level k - number of projects with error (MRE) <= e n - number of projects considered

Plan wykładu Wprowadzanie Rozmiar oprogramowania punkty funkcyjne Szacowanie pracochłonności Miary dokładności i rodzaje rezultatów Przegląd metod szacowania pracochłonności Przez analogię Eksperckie Algorytmiczne Harmonogram i budżet

Klasyfikacja metod szacowania Metody szacowania Analogia Eksperckie Algorytmiczne Hybrydowe Parametryczne Nieparametryczne

Klasyfikacja metod szacowania Metody szacowania Analogia Eksperckie Algorytmiczne Hybrydowe Parametryczne Nieparametryczne

Analogia Nowy projekt: Pracochłonność Kontekst? Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie Baza historyczna: Pracochłonność Rozmiar Kontekst 1000 [h] 30 FP Sklep internetowy. Java, Servlets, JSP. programistyczne: Wysokie 600 [h] 20 FP Prosty CMS. PHP. Umiejętności programistyczne: Wysokie 1300 [h] 30 FP Sklep internetowy. PHP. programistyczne: Średnie

Analogia Nowy projekt: Pracochłonność Kontekst 1300 [h] Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie Baza historyczna: Pracochłonność Rozmiar Kontekst 1000 [h] 30 FP Sklep internetowy. Java, Servlets, JSP. programistyczne: Wysokie 600 [h] 20 FP Prosty CMS. PHP. Umiejętności programistyczne: Wysokie 1300 [h] 30 FP Sklep internetowy. PHP. programistyczne: Średnie

Analogia Nowy projekt: Pracochłonność Średnia 1092 ±72 (95%) < 1020 ; 1164 > Kontekst Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie Pracochłonność projektów podobnych: 840, 920, 930, 1020, 1030, 1022, 1030, 1100, 1200, 1300, 1400, 1200, 1110, 1100, 1050, 1120, 1200 Średnia jako estymator Sample Quantiles 900 1000 1100 1200 1300 1400 Normal Q-Q Plot -2-1 0 1 2 Theoretical Quantiles

Analogia Nowy projekt: Pracochłonność Min = 1066 [h] Max = 1386 [h] Kontekst Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie Baza historyczna: Pracochłonność Rozmiar Kontekst 1000 [h] 30 FP Sklep internetowy. Java, Servlets, JSP. programistyczne: Wysokie 600 [h] 20 FP Prosty CMS. PHP. Umiejętności programistyczne: Wysokie 1300 [h] 30 FP Sklep internetowy. PHP. programistyczne: Średnie

Analogia Nowy projekt: Pracochłonność Kontekst? Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie Pracochłonność projektów podobnych: 840, 920, 930, 1020, 1030, 1022, 1030, 1100, 1200, 1300, 1400, 1200, 1110, 1100, 1050, 1120, 1200

Jest 80% szans, że pracochłonność nie będzie większa niż 1200h cdf Analogia prawdopodobieństwo 0.0 0.2 0.4 0.6 0.8 1.0 600 800 1000 1200 1400 1600 n:17 m:0 pracochłonność [h]

Analogia cdf prawdopodobieństwo 0.0 0.2 0.4 0.6 0.8 1.0 600 800 1000 1200 1400 1600 n:10000 m:0 pracochłonność [h]

Klasyfikacja metod szacowania Metody szacowania Analogia Eksperckie Algorytmiczne Hybrydowe Parametryczne Nieparametryczne

Wideband Delphi Moderator Eksperci

Wideband Delphi Moderator Przygotowanie indywidualne Eksperci

Wideband Delphi Dyskusja Moderator Eksperci

Wideband Delphi Moderator Anonimowa ocena ekspertów Eksperci

Wideband delphi karta oceny Ekspert: Jan Kowalski Projekt: Internet e-shop system Data: 05.07.2006 300 600 900 1200 1500 LOC - Estymacja - Twoja estymacja - Średnia estymacja 1400 Twoja estymacja:... LOC Będzie problem z technologiami Uzasadnienie...

Wideband Delphi Moderator Moderator opracowuje wyniki z kart oceny Eksperci

Wideband delphi karta oceny Ekspert: Jan Kowalski Projekt: Internet e-shop system Data: 05.07.2006 300 600 900 1200 1500 LOC - Estymacja - Twoja estymacja - Średnia estymacja 1400 Twoja estymacja:... LOC Będzie problem z technologiami Uzasadnienie...

Wideband Delphi Moderator Eksperci otrzymują swoje karty z powrotem Eksperci

Wideband Delphi Następna runda albo: Moderator Effort= (O + 4A + P) / 6 Eksperci

The Work Breakdown Structure - WBS Hierarchiczny pracy do wykonania tu skończyłem!!!!

WBS Elementy struktury Poziom #0 Cel Cel do osiągnięcia

WBS Elementy struktury Poziom #0 Cel Poziom #1 Czynność Czynność Czynność fragment pracy do wykonania na wysokim poziomie abstrakcji

WBS Elementy struktury Poziom #0 Cel Poziom #1 Czynność Czynność Dalsza dekompozycja

WBS Elementy struktury Poziom #0 Cel Zadanie Level najmniejszy #1 fragment pracy (work package) Czynność Czynność Level #m Zadanie #1 Zadanie #2 Zadanie #n

WBS Elementy struktury Poziom #0 Cel Level #1 Czynność Czynność Level #m Zadanie #1 Czynność na poziomie N jest ukończona jeśli wszystkie zdekomponowane Zadanie Zadanie czynności na #2 #n poziomie N+1 są ukończone

Rzeczowniki reprezentują wynik Podejścia do budowy WBS KAWA ZIARNA FILIŻANKA WODA Mieszaj Wsyp Zmiel Umyj Rozgrzej Ugotuj Wlej Czasowniki reprezentują czynności

Podejścia do budowy WBS Rzeczowniki reprezentują wynik KAWA ZIARNA FILIŻANK A WODA Kawa zamieszana Kawa wsypana Zmielone ziarna Filiżanka umyta Filiżanka rozgrzana Woda zagotowana Woda wlana do filiżanki

Podejścia do budowy WBS Top-down - Dekompozycja KAWA ZIARNA FILIŻANK A WODA Kawa zamieszana Kawa wsypana Zmielone ziarna Filiżanka umyta Filiżanka rozgrzana Woda zagotowana Woda wlana do filiżanki Bottom-up Burza mózgów

Przykład KAWA ZIARNA FILIŻANKA WODA Kawa zamieszana Kawa wsypana Zmielone ziarna Filiżanka umyta Filiżanka rozgrzana Woda zagotowana Woda wlana do filiżanki 1 1 2 2 15 3 1

Przykład KAWA 25 ZIARNA 3 FILIŻANKA 17 4 WODA Kawa zamieszana Kawa wsypana Zmielone ziarna Filiżanka umyta Filiżanka rozgrzana Woda zagotowana Woda wlana do filiżanki 1 1 2 2 15 3 1

Kryteria dobrze zdefiniowanej czynności / zadania Mierzalny status Zdefiniowane zdarzenia rozpoczęcia / zakończenia Zdefiniowany rezultat Oszacowany czas / koszt Akceptowalny czas wykonania Niezależność 103

Klasyfikacja metod szacowania Metody szacowania Analogia Eksperckie Algorytmiczne Hybrydowe Parametryczne Nieparametryczne

Metoda COCOMO II PM NS = A Size E i=1 16 EM i gdzie E = B + 0.01 i=15 SF i Size w KSLOC Wartości A, B skalibrowane na podstawie 161 projektów: A = 2.94 B = 0.91 Dla przeciętnego projektu EM i = 1. 0 i=15 SF i 31.6 PM NS = 2.94 Size E gdzie 0.91 E 1.226 Barry W. Boehm

Wpływ czynników skali, SF, na pracochłonność E= 1.226 E= 1 E= 0.91

Use Case Points (UCP) 4 C++ Java C# Technical Complexity Factors 5 Environment Factors Gustav Karner (1993) System informatyczny 1 3 2 UC1 UC1 UC1 Aktorzy Przypadki użycia Użytkownicy Metoda punktów przypadków użycia

Use Case Points (UCP) Gustav Karner (1993) Aktorzy (UAW) Klasyfikacja do klasy złożoności na podstawie typu interfejsu służącego do komunikacji z systemem Złożoność aktora 1 punkt: Prosty - zdefiniowane API 2 punkt : Średni - TCP/IP lub tekst 3 punkt : Złożony - GUI C++ C# Java 4 Technical Complexity Factors 5 Environment Factors Software System 1 3 2 UC1 UC1 UC1 Use Cases Users Actors

Use Case Points (UCP) Gustav Karner (1993) Aktorzy (UAW) Use Cases (UUCW) Klasyfikacja do klasy złożoności na podstawie typu interfejsu służącego do komunikacji z systemem Klasyfikacja do trzech klas złożoności na podstawie liczby transakcji C++ C# Java 4 5 Technical Complexity Factors Environment Factors Software System 5 points : Prosty do 3 transakcji UC1 10 points : Średni 4-7 transakcji Złożoność 15 points : Złożony ponad 7 transakcji przypadku użycia 1 3 2 UC1 UC1 UC1 Use Cases Users Actors UUCP = UAW+UUCW

Transakcje w przypadkach użycia 1. Autor wybiera opcję zgłoszenia artykułu. Interakcja 2. System prosi o podanie danych artykułu.

Ile transakcji? UC1: Zgłoś artykuł Poziom: Użytkownika Aktor główny: Autor Scenariusz główny: 1. Autor wybiera opcję zgłoszenia artykułu. 2. System prosi o podanie danych artykułu. 3. Autor podaje wymagane dane na temat artykułu. 4. System informuje o pomyślnym zgłoszeniu artykułu. Scenariusze alternatywne i rozszerzenia: 1.A. Author chciałby zgłosić zmienioną wersję artykułu. 1.A.1. Autor wybiera opcję ponownego zgłoszenia swoich artykułów. 1.A.2. System prezentuje artykuły zgłoszone dotychczas przez Autora. 1.A.3. Autor wybiera jeden z artykułów oraz opcję jego ponownego zgłoszenia. 1.A.4. Przejdź do kroku 2. 112

Use Case Points (UCP) Gustav Karner (1993) Aktorzy (UAW) Use Cases (UUCW) Technical Complexity Factors (TCF) Klasyfikacja do klasy złożoności na podstawie typu interfejsu służącego do komunikacji z systemem Klasyfikacja do trzech klas złożoności na podstawie liczby transakcji 13 czynników, których wpływ na projekt oceniany jest w skali 0-5 C++ C# Java 4 Technical Complexity Factors 5 Environment Factors Environmental Factors (EF) 8 czynników, których wpływ na projekt oceniany jest w skali 0-5 Software System 1 3 UC1 UC1 Actors 2 UC1 Users Use Cases

Czynniki techniczne (Technical Factors) TFactor = e i T i e i = 0, 1,.., 5 T1 System rozproszony 2 T2 Wydajność 2 T3 Wydajności z pkt użytkownika1 T4 Złożoność przetwarzania 1 T5 Reużywalność kodu 1 T6 Łatwość instalacji 0.5 T7 Łatwość użycia 0.5 T8 Przenośność 2 T9 Łatwość zmiany 1 T10 Współbieżność 1 T11 Bezpieczeństwo (security) 1 T12 Dostęp stron trzecich 1 T13 Wymagane spec. szkolenia 1

Czynniki środowiska (Environment Factors) F1 Znajomość metodyki 1.5 F2 Doświadczenie w aplikacji 0.5 F3 Doświadczenie w obiektowości 1 F4 Możliwości gł. analityka 0.5 F5 Motywacja 1 F6 Stabilne wymagania 2 F7 Pracownicy na część etatu -1 F8 Trudny język programowania -2 EFactor = e i F i e i = 0, 1,.., 5

Use Case Points (UCP) Aktorzy (UAW) Use Cases (UUCW) Technical Complexity Factors (TCF) Gustav Karner (1993) Klasyfikacja do klasy złożoności na podstawie typu interfejsu służącego do komunikacji z systemem Klasyfikacja do trzech klas złożoności na podstawie liczby transakcji 13 czynników, których wpływ na projekt oceniany jest w skali 0-5 C++ C# Java 4 Technical Complexity Factors 5 Environment Factors Environmental Factors (EF) 8 czynników, których wpływ na projekt oceniany jest w skali 0-5 Software System 2 UC1 UC1 UC1 1 Users 3 Actors UCP = (UAW+UUCW) x TCF x EF Use Cases TCF= 0,6 + (0,01*TFactor) EF= 1,4 + (-0,03*EFactor)

Use Case Points (UCP) Gustav Karner (1993) Effort = UCP x PF Productivity Factor (domyślnie 20 h/ucp, należy skalibrować na podstawie danych historycznych) typowo <10,30>

Model parametryczny Regresja liniowa 4000 3500 UCP a pracochłonność R² = 0,9277 3000 2500 2000 1500 Effort Linear (Effort) 1000 500 0 0 20 40 60 80 100 120 140

Klasyfikacja metod szacowania Metody szacowania Analogia Eksperckie Algorytmiczne Hybrydowe Parametryczne Nieparametryczne

Plan wykładu Wprowadzanie Rozmiar oprogramowania punkty funkcyjne Szacowanie pracochłonności Miary dokładności szacowania pracochłonności Przegląd metod szacowania pracochłonności Przez analogię Eksperckie Algorytmiczne Harmonogram i budżet

Harmonogramowanie Czas realizacji a pracochłonność Liczba wykonawców Zależności między zadaniami

Czas realizacji a pracochłonność Jaka byłaby pracochłonność (effort) i czas realizacji (duration) zadania domowego: Napisz program obliczający silnię n! Termin oddania 12 grudnia 2014 Czas realizacji: 1 tydzień Pracochłonność: 10 minut?

Czas realizacji a pracochłonność Czas realizacji i pracochłonność nie muszą być takie same! Wysocki, R. K., & McGary, R. (2003). Effective project management: traditional, adaptive, extreme. Wiley.

Liczba wykonawców Czy czas realizacji zmniejszy się jak zwiększę liczbę wykonawców?

Wynieść krzesło z pokoju Liczba wykonawców

Wynieść krzesło z pokoju Liczba wykonawców

Wynieść krzesło z pokoju Liczba wykonawców

Wynieść krzesło z pokoju Liczba wykonawców

Liczba wykonawców Wynieść krzesło z pokoju Podwójmy zasoby!

Liczba wykonawców Wynieść krzesło z pokoju Podwójmy zasoby!

Liczba wykonawców Wynieść krzesło z pokoju Podwójmy zasoby!

Liczba wykonawców Wynieść krzesło z pokoju Podwójmy zasoby!

Liczba wykonawców Wynieść krzesło z pokoju Podwójmy zasoby! Crashpoint!

Liczba wykonawców Czy czas realizacji zmniejszy się jak zwiększę liczbę wykonawców? Do pewnego momentu (zależy od zadania) Dodanie większej liczby osób - Crashpoint! Dodanie zbyt dużej liczby osób zwiększy pracochłonność z uwagi na narzut na komunikację Crashpoint!

Zależność między zadaniami KAWA 25 ZIARNA 3 FILIŻANKA 17 4 WODA Kawa zamieszana Kawa wsypana Zmielone ziarna Filiżanka umyta Filiżanka rozgrzana Woda zagotowana Woda wlana do filiżanki 1 1 2 2 15 3 1

Zależność między zadaniami Pracochłonność czy czas realizacji? KAWA 25 ZIARNA 3 FILIŻANKA 17 4 WODA Kawa zamieszana Kawa wsypana Zmielone ziarna Filiżanka umyta Filiżanka rozgrzana Woda zagotowana Woda wlana do filiżanki 1 1 2 2 15 3 1

Jak stworzyć harmonogram?

Diagramy sieciowe i wykresy Gantta Network diagram Gantt chart

Precedence Diagramming Method Do tworzenia diagramów sieciowych Dwie wersje AOA activity on the arrow (starsze) AON activity on the node

PDM activity node ES earliest start EF earliest finish LS latest start LF latest finish E duration ID id of task Slack (luz)

PDM 1. Stwórz sieć bazując na zależnościach Jedno wejście Jedno wyjście

Zależność między zadaniami Jaka zależność między zadaniami? KAWA 25 ZIARNA 3 FILIŻANKA 17 4 WODA Kawa zamieszana Kawa wsypana Zmielone ziarna Filiżanka umyta Filiżanka rozgrzana Woda zagotowana Woda wlana do filiżanki 1 1 2 2 15 3 1

Zależność między zadaniami Kawa wsypana zależy od: FILIŻANKA Zmiel kawę Woda wlana do filiżanki zależy od: Woda zagotowana FILIŻANKA Kawa wsypana Kawa zamieszana zależy od: Woda wlana do filiżanki Kawa wsypana (?) 144

FILIŻANKA WODA KAWA PDM Zmielona 2 Wsypana 1 Zagotowana 3 Wlana 1 Zamieszana 1 Umyta 2 Rozgrzana 15

PDM 2. Stwórz wczesne uszeregowanie (forward pass) Pokazuje najwcześniejsze możliwe czasy kiedy zadanie może się rozpocząć i zakończyć

PDM 2. Stwórz wczesne uszeregowanie (forward pass) ES input = 1 EF A = ES A + E A - 1 ES c = max{ef A, EF B } + 1 A c B

FILIŻANKA WODA KAWA PDM?? Zmielona 2 Wsypana 1 Zagotowana 3 Wlana 1 Zamieszana 1 Umyta 2 Rozgrzana 15

FILIŻANKA WODA KAWA PDM 1 2?? Zmielona 2 Wsypana 1 1 3 Zagotowana 3 Wlana 1 Zamieszana 1 1 2 3 17 Umyta 2 Rozgrzana 15

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 Wsypana 1 1 3?? Zagotowana 3 Wlana 1 Zamieszana 1 1 2 3 17 Umyta 2 Rozgrzana 15

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 Wsypana 1 1 3 19 19 20 20 Zagotowana 3 Wlana 1 Zamieszana 1 1 2 3 17 Umyta 2 Rozgrzana 15

PDM 3. Stwórz późne uszeregowanie (backward pass) Pokazuje ostateczny czas rozpoczęcia i zakończenia taki, który nie spowoduje opóźnienia projektu

PDM 3. Stwórz późne uszeregowanie (backward pass) LF output = EF output LS A = LF A E A + 1 LF A = min{ls B, LS C } 1 B A c

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 Wsypana 1 1 3 19 19 20 20 Zagotowana 3 Wlana 1 Zamieszana 1?? 1 2 3 17 Umyta 2 Rozgrzana 15

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 Wsypana 1 1 3 19 19 20 20 Zagotowana 3 Wlana 1 Zamieszana 1 20 20 1 2 3 17 Umyta 2 Rozgrzana 15

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 Wsypana 1 1 3?? 19 19 20 20 Zagotowana 3 Wlana 1 Zamieszana 1 19 19 20 20 1 2 3 17 Umyta 2 Rozgrzana 15

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 Wsypana 1 1 3 18 18 19 19 20 20 Zagotowana 3 Wlana 1 Zamieszana 1 19 19 20 20 1 2 3 17 Umyta 2 Rozgrzana 15??

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 Wsypana 1 16 17 1 3 18 18 19 19 20 20 Zagotowana 3 Wlana 1 Zamieszana 1 16 18 19 19 20 20 1 2 3 17 Umyta 2 1 2 Rozgrzana 15 3 17

PDM Okno czasowe 1 2 Zmielona 2 16 17 Zmielona 1 17 Zmielona 1 17

PDM 4. Ścieżka krytyczna (critical path) Jakiekolwiek opóźnienie zadań na ścieżce krytycznej spowoduje opóźnienie projektu

PDM 4. Ścieżka krytyczna (critical path) Ścieżka z najdłuższym czasem wykonania Activity Slack Time (przepływ) tolerowana wielkość opóźnienia startu lub zakończenia zadania, która nie spowoduje opóźnienia projektu Slack (luz) = LF EF

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 Wsypana 1 16 17 1 3 18 18 19 19 20 20 Zagotowana 3 Wlana 1 Zamieszana 1 16 18 19 19 20 20 1 2 3 17 Umyta 2 1 2 Rozgrzana 15 3 17

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 15 0 Wsypana 1 16 17 1 3 18 18 19 19 20 20 Zagotowana 3 15 0 0 Wlana 1 Zamieszana 1 16 18 19 19 20 20 1 2 3 17 0 Umyta 2 1 2 0 Rozgrzana 15 3 17

FILIŻANKA WODA KAWA PDM 1 2 18 18 Zmielona 2 15 0 Wsypana 1 16 17 1 3 18 18 19 19 20 20 Zagotowana 3 15 0 0 Wlana 1 Zamieszana 1 16 18 19 19 20 20 1 2 3 17 Umyta 0 2 Rozgrzana 0 15 Opóźnienie tych zadań 1 2 3 17 opóźni projekt!

Koszt Wycena na podstawie rozmiaru Wycena na podstawie pracochłonności Wycena na podstawie czasu realizacji Odległość w czasie Konieczność utrzymania etatów Fazy realizacji projektu 165

Q&A time