programų sistemų inžinerija

19
Programų sistemų inžinerija Saulius Ragaišis, VU MIF saulius.ragaisis@m a f.vu.lt 2010-09-22

Upload: clovis

Post on 05-Jan-2016

59 views

Category:

Documents


1 download

DESCRIPTION

Programų sistemų inžinerija. Saulius Ragaišis , VU MIF saulius.ragaisis@m a f.vu.lt 20 1 0- 09 - 22. Programinės įrangos krizė. Standish Group, Extreme CHAOS. The Standish Group International, Inc, 2001. (daugiau kaip 30.000 projektų ). Programų kūrimo proceso modeliavimas. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Programų sistemų inžinerija

Programų sistemų inžinerija

Saulius Ragaišis, VU [email protected]

2010-09-22

Page 2: Programų sistemų inžinerija

Programinės įrangos krizė

Standish Group, Extreme CHAOS. The Standish Group International, Inc, 2001.

(daugiau kaip 30.000 projektų )

16%

27%

26%

28%

31%

40%

28%

23%

53%

33%

46%

49%

1994

1996

1998

2000

Sėkmingi

Žlugę

Pažeisti

Page 3: Programų sistemų inžinerija

Programų kūrimo proceso modeliavimas

Programų inžinerijos institutas (Software Engineering Institute – SEI) prie Carnegie Melon universiteto, finansuojamas JAV gynybos departamento

Europos programų inžinerijos institutas (European Software Institute – ESI)

ISO 9000

CMM, CMMI

BOOTSTRAP

SPICE, ISO 15504-TR, ISO 15504 + ISO 12207

TickIT, ITIL, COBIT

Page 4: Programų sistemų inžinerija

Programų kūrimo proceso “ekonomika”

OrganizacijosCMM lygis

Trukmė (mėnesiais)

Pastangos(žmogausmėnesiais)

SistemosdefektųSkaičius

VidutinėKaina($M)

MinimaliKaina($M)

Maksimalikaina($M)

Lygis 1 30 600 61 5,5 1,8 100+

Lygis 2 18.5 143 12 1,3 0,96 1.7

Lygis 3 15 80 7 0,728 0,518 0,933

1.300 projektų statistiniai duomenys;dideli projektai, turintys apie 200.000 kodo eilučių. Kaštai buvo skaičiuojami pagal vieno žmogaus metinį įkainį 110.000 $.

Page 5: Programų sistemų inžinerija

Programų kūrimo proceso gerinimasRemiantis SEI sukaupta informacija, galima teigti, kad

organizacijoms, gerinančioms procesą pagal CMM, vidutinis laikas pasiekti aukštesnį brandos lygį yra toks:

22 mėnesiai perėjimui iš 1-o brandos lygio į 2-ą;19 mėnesių perėjimui iš 2-o brandos lygio į 3-ą;25 mėnesiai perėjimui iš 3-o brandos lygio į 4-ą;13 mėnesių perėjimui iš 4-o brandos lygio į 5-ą.

Nuo 1-o brandos lygio pasiekti aukščiausią tikėtinai prireiks > 6 metų.

Page 6: Programų sistemų inžinerija

Watts Humphrey, SEI darbai CMM (Capability Maturity Model) ...

TSP (Team Software Process)

PSP (Personal Software Process)

Page 7: Programų sistemų inžinerija

Programų kūrimo proceso modelių taikymo Lietuvoje problemos

Abstraktūs brandos modelių reikalavimų formulavimai (stengiantis išplėsti jų taikymo sritį), reikalaujantys daug papildomo darbo, bandant juos vėl „nuleisti“ į žemišką kalbą.

Skirtinga užsienio ir Lietuvos įmonių patirtis – Lietuvos įmonės dar negali pasigirti giliomis technologinėmis ir valdymo tradicijomis, dėl to brandos modelių terminologija ir reikalavimai yra joms sunkiai suprantami.

Palyginti didelė tyrimų ir bandymų kaina – dažna Lietuvos įmonė nesiryžta pradėti taikyti proceso gerinimo praktikų dėl per didelio darbų neapibrėžtumo – sudėtinga iš anksto pakankamai tiksliai įvertinti reikalingas darbų apimtis bei būsimą naudą.

Skirtingi modeliai įveda skirtingas sąvokas proceso apibrėžimui, vertinimui ir gerinimui atlikti, todėl tampa aktualus vieningos sąvokų sistemos apibrėžimas.

Page 8: Programų sistemų inžinerija

Programų kūrimo proceso modeliai

SW-CMM (Capability Maturity Model for Software) SE-CMM (Systems Engineering Capability Maturity Model)SA-CMM (Software Acquisition Capability Maturity Model)IPD-CMM (Integrated Product Development Capability Maturity Model)kt.

CMM (Capability Maturity Model) – Gebėjimų brandos modelis :

CMMI (Capability Maturity Model Integration):CMMI-DEV (CMMI for Development)

CMMI-ACQ (CMMI for Acquisition)

CMMI-SVC (CMMI for Services)

Šiuo metu versija 1.2.

Page 9: Programų sistemų inžinerija

Programų kūrimo proceso modeliai (2)

ISO/IEC 15504: Information technology – Software process assessment

SPICE (Software Process Improvement and Capability dEtermination) – Programų kūrimo proceso gerinimas ir gebėjimų nustatymas

Page 10: Programų sistemų inžinerija

Programų kūrimo proceso modelių architektūra

Pakopinė architektūra (pvz., SW-CMM, CMMI)

Tolydinė architektūra (pvz., SPICE, ISO/IEC 15504 , CMMI)

Page 11: Programų sistemų inžinerija

Pagrindinės sąvokosProgramų kūrimo procesas (Software Process): visuma veiklų, kurios vykdomos kuriant programinį produktą. /Visuminis procesas/

Vardinis procesas (Process): rinkinys programų kūrimo veiklų, susijusių pagal tikslus programinio produkto gyvavimo cikle.

Proceso sritis (Process Area): rinkinys programų kūrimo veiklų, sugrupuotų pagal jų prisidėjimą prie proceso gebėjimo didinimo.

Page 12: Programų sistemų inžinerija

Vardiniai procesai (ISO/IEC 15504)

Page 13: Programų sistemų inžinerija

Proceso sritys (pagal brandos lygius, SW-CMM)

Page 14: Programų sistemų inžinerija

Pagrindinės sąvokos (2)Gebėjimas (Process Capability): proceso charakteristika, nusakanti laukiamų rezultatų, kuriuos galima gauti taikant tą procesą, pasiskirstymą (diapazoną). Gebėjimas nusako galimybę (tikimybę), kad procesas įvykdys procesui keliamus tikslus.

Gebėjimo lygis (Capability Level): įvertis diskrečioje skalėje, nusakantis tam tikrą proceso gebėjimo pasiekimą. Praktiškai proceso gebėjimo lygis apibrėžiamas konstruktyviai, nurodant proceso indikatorius - veiklas, kurias atliekant sukuriama proceso aplinka, užtikrinanti proceso rezultatų stabilumą.

Page 15: Programų sistemų inžinerija

Pagrindinės sąvokos (3)Branda (Process maturity): proceso charakteristika, nusakanti, kiek procesas yra apibrėžtas, valdomas, matuojamas, kontroliuojamas ir nuolatos gerinamas.

Brandos lygis (Maturity Level): aiškiai apibrėžta pakopa proceso brandos evoliucijoje, nusakoma rinkiniu procesų, kurių tikslai turi būti įgyvendinami, kad būtų pasiektas tam tikras proceso gebėjimas.

Brandos models (Capability Maturity Model): Programų kūrimo proceso modelis, aprašantis esminius proceso elementus, pagal kuriuos matuojama proceso branda ir/arba vertinamas ir gerinamas proceso gebėjimas.

Page 16: Programų sistemų inžinerija

Proceso gebėjimo priklausomybė nuo brandos lygio

Page 17: Programų sistemų inžinerija

Pagrindinės sąvokos (4)Programų kūrimo proceso modelis, leidžiantis vertinti visuminio organizacijos proceso brandą, vadinamas pakopinės architektūros brandos modeliu, kadangi nustato stambius penkis brandos lygmenis – pakopas. Organizacija (jos programų kūrimo procesas) yra įvertinama tam tikru brandos lygiu.

Programų kūrimo proceso modelis, leidžiantis įvertinti kiekvieno vardinio proceso gebėjimą, vadinamas tolydinės architektūros brandos modeliu, kadangi leidžia įvertinti proceso gebėjimą detalesniame – vardinio proceso – lygmenyje. Šiuo atveju organizacijos įvertinimas yra vardinių procesų gebėjimų lygių profilis.

Page 18: Programų sistemų inžinerija

IšvadosPagrindinis proceso gerinimo tikslas yra padidinti jo gebėjimą.

Proceso gebėjimas ir branda yra skirtingų plotmių sąvokos, bet praktiškai abiem atvejais vertinimas paremtas tais pačiais principais – modelyje apibrėžtų proceso charakteristikų nustatymu.

Page 19: Programų sistemų inžinerija

Klausimai

?