190 likes | 424 Views
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.
E N D
Programų sistemų inžinerija Saulius Ragaišis, VU MIF saulius.ragaisis@maf.vu.lt 2010-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 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” 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 mėnesiai perėjimuiiš 1-o brandos lygio į 2-ą; • 19 mėnesių perėjimui iš 2-o brandos lygio į 3-ą; • 25 mėnesiai perėjimuiiš 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ų.
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 (ProcessArea): rinkinys programų kūrimo veiklų, sugrupuotų pagal jųprisidėjimą prie proceso gebėjimo didinimo.
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.
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.