Wstęp do informatyki Wykład 12 Inżynieria oprogramowania [email protected] www.cs.put.poznan.pl/jnawrocki/wsb-wdi Copyright © Jerzy R. Nawrocki Syndrom LOOP Loop L ate (późno) Over budget (przekroczony budżet) O vertime (nadgodziny) Poor quality (kiepska jakość) J.Nawrocki, Inżynieria oprogramowania Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania Zasady skutecznego działania ? “.. 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, Inżynieria oprogramowania 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, Inżynieria oprogramowania Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania Kontrola jakości oprogramowania Artefakt Testowanie J.Nawrocki, Inżynieria oprogramowania Przeglądy Recenzja Prezentacja Formalny przegląd techniczny Inspekcja Audyt Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania Systematyczne podejście do planowania begin .. end 500 LOC J.Nawrocki, Inżynieria oprogramowania Szacowanie pracochłonności COCOMO: Effort = a Sizeb COCOMO 2.0: Effort = (ei) A SizeB Walston-Felix model: Effort = 5.2 Size0.91 Software equation (Putnam): Effort = (Size B0.333/P)3/ t4 J.Nawrocki, Inżynieria oprogramowania 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, Inżynieria oprogramowania Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania ISO 9001 Dobrzy Audytor J.Nawrocki, Inżynieria oprogramowania Źli ISO 9001 Dobrzy Audytor J.Nawrocki, Inżynieria oprogramowania Źli 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 J.Nawrocki, Inżynieria oprogramowania Główne części normy ISO 9001:2000 4 System zarządzania jakością (dokumentacja) 5 Odpowiedzialność kierownictwa ISO 9001:2000 6 Zarządzanie zasobami 7 Realizacja wyrobu 8 Pomiary, analiza i doskonalenie J.Nawrocki, Inżynieria oprogramowania Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania 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, Inżynieria oprogramowania Profil dojrzałości wg SEI 29.7% 9.5% 27.7% 27.7% 5.4% Początkowy Zdefiniowany Optymalizujący Zarządzany Zarządzany ilościowo J.Nawrocki, Inżynieria oprogramowania CMMI w układzie geograficznym Szwecja, Niemcy, Francja, Dania, .., Rosja, Białoruś Polska: Motorola Polska Software Center, Kraków J.Nawrocki, Inżynieria oprogramowania Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania Wymaganie .. .. jest to zdolność (capability) lub warunek, który system musi spełnić. J.Nawrocki, Inżynieria oprogramowania Wymagania .. .. specyfikacja tego, co ma być implementowane. Sommerville & Sawyer’97 J.Nawrocki, Inżynieria oprogramowania Przykładowy przypadek użycia Zarejestruj IO Aktor: Rejestrator IO Cel: Zarejestrować w systemie nową IO. Zdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariusz 1. Rejestrator IO: Wprowadza NIP lub REGON IO. 2. 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. ... J.Nawrocki, Inżynieria oprogramowania Specyfikacja wymagań Wymagania funkcjonalne Wymagania pozafunkcjonalne Interfejs użytkownika Scenariusze testów akceptacyjnych J.Nawrocki, Inżynieria oprogramowania Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania Historia PRINCE2 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, Inżynieria oprogramowania Główne źródła wiedzy 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, Inżynieria oprogramowania Certyfikaty PRINCE2 PRINCE2 Foundation (Podstawy) PRINCE2 Practitioner (Praktyk) J.Nawrocki, Inżynieria oprogramowania 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, Inżynieria oprogramowania 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, Inżynieria oprogramowania Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania Co to jest PSP? 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, Inżynieria oprogramowania Twórca PSP 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, Inżynieria oprogramowania Model PSP Poziomy: Rozwój cykliczny Wzorce projektowe Przeglądy kodu i proj. Planowanie zadań i harmon. Szacowanie rozmiaru + raport tst Stand. kodu + Pomiar rozm. + PPO Rejestry czasu i defektów J.Nawrocki, Inżynieria oprogramowania 3.Cykliczny 2.Jakości 1.Planowania 0.Bazowy Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania Co to jest TSP? 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, Inżynieria oprogramowania Role w TSP • Lider zespołu • Kierownik rozwoju • Kierownik planowania • Kierownik jakości • Kierownik wspomagania J.Nawrocki, Inżynieria oprogramowania Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania 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, Inżynieria oprogramowania 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, Inżynieria oprogramowania Genealogia RUP http://www3.software.ibm.com/ibmdl/pub/software/rational/web/whitepapers/2003/rup_bestpractices.pdf J.Nawrocki, Inżynieria oprogramowania Literatura nt. RUP Addison-Wesley, 2nd edition Addison-Wesley, 1st edition March 2000. (Amazon: $30) April 2003. (Amazon: $30) J.Nawrocki, Inżynieria oprogramowania Fazy w RUP Inception Elaboration Construction Transition Rozpoczęcie Dopracowanie Konstrukcja J.Nawrocki, Inżynieria oprogramowania Wdrożenie Plan wykładu Zasady skutecznego działania Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMMI Inżynieria wymagań Zarządzanie projektami i PRINCE2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania J.Nawrocki, Inżynieria oprogramowania 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, Inżynieria oprogramowania Programowanie Ekstremalne Programowanie Ekstremalne (XP) = lekka (zwinna) metodyka tworzenia oprogramowania „XP jest dzisiaj najważniejszym ruchem w IO." Tom DeMarco J.Nawrocki, Inżynieria oprogramowania Praktyki XP 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, Inżynieria oprogramowania Pytania? J.Nawrocki, Inżynieria oprogramowania 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, Inżynieria oprogramowania