Od badań uczelnianych do innowacyjności w firmach Instytut Informatyki, Politechnika Poznańska Seminarium projektu InMoST 28 października 2005 Instytut Logistyki i Magazynowania w Poznaniu J. Nawrocki, Ł. Olek, M. Jasiński, B. Paliświat, B. Walter, B. Pietrzak, P. Godek
J.Nawrocki i inni, XPrince Kryzys oprogramowania LOOPLOOP ate oor quality ver budget vertime Loop Loop is dangerous.
J.Nawrocki i inni, XPrince Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Techniki programowania Testy jednostkowe jako wymagania Wykrywanie defektów w kodzie
J.Nawrocki i inni, XPrince XP Tom DeMarco "XP jest dzisiaj najważniejszym ruchem w IO." Extreme Programming (XP) = lekka (zwinna) lekka (zwinna) metodyka rozwoju oprogramowania metodyka rozwoju oprogramowania
J.Nawrocki i inni, XPrince Słabości Dyscyplina (Celebra)Zwinność (XP) Nadmiar papierów Powolny proces decyz. Mała elastyczność Opór przed zmianą Założenie „on-site customer” Brak spisanej dokumentacji Zbyt krótka perspektywa planu
J.Nawrocki i inni, XPrince Rozwiązanie Addison-Wesley, Barry Boehm Richard Turner Balancing Agility and Discipline A Guide for the Perplexed „ każde skuteczne przedsięwzięcie w zmieniającym się świecie wymaga zarówno zwinności, jak i dyscypliny ”
J.Nawrocki i inni, XPrince Studio Rozwoju Oprogramowania Politechnika Poznańska Wydział Informatyki i Zarządzania Studio Rozwoju Oprogramowania (od 1998) Produkty programist. Transfer technologii: Dobre praktyki Metody i narzędzia Wzorce dokumentów
J.Nawrocki i inni, XPrince XPrince e X treme PR ogramming IN C ontrolled E nvironments Źródła XPrince XP PRINCE 2Rational Unified Process
J.Nawrocki i inni, XPrince Zespół XP Klient Coach Tracker Tester Programiści
J.Nawrocki i inni, XPrince Kierownik Zespołu Zespół Zarządzania Projektem w PRINCE2 Komitet sterujący Główny użytkownik Przewodn.Główny dostawca Kierownik projektu Nadzór projektu Kierownik zesp. Wsparcie projektu Raport Plan Raport Grupa zad.
J.Nawrocki i inni, XPrince Role w RUP Kierownik projektu Tester Programista Analityk Architekt
J.Nawrocki i inni, XPrince XP Prince2 Kierownik Zespołu Zespół XPrince Komitet sterujący Główny użytkownik Przewodn.Główny dostawca Kierownik = Coach Nadzór projektu Programiści Architekt Analityk = Klient
J.Nawrocki i inni, XPrince Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Techniki programowania Testy jednostkowe jako wymagania Wykrywanie defektów w kodzie
J.Nawrocki i inni, XPrince Cykl życia wg PRINCE Przyg. założ. proj. Inicjowanie projektu Etap 1Etap 2Etap 3Etap 4Zamk. Projektu
J.Nawrocki i inni, XPrince Wydanie 2Wydanie 1 Cykl życia wg XP Przyrost 1Przyrost 2Przyrost 1Przyrost 2
J.Nawrocki i inni, XPrince XP Prince2 Kierownik Zespołu Zespół XPrince Komitet sterujący Główny użytkownik Przewodn.Główny dostawca Kierownik = Coach Nadzór projektu Programiści Architekt Analityk = Klient
J.Nawrocki i inni, XPrince Fazy wg RUP Rozpoczęcie RozpracowanieKonstrukcjaWdrożenie
J.Nawrocki i inni, XPrince Cykl życia wg XPrince Przyg. założ. proj. Cel i zakres Architek tura Wydanie 1 Wydanie 2 Wydanie 3 Zamkn. Projektu Modelowa nie biznesowe Przyrost 1 ZakresPrzyrost 2 Wdroż.
J.Nawrocki i inni, XPrince Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Techniki programowania Testy jednostkowe jako wymagania Wykrywanie defektów w kodzie
J.Nawrocki i inni, XPrince Ivar Jacobson ▪ 1967: Ericsson, systemy telefomunikacyjne ▪ 1985: Ph.D., Dep. of Computer Systems, The Royal Institute of Tech., Sztokholm ▪ 1987: Objectory AB ▪ 1995: Objectory AB łączy się z Rational Software ▪ 2003: IBM kupuje Rational
J.Nawrocki i inni, XPrince Ivar Jacobson Addison-Wesley, 1992
J.Nawrocki i inni, 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 3a. The data are in wrong format. 3a1. System displays a message and returns to step 2. Edycja przypadków użycia Generowanie prototypów typu mockup...
J.Nawrocki i inni, XPrince Przykładowy przypadek użycia UC1. Preliminary paper registration
J.Nawrocki i inni, XPrince ID Pełny opis Krótki opisAtrybut Rational RequisitePro
J.Nawrocki i inni, XPrince Edytor przypadków użycia
J.Nawrocki i inni, XPrince Edytor przypadków użycia
J.Nawrocki i inni, XPrince Eksperymentalna ocena 25% less 40% less
J.Nawrocki i inni, XPrince Zautomatyzowane przeglądy przypadków użycia Stranger Lazy actor Too short or too long scenarios Too many extensions Incomplete extensions Too much happiness Dangling functionality Outsider
J.Nawrocki i inni, XPrince Czy wymagania są zrozumiałe?
J.Nawrocki i inni, XPrince Generacja makiet
J.Nawrocki i inni, XPrince Generacja makiet Makieta = przypadki użycia + formatki
J.Nawrocki i inni, XPrince Kontrola przeglądów
J.Nawrocki i inni, XPrince Kompozytor SRS
J.Nawrocki i inni, XPrince Szacowanie nakładów Punkty use-case Wideband Delphi Gra planistyczna
J.Nawrocki i inni, XPrince UC Workbench 1,5 roku rozwoju Nadal szybki rozwój Wdrożenia: projekt w PB Polsoft Rozpowszechnianie: Za darmo
J.Nawrocki i inni, XPrince Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Techniki programowania Testy jednostkowe jako wymagania Wykrywanie defektów w kodzie
J.Nawrocki i inni, 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 - SbS 2 osoby – 2 komputery – 1 zadanie
J.Nawrocki i inni, XPrince Zadania i proces Aplikacje internetowe System zarządzania artykułami konf. PapersOnLine 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 Dni 5-6: Właściwy eksperyment i pomiar czasu
J.Nawrocki i inni, XPrince Średni CZAS programowania Ind XP SbS IndXPSbS
J.Nawrocki i inni, XPrince Średnia PRACOCHŁONNOŚĆ programowania Ind XP SbS IndXPSbS
J.Nawrocki i inni, XPrince Programować parami czy indywidualnie? Ind XP SbS Wniosek: Elastyczna metodyka programowania powinna udostępniać wszystkie ‘ tryby’ programowania: indywidualny, programowanie parami w stylu XP i programowanie Side-by-Side.
J.Nawrocki i inni, XPrince Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Techniki programowania Testy jednostkowe jako wymagania Wykrywanie defektów w kodzie
J.Nawrocki i inni, XPrince Integracja powtórnego użycia i test-first coding public void testStack(){ 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 i inni, XPrince Integracja powtórnego użycia i test-first coding java.util.Stack wloz = void push(Object) zdejmij = Object pop()
J.Nawrocki i inni, XPrince Prosty eksperyment 9 programistów 10 jednostek do znal. Opis w języku naturalnym public void testStack(){ 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 i inni, XPrince Prosty eksperyment - wyniki 9 z 10 jednostek – Poprawna i jednoznaczna charakterystyka ‘Trudna’ jednostka – klasa manipulująca łańcuchami
J.Nawrocki i inni, XPrince Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Techniki programowania Testy jednostkowe jako wymagania Wykrywanie defektów w kodzie
J.Nawrocki i inni, XPrince Przykry zapach „Przykry zapach jest symptomem niskiej jakości kodu, który wskazuje na konieczność refaktoryzacji” Martin Fowler Refactoring, Improving the designof existing code Addison-Wesley, 1999
J.Nawrocki i inni, XPrince Objawy przykrych zapachów Bad code smell Metryki Analiza drzewa składniowego Intuicja programisty Historia zmian w repozytorium Testy jednostkowe Obecność innych zapachów
J.Nawrocki i inni, XPrince XSmells 1,5 roku rozwoju Wtyczka dla Eclipse Wykrywanie 6 przykrych zapachów w Javie Badania nad nowymi technikami wykrywania Rozpowszechnianie: Za darmo
J.Nawrocki i inni, XPrince XSmells
J.Nawrocki i inni, XPrince Podsumowanie Kombinacja zwinnej metodyki (XP) ze zdyscyplinowaną (PRINCE2 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. Wczesne wykrywanie potencjalnych defektów w kodzie programów
J.Nawrocki i inni, XPrince Pytania?