Personal Software Process

59
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. 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 - PowerPoint PPT Presentation

Transcript of Personal Software Process

Page 1: Personal Software Process

Copyright © Jerzy R. Nawrocki

Personal Software ProcessPersonal Software Process

[email protected]/jnawrocki/io

Inżynieria oprogramowania IIWykład 9

Page 2: Personal Software Process

J.Nawrocki, 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

Page 3: Personal Software Process

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

Page 4: Personal Software Process

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

Page 5: Personal Software Process

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

Page 6: Personal Software Process

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

Page 7: Personal Software Process

J.Nawrocki, Personal Software Process

Wprowadzenie

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

Page 8: Personal Software Process

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.

Page 9: Personal Software Process

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

Page 10: Personal Software Process

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

Page 11: Personal Software Process

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

Page 12: Personal Software Process

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

Page 13: Personal Software Process

J.Nawrocki, Personal Software Process

Schemat planowania

begin .. end

500 LOC

Page 14: Personal Software Process

J.Nawrocki, Personal Software Process

Metoda PROBE

Watts Humphrey, 1995

PROxy-Based Estimating

Obiekty jako elementy zastępcze

DaneDane

historyczehistorycze

MetodyMetody

statystycznestatystyczne

MetodaMetoda

PROBEPROBE

Page 15: Personal Software Process

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

Page 16: Personal Software Process

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

Page 17: Personal Software Process

J.Nawrocki, Personal Software Process

Metoda PROBE

1. Opracuj projekt koncepcyjny (obiekty i metody + ich funkcje)

Page 18: Personal Software Process

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

Page 19: Personal Software Process

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

Page 20: Personal Software Process

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.

Page 21: Personal Software Process

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

Page 22: Personal Software Process

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

Page 23: Personal Software Process

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; +]. ].

Page 24: Personal Software Process

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

Page 25: Personal Software Process

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

Page 26: Personal Software Process

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

Page 27: Personal Software Process

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

Page 28: Personal Software Process

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

Page 29: Personal Software Process

J.Nawrocki, Personal Software Process

Przykład

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

Page 30: Personal Software Process

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

Page 31: Personal Software Process

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

Page 32: Personal Software Process

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

Page 33: Personal Software Process

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

Page 34: Personal Software Process

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

Page 35: Personal Software Process

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

Page 36: Personal Software Process

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

Page 37: Personal Software Process

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

Page 38: Personal Software Process

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

Page 39: Personal Software Process

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

Page 40: Personal Software Process

J.Nawrocki, Personal Software Process

Przykład

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

Page 41: Personal Software Process

J.Nawrocki, Personal Software Process

Przykład

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

Page 42: Personal Software Process

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

Page 43: Personal Software Process

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

Page 44: Personal Software Process

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

Page 45: Personal Software Process

J.Nawrocki, Personal Software Process

Schemat planowania

begin .. end

500 LOC

Page 46: Personal Software Process

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

Page 47: Personal Software Process

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

Page 48: Personal Software Process

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

Page 49: Personal Software Process

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

Page 50: Personal Software Process

J.Nawrocki, Personal Software Process

Schemat planowania

begin .. end

500 LOC

Page 51: Personal Software Process

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

Page 52: Personal Software Process

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

Page 53: Personal Software Process

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

Page 54: Personal Software Process

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

Page 55: Personal Software Process

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

Page 56: Personal Software Process

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

Page 57: Personal Software Process

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

Page 58: Personal Software Process

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

Page 59: Personal Software Process

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