Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/io Wykład 1 Inżynieria oprogramowania II Wykład 1 Wprowadzenie Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/io
oor quality (kiepska jakość) ver budget (przekroczony budżet) Syndrom LOOP Loop L O P ate (późno) oor quality (kiepska jakość) ver budget (przekroczony budżet) vertime (nadgodziny) J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Wykład 1 “.. absolwenci nie potrafią: komunikować się, mają niedostateczne (..) przygotowanie do pracy w zespole, brak im umiejętności skutecznego i produktywnego zarządzania ich pracą indywidualną ..” ? J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Ostrz piłę Dbaj o synergię Najpierw staraj się zrozumieć Myśl o obopólnej korzyści Aby rzeczy pierwsze były pierwsze Zaczynaj mając koniec na względzie Bądź proaktywny J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
Kontrola jakości oprogramowania Artefakt Przeglądy Testowanie Recenzja Prezentacja Formalny przegląd techniczny Inspekcja Audyt J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
Systematyczne podejście do planowania Szacowanie pracochłonności Szacowanie harmonogramu 13 May begin .. end 500 LOC Szacowanie rozmiaru J.Nawrocki, Wprowadzenie
Szacowanie pracochłonności COCOMO: Effort = a Sizeb Walston-Felix model: Effort = 5.2 Size0.91 Software equation (Putnam): Effort = (Size B0.333/P)3/ t4 J.Nawrocki, Wprowadzenie
Rand Corporation, Boehm’81 Metoda delficka Pytia Rand Corporation, Boehm’81 Kilku ekspertów indywidualnie szacuje nakład (rozmiar). Stosując proces delficki dochodzi się do konsensusu. J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
ISO 9001 Kryte- ria Dobrzy Audytor Źli J.Nawrocki, Wprowadzenie Wykład 1 Kryte- ria Dobrzy Źli Audytor J.Nawrocki, Wprowadzenie
ISO 9001 Kryte- ria Dobrzy Audytor Źli J.Nawrocki, Wprowadzenie Wykład 1 Kryte- ria Dobrzy Źli Audytor J.Nawrocki, Wprowadzenie
Certyfikacja dot. tylko ISO 9001:2000 Główne elementy normy ISO 9000:2000 Systemy zarządzania jakością – Podstawy i terminologia ISO 9001:2000 Systemy zarządzania jakością – Wymagania ISO 9004:2000 Systemy zarządzania jakością – Wytyczne doskonalenia funkcjonowania Certyfikacja dot. tylko ISO 9001:2000 J.Nawrocki, Wprowadzenie
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, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
CMM: Capability Maturity Model Organizacje programistyczne SEI, Pittsburg, USA 1989-1993 5. Optymalizujący 4. Zarządzany ilościowo 3. Zdefiniowany 2. Zarządzany (powtarzalny) 1. Początkowy J.Nawrocki, Wprowadzenie
Profil dojrzałości wg SEI 29.7% 27.7% 27.7% 9.5% 5.4% Początkowy Zdefiniowany Optymalizujący Zarządzany ilościowo Zarządzany J.Nawrocki, Wprowadzenie
CMMI w układzie geograficznym Szwecja, Niemcy, Francja, Dania, .., Rosja, Białoruś Polska: Motorola Polska Software Center, Kraków J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
Wymaganie .. .. jest to zdolność (capability) lub warunek, który system musi spełnić. J.Nawrocki, Wprowadzenie
.. specyfikacja tego, co ma być implementowane. Wymagania .. .. specyfikacja tego, co ma być implementowane. Sommerville & Sawyer’97 J.Nawrocki, Wprowadzenie
Przykładowy przypadek użycia Zarejestruj IO Aktor: Rejestrator IO Cel: Zarejestrować w systemie nową IO. Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz Rejestrator IO: Wprowadza NIP lub REGON IO. System: Sprawdza poprawność wprowadzonego NIP/REGON. Rejestrator: Wprowadza pozostałe dane identyfikacyjne IO. System: Weryfikuje poprawność składniową wprowadzonych danych. Rejestrator: Wprowadza dane dotyczące jednostek IO. . . . J.Nawrocki, Wprowadzenie
IEEE Std. 830 Wymagania funkcjonalne Wymagania pozafunkcjonalne Specyfikacja wymagań Wymagania funkcjonalne Wymagania pozafunkcjonalne Interfejs użytkownika Scenariusze testów akceptacyjnych IEEE Std. 830 J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
Dobra podstawa matematyczna Wprowadzenie Wykład 1 Sieci Petri’ego: Notacja graficzna Dobra podstawa matematyczna Zastosowania: Modelowanie systemów współbieżnych i rozproszonych Protokoły komunikacyjne, sieci komputerowe, systemy produkcyjne, systemy transportu publicznego itp. J.Nawrocki, Wprowadzenie
Terminologia Miejsce Łuk wej. Przejście Łuk wyj. Znacznik J.Nawrocki, Wprowadzenie
Bardzo prosty przykład waiting reading strt_reading stop_reading Czytelnik w bibliotece: czekanie, czytanie. J.Nawrocki, Wprowadzenie
Bardzo prosty przykład Czytelnik w bibliotece: czekanie, czytanie. waiting strt_reading reading stop_reading J.Nawrocki, Wprowadzenie
Bardzo prosty przykład Czytelnik w bibliotece: czekanie, czytanie. waiting strt_reading reading stop_reading J.Nawrocki, Wprowadzenie
Bardzo prosty przykład Czytelnik w bibliotece: czekanie, czytanie. waiting strt_reading reading stop_reading J.Nawrocki, Wprowadzenie
Bardzo prosty przykład Czytelnik w bibliotece: czekanie, czytanie. waiting strt_reading reading stop_reading J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
PRojects IN Controlled Environments Wprowadzenie PRINCE = PRojects IN Controlled Environments CCTA = the Central Computer and Telecommunications Agency, UK 1975: PROMPT, Simpact Systems Ltd 1979: CCTA przyjmuje PROMPT jako standard rządowych przedsięwzięć dot. systemów informacyjnych 1989: CCTA wprowadza metodę PRINCE 1996: CCTA ogłasza metodę PRINCE2 J.Nawrocki, Wprowadzenie
Metodyka zarządzania przedsięwzięciami Wstęp Metodyka zarządzania przedsięwzięciami Główny aktor: kierownik przedsięwzięcia http://www.ccta.gov.uk/prince/ OGC = Office of Goverment Commerce Managing Successful Projects with PRINCE2 408 stron, £ 55.00 J.Nawrocki, Wprowadzenie
PRINCE2 Foundation (Podstawy) PRINCE2 Practitioner (Praktyk) Certyfikaty PRINCE2 PRINCE2 Foundation (Podstawy) PRINCE2 Practitioner (Praktyk) J.Nawrocki, Wprowadzenie
Warunek zdania: 38 poprawnych odpowiedzi „Closed-book” PRINCE2 Foundation Format egzaminu: Test wyboru 1 godzina 75 pytań Warunek zdania: 38 poprawnych odpowiedzi „Closed-book” APM Group – Cennik egzaminów 2004 (Milton Keynes, ..): Foundation = £100 inc VAT Practitioner = £208 inc VAT Both Exams = £308 inc VAT J.Nawrocki, Wprowadzenie
4-7 maja 2004: „Metodyka zarządzania projektami PRINCE2” PRINCE2 w Polsce http://www.crm.com.pl 4-7 maja 2004: „Metodyka zarządzania projektami PRINCE2” Cena: 4 200 zł (4 dni) 22 maja 2004: Egzamin „PRINCE2 Foundation” Cena: 1 400 zł + VAT J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
PSP = Personal Software Process PSP: samodoskonalenie Wprowadzenie PSP = Personal Software Process PSP: samodoskonalenie PSP: jak podejmować i wypełniać zobowiązania PSP: formularze + procedury Czego brak: inżynieria wymagań, zarządzanie konfiguracją, zarządzanie ryzykiem J.Nawrocki, Wprowadzenie
A Discipline for Software Engineering, Addison Wesley, 1995 Wprowadzenie Watts Humphrey Fellow of the Software Engineering Insititue (SEI) at Carnegie Mellon University 1959 – 1986: IBM Corporation, Director of Programming Quality and Process A Discipline for Software Engineering, Addison Wesley, 1995 J.Nawrocki, Wprowadzenie
PSP Wprowadzenie Poziomy: 3.Cykliczny Rozwój cykliczny Przeglądy kodu i proj. Wzorce projektowe 2.Jakości Szacowanie rozmiaru + raport tst Planowanie zadań i harmon. 1.Planowania Stand. kodu + Pomiar rozm. + PPO 0.Bazowy Rejestry czasu i defektów J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
TSP = Team Software Process TSPi: 4-6 osób; TSP: do 20 osób Wprowadzenie TSP = Team Software Process TSPi: 4-6 osób; TSP: do 20 osób Bazuje na PSP: Organizacja pracy własnej Formularz rejestracji błędów Formularz rejestracji czasu Szablon harmonogramu J.Nawrocki, Wprowadzenie
Kierownik wspomagania Role w TSP Lider zespołu Kierownik rozwoju Kierownik planowania Kierownik jakości Kierownik wspomagania J.Nawrocki, Wprowadzenie
Co to jest RUP? RUP is a knowledge base, containing software engineering practices that represent many of the best practices observed in successful software development http://www-306.ibm.com/services/learning/ites.wss?pageType= course_description&courseCode=RP401&country=us&language=en J.Nawrocki, Wprowadzenie
Inżynier mechanik: Ecole Centrale de Lyon, Francja. Philippe Kruchten Inżynier mechanik: Ecole Centrale de Lyon, Francja. Doktorat (informatyka): Institute of Telecommunications, Paryż Alcatel (8 lat) 1-szy certyfikowany kompilator Ady, NYU Rational Software (15 lat), Director of Process Development, odpowiedzialny za RUP J.Nawrocki, Wprowadzenie
Genealogia RUP http://www3.software.ibm.com/ibmdl/pub/software/rational/web/whitepapers/2003/rup_bestpractices.pdf J.Nawrocki, Wprowadzenie
Addison-Wesley, 2nd edition March 2000. (Amazon: $30) Literatura nt. RUP Addison-Wesley, 2nd edition March 2000. (Amazon: $30) Addison-Wesley, 1st edition April 2003. (Amazon: $30) J.Nawrocki, Wprowadzenie
Fazy w RUP Inception Rozpoczęcie Elaboration Dopracowanie Construction Konstrukcja Transition Wdrożenie J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
Jednostki i interakcje niż procesy i narzędzia 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, Wprowadzenie
Zwinne metodyki programowania Programowanie Ekstremalne (XP) = lekka (zwinna) metodyka tworzenia oprogramowania Tom DeMarco „XP jest dzisiaj najważniejszym ruchem w IO." J.Nawrocki, Wprowadzenie
Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Wprowadzenie Wybrane praktyki XP: Klient na miejscu Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Automatyzacja wykonywania testów Programowanie parami Dokumentacja = Przypadki testowe + kod J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
Studio Rozwoju Oprogramowania Od 1998 Część programu Master in Software Engineering Corocznie 11-12 przedsięwzięć realizowanych w zespołach 8-osobowych (III + IV + V rok) OK J.Nawrocki, Wprowadzenie
Eksperymentalna ocena efektywności programowania parami Eksperymenty JFK Cel: Eksperymentalna ocena efektywności programowania parami Wcześniejsze eksperymenty: J. Nosek: 40% narzutu L. Williams: ok. 15% narzutu A.Wojciechowski: 70% narzutu M.Jasiński: ok. 80% narzutu (aplikacje internetowe, 6 godz.) Fazy eksperymentu: Szkolenie (wykłady + ćw.) Kwalifikacje Eksperymenty (indywidualiści, pary XP i pary SbS) J.Nawrocki, Wprowadzenie
Ocena wykładów 2004/05 J.Nawrocki, Wprowadzenie
Pytania? Wykład 1 ? J.Nawrocki, Wprowadzenie
3. Czy dowiedziałeś się czegoś ważnego? 4. Co i jak poprawić? Ocena wykładu 1. Wrażenie ogólne (1 - 6) 2. Za szybko czy za wolno? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co i jak poprawić? J.Nawrocki, Wprowadzenie
Zasady skutecznego działania Kontrola jakości oprogramowania Plan wykładów Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań I, II Metody formalne Zarządzanie projektami i PRINCE2 Personal Software Process 29.05.2006 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie