programų sistemų inžinerija
DESCRIPTION
Programų sistemų inžinerija. Saulius Ragaišis , VU MIF [email protected]. Projektas PKP Branda. Projektas, laimėjęs Lietuvos valstybinio mokslo ir studijų fondo konkursą pagal programą "Aukštųjų technologijų plėtros programa“. - PowerPoint PPT PresentationTRANSCRIPT
Programų sistemų inžinerija
Saulius Ragaišis, VU [email protected]
Projektas PKP BrandaProjektas, laimėjęs Lietuvos valstybinio mokslo ir studijų fondo konkursą pagal programą "Aukštųjų technologijų plėtros programa“.
Programos tikslas – didinti Lietuvos pramonės tarptautinį konkurencingumą.
Projektų vertinimo kriterijai:- numatoma projekto ekonominė nauda, įtaka tos aukštųjų technologijų srities pažangai, gamybos apimčių ir eksporto augimo bei kitų rodiklių prasme;- ...
Projektas PKP Branda (2003-2005 m.)Pilnas pavadinimas: Brandaus programų kūrimo proceso įdiegimo metodikos ir instrumentinių priemonių sukūrimas.
Santrumpa: PKP Branda.
Vykdytojai: Vilniaus universitetas, Kauno technologijos universitetas, AB "Alna“, UAB "Sintagma“.
Pagrindinis projekto tikslas: sudaryti prielaidas Lietuvos informacinių technologijų įmonėms eksportuoti programinius produktus bei paslaugas, suteikiant joms metodines ir instrumentines priemones, padedančias vertinti, apibrėžti ir įdiegti brandų (kokybišką) programų kūrimo procesą, leisiantį kurti aukštesnės kokybės programinius produktus ir paslaugas ir kurį galima būtų sertifikuoti pagal tarptautiniu mastu pripažįstamus standartus, tokiu būdu skleidžiant informaciją užsienyje apie Lietuvos įmonių pasiektą kokybės lygį.
Pagrindiniai projekto rezultatai1. Metodiniai: programų kūrimo procesų modelis ir brandaus
programų kūrimo proceso įdiegimo metodika.
2. Technologiniai: sukurtos brandaus programų kūrimo proceso įdiegimo ir palaikymo instrumentinės priemonės.
3. Moksliniai: projekto moksliniai rezultatai paskelbti 10 straipsnių, padaryti 27 pranešimai mokslinėse konferencijose.
4. Sklaida: surengti 2 seminarų ciklai asociacijos “Infobalt” vykdomo projekto “Outsource 2 Lithuania” dalyviams.
Vykdant projektą, realiai įgyvendintas akademinių institucijų ir gamybinių įmonių bendradarbiavimas.
Projekto rezultatai viešai prieinami: www.mif.vu.lt/se/Branda/
Programų kūrimo proceso modelisProjekto PKP Branda vykdymo laikotarpiu įvyko esminė evoliucija programų
kūrimo proceso vertinimo ir gerinimo standartizacijoje: procesų gebėjimo vertinimui turi būti naudojamas dvidimensinis modelis, tenkinantis ISO/IEC 15504-2 reikalavimus procesų gebėjimo vertinimo modeliui. Pagrindinis reikalavimas naudojamam vertinimo modeliui yra gebėjimo dimensijoje apimti ištisinę sritį, pradedant pirmuoju lygiu, o procesų dimensijoje apimti bent vieną vertinamą procesą.
Projekto eigoje buvo sukurtos 3 programų kūrimo procesų modelio versijos.
Programų kūrimo procesų modelio PKP Branda versija 3 atitinka procesų dimensiją ISO/IEC 12207:2002 ir tenkina ISO/IEC 15504-2 reikalavimus procesų gebėjimo vertinimo modeliui (ji artima pavyzdiniam programų kūrimo proceso vertinimo modeliui
ISO/IEC 15504-5, kuris buvo išleistas vėliau).
Brandaus programų kūrimo proceso įdiegimo metodika
Brandaus programų kūrimo proceso įdiegimo metodika „Branda” siekia suderinti ir perimti teigiamus bruožus dviejų pagrindinių programų kūrimo proceso vertinimo ir gerinimo modelių:
CMM, CMMI pateikia standartinį programų kūrimo proceso gerinimo kelią, tenkinantį 80% įmonių, ir apibrėžia pagrindinius etapus tame gerinimo kelyje, vadinamus brandos lygiais. Brandos lygiai turi labai didelę marketinginę vertę, dėl kurios įmonės netgi dalinai aukoja pagrindinį tikslą – proceso gerinimą.
SPICE, ISO/IEC 15504 įgalina individualizuoti ir fiksuoti įmonės programų kūrimo proceso vertinimo ir gerinimo veiklą, nustatyti programų kūrimo vardinių procesų gebėjimo detalų profilį ir detalius gerinimo žingsnius. Tačiau modelis nepateikia įmonės proceso gerinimo gairių.
CMM, CMMISPICE, ISO/IEC 15504
Situacija Lietuvoje
Daugumos Lietuvos informacinių technologijų įmonių programų kūrimo procesas yra nebrandus, chaotiškas ir neprognozuojamas, vykdomi projektai nuolatos slegiami artėjančių terminų...
„Aksioma”
Vienintelis realus brandaus programų kūrimo proceso diegimo kelias yra nuolatinis įmonės proceso gerinimas.
Kokybės sudedamosios dalys
TechnologijosProcesas
Žmonės
Proceso gerinimo pagrindiniai principai
• Didieji programų kūrimo proceso pakeitimai turi prasidėti nuo aukščiausio lygmens vadovybės
• Visi turi būti įtraukti
• Efektyvūs pakeitimai reikalauja tikslų ir esamo proceso žinojimo
• Pakeitimai turi būti nuolatiniai
• Proceso pakeitimai nebus išlaikyti be nuolatinių pastangų
• Programų proceso gerinimui reikalingos investicijos
Klaidingos nuostatos apie procesą
• Projektas pradedamas, kai žinomi tikslūs reikalavimai
• Jei praėjo testavimą, tai nėra klaidų
• Programų kokybės negalima išmatuoti
• Problemų prigimtis – techninė
• Reikia geresnių žmonių
• Programų kūrimo valdymas yra kitoks
Pasipriešinimo proceso keitimui priežastys
• Profesionalai mano, kad problemos yra techniškai išsprendžiamos
• Vadybininkai nesupranta problemų esmės ir mano, kad problemos yra techninės
• Nusistatymas prieš taisykles, ypač „svetimas”
Proceso keitimo strategija• „Atšildymas”
- Čempionai, Sponsoriai, Agentai
• Pakeitimas
- Planavimas, Įgyvendinimas, Paskleidimas
• „Užšaldymas”
- Užtikrinti, kad pasiekimai bus išlaikyti organizacijoje
Programų kūrimo proceso gerinimo schema
Nagrinėti organizacijosverslo tikslus
Paskleisti proceso
pakeitimus
Įgyvendinti gerinimo veiksmus
Sudaryti veiksmų
planą
Patvirtinti proceso
pakeitimus
Stebėti proceso
vykdymą
Inicijuoti proceso gerinimą
Atlikti proceso
vertinimą
Pagrindiniai proceso gerinimo žingsniai1. Poreikių ir tikslų identifikavimas (Examine Organization’s Needs)
2. Proceso gerinimo inicijavimas (Initiate Process Improvement)
3. Proceso vertinimas (Perform Process Assessment)
4. Vertinimo rezultatų analizė ir veiksmų plano sudarymas (Analyze Results and Derive Action Plan)
5. Gerinimo veiksmų įgyvendinimas (Implement Improvement Actions)
6. Proceso pakeitimų analizė (Confirm the Improvement)
7. Pagerinto proceso įtvirtinimas (Sustain Improvement Gain)
8. Proceso vykdymo stebėjimas (Monitor Performance)
Poreikių ir tikslų identifikavimasorganizacijos poreikių ir verslo tikslų analizė
identifikavimas proceso gerinimo poreikio ir ko bus siekiama
galimos proceso gerinimo priežastys:- užsakovų nepasitenkinimas dėl projektų vėlavimo- kokybės problemos dėl defektų pateiktuose projektuose- per dideli kaštai- noras pagerinti resursų naudojimąir kt.
šis žingsnis kiekvienoje gerinimo ciklo iteracijoje nebūtinas, bet organizacijos poreikiai ir verslo tikslai gali keistis, todėl laikas nuo laiko jie turėtų būti peržiūrėti ir prireikus atnaujinti
Proceso gerinimo inicijavimasatskiras projektas, kurio tikslas yra atlikti proceso gerinimo ciklo iteraciją; projekto įgyvendinimui būtina:- paskirti reikalingus resursus- sudaryti projekto planąatliekant proceso gerinimą pirmą kartą: • susipažinimas su naudojamu proceso modeliu;
• pradinis einamojo organizacijos proceso apibrėžimas – tipinių organizacijos projektų gyvavimo ciklo modelis, nurodant: - vykdomus procesus, jų bazines praktikas, - naudojamus ir sukuriamus darbo produktus bei jų charakteristikas (aprašymus)
Proceso vertinimasVertinimo apimties nustatymas:
- kam bus taikoma (visai organizacijai, padaliniui)
- kokie procesai ir iki kurio gebėjimo lygio bus vertinami
Lietuvoje yra aktualu visų pirma gerinti programinės įrangos gyvavimo ciklo pagrindinius (inžinerinius) procesus.
Kad programinės įrangos kūrimo inžineriniai procesai galėtų pasiekti antrą gebėjimo lygį, yra būtina, kad jų atlikimą paremtų organizacinių procesų ir pagalbinių procesų kategorijų procesai.
Minimalus „bendras” vertinamų procesų rinkinys
Kategorija Grupė ID Procesas
Pagrindiniai gyvavimo ciklo procesai Inžineriniai procesai ENG.1. Reikalavimų išsiaiškinimas
ENG.4. Reikalavimų programinei įrangai analizė
ENG.5. Programinės įrangos projektavimas
ENG.6. Programinės įrangos konstravimas
ENG.7. Programinės įrangos integravimas
ENG.8. Programinės įrangos testavimas
ENG.11. Programinės įrangos instaliavimas
ENG.12. Programinės įrangos priežiūra
Pagalbiniai gyvavimo ciklo procesai Konfigūracijos valdymo procesai SUP.8 Konfigūracijos valdymas
SUP.9 Problemų sprendimas
Kokybės užtikrinimo procesai SUP.1. Kokybės užtikrinimas
Organizaciniai gyvavimo ciklo procesai Valdymo procesai MAN.3. Projekto valdymas
Neįtraukti inžineriniai procesai: ENG.2 Sistemos reikalavimų analizė ENG.3 Sistemos architektūros projektavimas ENG.9 Sistemos integravimas ENG.10 Sistemos testavimas
Naudojama vertinimo modelio gebėjimo dimensija
Proceso gebėjimo lygis
Gebėjimo lygio pavadinimas
ID Atributas
Lygis 1 Vykdomas procesas PA 1.1. Proceso atlikimo atributas
Lygis 2 Valdomas procesas PA 2.1. Proceso atlikimo valdymo atributas
PA 2.2. Darbo produktų valdymo atributas
Daugumos Lietuvos IT įmonių tiksliniu procesų gebėjimo profiliu artimiausių 2-3 metų laikotarpiui yra: inžinerinių procesų antras gebėjimo lygis ir pagalbinių bei organizacinių procesų pirmas gebėjimo lygis.
Procesai susiję su antro lygio CMMI proceso sritimis
ID Procesas ID Procesas
ENG.1 Reikalavimų išsiaiškinimas SUP.1 Kokybės užtikrinimas
ENG.4 Programinės įrangos reikalavimų analizė SUP.2 Verifikavimas
ENG.5 Programinės įrangos projektavimas SUP.3 Validavimas
ENG.6 Programinės įrangos projekto realizavimas SUP.4 Jungtinės peržiūros
ENG.7 Programinės įrangos integravimas SUP.5 Auditas
ENG.8 Programinės įrangos testavimas SUP.7 Dokumentavimas
ENG.11 Programinės įrangos instaliavimas SUP.8 Konfigūracijos valdymas
ENG.12 Programinės įrangos ir sistemos priežiūra SUP.9 Problemų sprendimo valdymas
MAN.3 Projekto valdymas SUP.10 Keitimų poreikio valdymas
MAN.4 Kokybės valdymas
MAN.5 Rizikos valdymas
MAN.6 Matavimai
Vertinimo rezultatų analizė ir veiksmų plano sudarymas
Vertinimo rezultatas – procesų gebėjimo profilis.
Pagal organizacijos poreikius ir verslo tikslus bei faktinį procesų gebėjimo profilį sudaromas tikslinis procesų gebėjimo profilis, nurodant reikiamus procesus ir siekiamas jų gebėjimo atributų reikšmes.
Veiksmų plano sudarymo pagrindiniai principai: - siekiant proceso 1-o gebėjimo lygio, remiamasi proceso modelyje šiam procesui apibrėžtomis bazinėmis praktikomis ir darbo produktais - siekiant 2-o ir aukštesnio gebėjimo lygio, remiamasi proceso modelyje su siekiamo gebėjimo lygio atributais asocijuotais procesais
Veiksmų plane nurodoma ne tik gerinimo veiksmų seka, bet ir apibrėžiamos proceso efektyvumo metrikos nustatytų gerinimo tikslų pasiekimui matuoti bei siekiami atitinkamų metrikų įvertinimai.
Gerinimo veiksmų įgyvendinimas
vadovybės pritarimas veiksmų plano įgyvendinimui
pakeitimai turi būti palaipsniniai, evoliuciniai
gali būti inicijuoti keli lygiagretūs proceso gerinimo projektai
taikymas ne kritiniuose projektuose
pakeisto proceso efektyvumo matavimai
turi būti „renkamos” kylančios problemos
vykdymas kaip „normalaus” projekto (pagal planą)
Proceso pakeitimų analizė
Pakeisto programų kūrimo proceso efektyvumo analizė.
Analizės metu nustatoma, ar proceso gerinimo iteracijos tikslai pasiekti (t.y. ar atitinkami efektyvumo metrikų įvertinimai atitinka veiksmų plane nustatytus tų metrikų įvertinimus), įvertintas pašalinis poveikis.
Jei gerinimo tikslai pasiekti nebuvo, tai analizuojamos priežastys, atliekamas proceso vertinimas, nustatomi nauji, gal būt mažesni (ne tokie ambicingi) gerinimo tikslai, ir sudaromas naujas veiksmų planas, tiems tikslams pasiekti.
Pagerinto proceso įtvirtinimas
Jei gerinimo veiksmai buvo sėkmingai įdiegti ir nustatyti gerinimo tikslai pasiekti, tai turi būti atliekamos įdiegtų gerinimo veiksmų įtvirtinimo veiklos, kurios užtikrintų jog pasiektas proceso lygis nebūtų prarastas ir gerinimo veiksmai „prigis” organizacijoje:
naujo proceso institucionalizavimas.
Proceso vykdymo stebėjimas
Programų kūrimo proceso vykdymas turi būti nuolat stebimas, jo efektyvumas matuojamas, keliami nauji gerinimo tikslai ir inicijuojami nauji proceso gerinimo projektai.
Turi būti surinkta patirtis iš proceso gerinimo projekto dalyvių ir asmenų, kuriuos palietė proceso pakeitimai.
Metodikos apibendrinimasSukurta brandaus programų kūrimo proceso įdiegimo
metodika: • Suderinama su ISO/IEC 15504:2003-2005
• Suderinama su ISO/IEC 12207:2002 amd1 ir ISO/IEC 12207:2004 amd2
• Išbandyta įmonėse AB „Alna” ir UAB „Sintagma”
• Sudaryti tipiniai Lietuvos IT įmonių projektų vykdymo modeliai
• Nustatyta atitinkamybė tarp CMMI brandos lygių ir ISO/IEC 15504 procesų gebėjimo profilių
Brandaus programų kūrimo proceso įdiegimo ir palaikymo instrumentinės priemonės
PKP Branda projekto metu sukurtos programų kūrimo proceso vertinimo ir gerinimo palaikymo instrumentinės priemonės.
Jas galima išbandyti: proin.ktu.lt/pkp/pkbm/
Instrumentinės priemonės turi apimti:- Modelio medžiagos pateikimo priemones;- Organizacijos proceso apibrėžimo ir pavaizdavimo
priemones;- Proceso nuolatinio matavimo duomenų surinkimo priemones;- Proceso vertinimo priemones;- Apsikeitimo proceso vertinimo duomenimis priemones;- Apmokymo priemones.
Pradinis sistemos puslapis
Projekto informacijaProjekto informacija
Kalbos pasirinkimasKalbos pasirinkimas
Svečiui prieinama informacija
Svečiui prieinama informacija
Atverti prisijungimo puslapį
Atverti prisijungimo puslapį
Sistemos architektūra
Puslapio modelio medis iliustracija
Puslapio vertinimas iliustracija
Trečias žingsnis: atliekamas greitasis vertinimas įrašant
reikšmes procesų atributams
Trečias žingsnis: atliekamas greitasis vertinimas įrašant
reikšmes procesų atributams
Paspaudus mygtuką Atnaujinti išsaugomi daryti keitimai
Paspaudus mygtuką Atnaujinti išsaugomi daryti keitimai
Esminis funkcionalumasNaudodamiesi instrumentinėmis priemonėmis naudotojai gali:1. Pasirinktoje vietoje ir tinkamu laiku įvesti į sistemą vertinimų duomenis.2. Naudotis nutolusia modelio informacijos teikimo paslauga, gaunant
aktualią modelio medžiagą, atnaujinamą modelio kūrėjų.3. Pagal įvestus vertinimų duomenis atlikti analizę, esant poreikiui analizuoti
skirtingus vertinimus.4. Lanksčiai kurti ataskaitas, įtraukiant pasirenkamus vertinimų
komponentus ir išsaugoti jas ofiso programų formatais.5. Kurti savo programinę aplinką, naudojant išplėtimo API.
Sukurtos brandaus programų kūrimo proceso diegimo ir palaikymo instrumentinės priemonės turi pranašumų prieš žinomus komercinius ir atvirojo kodo analogus, kurios gali būti išvystytos į konkurencingą programų kūrimo industrijoje įrankį.
?