Wprowadzenie do Laboratorium Inżynierii Oprogramowania Instytut Informatyki Politechnika Poznańska Jerzy Nawrocki Jerzy.Nawrocki@put.poznan.pl www.xprince.net Specjalność Software Engineering Konsorcjum XPrince www.xprince.net Wprowadzenie do XPrince () Cel wykładu Plan wykładu Przedstawić w zarysie metodykę XPrince. Po co XPrince? Zespół Cykl życia Zakończenie Wprowadzenie do XPrince (3) Wprowadzenie do XPrince (4) Kryzys oprogramowania Podejście bazujące na dyscyplinie Więcej dyscypliny! Przekraczanie terminów Przekraczanie budżetu Nadgodziny Kiepska jakość Wymag. Projekt Kod ISO 9000 IEEE Std IEEE Std IEEE Std 5 4 3 Testy Wprowadzenie do XPrince (5) Wprowadzenie do XPrince (6) XPrince dla architektów
PRINCE PRINCE = PRojects IN Controlled Environments CCTA = the Central Computer and Telecommunications Agency, UK Managing Successful Projects with PRINCE Metodyka zarządzania przedsięwzięciami PRINCE aktor: kierownik przedsięwzięcia 989: CCTA wprowadza metodę PRINCE 996: CCTA ogłasza metodę PRINCE Wprowadzenie do XPrince (7) http://www.ccta.gov.uk/prince/ Wprowadzenie do XPrince (8) Niezadowolenie Problem zmian w wymaganiach Za dużo papierów! Za dużo zebrań! Zmieńmy wymagania. OK. OK. OK. OK. Klient Programiści Wprowadzenie do XPrince (9) Wprowadzenie do XPrince (0) Formalne podejście do zmian Extreme Programming (XP) Err Użytkownik Decyzja Żądanie zmiany Kierownik konfig. Żądanie zmiany Żądanie zmiany Kierownik Programista Raport Komitet Zarządzania Konfiguracją Wprowadzenie do XPrince () lekka (lightweight, agile) metodyka rozwoju oprogramowania Tom DeMarco "XP jest dzisiaj najważniejszym ruchem w naszej dziedzinie." Wprowadzenie do XPrince () XPrince dla architektów
XP Zbawca Słabości Zawsze to mówiłem! Najważniejsza komunikacja ustna. Jedyne artefakty: kod + testy IEEE/ANSI standard 830/993? Zbędny! Inspekcje Fagana? Zbędne! Punkty funkcyjne? Zbędne! Żadnych nadgodzin! Dyscyplina (Celebra ) Nadmiar papierów Powolny proces decyz. Opór przed zmianą Zwinność (XP) Założenie on-site customer Brak spisanej dokumentacji Zbyt krótka perspektywa planu Wprowadzenie do XPrince (3) Wprowadzenie do XPrince (4) Rozwiązanie Źródła XPrince PRINCE Rational Unified Process każde skuteczne przedsięwzięcie w zmieniającym sięświecie wymaga zarówno zwinności, jak i dyscypliny XPrince XP Addison-Wesley, 004. Wprowadzenie do XPrince (5) extreme Programming in controlled environments Wprowadzenie do XPrince (6) Zespół XP Zespół Zarządzania w PRINCE Klient Programiści Coach Tester Tracker użytkownik Komitet sterujący Przewodn. Raport Plan Kierownik dostawca Wprowadzenie do XPrince (7) Wprowadzenie do XPrince (8) XPrince dla architektów 3
Role w RUP Zespół XPrince Analityk Kierownik użytkownik Komitet Sterujący Przewodn. dostawca Kierownik (Coach, Tracker) Prince Tester Analityk (Klient, Tester) Architekt (Coach) Architekt Programista Wprowadzenie do XPrince (9) Kierownik Zespołu Kierownik Zespołu Programiści XP Wprowadzenie do XPrince (0) Zespół Cykl życia wg XP Fred Brooks OS/360, IBM Administrator Architekt Drugi pilot Wydanie Wydanie.... Sekretarka Dokumentalista Narzędziowiec Red. podręcz. Tester Pomoc Ekspert (j. prog.) Wprowadzenie do XPrince () Wprowadzenie do XPrince () Cykl życia wg PRINCE Fazy wg RUP 6.0 7. 3.0 7.05 7.06.07 Etap Etap Etap 3 Etap 4 Zamk. Rozpoczęcie Rozpracowanie Konstrukcja Wdrożenie Wprowadzenie do XPrince (3) Wprowadzenie do XPrince (4) XPrince dla architektów 4
Cykl życia wg XPrince Główne rezultaty przygotowania założeń 6.0 7. 3.0 Wydanie 7.05 Wydanie 7.06 Wydanie 3 8.07 Zamkn. Przygotowanie założeń Zlecający (sponsor ) Problem Koncepcja rozwiązania problemu Interfejsy (otoczenie systemu) Preferowane podejście... Wprowadzenie do XPrince (5) Wprowadzenie do XPrince (6) Główne rezultaty inicjowania Główne wyniki rozpracowania architektury Business Process Reengineering Wymagania pozafunkcjonalne Role (tzw. aktorzy) Zarys wymagań funkcjonalnych Zarys architektury... Najtrudniejsze i najważ. przypadki użycia Podejścia architektoniczne (mechanizmy) Opis ważniejszych elementów (protokoły, schematy baz danych itp.) Fragmenty kodu (przykłady rozwiązań) Wprowadzenie do XPrince (7) Wprowadzenie do XPrince (8) Cykl życia wg XPrince Cykl życia wg XPrince 6.0 7. Wydanie 7.05 Wydanie 7.06 Wydanie 3 8.07 Zamkn. 6.0 7. 3.0 3.0 Wydanie 7.05 Wydanie 7.06 Wydanie 3 8.07 Zamkn. Wym. Arch. Kod. Wprowadzenie do XPrince (9) Wprowadzenie do XPrince (30) XPrince dla architektów 5
Manifest zwinności 7 nawyków skutecznego działania O K Ludzie i komunikacja Działające oprogr. Tommorow or never! Dr Stephen Covey 5 mln egzemplarzy, 3 języki Współpracujący klient Reagowanie na zmiany Wprowadzenie do XPrince (3) Wprowadzenie do XPrince (3) Zasady skutecznego działania Koszty błędów w wymaganiach Cost of Error Correction Ostrz piłę Dbaj o synergię Najpierw staraj się zrozumieć Myśl l o obopólnej korzyści Aby rzeczy pierwsze były y pierwsze Zaczynaj mając c koniec na względzie Bądź proaktywny Wprowadzenie do XPrince (33) Roger S. Pressman Relative Cost 0 00 80 60 40 0 0 3-6 0 5-40 30-70 40-000 Req. Design Code Dev.Tst Sys.Tst Field Op. Development Phase Wprowadzenie do XPrince (34) 6.0 7. Krótka pętla sprzężenia zwrotnego 3.0 7.05 7.06 8.07 Wydanie Wydanie Wydanie 3 Zamkn. Wprowadzenie do XPrince (35) Język naturalny Zarejestruj IO Aktor: Rejestrator IO Cel: Zarejestrować w systemie nową IO. Zdarzenie: Rejestrator otrzymał wniosek papierowy. scenariusz:. Rejestrator IO wprowadza NIP lub REGON IO.. System sprawdza poprawność wprowadzonego NIP/REGON. 3. Rejestrator wprowadza pozostałe dane identyfikacyjne IO. 4. System weryfikuje poprawność składniową wprowadzonych danych. 5. Rejestrator wprowadza dane dotyczące jednostek IO. Rozszerzenia: a. NIP/REGON jest niepoprawny a. System wyświetla komunikat i wracamy do kroku Wprowadzenie do XPrince (36) XPrince dla architektów 6