500 likes | 637 Views
Wstęp do informatyki Wykład 12. Inżynieria oprogramowania. Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/wsb-wdi. Syndrom LOOP. Loop. ate ( późno ). L O O P. ver budget ( przekroczony budżet ). vertime ( nadgodziny ). oor quality ( kiepska jakość ). Plan wykładu.
E N D
Wstęp do informatyki Wykład 12 Inżynieria oprogramowania Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/wsb-wdi
Syndrom LOOP Loop ate (późno) L O O P ver budget (przekroczony budżet) vertime (nadgodziny) oor 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 Przeglądy Recenzja Prezentacja Formalny przegląd techniczny Inspekcja Audyt IEEE Std. 1028 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
Systematyczne podejście do planowania 13 May Szacowanie harmonogramu Szacowanie pracochłonności begin .. end 500 LOC Szacowanie rozmiaru 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 Źli Kryte- ria Dobrzy Audytor J.Nawrocki, Inżynieria oprogramowania
ISO 9001 Źli Kryte- ria Dobrzy Audytor J.Nawrocki, Inżynieria oprogramowania
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, Inżynieria oprogramowania
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, 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% 27.7% 27.7% 9.5% 5.4% Początkowy Zdefiniowany Optymalizujący Zarządzany ilościowo Zarządzany 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 • 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, Inżynieria oprogramowania
Specyfikacja wymagań • Wymagania funkcjonalne • Wymagania pozafunkcjonalne • Interfejs użytkownika • Scenariusze testów akceptacyjnych IEEE Std. 830 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 INControlled 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 3.Cykliczny Rozwój cykliczny Wzorce projektowe 2.Jakości Przeglądy kodu i proj. Planowanie zadań i harmon. 1.Planowania Szacowanie rozmiaru + raport tst PSP Poziomy: Stand. kodu + Pomiar rozm. +PPO 0.Bazowy Rejestry czasu i defektó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
Co to jest TSP? • TSP = TeamSoftware 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 March 2000. (Amazon: $30) Addison-Wesley, 1st edition April 2003. (Amazon: $30) J.Nawrocki, Inżynieria oprogramowania
Fazy w RUP Inception Rozpoczęcie Elaboration Dopracowanie Construction Konstrukcja Transition Wdrożenie 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
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 Tom DeMarco „XP jest dzisiaj najważniejszym ruchem w IO." 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