Personal Software Process

Slides:



Advertisements
Podobne prezentacje
Systemy czasu rzeczywistego
Advertisements

Programowanie Ekstemalne
Wprowadzenie do informatyki Wykład 6
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Programowanie Ekstremalne
Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Estymacja przedziałowa
Systemy czasu rzeczywistego Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Próba eksperymentalnej oceny metody PROBE
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Lekkie metodyki programowania: Szansa czy zagrożenie?
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Inżynieria oprogramowania II Wykład 5 Standardy serii ISO 9000
Inżynieria oprogramowania II Wykład 4 Normy serii ISO 9000
Inżynieria oprogramowania Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Zwinne metodyki programowania
Szacowanie rozmiaru i pracochłonności
Inżynieria oprogramowania II Wykład 12 Projekty dyplomowe
Wprowadzenie do przedmiotu
Model dojrzałości CMMI
Copyright © Jerzy R. Nawrocki Standardy serii ISO Inżynieria oprogramowania II Wykład.
Zwinne metodyki programowania Copyright, 2006 © Jerzy R. Nawrocki Inżynieria oprogramowania.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Wykład 1 Inżynieria oprogramowania II Wykład 1 Wprowadzenie
Inżynieria Oprogramowania Copyright, 2002 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Szacowanie rozmiaru i pracochłonności
Copyright © Jerzy R. Nawrocki Inżynieria wymagań Inżynieria oprogramowania II Wykład 6.
XPrince: Równoważenie zwinności i dyscypliny
J. Nawrocki, Inżynieria oprog. Plan wykładu Praktyki XP Wcześniejsze badania Personal Software Process eXtremme Programming Opis eksperymentu WynikiPodsumowanie.
Analiza i walidacja wymagań
Copyright © Jerzy R. Nawrocki Zbieranie wymagań Analiza systemów informatycznych Wykład.
Copyright © Jerzy R. Nawrocki Wprowadzenie Analiza systemów informatycznych Wykład.
Inżynieria oprogramowania II Wykład 10 PRINCE2 i TSP
Testy akceptacyjne Analiza systemów informatycznych Wykład 9
Szacowanie pracochłonności
Modelowanie i język UML
Dokument specyfikacji wymagań
Dyscyplina i zwinność w projektach informatycznych
Ilościowe zarządzanie przedsięwzięciem
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Informatyka jako dziedzina wiedzy Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Metody formalne Copyright, 2005 © Jerzy R. Nawrocki Analiza systemów informatycznych.
Copyright © Jerzy R. Nawrocki Personal Software Process Inżynieria oprogramowania II Wykład.
Testowanie oprogramowania
Copyright © Jerzy R. Nawrocki Szacowanie rozmiaru i pracochłonności Inżynieria oprogramowania.
Zarządzanie przedsięwzięciami i PRINCE2
Szacowanie rozmiaru oprogramowania
Wykład 4 Przedziały ufności
Rozkład normalny Cecha posiada rozkład normalny jeśli na jej wielkość ma wpływ wiele niezależnych czynników, a wpływ każdego z nich nie jest zbyt duży.
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Estymacja przedziałowa i korzystanie z tablic rozkładów statystycznych
Inżynieria oprogramowania Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Inżynieria Oprogramowania Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Wnioskowanie statystyczne
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
(c) Jerzy Nawrocki Jerzy Nawrocki
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
Innowacyjność w planowaniu przedsięwzięć informatycznych Mirosław Ochodek Łukasz Olek
(c) InMoST 2006 Plan szkolenia ▪ Wprowadzenie (9:00-10:30): Czym jest szacowanie? (MO) Systematyczne podejście do planowania (ŁO) Planowanie, a kalendarz.
Inżynieria oprogramowania
Zarządzanie projektami informatycznymi
IEEE SPMP Autor : Tomasz Czwarno
Inżynieria oprogramowania II Wykład 5 Model CMMI
Zapis prezentacji:

Personal Software Process Inżynieria oprogramowania II Wykład 9 Personal Software Process Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/io

Personal Software Process Plan wykładu Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań i IEEE 830 Zarządzanie projektami i PRINCE 2 Personal Software Process Team Software Process Zwinne metodyki programowania Rational Unified Process Projekty dyplomowe Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe J.Nawrocki, Personal Software Process

oor quality (kiepska jakość) ver budget (przekroczony budżet) Syndrom LOOP Loop L O P ate (późno) oor quality (kiepska jakość) ver budget (przekroczony budżet) vertime (nadgodziny) J.Nawrocki, Personal Software Process

A Discipline for Software Engineering, Addison Wesley, 1995 Wprowadzenie Watts Humphrey Fellow of the Software Engineering Insititue (SEI) at Carnegie Mellon University 1959 – 1986: IBM Corporation, Director of Programming Quality and Process A Discipline for Software Engineering, Addison Wesley, 1995 J.Nawrocki, Personal Software Process

PSP = Personal Software Process PSP: samodoskonalenie Wprowadzenie PSP = Personal Software Process PSP: samodoskonalenie PSP: jak podejmować i wypełniać zobowiązania PSP: formularze + procedury Dublin City University, 1996 Czego brak: inżynieria wymagań, zarządzanie konfiguracją, zarządzanie ryzykiem J.Nawrocki, Personal Software Process

PSP Wprowadzenie Poziomy: 3.Cykliczny Rozwój cykliczny Przeglądy kodu i proj. Wzorce projektowe 2.Jakości Szacowanie rozmiaru + raport tst Planowanie zadań i harmon. 1.Planowania Stand. kodu + Pomiar rozm. + PPO 0.Bazowy Rejestry czasu i defektów J.Nawrocki, Personal Software Process

Rejestry czasu i defektów Wprowadzenie PSP 0.Bazowy Rejestry czasu i defektów J.Nawrocki, Personal Software Process

Skrypty Proces bazowy Wymagania Rej. Podsum. przeds. Produkt końcowy Planowanie Skrypty Podsum. przeds. Raport podsumowania Rej. Projekt Kodowanie Kompilacja Testowanie Postmortem Produkt końcowy J.Nawrocki, Personal Software Process

Rejestr czasu J.Nawrocki, Personal Software Process

Pytanie: faza czy zadanie ? Rejestr czasu KolorGraf 20.04.04 9:10 9 +7 9:47 21 Plan Szef + książka Pytanie: faza czy zadanie ? J.Nawrocki, Personal Software Process

Rejestr defektów GraphColor 20.04.04 1 20 C M 1 brak ‘;’ 2 20 C M 1 brak dekl. zm. 3 20 M M 1 2 brak ‘,’ 20 Składnia: ortografia, interpunkcja .. 40 Przypisania: deklaracje, zakres, .. 50 Interfejs: wołania procedur, parametry,.. 70 Dane: struktura, zawartość 80 Funkcje: logika, rekursja, pętle, .. P: Planning D: Design C: Coding M: coMpilation T: Testing J.Nawrocki, Personal Software Process

PSP Wprowadzenie Planowanie zadań i harmon. 1.Planowania Szacowanie rozmiaru + raport tst Planowanie zadań i harmon. 1.Planowania Stand. kodu + Pomiar rozm. + PPO 0.Bazowy Rejestry czasu i defektów J.Nawrocki, Personal Software Process

13 May Schemat planowania Szacowanie pracochłonności Szacowanie harmonogramu 13 May begin .. end 500 LOC Szacowanie rozmiaru J.Nawrocki, Personal Software Process

y++; x-=y; Metoda PROBE Watts Humphrey, 1995 PROxy-Based Estimating Obiekty jako elementy zastępcze y++; x-=y; Metoda PROBE Dane historycze Metody statystyczne J.Nawrocki, Personal Software Process

Planowanie przedsięwzięcia Wymagania Projekt koncepcyjny Szacowanie rozmiaru Baza rozmiarów Szacowanie zasobów Baza produktyw. Harmonogram Dostępne zasoby Produkt Rozmiar, pracochł. J.Nawrocki, Personal Software Process

Liczba Typ Rozmiar Kategoria metod obiektu względny re-użycia Metoda PROBE Projekt koncepcyjny Identyfikuj obiekty Liczba Typ Rozmiar Kategoria metod obiektu względny re-użycia Oblicz nowe i zmodyfikowane LOC Oszacuj rozmiar programu Oblicz przedział ufności J.Nawrocki, Personal Software Process

1. Opracuj projekt koncepcyjny (obiekty i metody + ich funkcje) Metoda PROBE 1. Opracuj projekt koncepcyjny (obiekty i metody + ich funkcje) J.Nawrocki, Personal Software Process

 Metoda PROBE 2. Każdemu obiektowi przypisz jego typ. Logic I/O Text Calculation Data Set-up  Drapacz chmur Kościół Garaż J.Nawrocki, Personal Software Process

Bardzo duży Duży Średni Mały Bardzo mały Metoda PROBE 3. Oszacuj rozmyty rozmiar każdego obiektu. Bardzo duży Duży Średni Mały Bardzo mały J.Nawrocki, Personal Software Process

rozmyty rozmiar obiektu liczbę metod Metoda PROBE 4. Znając: język programowania typ obiektu rozmyty rozmiar obiektu liczbę metod oszacuj, korzystając z danych historycznych, rozmiar każdego obiektu. J.Nawrocki, Personal Software Process

Metoda PROBE 2 + 3 = 5 5. Określ początkowe oszacowanie rozmiaru kodu, X, dodając wartości otrzymane w poprzednim kroku. J.Nawrocki, Personal Software Process

 xi yi - n xavg yavg  xi2 - n xavg2 1 = 0 = yavg - 1 xavg Metoda PROBE 5, czyli 10 6. Zastosuj regresję liniową, aby otrzymać szacowany rozmiar programu, Y: Y = 1 X + 0  xi yi - n xavg yavg  xi2 - n xavg2 1 = 0 = yavg - 1 xavg J.Nawrocki, Personal Software Process

Metoda PROBE Dla 100% przedział wynosi [0; +]. 7. Korzystając z rozkładu t Studenta i odchylenia standardowego oblicz przedział dla podanego poziomu ufności. J.Nawrocki, Personal Software Process

Metoda PROBE 7a. Oblicz odchylenie standardowe, , twoich danych historycznych od prostej regresji. 1 2 = (yi - 0 - 1xi)2 n-2 n  i=1 J.Nawrocki, Personal Software Process

Metoda PROBE 7b. Aby znaleźć dwustronną wartość t dla prawdopodobieństwa q, zajrzyj do tablicy rozkładu t, kolumna p()= (1+q)/2 i wiersz odpowiadający n-2 stopniom swobody. J.Nawrocki, Personal Software Process

7c. Oblicz zakres w następujący sposób: Metoda PROBE 7c. Oblicz zakres w następujący sposób: Początkowe oszac. otrzymane w kroku 5.  (X - xavg)2 1 Zakres = t    1 + + n  (xi - xavg)2 J.Nawrocki, Personal Software Process

Program podlegający modyfikacji Przykład Program podlegający modyfikacji Program główny Matrix Linear system Linked list Data entry J.Nawrocki, Personal Software Process

Program podlegający modyfikacji Przykład Program podlegający modyfikacji Program główny Matrix Linear system Linked list 1 Linked list 2 Data entry J.Nawrocki, Personal Software Process

Przykład Program główny LOC modyfikowane (M) ................................... 5 J.Nawrocki, Personal Software Process

Program podlegający modyfikacji Przykład Program podlegający modyfikacji Program główny Matrix Linear system Linked list 1 Linked list 2 Data entry J.Nawrocki, Personal Software Process

Nowe obiekty Typ Metody Rozmiar Razem Matrix Linear sys. Linked list 1 Przykład Program główny LOC modyfikowane (M) ................................... 5 Nowe obiekty Typ Metody Rozmiar Razem Matrix Linear sys. Linked list 1 J.Nawrocki, Personal Software Process

Nowe obiekty Typ Metody Rozmiar Razem Matrix Data Linear sys. Calc. Przykład Program główny LOC modyfikowane (M) ................................... 5 Nowe obiekty Typ Metody Rozmiar Razem Matrix Data Linear sys. Calc. Linked list 1 Data J.Nawrocki, Personal Software Process

Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni Przykład Program główny LOC modyfikowane (M) ................................... 5 Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni Linear sys. Calc. 8 Duży Linked list 1 Data 3 Duży J.Nawrocki, Personal Software Process

Przedziały odpowiadające wartościom rozmytym Przykład Przedziały odpowiadające wartościom rozmytym J.Nawrocki, Personal Software Process

Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Przykład 13 x 8.84  115 Program główny LOC modyfikowane (M) ................................... 5 Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Linear sys. Calc. 8 Duży Linked list 1 Data 3 Duży J.Nawrocki, Personal Software Process

Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Przykład Program główny LOC modyfikowane (M) ................................... 5 Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Linear sys. Calc. 8 Duży 197 Linked list 1 Data 3 Duży 49 J.Nawrocki, Personal Software Process

Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Przykład Program główny LOC modyfikowane (M) ................................... 5 Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Linear sys. Calc. 8 Duży 197 Linked list 1 Data 3 Duży 49 Razem nowe i modyfikowane (X) ..................... 366 J.Nawrocki, Personal Software Process

Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Przykład Program główny LOC modyfikowane (M) ................................... 5 Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Linear sys. Calc. 8 Duży 197 Linked list 1 Data 3 Duży 49 Razem nowe i modyfikowane (X) ..................... 366 0 .................................................................... 62 1 .................................................................... 1.3 J.Nawrocki, Personal Software Process

Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Przykład Program główny LOC modyfikowane (M) ................................... 5 Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Linear sys. Calc. 8 Duży 197 Linked list 1 Data 3 Duży 49 Razem nowe i modyfikowane (X) ..................... 366 0 .................................................................... 62 1 .................................................................... 1.3 Szacowane nowe i modyfikowane (Y) .............. 538 1.3 x 366 + 62  538 J.Nawrocki, Personal Software Process

Szacowane nowe i modyfikowane (Y) ............. 538 Przykład Szacowane nowe i modyfikowane (Y) ............. 538 J.Nawrocki, Personal Software Process

Szacowane nowe i modyfikowane (Y) ............. 538 Przykład Szacowane nowe i modyfikowane (Y) ............. 538 Poziom ufności .…........................................... 80% p = (1 + poziom)/2 ............................................ 0.9 J.Nawrocki, Personal Software Process

Szacowane nowe i modyfikowane (Y) ............. 538 Przykład Szacowane nowe i modyfikowane (Y) ............. 538 Poziom ufności .…........................................... 80% p = (1 + poziom)/2 ............................................ 0.9 Liczba programów w historycznej DB (n) ......... 10 Odchylenie stand.  od prostej regresji ............ 198 Liczba stopni swobody (n-2) ............................. 8 t (8, 0.9) .......................................................... 1.4 (1 + 1/10 + .. ) ................................................ 1.05 J.Nawrocki, Personal Software Process

Szacowane nowe i modyfikowane (Y) ............. 538 Przykład Szacowane nowe i modyfikowane (Y) ............. 538 Poziom ufności .…........................................... 80% p = (1 + poziom)/2 ............................................ 0.9 Liczba programów w historycznej DB (n) ......... 10 Odchylenie stand.  od prostej regresji ............ 198 Liczba stopni swobody (n-2) ............................. 8 t (8, 0.9) .......................................................... 1.4 (1 + 1/10 + .. ) ................................................ 1.05 Zakres predykcji ............................................... 291 198 x 1.4 x 1.05  291 J.Nawrocki, Personal Software Process

Szacowane nowe i modyfikowane (Y) ............. 538 Przykład Szacowane nowe i modyfikowane (Y) ............. 538 Poziom ufności .…........................................... 80% p = (1 + poziom)/2 ............................................ 0.9 Liczba programów w historycznej DB (n) ......... 10 Odchylenie stand.  od prostej regresji ............ 198 Liczba stopni swobody (n-2) ............................. 8 t (8, 0.9) .......................................................... 1.4 (1 + 1/10 + .. ) ................................................ 1.05 Zakres predykcji ............................................... 291 Górna granica (Y + zakres) .............................. 829 Dolna granica (Y - zakres) ................................ 247 J.Nawrocki, Personal Software Process

Schemat planowania Szacowanie pracochłonności begin .. end 500 LOC rozmiaru J.Nawrocki, Personal Software Process

Szacowanie pracochłonności Szacowany rozmiar Rzecz. czas Best case: r2  0.5 Dane historyczne begin .. end J.Nawrocki, Personal Software Process

Szacowanie pracochłonności Szacow. rozmiar Rzeczyw. czas 1. 0, 1 Best case: r2  0.5 2. Effort = 1 * Estimated_size + 0 + ... 1 n +  3. Range = t    4. Effortmin = Effort - Range J.Nawrocki, Personal Software Process

Szacowanie pracochłonności Brak danych bądź brak korelacji między szacowanym rozmiarem a rzeczywistym czasem Rzecz. czas Szacow. rozmiar Dane historyczne begin .. end J.Nawrocki, Personal Software Process

Szacowanie pracochłonności Actual size Actual time Worst case size1 + .. + size2 1. Pav= time1 + .. + time2 2. Effort = Estimated_size / Pav 3. Pmin= min { sizei / timei } Pmax= max { sizei / timei } 4. Effortmin = Estimated_size/Pmax Effortmax= Estimated_size/Pmin J.Nawrocki, Personal Software Process

13 May Schemat planowania Szacowanie pracochłonności Szacowanie harmonogramu 13 May begin .. end 500 LOC Szacowanie rozmiaru J.Nawrocki, Personal Software Process

Szacowanie harmonogramu Kalendarz Współczyn. dostępności Pracochłon. Rozmiar Zadanie 1 Zad. 2 Zadanie 3 10 20 30 40 50 60 70 80 90 [h] 1tydz. 2t 3t 4t 5t 6t 7t J.Nawrocki, Personal Software Process

Szacowanie harmonogramu Zadanie 1 Zad. 2 Zadanie 3 1tydz. 2t 3t 4t 5t 6t 7t 10 20 30 40 50 60 70 80 90 [h] J.Nawrocki, Personal Software Process

Szacowanie harmonogramu Projekt: KolorMapa Data: 20.05.2001 Szablony harmonogramu i zadań J.Nawrocki, Personal Software Process

Problem: Jak śledzić postęp prac, gdy zmienia się kolejność zadań? Śledzenie postępów Problem: Jak śledzić postęp prac, gdy zmienia się kolejność zadań? Metoda Wartości Zarobionej (WZ): Każde zadanie ma przypisaną pewną liczbę punktów. Aby zarobić punkty związane z zadaniem należy zakończyć zadanie. Punkty odzwierciedlają pracochłonność i są znormalizowane do 1000 punktów. T1 T2 T2 T1 J.Nawrocki, Personal Software Process

Metoda Wartości Zarobionej Śledzenie postępów Metoda Wartości Zarobionej J.Nawrocki, Personal Software Process

Szablony harmonogramu i zadań (2) Śledzenie postępów Projekt: KolorMapa Data: 23.05.2001 Szablony harmonogramu i zadań (2) J.Nawrocki, Personal Software Process

Śledzenie postępów Zapomniałem o zadaniu Tj !!! Skorygowana WZ: czasi Nowa_WZi= x1000 czasi czasj +  czask J.Nawrocki, Personal Software Process

Szablon zadań Śledzenie postępów Projekt: KolorMapa Data: 23.05.2001 J.Nawrocki, Personal Software Process

PSP Podsumowanie Poziomy: 3.Cykliczny Rozwój cykliczny Przeglądy kodu i proj. Wzorce projektowe 2.Jakości Szacowanie rozmiaru + raport tst Planowanie zadań i harmon. 1.Planowania Stand. kodu + Pomiar rozm. + PPO 0.Bazowy Rejestry czasu i defektów J.Nawrocki, Personal Software Process

3. Czy dowiedziałeś się czegoś ważnego? 4. Co i jak poprawić? Ocena wykładu 1. Wrażenie ogólne (1 - 6) 2. Za szybko czy za wolno? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co i jak poprawić? J.Nawrocki, Personal Software Process