Upload
holly-gilbert
View
35
Download
0
Embed Size (px)
DESCRIPTION
Wstęp do informatyki Wykład 12. Inżynieria oprogramowania. [email protected] 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. - PowerPoint PPT Presentation
Citation preview
Copyright © Jerzy R. Nawrocki
Inżynieria oprogramowaniaInżynieria oprogramowania
[email protected]/jnawrocki/wsb-wdi
Wstęp do informatykiWykład 12
J.Nawrocki, Inżynieria oprogramowania
Syndrom LOOP
L
O
O
P
ate (późno)
oor quality (kiepska jakość)
ver budget (przekroczony budżet)
vertime (nadgodziny)
Loop
J.Nawrocki, Inżynieria oprogramowania
Plan wykładu
Zasady skutecznego działaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne 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
Bądź proaktywny Bądź proaktywny
Zaczynaj mając koniec na względzieZaczynaj mając koniec na względzie
Aby rzeczy pierwsze były pierwszeAby rzeczy pierwsze były pierwsze
Myśl o obopólnej korzyściMyśl o obopólnej korzyści
Najpierw staraj się zrozumiećNajpierw staraj się zrozumieć
Dbaj o synergięDbaj o synergię
Ostrz piłęOstrz piłę
J.Nawrocki, Inżynieria oprogramowania
Plan wykładu
Zasady skutecznego działaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne metodyki programowania
J.Nawrocki, Inżynieria oprogramowania
Kontrola jakości oprogramowania
Testowanie
Artefakt
PrzeglądyRecenzjaPrezentacjaFormalny przegląd technicznyInspekcjaAudyt
J.Nawrocki, Inżynieria oprogramowania
Plan wykładu
Zasady skutecznego działaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne 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
Rand Corporation, Boehm’81
Kilku ekspertów indywidualnie szacuje nakład (rozmiar).
Stosując proces delficki dochodzi się do konsensusu.
PytiaPytia
J.Nawrocki, Inżynieria oprogramowania
Plan wykładu
Zasady skutecznego działaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne metodyki programowania
J.Nawrocki, Inżynieria oprogramowania
Audytor
Dobrzy
ISO 9001
Kryte-ria
Źli
J.Nawrocki, Inżynieria oprogramowania
Audytor
Dobrzy
ISO 9001
Kryte-ria
Źli
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
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łaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne metodyki programowania
J.Nawrocki, Inżynieria oprogramowania
CMM: Capability Maturity Model
1. Początkowy
2. Zarządzany (powtarzalny)
3. Zdefiniowany
4. Zarządzany ilościowo
5. Optymalizujący
Organizacje programistyczneSEI, Pittsburg, USA
1989-1993
J.Nawrocki, Inżynieria oprogramowania
Profil dojrzałości wg SEI
PoczątkowyZarządzany
ZdefiniowanyZarządzany
ilościowo
Optymalizujący
9.5%
29.7% 27.7%
5.4%
27.7%
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łaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne 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 IOZarejestruj IOAktorAktor: Rejestrator IOCelCel: Zarejestrować w systemie nową IO.ZdarzenieZdarzenie: Rejestrator otrzymał wniosek papierowy. Główny scenariuszGłówny scenariusz1.1. Rejestrator IORejestrator IO: Wprowadza NIP lub REGON IO.2.2. SystemSystem: Sprawdza poprawność wprowadzonego NIP/REGON.3.3. RejestratorRejestrator: Wprowadza pozostałe dane identyfikacyjne IO.4.4. SystemSystem: Weryfikuje poprawność składniową wprowadzonych
danych.5.5. RejestratorRejestrator: Wprowadza dane dotyczące jednostek IO.. . .
J.Nawrocki, Inżynieria oprogramowania
Specyfikacja wymagań
Wymagania funkcjonalneWymagania pozafunkcjonalneInterfejs użytkownikaScenariusze testów
akceptacyjnych
J.Nawrocki, Inżynieria oprogramowania
Plan wykładu
Zasady skutecznego działaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne metodyki programowania
J.Nawrocki, Inżynieria oprogramowania
Historia PRINCE2
PRINCE = PRojects IN Controlled EnvironmentsCCTA = 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
Managing Successful Projects Managing Successful Projects with PRINCE2with PRINCE2
Metodyka zarządzania przedsięwzięciamiGłówny aktor: kierownik przedsięwzięciahttp://www.ccta.gov.uk/prince/OGC = Office of Goverment Commerce
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łaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne metodyki programowania
J.Nawrocki, Inżynieria oprogramowania
Co to jest PSP?
PSP = Personal Software Process
PSP: samodoskonaleniePSP: 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
Rejestry czasu i defektówRejestry czasu i defektów
Stand. kodu Stand. kodu ++ Pomiar rozm. Pomiar rozm. ++ PPPOPO 0.Bazowy
Szacowanie rozmiaru + raport tstSzacowanie rozmiaru + raport tst
Planowanie zadań i harmon.Planowanie zadań i harmon. 1.Planowania
Poziomy:Poziomy:
Przeglądy kodu i proj.Przeglądy kodu i proj. Wzorce projektoweWzorce projektowe 2.Jakości
Rozwój cyklicznyRozwój cykliczny3.Cykliczny
J.Nawrocki, Inżynieria oprogramowania
Plan wykładu
Zasady skutecznego działaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne metodyki programowania
J.Nawrocki, Inżynieria oprogramowania
Co to jest TSP?
TSP = Team Software ProcessTSPi: 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łaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne 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
ElaborationElaboration
DopracowanieDopracowanie
Construction
Konstrukcja
Transition
Wdrożenie
J.Nawrocki, Inżynieria oprogramowania
Plan wykładu
Zasady skutecznego działaniaKontrola jakości oprogramowaniaSzacowanie rozmiaru i pracochłonnościStandardy serii ISO 9000Modele CMMIInżynieria wymagańZarządzanie projektami i PRINCE2Personal Software ProcessTeam Software ProcessRational Unified ProcessZwinne metodyki programowania
J.Nawrocki, Inżynieria oprogramowania
Manifest zwinności
• Jednostki i interakcje niż procesy i narzędzia
Ważniejsze:
• Działające oprogramowanie niż obszerna dokumentacja
• Współpraca klienta niż negocjacja kontraktu
• Nadążanie za zmianamiNadążanie za zmianami niż trzymanie się planu niż trzymanie się planu
J.Nawrocki, Inżynieria oprogramowania
Programowanie Ekstremalne
Tom DeMarcoTom DeMarco
„XP jest dzisiaj najważniejszym ruchem w IO."
Programowanie Ekstremalne (XP)Programowanie Ekstremalne (XP) = =
lekka (zwinna)lekka (zwinna)
metodyka tworzenia oprogramowaniametodyka tworzenia oprogramowania
J.Nawrocki, Inżynieria oprogramowania
Praktyki XP
Wybrane praktykiWybrane praktyki XP XP: :
• Klient na miejscuKlient na miejscu
• Krótkie przyrosty i wydaniaKrótkie przyrosty i wydania
• Najpierw przypadki testowe potem kodNajpierw przypadki testowe potem kod
• Automatyzacja wykonywania testówAutomatyzacja wykonywania testów
• Programowanie paramiProgramowanie parami
• Dokumentacja = Przypadki testowe + Dokumentacja = Przypadki testowe + kodkod
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ć?