1 [email protected] www.cs.put.poznan.pl/jnawrocki/ioWykład 1 Inżynieria oprogramowania II Wykład 1 Wprowadzenie
2 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
3 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
4 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
5 Zasady skutecznego działaniaWykł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
6 Zasady skutecznego działaniaOstrz 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
7 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
8 Kontrola jakości oprogramowaniaArtefakt Przeglądy Testowanie Recenzja Prezentacja Formalny przegląd techniczny Inspekcja Audyt J.Nawrocki, Wprowadzenie
9 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
10 Systematyczne podejście do planowaniaSzacowanie pracochłonności Szacowanie harmonogramu 13 May begin .. end 500 LOC Szacowanie rozmiaru J.Nawrocki, Wprowadzenie
11 Szacowanie pracochłonnościCOCOMO: Effort = a Sizeb Walston-Felix model: Effort = 5.2 Size0.91 Software equation (Putnam): Effort = (Size B0.333/P)3/ t4 J.Nawrocki, Wprowadzenie
12 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
13 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
14 ISO 9001 Kryte- ria Dobrzy Audytor Źli J.Nawrocki, WprowadzenieWykład 1 Kryte- ria Dobrzy Źli Audytor J.Nawrocki, Wprowadzenie
15 ISO 9001 Kryte- ria Dobrzy Audytor Źli J.Nawrocki, WprowadzenieWykład 1 Kryte- ria Dobrzy Źli Audytor J.Nawrocki, Wprowadzenie
16 Certyfikacja dot. tylko ISO 9001:2000Głó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
17 Główne części normy ISO 9001:20004 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
18 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
19 CMM: Capability Maturity ModelOrganizacje programistyczne SEI, Pittsburg, USA 5. Optymalizujący 4. Zarządzany ilościowo 3. Zdefiniowany 2. Zarządzany (powtarzalny) 1. Początkowy J.Nawrocki, Wprowadzenie
20 Profil dojrzałości wg SEI29.7% 27.7% 27.7% 9.5% 5.4% Początkowy Zdefiniowany Optymalizujący Zarządzany ilościowo Zarządzany J.Nawrocki, Wprowadzenie
21 CMMI w układzie geograficznymSzwecja, Niemcy, Francja, Dania, .., Rosja, Białoruś Polska: Motorola Polska Software Center, Kraków J.Nawrocki, Wprowadzenie
22 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
23 Wymaganie .. .. jest to zdolność (capability) lub warunek, który system musi spełnić. J.Nawrocki, Wprowadzenie
24 .. specyfikacja tego, co ma być implementowane.Wymagania .. .. specyfikacja tego, co ma być implementowane. Sommerville & Sawyer’97 J.Nawrocki, Wprowadzenie
25 Przykładowy przypadek użyciaZarejestruj 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
26 IEEE Std. 830 Wymagania funkcjonalne Wymagania pozafunkcjonalneSpecyfikacja wymagań Wymagania funkcjonalne Wymagania pozafunkcjonalne Interfejs użytkownika Scenariusze testów akceptacyjnych IEEE Std. 830 J.Nawrocki, Wprowadzenie
27 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
28 Dobra podstawa matematycznaWprowadzenie 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
29 Terminologia Miejsce Łuk wej. Przejście Łuk wyj. ZnacznikJ.Nawrocki, Wprowadzenie
30 Bardzo prosty przykładwaiting reading strt_reading stop_reading Czytelnik w bibliotece: czekanie, czytanie. J.Nawrocki, Wprowadzenie
31 Bardzo prosty przykładCzytelnik w bibliotece: czekanie, czytanie. waiting strt_reading reading stop_reading J.Nawrocki, Wprowadzenie
32 Bardzo prosty przykładCzytelnik w bibliotece: czekanie, czytanie. waiting strt_reading reading stop_reading J.Nawrocki, Wprowadzenie
33 Bardzo prosty przykładCzytelnik w bibliotece: czekanie, czytanie. waiting strt_reading reading stop_reading J.Nawrocki, Wprowadzenie
34 Bardzo prosty przykładCzytelnik w bibliotece: czekanie, czytanie. waiting strt_reading reading stop_reading J.Nawrocki, Wprowadzenie
35 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
36 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
37 Metodyka zarządzania przedsięwzięciami Wstęp Metodyka zarządzania przedsięwzięciami Główny aktor: kierownik przedsięwzięcia OGC = Office of Goverment Commerce Managing Successful Projects with PRINCE2 408 stron, £ 55.00 J.Nawrocki, Wprowadzenie
38 PRINCE2 Foundation (Podstawy) PRINCE2 Practitioner (Praktyk)Certyfikaty PRINCE2 PRINCE2 Foundation (Podstawy) PRINCE2 Practitioner (Praktyk) J.Nawrocki, Wprowadzenie
39 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
40 4-7 maja 2004: „Metodyka zarządzania projektami PRINCE2” PRINCE2 w Polsce 4-7 maja 2004: „Metodyka zarządzania projektami PRINCE2” Cena: zł (4 dni) 22 maja 2004: Egzamin „PRINCE2 Foundation” Cena: zł + VAT J.Nawrocki, Wprowadzenie
41 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
42 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
43 A Discipline for Software Engineering, Addison Wesley, 1995Wprowadzenie 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
44 PSP Wprowadzenie Poziomy: 3.Cykliczny Rozwój cyklicznyPrzeglą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
45 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
46 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
47 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
48 Kierownik wspomaganiaRole w TSP Lider zespołu Kierownik rozwoju Kierownik planowania Kierownik jakości Kierownik wspomagania J.Nawrocki, Wprowadzenie
49 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 course_description&courseCode=RP401&country=us&language=en J.Nawrocki, Wprowadzenie
50 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
51 Genealogia RUP J.Nawrocki, Wprowadzenie
52 Addison-Wesley, 2nd edition March 2000. (Amazon: $30) Literatura nt. RUP Addison-Wesley, 2nd edition March (Amazon: $30) Addison-Wesley, 1st edition April (Amazon: $30) J.Nawrocki, Wprowadzenie
53 Fazy w RUP Inception Rozpoczęcie Elaboration Dopracowanie ConstructionKonstrukcja Transition Wdrożenie J.Nawrocki, Wprowadzenie
54 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
55 Jednostki i interakcje niż procesy i narzędziaManifest 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
56 Zwinne metodyki programowaniaProgramowanie Ekstremalne (XP) = lekka (zwinna) metodyka tworzenia oprogramowania Tom DeMarco „XP jest dzisiaj najważniejszym ruchem w IO." J.Nawrocki, Wprowadzenie
57 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
58 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie
59 Studio Rozwoju OprogramowaniaOd 1998 Część programu Master in Software Engineering Corocznie przedsięwzięć realizowanych w zespołach 8-osobowych (III + IV + V rok) OK J.Nawrocki, Wprowadzenie
60 Eksperymentalna ocena efektywności programowania paramiEksperymenty 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
61 Ocena wykładów 2004/05 J.Nawrocki, Wprowadzenie
62 Pytania? Wykład 1 ? J.Nawrocki, Wprowadzenie
63 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
64 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 Sprawdzian TSP & RUP Zwinne metodyki programowania XPrince i projekty dyplomowe J.Nawrocki, Wprowadzenie