PSP = Personal Software Process PSP

advertisement
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
Download