1 / 58

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. Syndrom LOOP. Loop. ate ( późno ). L O O P. ver budget ( przekroczony budżet ). vertime ( nadgodziny ). oor quality ( kiepska jakość ). Wprowadzenie.

arden-glenn
Download Presentation

Personal Software Process

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. Inżynieria oprogramowania II Wykład 9 Personal Software Process Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/io

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

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

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

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

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

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

  8. Rejestr czasu J.Nawrocki, Personal Software Process

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

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

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

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

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

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

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

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

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

  18. Metoda PROBE • 3. Oszacuj rozmyty rozmiar każdego obiektu. Bardzo dużyDużyŚredniMałyBardzo mały J.Nawrocki, Personal Software Process

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  35. Przykład • Program główny • LOC modyfikowane (M) ................................... 5 • Nowe obiekty Typ MetodyRozmiarRazem • 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

  36. Przykład • Program główny • LOC modyfikowane (M) ................................... 5 • Nowe obiekty Typ MetodyRozmiarRazem • 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

  37. Przykład • Program główny • LOC modyfikowane (M) ................................... 5 • Nowe obiekty Typ MetodyRozmiarRazem • 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

  38. Przykład 1.3 x 366 + 62  538 • Program główny • LOC modyfikowane (M) ................................... 5 • Nowe obiekty Typ MetodyRozmiarRazem • 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 J.Nawrocki, Personal Software Process

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

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

  41. Przykład • Szacowane nowe i modyfikowane (Y) ............. 538 • Poziom ufności .…........................................... 80% • p = (1 + poziom)/2 ............................................ 0.9 • Liczba programóww 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

  42. Przykład 198 x 1.4 x 1.05  291 • Szacowane nowe i modyfikowane (Y) ............. 538 • Poziom ufności .…........................................... 80% • p = (1 + poziom)/2 ............................................ 0.9 • Liczba programóww 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 J.Nawrocki, Personal Software Process

  43. Przykład • Szacowane nowe i modyfikowane (Y) ............. 538 • Poziom ufności .…........................................... 80% • p = (1 + poziom)/2 ............................................ 0.9 • Liczba programóww 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

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

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

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

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

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

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

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

More Related