1 / 52

Zwinne metodyki programowania

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ść ).

elu
Download Presentation

Zwinne metodyki programowania

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 11 Zwinne metodyki programowania 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ść) Crazy is my life! J.Nawrocki, Zwinne metodyki programowania

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

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

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

  6. Manifest zwinności Ważniejsze: • Jednostki i interakcje niż procesy i narzędzia J.Nawrocki, Zwinne metodyki programowania

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

  8. Problemy z ISO 9001 ISO Brak elastyczności działania Zbyt dużo dokumentacji Udokumentowane = lepsze J.Nawrocki, Zwinne metodyki programowania

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

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

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

  12. Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu J.Nawrocki, Zwinne metodyki programowania

  13. Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu • Krótkie przyrosty i wydania Termin Koszty Niezawodność Zakres Defekty Niekompletność J.Nawrocki, Zwinne metodyki programowania

  14. Termodynamiczny model projektu Termin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania

  15. Termodynamiczny model projektu Termin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania

  16. Termodynamiczny model projektu Termin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania

  17. Wprowadzenie • Wybrane praktyki XP: • Klient na miejscu • Krótkie przyrosty i wydania • Najpierw przypadki testowe potem kod J.Nawrocki, Zwinne metodyki programowania

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

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

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

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

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

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

  24. Frederick P. Brooks OS/360 Manager (IBM), 1964-65 350 mln USD ($1’63 = $6’01) J.Nawrocki, Zwinne metodyki programowania

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

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

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

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

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

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

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

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

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

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

  35. Uczestnicy gry Extreme89 Moderator Programiści Klient J.Nawrocki, Zwinne metodyki programowania

  36. Akcesoria do gry Extreme89 J.Nawrocki, Zwinne metodyki programowania

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

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

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

  40. Przebieg gry Extreme89 Zaczynamy J.Nawrocki, Zwinne metodyki programowania

  41. Przebieg gry Extreme89 Czy pióro jest komponentem innego obiektu? Planowanie Brakuje danych!!! Za pióro dają 24 J.Nawrocki, Zwinne metodyki programowania

  42. Przebieg gry Extreme89 Kończymy przyrost I.1 J.Nawrocki, Zwinne metodyki programowania

  43. Przebieg gry Extreme89 Zmiany... J.Nawrocki, Zwinne metodyki programowania

  44. Przebieg gry Extreme89 Użytkownik końcowy J.Nawrocki, Zwinne metodyki programowania

  45. Przebieg gry Extreme89 oprawa 170  wkład 400  laser 565  J.Nawrocki, Zwinne metodyki programowania

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

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

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

  49. Rodzina metodyk Cristal Alistair Cockburn J.Nawrocki, Zwinne metodyki programowania

  50. Podsumowanie Koniec! • Manifest zwinności • Termodynamiczny model projektu • Gra Extreme 89 • Matryca projektów J.Nawrocki, Zwinne metodyki programowania

More Related