Transcript ppt

Programų sistemų inžinerija
Saulius Ragaišis, VU MIF
[email protected]
2010-09-22
Programinės įrangos krizė
2000
28%
23%
1998
26%
28%
49%
46%
Sėkmingi
Žlugę
1996
1994
27%
16%
40%
31%
33%
53%
Standish Group, Extreme CHAOS.
The Standish Group International, Inc, 2001.
(daugiau kaip 30.000 projektų )
Pažeisti
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
Programų kūrimo proceso “ekonomika”
Organizacijos
CMM
lygis
Trukmė
(mėnesiais)
Pastangos
(žmogaus
mėnesiais)
Sistemos
defektų
Skaičius
Vidutinė
Kaina
($M)
Minimali
Kaina
($M)
Maksimali
kaina
($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 $.
Programų kūrimo proceso gerinimas
Remiantis SEI sukaupta informacija, galima teigti, kad organizacijoms,
gerinančioms procesą pagal CMM, vidutinis laikas pasiekti aukštesnį brandos
lygį yra toks:
22
19
25
13
mėnesiai perėjimui iš 1-o brandos lygio į 2-ą;
mėnesių perėjimui iš 2-o brandos lygio į 3-ą;
mėnesiai perėjimui iš 3-o brandos lygio į 4-ą;
mėnesių perėjimui iš 4-o brandos lygio į 5-ą.
Nuo 1-o brandos lygio pasiekti aukščiausią tikėtinai prireiks > 6 metų.
Watts Humphrey, SEI darbai
CMM (Capability Maturity Model) ...
TSP (Team Software Process)
PSP (Personal Software Process)
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.
Programų kūrimo proceso modeliai
CMM (Capability Maturity Model) –
Gebėjimų brandos modelis :
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.
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.
Programų kūrimo proceso modeliai (2)
SPICE (Software Process Improvement
and Capability dEtermination) –
Programų kūrimo proceso gerinimas
ir gebėjimų nustatymas
ISO/IEC 15504: Information technology –
Software process assessment
Programų kūrimo proceso modelių
architektūra
Pakopinė architektūra
(pvz., SW-CMM, CMMI)
Tolydinė architektūra
(pvz., SPICE, ISO/IEC 15504 , CMMI)
Pagrindinės sąvokos
Programų 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.
Vardiniai procesai
(ISO/IEC 15504)
Proceso sritys (pagal brandos lygius, SW-CMM)
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ą.
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.
Proceso gebėjimo priklausomybė nuo
brandos lygio
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.
Išvados
Pagrindinis 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.
Klausimai
?