50
Copyright © Jerzy R. Nawrocki Inżynieria oprogramowania [email protected] www.cs.put.poznan.pl/jnawrocki/wsb-wdi Wstęp do informatyki Wykład 12

Inżynieria oprogramowania

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

Page 1: Inżynieria oprogramowania

Copyright © Jerzy R. Nawrocki

Inżynieria oprogramowaniaInżynieria oprogramowania

[email protected]/jnawrocki/wsb-wdi

Wstęp do informatykiWykład 12

Page 2: Inżynieria oprogramowania

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

Page 3: Inżynieria oprogramowania

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

Page 4: Inżynieria oprogramowania

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ą ..”

??

Page 5: Inżynieria oprogramowania

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łę

Page 6: Inżynieria oprogramowania

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

Page 7: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Kontrola jakości oprogramowania

Testowanie

Artefakt

PrzeglądyRecenzjaPrezentacjaFormalny przegląd technicznyInspekcjaAudyt

Page 8: Inżynieria oprogramowania

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

Page 9: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Systematyczne podejście do planowania

begin .. end

500 LOC

Page 10: Inżynieria oprogramowania

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

Page 11: Inżynieria oprogramowania

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

Page 12: Inżynieria oprogramowania

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

Page 13: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Audytor

Dobrzy

ISO 9001

Kryte-ria

Źli

Page 14: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Audytor

Dobrzy

ISO 9001

Kryte-ria

Źli

Page 15: Inżynieria oprogramowania

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

Page 16: Inżynieria oprogramowania

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

Page 17: Inżynieria oprogramowania

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

Page 18: Inżynieria oprogramowania

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

Page 19: Inżynieria oprogramowania

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%

Page 20: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

CMMI w układzie geograficznym

Szwecja, Niemcy, Francja, Dania, .., Rosja, BiałoruśPolska: Motorola Polska Software Center, Kraków

Page 21: Inżynieria oprogramowania

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

Page 22: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Wymaganie ..

.. jest to zdolność (capability) lub warunek, który system musi spełnić.

Page 23: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Wymagania ..

.. specyfikacja tego, co ma być implementowane.

Sommerville & Sawyer’97

Page 24: Inżynieria oprogramowania

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.. . .

Page 25: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Specyfikacja wymagań

Wymagania funkcjonalneWymagania pozafunkcjonalneInterfejs użytkownikaScenariusze testów

akceptacyjnych

Page 26: Inżynieria oprogramowania

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

Page 27: Inżynieria oprogramowania

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

Page 28: Inżynieria oprogramowania

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

Page 29: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Certyfikaty PRINCE2

PRINCE2 Foundation (Podstawy)

PRINCE2 Practitioner (Praktyk)

Page 30: Inżynieria oprogramowania

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

Page 31: Inżynieria oprogramowania

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

Page 32: Inżynieria oprogramowania

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

Page 33: Inżynieria oprogramowania

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

Page 34: Inżynieria oprogramowania

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

Page 35: Inżynieria oprogramowania

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

Page 36: Inżynieria oprogramowania

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

Page 37: Inżynieria oprogramowania

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

Page 38: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Role w TSP

• Lider zespołu

• Kierownik rozwoju

• Kierownik planowania

• Kierownik jakości

• Kierownik wspomagania

Page 39: Inżynieria oprogramowania

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

Page 40: Inżynieria oprogramowania

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

Page 41: Inżynieria oprogramowania

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

Page 42: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Genealogia RUP

http://www3.software.ibm.com/ibmdl/pub/software/rational/web/whitepapers/2003/rup_bestpractices.pdf

Page 43: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Literatura nt. RUP

Addison-Wesley, 2nd edition

March 2000. (Amazon: $30)

Addison-Wesley, 1st edition

April 2003. (Amazon: $30)

Page 44: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Fazy w RUP

Inception

Rozpoczęcie

ElaborationElaboration

DopracowanieDopracowanie

Construction

Konstrukcja

Transition

Wdrożenie

Page 45: Inżynieria oprogramowania

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

Page 46: Inżynieria oprogramowania

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

Page 47: Inżynieria oprogramowania

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

Page 48: Inżynieria 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

Page 49: Inżynieria oprogramowania

J.Nawrocki, Inżynieria oprogramowania

Pytania?

Page 50: Inżynieria oprogramowania

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ć?