Inynieria oprogramowania Wykad 15 XPrince Rwnowaenie zwinnoci i

  • Slides: 42
Download presentation
Inżynieria oprogramowania, Wykład 15 XPrince: Równoważenie zwinności i dyscypliny „Trabrennen” w Austrii

Inżynieria oprogramowania, Wykład 15 XPrince: Równoważenie zwinności i dyscypliny „Trabrennen” w Austrii

Kryzys oprogramowania Loop L ate Over budget O vertime P oor quality Loop is

Kryzys oprogramowania Loop L ate Over budget O vertime P oor quality Loop is dangerous. J. Nawrocki, XPrince

Podejście bazujące na dyscyplinie Więcej dyscypliny! Wymag. Projekt Kod Testy J. Nawrocki, XPrince ISO

Podejście bazujące na dyscyplinie Więcej dyscypliny! Wymag. Projekt Kod Testy J. Nawrocki, XPrince ISO 9000 IEEE Std 5 4 3 2 1

Dyscyplina w zarządzaniu projektami ng Successful Projects with PRINCE 2 1975: PROMPT, Simpact Systems

Dyscyplina w zarządzaniu projektami ng Successful Projects with PRINCE 2 1975: PROMPT, Simpact Systems Ltd 1979: PROMPT staje się standardem CCTA = the Central Computer and Telecommunications Agenc 1989: CCTA wprowadza PRINCE = PRojects IN Controlled Environments 1996: CCTA publikuje PRINCE 2 J. Nawrocki, XPrince

Nadmierna dyscyplina zabija inicjatywę i elastyczność J. Nawrocki, XPrince

Nadmierna dyscyplina zabija inicjatywę i elastyczność J. Nawrocki, XPrince

Zwinne wytwarzanie oprogramowania – lata 90 -te OK Ludzie i komunikacja Działające oprogr. Tommorow

Zwinne wytwarzanie oprogramowania – lata 90 -te OK Ludzie i komunikacja Działające oprogr. Tommorow or never! Współpracujący klient. XPrince J. Nawrocki, Reagowanie na zmiany

XP Extreme Programming (XP) = lekka (zwinna) metodyka rozwoju oprogramowania "XP jest dzisiaj najważniejszym

XP Extreme Programming (XP) = lekka (zwinna) metodyka rozwoju oprogramowania "XP jest dzisiaj najważniejszym ruchem w IO. " Tom J. Nawrocki, XPrince

XP Cenne praktyki XP: • Silna orientacja na klienta • Przyrosty i krótkie wydania

XP Cenne praktyki XP: • Silna orientacja na klienta • Przyrosty i krótkie wydania • Testy przed kodowaniem • Refaktoryzacja • Gra planistyczna etc. J. Nawrocki, XPrince

XP No silver bullet! J. Nawrocki, XPrince Frederick P. Brooks IBM OS/360 Manager (1964

XP No silver bullet! J. Nawrocki, XPrince Frederick P. Brooks IBM OS/360 Manager (1964 -65)

Słabości Dyscyplina (Celebra ) • Nadmiar papierów • Powolny proces decyz. • Mała elastyczność

Słabości Dyscyplina (Celebra ) • Nadmiar papierów • Powolny proces decyz. • Mała elastyczność • Opór przed zmianą J. Nawrocki, XPrince Zwinność (XP) • Założenie „on-site customer” • Brak spisanej dokumentacji • Zbyt krótka perspektywa planu

Rozwiązanie Barry Boehm Richard Turner Balancing Agility and Discipline A Guide for the Perplexed

Rozwiązanie Barry Boehm Richard Turner Balancing Agility and Discipline A Guide for the Perplexed Addison-Wesley, 2004. J. Nawrocki, XPrince „każde skuteczne przedsięwzięcie w zmieniającym się świecie wymaga zarówno zwinności, jak i dyscypliny”

Studio Rozwoju Oprogramowania Politechnika Poznańska Wydział Informatyki i Zarządzania Studio Rozwoju Oprogramowa nia (od

Studio Rozwoju Oprogramowania Politechnika Poznańska Wydział Informatyki i Zarządzania Studio Rozwoju Oprogramowa nia (od 1998) J. Nawrocki, XPrince Produkty programist. Transfer technologii: • Dobre praktyki • Metody i narzędzia • Wzorce dokumentów

Źródła XPrince PRINCE 2 Rational Unified Process XPrince XP e. Xtreme Programming in controlled

Źródła XPrince PRINCE 2 Rational Unified Process XPrince XP e. Xtreme Programming in controlled environments J. Nawrocki, XPrince

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań i UC Workbench • Rozwój oprogramowania „Trabrennen” w Austrii J. Nawrocki, XPrince

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań i UC Workbench • Rozwój oprogramowania „Trabrennen” w Austrii J. Nawrocki, XPrince

Zespół XP Klient Teste r Coac h Programiści J. Nawrocki, XPrince Tracke r

Zespół XP Klient Teste r Coac h Programiści J. Nawrocki, XPrince Tracke r

Zespół Zarządzania Projektem w PRINCE 2 Komitet sterujący Główny Przewod Główny użytkownik n. dostawca

Zespół Zarządzania Projektem w PRINCE 2 Komitet sterujący Główny Przewod Główny użytkownik n. dostawca J. Nawrocki, XPrince

Zespół Zarządzania Projektem w PRINCE 2 Komitet sterujący Główny Przewod Główny użytkownik n. dostawca

Zespół Zarządzania Projektem w PRINCE 2 Komitet sterujący Główny Przewod Główny użytkownik n. dostawca Rapor t. Plan Kierownik projektu J. Nawrocki, XPrince

Zespół Zarządzania Projektem w PRINCE 2 Komitet sterujący Główny Przewod Główny użytkownik n. dostawca

Zespół Zarządzania Projektem w PRINCE 2 Komitet sterujący Główny Przewod Główny użytkownik n. dostawca Nadzór projektu Rapor t. Plan Kierownik projektu J. Nawrocki, XPrince

Zespół Zarządzania Projektem w PRINCE 2 Komitet sterujący Główny Przewod Główny użytkownik n. dostawca

Zespół Zarządzania Projektem w PRINCE 2 Komitet sterujący Główny Przewod Główny użytkownik n. dostawca Nadzór projektu Rapor t. Plan Kierownik projektu Grupa zad. Raport Wsparcie projektu Kierownik zesp. Zespołu J. Nawrocki, XPrince

Role w RUP Kierownik Anality projektu k Teste r J. Nawrocki, XPrince Archite kt

Role w RUP Kierownik Anality projektu k Teste r J. Nawrocki, XPrince Archite kt Programis

Zespół XPrince Komitet sterujący Główny Przewod Główny użytkownik n. dostawca Nadzór projektu Kierownik =

Zespół XPrince Komitet sterujący Główny Przewod Główny użytkownik n. dostawca Nadzór projektu Kierownik = Coach Analityk=Klie Archite nt kt Kierownik Zespołu Programiści J. Nawrocki, XPrince 2 XP

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań i UC Workbench • Rozwój oprogramowania „Trabrennen” w Austrii J. Nawrocki, XPrince

Cykl życia wg PRINCE 2 16. 10 27. 11 23. 01 8. 04 27.

Cykl życia wg PRINCE 2 16. 10 27. 11 23. 01 8. 04 27. 05 17. 06 1. 07 Przyg. Inicjowan Etap 1 Etap 2 Etap 3 Etap 4 Zamk. założ. ie Projekt projektu u J. Nawrocki, XPrince

Cykl życia wg XP Wydanie 1 Przyrost 2 J. Nawrocki, XPrince Wydanie 2 Przyrost

Cykl życia wg XP Wydanie 1 Przyrost 2 J. Nawrocki, XPrince Wydanie 2 Przyrost 1 Przyrost 2

Fazy wg RUP Rozpoczę Rozpracowa Konstrukcj Wdrożenie cie nie a J. Nawrocki, XPrince

Fazy wg RUP Rozpoczę Rozpracowa Konstrukcj Wdrożenie cie nie a J. Nawrocki, XPrince

Cykl życia wg XPrince 16. 10 27. 11 23. 01 8. 04 27. 05

Cykl życia wg XPrince 16. 10 27. 11 23. 01 8. 04 27. 05 17. 06 8. 07 Cel i Archite Wydan Zamkn. Przyg zakres k tura ie 1 ie 2 ie 3 Projekt. u założ. proj. Modelow Przyrost anie 1 1 bizneso we Zakres Przyrost 2 2 Wdroż. J. Nawrocki, XPrince Wdroż.

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań i UC Workbench • Rozwój oprogramowania „Trabrennen” w Austrii J. Nawrocki, XPrince

Przypadek użycia Wstępna rejestracja artykułu Scenariusz główny 1. System presents a registration form. 2.

Przypadek użycia Wstępna rejestracja artykułu Scenariusz główny 1. System presents a registration form. 2. Author fills the form in. 3. System validates the data and returns a login and password. Rozszerzenia 3 a. The data are in wrong format. 3 a 1. System displays a message and • Edycja returns przypadków użycia • Generowanie prototypów typu to step 2. J. Nawrocki, XPrince mockup • . . .

Ekran prototypu wygenerowanego przez UC Workbench J. Nawrocki, XPrince

Ekran prototypu wygenerowanego przez UC Workbench J. Nawrocki, XPrince

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań

Plan prezentacji • Wstęp • Struktura zespołu • Cykl życia projektu • Inżynieria wymagań i UC Workbench • Rozwój oprogramowania „Trabrennen” w Austrii J. Nawrocki, XPrince

Programować parami czy indywidualnie? Programowanie indywidualne - Ind 1 osoba – 1 komputer –

Programować parami czy indywidualnie? Programowanie indywidualne - Ind 1 osoba – 1 komputer – 1 zadanie Programowanie parami XP 2 osoby – 1 komputer – 1 zadanie Programowanie Side-by-Side Sb. S 2 osoby – 2 komputery – 1 zadanie J. Nawrocki, XPrince

Zadania i proces Aplikacje internetowe System zarządzania artykułami konf. Papers. On. Line 6 dni,

Zadania i proces Aplikacje internetowe System zarządzania artykułami konf. Papers. On. Line 6 dni, około 8 godz. dziennie: Dzień 0 „Praca domowa” Dzień 1 Sprawdzian znajomości technologii Dzień 2 Pomiar indywidualnej prędkości program. Dni 3 -4 Zdobywanie dośw. w programowaniu parami J. Nawrocki, XPrince

Średni CZAS programowania Sb. S In d XP Sb S J. Nawrocki, XPrince XP

Średni CZAS programowania Sb. S In d XP Sb S J. Nawrocki, XPrince XP Ind

Średnia PRACOCHŁONNOŚĆ programowania Sb. S In d XP Sb S J. Nawrocki, XPrince XP

Średnia PRACOCHŁONNOŚĆ programowania Sb. S In d XP Sb S J. Nawrocki, XPrince XP Ind

Programować parami czy indywidualnie? In d XP Wniosek: Elastyczna metodyka programowania powinna udostępniać wszystkie

Programować parami czy indywidualnie? In d XP Wniosek: Elastyczna metodyka programowania powinna udostępniać wszystkie ‘tryby’ programowania: • indywidualny, Sb S J. Nawrocki, XPrince • programowanie parami w stylu XP i • programowanie Side-by-Side.

Integracja powtórnego użycia i test-first coding public void test. Stack(){ for (int k=0; k

Integracja powtórnego użycia i test-first coding public void test. Stack(){ for (int k=0; k <10; k++){ call(„wloz", k, DONT_CARE); } for (int k = 0; k < 10; k++){ call(„zdejmij", 9 - k); } } J. Nawrocki, XPrince

Integracja powtórnego użycia i test-first coding java. util. Stack wloz = void push(Object) zdejmij

Integracja powtórnego użycia i test-first coding java. util. Stack wloz = void push(Object) zdejmij = Object pop() J. Nawrocki, XPrince

Prosty eksperyment Opis w języku naturalnym public void test. Stack(){ for (int k=0; k

Prosty eksperyment Opis w języku naturalnym public void test. Stack(){ for (int k=0; k <10; k++){ call(„wloz", k, DONT_CARE); } for (int k = 0; k < 10; k++){ call(„zdejmij", 9 - k); } } JUnit J. Nawrocki, XPrince 9 programistów 10 jednostek do znal.

Prosty eksperyment - wyniki 9 z 10 jednostek – Poprawna i jednoznaczna charakterystyka ‘Trudna’

Prosty eksperyment - wyniki 9 z 10 jednostek – Poprawna i jednoznaczna charakterystyka ‘Trudna’ jednostka – klasa manipulująca łańcuchami J. Nawrocki, XPrince

Podsumowanie l l J. Nawrocki, XPrince Kombinacja zwinnej metodyki (XP) ze zdyscyplinowaną (PRINCE 2

Podsumowanie l l J. Nawrocki, XPrince Kombinacja zwinnej metodyki (XP) ze zdyscyplinowaną (PRINCE 2 i RUP) jest możliwa Wsparcie narzędziowe (UC Workbench) jest ważne Elastyczne podejście do programowania parami Kombinacja powtórnego użycia z test-first coding.

Pytania? J. Nawrocki, XPrince

Pytania? J. Nawrocki, XPrince