520 likes | 735 Views
Inżynieria oprogramowania II Wykład 11. Zwinne metodyki programowania. 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ść ).
E N D
Inżynieria oprogramowania II Wykład 11 Zwinne metodyki programowania 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ść) Crazy is my life! J.Nawrocki, Zwinne metodyki programowania
Plan wykładów • 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 • Rational Unified Process • Zwinne metodyki programowania • 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, Zwinne metodyki programowania
Plan wykładu • Wstęp • Manifest zwinności • Programowanie Ekstremalne • Gra Extreme 89 • Matryca projektów • Wstęp • Organizacja zespołu • Cykl życia projektu • Wybrane praktyki i narzędzia • XPrince a ISO 9001:2000 • XPrince a CMMI • Oferta dla Polsoftu J.Nawrocki, Zwinne metodyki programowania
Manifest zwinności (Agile Manifesto) Luty 2001, Snowbird, Utah, 17 osób Kent Beck (karty CRC, xUnit, XP) Alistair Cockburn (przypadki użycia, Crystal) Marin Fowler (refaktoryzacja, UML Distilled) Jim Highsmith (Adaptive Software Development) J.Nawrocki, Zwinne metodyki programowania
Manifest zwinności Ważniejsze: • Jednostki i interakcje niż procesy i narzędzia J.Nawrocki, Zwinne metodyki programowania
Główne części normy ISO 9001:2000 4 System zarządzania jakością (dokumentacja) 5 Odpowiedzialność kierownictwa 6 Zarządzanie zasobami 7 Realizacja wyrobu 8 Pomiary, analiza i doskonalenie ISO 9001:2000 J.Nawrocki, Zwinne metodyki programowania
Problemy z ISO 9001 ISO Brak elastyczności działania Zbyt dużo dokumentacji Udokumentowane = lepsze J.Nawrocki, Zwinne metodyki programowania
Manifest zwinności Ważniejsze: • Jednostki i interakcje niż procesy i narzędzia • Działające oprogramowanie niż obszerna dokumentacja • Współpraca klienta niż negocjacja kontraktu • Nadążanie za zmianami niż trzymanie się planu J.Nawrocki, Zwinne metodyki programowania
Plan wykładu • Wstęp • Manifest zwinności • Programowanie Ekstremalne • Gra Extreme 89 • Matryca projektów • Wstęp • Organizacja zespołu • Cykl życia projektu • Wybrane praktyki i narzędzia • XPrince a ISO 9001:2000 • XPrince a CMMI • Oferta dla Polsoftu J.Nawrocki, Zwinne metodyki programowania
Zwinne metodyki programowania Programowanie Ekstremalne (XP) = lekka (zwinna) metodyka tworzenia oprogramowania Tom DeMarco „XP jest dzisiaj najważniejszym ruchem w IO." J.Nawrocki, Zwinne metodyki programowania
Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu J.Nawrocki, Zwinne metodyki programowania
Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu • Krótkie przyrosty i wydania Termin Koszty Niezawodność Zakres Defekty Niekompletność J.Nawrocki, Zwinne metodyki programowania
Termodynamiczny model projektu Termin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania
Termodynamiczny model projektu Termin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania
Termodynamiczny model projektu Termin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania
Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu • Krótkie przyrosty i wydania • Najpierw przypadki testowe potem kod J.Nawrocki, Zwinne metodyki programowania
Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu • Krótkie przyrosty i wydania • Najpierw przypadki testowe potem kod • Automatyzacja wykonywania testów J.Nawrocki, Zwinne metodyki programowania
Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu • Krótkie przyrosty i wydania • Najpierw przypadki testowe potem kod • Automatyzacja wykonywania testów • Dokumentacja = Przypadki testowe + kod J.Nawrocki, Zwinne metodyki programowania
Dokumentacja Zmieniłem zdanie. Chodźmy tędy! Documen -tation Documen -tation Informatyk Klient Podróżuj z lekkim bagażem. J.Nawrocki, Zwinne metodyki programowania
Dokumentacja Zmieniłem zdanie. No problem. code + tests Klient Podróżuj z lekkim bagażem. To czego potrzebujesz to tylko kod i testy. IEEE Standard 830 UML J.Nawrocki, Zwinne metodyki programowania
Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu • Krótkie przyrosty i wydania • Najpierw przypadki testowe potem kod • Automatyzacja wykonywania testów • Dokumentacja = Przypadki testowe + kod • Programowanie parami J.Nawrocki, Zwinne metodyki programowania
Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu • Krótkie przyrosty i wydania • Najpierw przypadki testowe potem kod • Automatyzacja wykonywania testów • Dokumentacja = Przypadki testowe + kod • Programowanie parami • Małe zespoły J.Nawrocki, Zwinne metodyki programowania
Frederick P. Brooks OS/360 Manager (IBM), 1964-65 350 mln USD ($1’63 = $6’01) J.Nawrocki, Zwinne metodyki programowania
Mityczny osobomiesiąc 1. wydanie: 1975 Jubileuszowe wydanie: 1995 Polskie wydanie: Mityczny osobomiesiąc. Eseje o inżynierii oprogramowania, WNT, Warszawa, 2000. J.Nawrocki, Zwinne metodyki programowania
Raport Sackmana, Eriksona i Granta 25 kierowników . . . 175 programistów Error Error Error Error . . . Sackman, Erikson, Grant, Exploratory experimental studies ..., CACM, 1/68, 3-11. 10:1 Różnice w wydajności programowania jak Różnice w rozmiarze programu jak 5:1 J.Nawrocki, Zwinne metodyki programowania
Raport Sackmana, Eriksona i Granta OK OK OK Sackman, Erikson, Grant, Exploratory experimental studies ..., CACM, 1/68, 3-11. 10:1 Różnice w wydajności programowania jak Różnice w rozmiarze programu jak 5:1 25 kierowników programistów . . . 175 programistów . . . J.Nawrocki, Zwinne metodyki programowania
Słabe strony XP • Brak dokumentacji • Jeden klient (na miejscu) • Zbyt krótka perspektywa planu Jak zwinnie uporać się z tymi problemami? J.Nawrocki, Zwinne metodyki programowania
Plan wykładu • Wstęp • Manifest zwinności • Programowanie Ekstremalne • Gra Extreme 89 • Matryca projektów • Wstęp • Organizacja zespołu • Cykl życia projektu • Wybrane praktyki i narzędzia • XPrince a ISO 9001:2000 • XPrince a CMMI • Oferta dla Polsoftu J.Nawrocki, Zwinne metodyki programowania
Gra symulacyjna • Gra dydaktyczna ukierunkowana na rozwiązanie problemu • Model rzeczywistości • Jasno określone role • Gry symulacyjne są często stosowane w kształceniu specjalistów z innych branż(np. ekonomistów) J.Nawrocki, Zwinne metodyki programowania
Nauka poprzez grę symulacyjną • „Miniatura” rzeczywistego procesu • Emocjonalne zaangażowanie a pamięć • Znikome konsekwencje porażki (nauka na błędach) • Niski koszt J.Nawrocki, Zwinne metodyki programowania
Miniatury procesu XP • Extreme Hour (Peter Merel) • 60 minut • Praca koncepcyjna (pułapka na myszy) • Brak zróżnicowania wiedzy klienta i programistów • Brak odpowiednika testów akceptacyjnych • Brak zmian (charakterystycznych dla metodyk zwinnych) J.Nawrocki, Zwinne metodyki programowania
Miniatury procesu XP • Extreme Hour (Peter Merel) • 60 minut • Praca koncepcyjna (pułapka na myszy++) • Brak zróżnicowania wiedzy klienta i programistów • Brak odpowiednika testów akceptacyjnych • Brak zmian (charakterystycznych dla metodyk zwinnych) • Wprowadzenie do XP (Alistair Cockburn) • Praca programistyczna (licznik dostępny przez WWW) • Dwa 40 min. wydania, czas gry - 90 min. • Brak zróżnicowania wiedzy klienta i programistów • Trudna w realizacji Gra Planistyczna • Brak możliwości porównania wyników różnych zespołów J.Nawrocki, Zwinne metodyki programowania
Extreme89 • Prezentacja głównychpraktyk XPbez konieczności programowania • Zróżnicowanie wiedzy klienta i programistów– potrzeba komunikacji w zespole • Możliwość przeprowadzenia gry w czasie zajęć akademickich • Możliwość współzawodnictwa • Możliwość wielokrotnego uczestnictwa w grze J.Nawrocki, Zwinne metodyki programowania
Uczestnicy gry Extreme89 Moderator Programiści Klient J.Nawrocki, Zwinne metodyki programowania
Akcesoria do gry Extreme89 J.Nawrocki, Zwinne metodyki programowania
Scenariusz gry Czas gry 0 min. 5 min. 10 min. 15 min. 27 min. 32 min. 44 min. 47 min. 52 min. 57 min. 69 min. 74 min. 86 min. 89 min. Opis czynności Klient i programiści poznają swoją wiedzę dziedz. Planowanie wydania I Planowanie przyrostu I.1 Praca Planowanie przyrostu I.2 Praca Przekazanie wydania do użytkownika - weryfikacja Planowanie wydania II Planowanie przyrostu II.1 Praca Planowanie przyrostu II.2 Praca Przekazanie wydania do użytkownika - weryfikacja Podsumowanie gry J.Nawrocki, Zwinne metodyki programowania
Wiedza klienta komputer procesor pióro drukarka oprawa wkład sterowanie arytmometr laser toner Wartość rynkowa ParametrPunkty Oprawa 4 Wkład 3 Pióro 24 ... ... Komputer 100 Testy akceptacyjne ParametrPrzedział Oprawa 170..190 Wkład 150..450 Pióro 12500..12800 ... ... Komputer 5400..5700 J.Nawrocki, Zwinne metodyki programowania
Wiedza programistów F(a, b, 1)= a F(a, b, 2)= b F(a, b, n)= F(a, b, n-2) + F(a, b, n-1) div 2 dla n>2 G(a, b, 1)= a G(a, b, 2)= b G(a, b, n)= G(a, b, n-2) + G(a, b, n-1) div 10 dla n>2 Formuły wkład= F(x3,x4, 18) oprawa= F(x5, x6, 18) pióro= wkład + F(x5, x6, 35) ... toner= F(x13, x14, 18) drukarka= laser + F(x13, ..., 35) Zestaw wartości xi x1 = 2 x26 = ... x2 = 3 x27 = 2 x3 = 2 x28 = 16 x4 = 4 x29 = ... ... X30 = 2 J.Nawrocki, Zwinne metodyki programowania
Przebieg gry Extreme89 Zaczynamy J.Nawrocki, Zwinne metodyki programowania
Przebieg gry Extreme89 Czy pióro jest komponentem innego obiektu? Planowanie Brakuje danych!!! Za pióro dają 24 J.Nawrocki, Zwinne metodyki programowania
Przebieg gry Extreme89 Kończymy przyrost I.1 J.Nawrocki, Zwinne metodyki programowania
Przebieg gry Extreme89 Zmiany... J.Nawrocki, Zwinne metodyki programowania
Przebieg gry Extreme89 Użytkownik końcowy J.Nawrocki, Zwinne metodyki programowania
Przebieg gry Extreme89 oprawa 170 wkład 400 laser 565 J.Nawrocki, Zwinne metodyki programowania
Pierwsze doświadczenia • Politechnika Poznańska, marzec 2003 • 120 studentów III, IV i V roku Informatyki • Wysoka ocena ponad 90% studentów • Mocne strony Extreme89 w ocenie studentów • Intensywny kurs XP • Obserwacja znaczenia komunikacji w zespole • Świetna zabawa J.Nawrocki, Zwinne metodyki programowania
Plan wykładu • Wstęp • Manifest zwinności • Programowanie Ekstremalne • Gra Extreme 89 • Matryca projektów • Wstęp • Organizacja zespołu • Cykl życia projektu • Wybrane praktyki i narzędzia • XPrince a ISO 9001:2000 • XPrince a CMMI • Oferta dla Polsoftu J.Nawrocki, Zwinne metodyki programowania
Matryca projektów Krytyczność Defekty skutkują utratą Życia (L) Dużych pieniędzy (E) Małych pieniędzy (D) Komfortu (C) Liczba zaangażowanych osób J.Nawrocki, Zwinne metodyki programowania
Rodzina metodyk Cristal Alistair Cockburn J.Nawrocki, Zwinne metodyki programowania
Podsumowanie Koniec! • Manifest zwinności • Termodynamiczny model projektu • Gra Extreme 89 • Matryca projektów J.Nawrocki, Zwinne metodyki programowania