Inynieria oprogramowania Wykad 15 XPrince Rwnowaenie zwinnoci i
- Slides: 42
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 dangerous. J. Nawrocki, XPrince
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 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
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 ruchem w IO. " Tom J. Nawrocki, XPrince
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 -65)
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 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 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 environments J. Nawrocki, XPrince
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ń 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ół 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 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 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 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 Programis
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ń 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. 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 1 Przyrost 2
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 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ń 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. 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
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 – 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, 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 Ind
Ś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 ‘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 <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 = Object pop() J. Nawrocki, XPrince
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’ jednostka – klasa manipulująca łańcuchami J. Nawrocki, XPrince
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
- Architej
- Inżynieria oprogramowania ian sommerville
- Specyfikacja oprogramowania. inżynieria wymagań
- Szacowanie rozmiaru oprogramowania i pracochłonności
- Kryzys oprogramowania
- Gpo instalacja oprogramowania
- Halina
- "dobre praktyki tworzenia oprogramowania"
- Proces tworzenia oprogramowania
- Rodzaje testów oprogramowania
- Studio oprogramowania fraktal
- Modele cyklu życia oprogramowania