programų sistemų inžinerija

34
Programų sistemų inžinerija Saulius Ragaišis, VU MIF [email protected]

Upload: kawena

Post on 20-Jan-2016

58 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Programų sistemų inžinerija

Programų sistemų inžinerija

Saulius Ragaišis, VU [email protected]

Page 2: Programų sistemų inžinerija

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

Page 3: Programų sistemų inžinerija

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

Page 4: Programų sistemų inžinerija

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/

Page 5: Programų sistemų inžinerija

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

Page 6: Programų sistemų inžinerija

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

Page 7: Programų sistemų inžinerija

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

Page 8: Programų sistemų inžinerija

„Aksioma”

Vienintelis realus brandaus programų kūrimo proceso diegimo kelias yra nuolatinis įmonės proceso gerinimas.

Page 9: Programų sistemų inžinerija

Kokybės sudedamosios dalys

TechnologijosProcesas

Žmonės

Page 10: Programų sistemų inžinerija

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

Page 11: Programų sistemų inžinerija

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

Page 12: Programų sistemų inžinerija

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”

Page 13: Programų sistemų inžinerija

Proceso keitimo strategija• „Atšildymas”

- Čempionai, Sponsoriai, Agentai

• Pakeitimas

- Planavimas, Įgyvendinimas, Paskleidimas

• „Užšaldymas”

- Užtikrinti, kad pasiekimai bus išlaikyti organizacijoje

Page 14: Programų sistemų inžinerija

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ą

Page 15: Programų sistemų inžinerija

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)

Page 16: Programų sistemų inžinerija

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

Page 17: Programų sistemų inžinerija

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)

Page 18: Programų sistemų inžinerija

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.

Page 19: Programų sistemų inžinerija

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

Page 20: Programų sistemų inžinerija

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.

Page 21: Programų sistemų inžinerija

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

Page 22: Programų sistemų inžinerija

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.

Page 23: Programų sistemų inžinerija

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ą)

Page 24: Programų sistemų inžinerija

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.

Page 25: Programų sistemų inžinerija

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.

Page 26: Programų sistemų inžinerija

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.

Page 27: Programų sistemų inžinerija

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ų

Page 28: Programų sistemų inžinerija

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.

Page 29: Programų sistemų inžinerija

Pradinis sistemos puslapis

Projekto informacijaProjekto informacija

Kalbos pasirinkimasKalbos pasirinkimas

Svečiui prieinama informacija

Svečiui prieinama informacija

Atverti prisijungimo puslapį

Atverti prisijungimo puslapį

Page 30: Programų sistemų inžinerija

Sistemos architektūra

Page 31: Programų sistemų inžinerija

Puslapio modelio medis iliustracija

Page 32: Programų sistemų inžinerija

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

Page 33: Programų sistemų inžinerija

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

Page 34: Programų sistemų inžinerija

?