Upload
talib
View
37
Download
0
Embed Size (px)
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
Citation preview
Copyright © Jerzy R. Nawrocki
Personal Software ProcessPersonal Software Process
[email protected]/jnawrocki/io
Inżynieria oprogramowania IIWykład 9
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
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ć?