Personal Software Process

58
Copyright © Jerzy R. Nawrocki Personal Software Process [email protected] www.cs.put.poznan.pl/jnawrocki/io Inżynieria oprogramowania II Wykład 9

description

Inżynieria oprogramowania II Wykład 9. Personal Software Process. [email protected] 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. - PowerPoint PPT Presentation

Transcript of Personal Software Process

Copyright © Jerzy R. Nawrocki

Personal Software ProcessPersonal Software Process

[email protected]/jnawrocki/io

Inżynieria oprogramowania IIWykład 9

J.Nawrocki, Personal Software Process

Syndrom LOOP

L

O

O

P

ate (późno)

oor quality (kiepska jakość)

ver budget (przekroczony budżet)

vertime (nadgodziny)

Loop

J.Nawrocki, Personal Software Process

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

Wprowadzenie

PSP = Personal Software Process

PSP: samodoskonaleniePSP: jak podejmować i wypełniać

zobowiązania PSP: formularze + procedury

Dublin City University, 1996Czego brak: inżynieria wymagań,

zarządzanie konfiguracją, zarządzanie ryzykiem

J.Nawrocki, Personal Software Process

Wprowadzenie

Rejestry czasu i defektówRejestry czasu i defektów

Stand. kodu Stand. kodu ++ Pomiar rozm. Pomiar rozm. ++ PPPOPO 0.Bazowy

Szacowanie rozmiaru + raport tstSzacowanie rozmiaru + raport tst

Planowanie zadań i harmon.Planowanie zadań i harmon. 1.Planowania

Poziomy:Poziomy:

Przeglądy kodu i proj.Przeglądy kodu i proj. Wzorce projektoweWzorce projektowe 2.Jakości

Rozwój cyklicznyRozwój cykliczny3.Cykliczny

J.Nawrocki, Personal Software Process

Wprowadzenie

Rejestry czasu i defektówRejestry czasu i defektów0.Bazowy

J.Nawrocki, Personal Software Process

Proces bazowy

WymaganiaWymagania

PlanowaniePlanowanie

ProjektProjekt

KompilacjaKompilacja

KodowanieKodowanie

TestTestowanieowanie

PostmortemPostmortem

Produkt końcowyProdukt końcowy

SkryptySkryptySkryptySkrypty

Podsum. Podsum. przeds.przeds.

Podsum. Podsum. przeds.przeds.

Raport podsumowaniaRaport podsumowania

Rej.Rej.

J.Nawrocki, Personal Software Process

J .Nawrocki, Zasady skutecznego działania

Aby rzeczy pierwsze były pierwszeAby rzeczy pierwsze były pierwsze

• Obserwuj zużycie czasu.

Być wydajnym

Rejestr czasu

J.Nawrocki, Personal Software Process

Rejestr czasu

Program: Data: Start Przer Stop Faza Uwagi

KolorGraf 20.04.04

9:10 9 +7 9:47 21 Plan Szef + książka

Pytanie: faza czy zadaniePytanie: faza czy zadanie ? ?

J.Nawrocki, Personal Software Process

Rejestr defektów

Program: Data: # Typ Wsta Usun Czas Popr Opis

GraphColor 20.04.04

1 20 C M 1 brak ‘;’

P: PPlanningD: DDesignC: CCodingM: coMMpilationT: TTesting

2 20 C M 1 brak dekl. zm.

3 20 M M 1 2 brak ‘,’

20 20 Składnia: : ortografiaortografia, , interpunkcjainterpunkcja .. ..

40 40 Przypisania: : deklaracjedeklaracje, , zakreszakres, .., ..

50 50 Interfejs: : wołania procedurwołania procedur, , parametryparametry,..,..

70 70 Dane: : strukturastruktura, , zawartośćzawartość

80 80 Funkcje: : logikalogika, , rekursjarekursja, , pętlepętle, .., ..

J.Nawrocki, Personal Software Process

Wprowadzenie

Rejestry czasu i defektówRejestry czasu i defektów

Stand. kodu Stand. kodu ++ Pomiar rozm. Pomiar rozm. ++ PPPOPO 0.Bazowy

Szacowanie rozmiaru + raport tstSzacowanie rozmiaru + raport tst

Planowanie zadań i harmon.Planowanie zadań i harmon. 1.Planowania

J.Nawrocki, Personal Software Process

Schemat planowania

begin .. end

500 LOC

J.Nawrocki, Personal Software Process

Metoda PROBE

Watts Humphrey, 1995

PROxy-Based Estimating

Obiekty jako elementy zastępcze

DaneDane

historyczehistorycze

MetodyMetody

statystycznestatystyczne

MetodaMetoda

PROBEPROBE

J.Nawrocki, Personal Software Process

Planowanie przedsięwzięcia

Projekt koncepcyjnyProjekt koncepcyjny

Szacowanie rozmiaruSzacowanie rozmiaru

Szacowanie zasobówSzacowanie zasobów

HarmonogramHarmonogram

ProduktProdukt

WymaganiaWymagania

Baza rozmiarówBaza rozmiarów

Baza produktyw.Baza produktyw.

Dostępne zasobyDostępne zasoby

Rozmiar, pracochł.

J.Nawrocki, Personal Software Process

Metoda PROBE

Projekt koncepcyjnyProjekt koncepcyjny

Oblicz nowe i zmodyfikowaneOblicz nowe i zmodyfikowane LOC LOC

Oszacuj rozmiar programuOszacuj rozmiar programu

Oblicz przedział ufnościOblicz przedział ufności

Identyfikuj obiektyIdentyfikuj obiekty

LiczbaLiczba Typ Typ Rozmiar Rozmiar Kategoria Kategoria

metodmetod obiektuobiektu względnywzględny re-użyciare-użycia

J.Nawrocki, Personal Software Process

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.

Drapacz chmurDrapacz chmur KościółKościół GarażGaraż

• LogicLogic

• I/OI/O

• TextText

• CalculationCalculation

• DataData

• Set-upSet-up

J.Nawrocki, Personal Software Process

Metoda PROBE

3. Oszacuj rozmyty rozmiar każdego obiektu.

Bardzo dużyBardzo duży DużyDuży ŚredniŚredni MałyMały Bardzo małyBardzo mały

J.Nawrocki, Personal Software Process

Metoda PROBE

4. Znając: język programowania typ obiektu rozmyty rozmiar obiektu liczbę metodoszacuj, korzystając z danych historycznych, rozmiar każdego obiektu.

J.Nawrocki, Personal Software Process

Metoda PROBE

5. Określ początkowe oszacowanie rozmiaru kodu, X, dodając wartości otrzymane w poprzednim kroku.

2 + 3 = 52 + 3 = 5

J.Nawrocki, Personal Software Process

Metoda PROBE

6. Zastosuj regresję liniową, aby otrzymać szacowany rozmiar programu, Y:

Y = 1 X + 0

xi yi - n xavg yavg

xi2 - n xavg

2 1 =

0 = yavg - 1 xavg

5, czyli 105, czyli 10

J.Nawrocki, Personal Software Process

Metoda PROBE

7. Korzystając z rozkładu t Studenta i odchylenia standardowego oblicz przedział dla podanego poziomu ufności.

Dla 100% przedziałDla 100% przedział

wynosi [0; +wynosi [0; +]. ].

J.Nawrocki, Personal Software Process

Metoda PROBE

7a. Oblicz odchylenie standardowe, , twoich danych historycznych od prostej regresji.

12 = (yi - 0 - 1xi)2 n-2

i=1i=1

nn

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.

Stopnie p()=.6 p()=.7 p()=.85 p()=.9

5 .267 .559 1.156 1.476

6 .265 .553 1.134 1.440

7 .263 .549 1.119 1.415

8 .262 .546 1.108 1.397

9 .261 .543 1.100 1.383

J.Nawrocki, Personal Software Process

Metoda PROBE

(X - x(X - xavgavg))22

(x(xii - x - xavgavg))22++

11

nn++11 Zakres = tt

7c. Oblicz zakres w następujący sposób:

Początkowe oszac.Początkowe oszac.otrzymane w krokuotrzymane w kroku 5 5..

J.Nawrocki, Personal Software Process

Przykład

Program podlegający modyfikacjiProgram podlegający modyfikacji

MatrixMatrixMatrixMatrix LinearLinear

systemsystemLinearLinear

systemsystem

LinkedLinked

listlistLinkedLinked

listlist

Data Data entryentryData Data entryentry

PProgramrogram główny głównyPProgramrogram główny główny

J.Nawrocki, Personal Software Process

Przykład

Program podlegający modyfikacjiProgram podlegający modyfikacji

MatrixMatrixMatrixMatrix LinearLinear

systemsystemLinearLinear

systemsystem

LinkedLinked

listlist

11

LinkedLinked

listlist

11

Data Data entryentryData Data entryentry

PProgramrogram główny głównyPProgramrogram główny główny

LinkedLinked

listlist

22

LinkedLinked

listlist

22

J.Nawrocki, Personal Software Process

Przykład

Program główny LOC modyfikowane (M) ................................... 5

J.Nawrocki, Personal Software Process

Przykład

Program podlegający modyfikacjiProgram podlegający modyfikacji

MatrixMatrixMatrixMatrix LinearLinear

systemsystemLinearLinear

systemsystem

LinkedLinked

listlist

11

LinkedLinked

listlist

11

Data Data entryentryData Data entryentry

PProgramrogram główny głównyPProgramrogram główny główny

LinkedLinked

listlist

22

LinkedLinked

listlist

22

J.Nawrocki, Personal Software Process

Przykład

Program główny LOC modyfikowane (M) ................................... 5Nowe obiekty Typ Metody Rozmiar Razem Matrix Linear sys. Linked list 1

J.Nawrocki, Personal Software Process

Przykład

Program główny LOC modyfikowane (M) ................................... 5Nowe obiekty Typ Metody Rozmiar Razem Matrix Data Linear sys. Calc. Linked list 1 Data

J.Nawrocki, Personal Software Process

Przykład

Program główny LOC modyfikowane (M) ................................... 5Nowe 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

Przykład

Bardzo mały

Mały Średni Duży Bardzo duży

Calculation 2.34 5.13 11.25 24.66 54.04 Data 2.60 4.79 8.84 16.31 30.09 I/O 9.01 12.06 16.15 21.62 28.93 Logic 7.55 10.98 15.98 23.25 33.83 Set-up 3.88 5.04 6.56 8.53 11.09 Text 3.75 8.00 17.07 36.41 77.66

Przedziały odpowiadające wartościom rozmytymPrzedziały odpowiadające wartościom rozmytymPrzedziały odpowiadające wartościom rozmytymPrzedziały odpowiadające wartościom rozmytym

J.Nawrocki, Personal Software Process

Przykład

Program główny LOC modyfikowane (M) ................................... 5Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Linear sys. Calc. 8 Duży Linked list 1 Data 3 Duży

13 x 8.84 115

J.Nawrocki, Personal Software Process

Przykład

Program główny LOC modyfikowane (M) ................................... 5Nowe 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

Przykład

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

J.Nawrocki, Personal Software Process

Przykład

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

J.Nawrocki, Personal Software Process

Przykład

Program główny LOC modyfikowane (M) ................................... 5Nowe obiekty Typ Metody Rozmiar Razem Matrix Data 13 Średni 115 Linear sys. Calc. 8 Duży 197 Linked list 1 Data 3 Duży 49Razem nowe i modyfikowane (X) ..................... 366 0 .................................................................... 62 1 .................................................................... 1.3Szacowane nowe i modyfikowane (Y) .............. 538

1.3 x 366 + 62 538

J.Nawrocki, Personal Software Process

Przykład

Szacowane nowe i modyfikowane (Y) ............. 538

J.Nawrocki, Personal Software Process

Przykład

Szacowane nowe i modyfikowane (Y) ............. 538Poziom ufności .…........................................... 80%p = (1 + poziom)/2 ............................................ 0.9

J.Nawrocki, Personal Software Process

Przykład

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

J.Nawrocki, Personal Software Process

Przykład

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

198 x 1.4 x 1.05 291

J.Nawrocki, Personal Software Process

Przykład

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

J.Nawrocki, Personal Software Process

Schemat planowania

begin .. end

500 LOC

J.Nawrocki, Personal Software Process

begin .. end

Szacowany Szacowany rozmiarrozmiar

Rzecz. Rzecz. czasczas

Dane historyczneDane historyczne

rr22 0.5 0.5rr22 0.5 0.5

Szacowanie pracochłonności

J.Nawrocki, Personal Software Process

Szacow. rozmiarSzacow. rozmiarRzeczyw. czasRzeczyw. czas

1. 1. 00, , 11

2. Effort = 2. Effort = 11 * Estimated_size + * Estimated_size + 00

+ ...+ ...11

nn++11 3. Range = t 3. Range = t

rr22 0.5 0.5rr22 0.5 0.5

4. Effort4. Effortminmin = Effort - Range = Effort - Range

Szacowanie pracochłonności

J.Nawrocki, Personal Software Process

begin .. end

Szacow. Szacow. rozmiarrozmiar

Rzecz. Rzecz. czasczas

Dane historyczneDane historyczne

Brak danych bądź brak korelacji międzyBrak danych bądź brak korelacji międzyszacowanym rozmiaremszacowanym rozmiarem aa rzeczywistym czasemrzeczywistym czasem

Szacowanie pracochłonności

J.Nawrocki, Personal Software Process

Actual sizeActual sizeActual timeActual time

1.1.

2. Effort = Estimated_size / P2. Effort = Estimated_size / Pavav

timetime11 + .. + time + .. + time22

sizesize11 + .. + size + .. + size22 PPavav==

3. P3. Pminmin= min { size= min { sizeii / time / timeii } }

PPmaxmax= max { size= max { sizeii / time / timeii } }

4. Effort4. Effortmin min = Estimated_size/P= Estimated_size/Pmaxmax

EffortEffortmaxmax= Estimated_size/P= Estimated_size/Pminmin

Szacowanie pracochłonności

J.Nawrocki, Personal Software Process

Schemat planowania

begin .. end

500 LOC

J.Nawrocki, Personal Software Process

Szacowanie harmonogramu

Rozmiar

Pracochłon. Kalendarz

Harmonogr

Współczyn. dostępności

10 20 30 40 50 60 70 80 90 [h]10 20 30 40 50 60 70 80 90 [h]

11tydz.tydz. 22tt 33tt 44tt 55tt 66tt 77tt

Zadanie 1 Zad. 2 Zadanie 3

J.Nawrocki, Personal Software Process

Szacowanie harmonogramu

Plan Rzeczywistość Tydzień Godzin

w tyg. Godziny narastająco

Godzin w tyg.

Godziny narastająco

1.06 20 20 8.06 25 45

15.06 15 60

ProjeProjekkt: t: KolorMapaKolorMapa Data: 2 Data: 200.05..05.20012001

Plan Rzecz. Zadanie Godziny Godziny

narastająco Tydzień Data

Diagramy UML 20 20 1.06 Kodowanie IO 25 45 8.06 Kodowaniu grafu 15 60 15.06

J.Nawrocki, Personal Software Process

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

T1T1 T2T2

T1T1T2T2

J.Nawrocki, Personal Software Process

Śledzenie postępów

0

200

400

600

800

1000

1200

1 2 3 4

Weeks

Cu

mu

lati

ve E

V

Actual

Planned

Metoda Wartości Zarobionej

J.Nawrocki, Personal Software Process

Śledzenie postępów

Plan Rzeczywistość Tydz. Godz.

w tyg. Godz. narast.

WZ narast.

Godz. w tyg.

Godz. narast.

WZ narast.

1.06 20 20 250 8.06 25 45 670

15.06 15 60 1000

Projekt: KolorMapa Data: 23.05.2001

Plan Rzeczyw. Zadanie Godz.

w tyg. Godz. narast.

WZ Tydz. Data WZ

Diagramy UML 20 20 333 1.06 Kodowanie IO 25 45 417 8.06 Kodowanie grafów 15 60 250 15.06

J.Nawrocki, Personal Software Process

Zapomniałem oZapomniałem o

zadaniuzadaniu T Tjj !!! !!!

Śledzenie postępów

Skorygowana WZ:

NowaNowa__WZWZii= x1000= x1000czasczasii czasczasjj + + czasczaskk

J.Nawrocki, Personal Software Process

Śledzenie postępów

Plan Rzeczyw. Zadanie Godz. Godz.

narast WZ Tydz. Data WZ

Diagramy UML 20 20 200 1.06 Kodowanie IO 25 45 250 8.06 Kodowanie grafu 15 60 150 15.06 Pisanie raportu 40 100 400 29.06

ProjeProjekkt: t: KolorMapaKolorMapa Data: 23.05. Data: 23.05.20012001

J.Nawrocki, Personal Software Process

Podsumowanie

Rejestry czasu i defektówRejestry czasu i defektów

Stand. kodu Stand. kodu ++ Pomiar rozm. Pomiar rozm. ++ PPPOPO 0.Bazowy

Szacowanie rozmiaru + raport tstSzacowanie rozmiaru + raport tst

Planowanie zadań i harmon.Planowanie zadań i harmon. 1.Planowania

Poziomy:Poziomy:

Przeglądy kodu i proj.Przeglądy kodu i proj. Wzorce projektoweWzorce projektowe 2.Jakości

Rozwój cyklicznyRozwój cykliczny3.Cykliczny

J.Nawrocki, Personal Software Process

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ć?