Strokovne iiazniavr Primerjava modelov kakovosti iso m sei cmm Ivan Rozman. Romana Vajde Horvat, Jozsef Gyorkos Tehniika fakulteta Maribor, Smetanova 17, 62000 MARIBOR Povzetek V članku sta predstavljena dva izmed najbolj znanih modelov kakovosti, ki se nanašata na proces razvoja programske opreme. To sta; standard ISO 9001 oziroma smernice ISO 9000-3, ki predstavlja napotke za uporabo standarda ISO 9001 za področje razvoja programske opreme ter zrelostni model (Capability Maturity Model - CMM). V članku je opisana primerjava obeh modelov ter dobljeni rezultati. Rezultati primerjave, strnjeni v zaključnem poglavju, nam lahko dajejo veliko oporo pri definiranju metode za izboljšanje softverskega procesa v posamezni organizaciji. Abstract in the paper two well-known quality models of software developemnt process have been presented, namely: ISO 9001 standard viz. guidelines ISO 9000-3, representing instructions for the use of the standard ISO 90001 for software development, and the Capability Maturity Model - CMM. The comparison of both models and its results are described, which can offer considerable support at defining the improvement method for software processing in organisations. 1. UVOD Izdelava programske opreme postaja vse bolj podobna klasični industriji z značilnostjo masovne produkcije. To Je vezano na izpolnjevanje lastnosti, kot so: kontinuiteta produkcije, ponovna uporabnost komponent ter dobra organizaciji! menedžmenta (i). Vse te zahteve hkrati izražajo nenehne potrebe po izboljševanju že obstoječih dosežkov, oziroma po razvoju ter vključevanju novih znanstvenih spoznanj tako v razvoj programske kot tudi strojne opreme. Razvijajo se vse kompleksnejši programi, zato postaja razvoj le-teh vse težje obvladljiv. Skupaj z napredovanjem tehnologije naraščajo tudi zahteve, povezane s kakovostjo končnih izdelkov. Za izpolnitev vseli zgoraj omenjenih zahtev sta potrebna mnogo obsežnejša usposobljenost in znanje kot je bilo zahtevano v zlatih časih "mita o super programerjih" (2). Takrat je bilo povsem običajno, da je programer obvladoval vse aktivnosti v življenjskem ciklu programske opreme. Vsekakor je postala izdelava sodobne programske opreme tako obširen proces, da je nujno sodelovanje strokovnjakov z različnih področij. Prav zato je toliko bolj pomembno, da so aktivnosti, naloge in organiziranost posameznih skupin natančno določene. Ta problematika je predmet različnih raziskav, ki se odvijajo na področju procesa razvoja informacijskih sistemov (Information System Development Process) in Upravljanja kakovosti procesa razvoja programske opreme (Software Process Quality Management) (3,4,5,6). V članku bosta predstavljena dva najbolj znana modela kakovosti za področje razvoja, dobave in vzdrževanja programske opreme: standard ISO 9001 in SEI CMM (Capabil- ity Maturity Model, ki ga je ra/.vi! Software Engineering Institute). Standard ISO se največ uporablja v evropskih državah, medtem ko je S lil CMM razširjen predvsem v ZDA. Zato je razumljivo, da v organizacijah, ki želijo biti konkurenčne na obeh trgih, obstaja interes za primerjavo obeli modelov, oziroma celo težnje za njuno združitev v en model kakovosti. Organizacije, ki so prevzele določen model, želijo vedeti, kaj to pomeni v smislu zahtev drugega modela. Nekaj poročil o tovrstnih raziskavah in rezultatih je že možno zaslediti v literaturi (10). Primerjava obeh modelov kakor tudi njuna združitev je predmet raziskovalnega dela projekta PROCESSUS - Uvajanje ocenitve in dvig kakovosti razvoja informacijskega sistema, ki ga izvaja Univerza v Mariboru, Tehniška fakulteta, Laboratorij za informacijske sisteme v sodelovanju z Ekonomsko poslovno fakulteto in Slovenskim inštitutom za kakovost {pridružen član EQNet - Evropske mreže za ocenjevanje in certificiranje sistemov kakovosli) ter enajstimi podjetji iz industrije. Poleg teh organizacij iz industrije projekt financira tudi Ministrstvo za raziskovalno dejavnost in tehnologijo. Podjetja, ki sodelujejo v projektu, so različnih tipov. Sodelujejo podjetja, v katerih je pisanje programske opreme osnovna dejavnost, in podjetja, v katerih je informacijska dejavnost le dopolnilo drugim osnovnim dejavnostim, s katerimi le-te ustvarjajo dohodek. Velikost in različnost vključenih podjetij daje dobro osnovo za polrditev obeh modelov ocenitev njegovih dobrih lastnosti, kakor tudi slabosti v različnih okoljih. H/jonibtiiri NFOR M ATI KA Sthokovnb KAZI'HAVK; 2. POGLED V PRETEKLOST Raziskave procesa razvoja programske opreme so so pričele v osemdesetih letih, ko so posamezne organizacje že Spoznale pomembnost urejenosti procesa. Leta 1987 sta dve ustanovi objavili rezultate svojih raziskav. Prva je bila International Organization for Standardization iz Ženeve v Švici, ki je objavila ISO 19001, Sistem kakovosti - model za zagotavljanje kakovosti v projektiranju/razvoju, proizvodnji, vgraditvi in vzdrževanju (7). Model ISO 9001 je bil razvit z namenom standardizacije procesov, ki vključujejo pogodbeno razmerje med izvajalcem in naročnikom proizvoda. Model je univerzalen za vse vrste procesov, ki vključujejo aktivnosti od načrtovanja/razvoja do vzdrževanja proizvodov - neodvisno od branže, v kateri se proces odvija. Zaradi posebnosti posameznih procesov je bil kasneje model dopolnjen z dodatnimi navodili, ki povedo, kako ga je potrebno uporabiti v posameznem primeru. Za proces razvoja programske opreme se bile leta 1991 izdelane dopolnitve v obliki smernic ISO 9000-3, Smernice za uporabo ISO 9001 pri razvoju, dobavi in vzdrževanju programske opreme (8), Druga ustanova, ki je objavila rezultate svojih raziskav s področja razvoja programske opreme, je Carnegie Mellon University, Software Engineering Institute (SF.I), Obrambno ministrstvo ZDA je financiralo razvoj mehanizma, ki bi zagotovil objektivno ocenitev učinkovitosti svojih pogodbenikov za izdelavo programske opreme. Rezultat raziskav je osnutek zmožnostim zrelostnega modela ( Capability Maturity Model - CMM) (2,9). Čeprav modela uporabljata različne pristope in gledata na proces razvoja programske opreme 2 različnega stališča, služita istemu namenu. Oba omogočata: ■ definiranje in formalizacijo procesa razvoja programske opreme, ■ standardizirano, objektivno vrednotenje izvajalčevih sposobnosti od tuje stranke ( neodvisne institucije), a izvajanje rednih internih samo-ocenitev, s katerimi izvajalec sam išče možnosti za izboljšanje kakovosti proizvodov in storitev {10,11}. 3. OGRODJE IN UPORABA MODELOV 3.1. ISO 9001 in ISO 9000-3 Kot je že bilo omenjeno, pomenijo smernice ISO 9000-3 navodila za uporabo standarda ISO 9001 na področju razvoja programske opreme. To pomeni, da so v smernicah ISO 9000-3 nekateri deli standarda ISO 9001 dodatno razloženi in zajemajo vse pomembne dejavnike, ki se nanašajo na proces razvoja programske opreme. Tista poglavja iz standarda ISO 9001, ki so v enaki meri veljavna za različne tipe procesov, imajo tudi v smernicah ISO 9003-3 popolnoma enako vsebino, kot je zapisana v standardu ISO 9001. Ker v članku obravnavamo samo proces razvoja programske opreme, se vse nadaljnje primerjave nanašajo na ISO 90003 in ne na ISO 9001. Osnova modela ISO je sistem kakovosti (Quality System), ki mora obsegati organizacijo osebja in politiko v podjetju (organizacijski vidik), vse delovne operacije ter spremljajoče aktivnosti procesa (procesni vidik). Ker so navodila v ISO 9000-3 uporabna za celoten proces razvoja programske opreme, je razumljivo, da mora biti sistem kakovosti v skladu s standardom ISO 9000-3. Sistem kakovosti torej sestoji iz treh bistvenih delov, ki so med seboj povezani (tabela 1). Tabela 1: Ogrodje modela ISO SISTEM KAKOVOSTI OGRODJE AKTIVNOSTI V ŽIVLJENJSKEM CIKLU DOPOLNILNE AKTIVNOSTI Odgovornost vodstva Pregled pogodbe Upravljanje konfiguracije Sistem kakovosti Specifikacija kupčevih zahtev Obvladovanje dokumentov Interne presoje sistema k3k0V0Stl Planiranje raivoja Zapisi o kakovosti Korektivni ukrepi Planiranje kakovosti Meritve Načrtovanje in izvedba Pravila, postopki in dogovori Testiranje invalidacija Orodja in tehnike Prevzem Nabava Razmnoževanje, dostava in instalacija Vključen programski proizvod Vzdrževanje Usposabljanje Ogrodje Ta del vsebuje globalne definicije sistema kakovosti kot celote. Te so: kako je sistem kakovosti sestavljen, kako bo nadzorovan in vzdrževan, določila o odgovornostih in pooblastilih po posameznih funkcijah, korektivni ukrepi ob pojavu problema, ipd. Ko je sistem kakovosti v organizaciji enkrat vzpostavljen, se na naštetih področjih izvajajo le še manjše spremembe. Aktivnosti v življenjskem cikiu Ta del sistema kakovosti določa, katere aktivnosti ali natančneje skupine aktivnosti moramo izvesti v življenjskem ciklu. Vse postopke za izvajanje teh aktivnosti moramo imeti definirane. Samo izvajanje aktivnosti je specifično za vsak projekt razvoja programske opreme. Ko s projektom začnemo, se aktivnosti izvajajo v skladu z dokumentiranimi postopki. Dopolnilne aktivnosti Osnovni namen dopolnilnih aktivnosti je izboljšanje učinkovitosti aktivnosti v življenjskem ciklu in delovanju celotnega sistema kakovosti. Najdemo jih v dvojni viogi: ■ pojavljajo se kot aktivnosti, ki jih izvajamo stalno ne glede na projekt, ki ga izvajamo. Sem sodijo: nadzor dokumentacije, vodenje zapisov kakovosti, izobraževanje, itd. i if mnifjp rd N FOfi M AT! KA Strokovne iiazprave ■ pojavljajo se tudi v tesni povezavi s projektom. Sem spada upravljanje konfiguracije, vključevanje drugih programskih proizvodov, nabava, meritve, itd. Struktura sistema kakovosti omogoča znatno izboljšanje proccsa razvoja programske opreme tako z organizacijskega kot tudi s procesnega vidika. Smernice nudijo le podporo pri definiranju vprašanja, kaj mora biti zajeto v končnem sistemu kakovosti. Oblika in vsebina smernic sta v veliki meri neformalni, kar je razvidno tudi iz primera v tabeli 2. Odgovor na vprašanje "K/1 KO naj organizacija vzpostavi sistem kakovosti?" je popolnoma prepuščen politiki in delovnem procesu v posamezni organizaciji. Organizacija si mora namreč sama definirati vrstni red uvajanja posameznih postopkov in aktivnosti v svoj proces. Tabela 2: Primer vsebine iz smernic ISO 9000-3 6.9 Usposabljanje Organizacija mora uvesti in vzdrževati postopke za ugotavljanje in izvajanje usposabljanja vsega osebja, ki Izvaja aktivnosti, ki vplivajo na kakovost. Osebje, ki izvaja specifične naloge, mora biti ustrezno kvalificirano. Imeti mora zahtevano izobrazbo, usposobljenost in/al izkušnje. Teme. kijih je potrebno obravnavati pri usposabljanju, morajo biti določene glede na specifična orodja, tehnike, metodologije in računalniške vire, ki bodo uporabljeni pri razvoju in upravljanju programske opreme. Včasih je potrebno vpeljati Izpopolnjevanje veičin in znanja doloienih področij, ki jihbo pokrivala programska oprema. Podatki o strokovnem izobraŽevanju morajo biti ustrezno dokumentirani in shranjeni. omptimizacija procesa. Na sliki 1 je prikazana zgradba CMM. Med prvim in petim nivojem se nahajajo: ponovljivi proces, definirani proces in vodeni proces. Za napredovanje z določenega nivoja na višji nivo mora organizacija izvesti vrsto pomembnih izboljšav procesa. Te izboljšave so v CMM definirane v t.i. ključnih procesnih področjih - KPP (Key Process Areas). Za vsak prehod med posameznimi nivoji so natančno predpisana KPP, ki morajo biti izpolnjena. Vseh KPP v CMM je osemnajst (12,13). Razporeditev posameznih KPP je razvidna iz slike 1. Vsako KPP je natančno opisano z naslednjimi petimi atributi: - t.i. skupnimi lastnostmi (common features) 1. Cilji. V tej točki so opisani vsi cilji, kijih organizacija želi doseči i vzpostavitvijo posameznega KPP. 2. Sposobnost izvedbe. Tu so zajeti vsi pogoji, ki morjo biti v organizaciji izpolnjeni, da lahko organizacija KPP učinkovito izvaja. 3. Aktivnosti. V tej točki so zajete vse aktivnosti, ki jih je potrebno izvajati pri posameznem KPP. 4. Meritve in analize. Sem se uvrščajo meritve in analize, ki organizaciji vrnejo podatke o učinkovitosti izvajanja določenega KPP, 5. Verifikacija. Zajema ukrepe za zagotavljanje, da se vse aktivnosti izvajajo po predpisanih postopkih. Nivo 5 Neformalna oblika definicije sistema kakovosti kot jo najdemo v ISO 9000-3, ima pomembne prednosti hkrati pa tudi slabosti. Njena največja prednost je v tem, da je opisani model kakovosti enako uporaben za velika, srednja in mala podjetja, ki se ukvarjajo z razvojem programske opreme. Nefor-malnost modela ISO se je pokazala tudi kot slabost, saj zlahka prihaja do različnih interpretacij posameznih delov standarda. Ker model ISO predvideva ocenitev nevtralnega ocenjevalca (po tretji stranki), lahko postane ta problem zelo pomemben. Zaradi pomanjkanja ustrezne formalne podpore je lahko ocena o skladnosti stanja v organizaciji z zahtevami standarda preveč odvisna od subjektivne ocene posameznega presojevalca. 3.2 SEICMM SEI CMM sestoji iz petih zrelostnih nivojev, na katere lahko uvrstimo posamezne procese razvoja programske opreme glede na njihovo zrelost. Nezreli in neurejeni procesi dosegajo nivo 1 - začetni proces, ki je hkrati najnižji nivo v modelu. Najbolj izpopolnjene procese najdemo na petem nivoju - Zrelost Zmožnost Produktivnost Zmanjšanje J' Nivo 3 tveganja Nivo 4 QM OP OPT1MIIACU» PROCESA lij :ii<-, nrr MflnjJi poprMbfci 10 irlîoljiiive. uprovlJiAofa spromomb proctto Prof f m Qtfynfla Managenient Upravljajo ipramomft tohnologlj* —.i-^. cringe vv^f^il prflpjDiannnjd napo h £>Cf«l PrMifiliOn VODENJ PROCES kvArvtiiAtrvnih podukov ,n ry|,rio*» • v '.i î.i iztHfj&o^in proee vt. Uprovljnnjt Kahctvtli prtigr omiko o d romo sôitwnm '■).!•*.'.y MonoKemeiu U -.1111 -I " I J___—-—:-:- Woriïlialhinl nadror proc*** .n-ÜI.iim- Procer Management OEFINIftANI PROCES Kakovost S prvini pr* (lo OI IVc fím» OpoíT/G JO procoja je vT.Nii'T." ( Maine to le hvfttiiMrwe oceno procoto. Koordinacijo iknpjn Iniorftoup Coordination Proaromiko Iníonlnlvu Sollwure Product Enpnccrifnt Entogrlronj upravljanje pmgramiko upJumn Irilcjyarct] Software _ 'fN~i rf -VçpO ', OonnlranJ* pr(H»n Prow» PefifNt^jfi Otrodatutenoit na procei v ' -1;1 PrELinvmunn fi.'í.'r.a í oeui Nivo 2 Nivol OA UCmliOUt rnívoj podobo,b P il VIXI,. kol K ttfl le ICJV. Ti'.l V.r pn .r..I.lil. nnvib tcfinolojçij. UpranllanJ* fconlnurnelj* programan* o p r o m* Sotwofo CpriflyirMigrt Mmafflmcm .1/ri.ivij.i.-;« kAkovoill prof ra mika opio m* Software Quality AiHjrance_ UprovlJanJ* podp*|ludbvhlkvv u progromiko opromo Software Subcontract '■'.''W-i ml SI*d*riJ* In prog Itd wugramikngn pmjakia Snfu.nre PiOient Tracking .>>0 f-vii. 1 Ftanlranja programi k lh projakiav Softwprp Ptojk] r-.-,"! r/_ upravljanj* mhl*r nu.rcrnentl Management IAÍETNI PROCES KlIOIiÍiii pro«*. Fcîjvç pri reiorriD ifu Ifi iijvlnjovififu otrimr, Pojfolto Spreminjale pllinov iri pOltopkov. ^'-'VII' :) 6,8 Vključen programski proizvod 6,9 Usposabljanje TP E legenda KPP Ključno pmcesno podrotfc TP Tip prekrivanja F Osa mocfeia predala podrotje enakovredno 1 Model ISO natančneje prekriva področji* C CMM nuwineje p okriva področje 1-J2 OpomtK! nalaninejta rJ/Jj^o Opombe 1 i SO; odpravljanje nesWdtJnasti fn problemov v celotnem jlslemu kakovosti; Ot»: obravnavanje neskladnosti proizvoda/; 2 ISO: popolno upravljanje pogodb: CMM; samo analiza otre/; 3 ISO; wzisfava in razvoj specifikacij« iafttev, CMM:upravljanje £(ot>a!n!h la/ittv; 4 ISO; definiranje o^ovomosti, poobbstil in strukture orgJni«clje oz. ce/orraga sistema kakovosti; CMM: sprejete o it«« vwisfea organizacije; 5-7 ISO: upravljanje oiganitacijstegi in procesnega vidika: CMM: poudarek na procesnem vidiku: 5 fSO: rtalandno definiranje prevzemnih kriterijev; CMM: uvajanje vahdatije; 9 ISO.npravfw.fe vzdrievar,ja (dokumenUttyi in piani); CMM: priprava rJokumefltac'/e za vzdflevanje; 10 ISO: Upravljanje vse obstoječe dokumentacije v organizaciji; CMM: upravljanje dokumentacije, vezane na proces: 11 ISO: izvajanje meritev proizvodov in procesa; CMM; meritve kakovosti procesa; 12 ISO: interni pregledi celotnega sistema kakowisti: CMM: interni pregledi procesa. 6. ZAKLJUČEK Opisana primerjava obeh modelov ni bila izvedena z namenom, da ju primerjamo, kateri je boljši od drugega. Oba modela sta namreč že v praksi pokazala svoj pomen. Želeli smo natančno opredeliti vsa področja, ki jih posamezni model dobro pokriva in ki so morda specifična za določen model. Izkušnje, ki smo jih pridobili pri delu s partnerji v projektu PROCESSUS, so nam pokazale, da je potrebno organizacijam pomagati pri definiranju metode za vzpostavljanje sistema kakovosti. Končni rezultat, ki ga organizacije želijo doseči, je skladnost njihovega informacijskega sistema in procesa z zahtevami standarda ISO 9001. Pri razvijanju takega sistema kakovosti in procesa pa jim je lahko v veliko pomoč CMM s svojo dobro definirano strukturo. Naloga, ki nas čaka torej v prihodnosti, je združitev obeh modelov v model, ki bo učinkovito združeval prednosti obeh modelov. 7. LITERATIRA (1) K, '!>( iy. Soft rare Engineering - Viewpoint, IEEE Spectrum, Analysis and Forecast Issue Technology 1994, January 1994, pp. -JO -ll (2) WIS. Humphrey, Managing the Soft wire I'roecss, Addison-Weslev, Raiding, Mass., I M.S'.) I. Hhondiiri, M. Hal May, E. Traver, D. Urown, J. Chaar, U. Chillar-cge, A Case Study: (if Sqfnmtt) Process Improwment During Deivl-Opment, IEEETYansaotlons on Software Engineering, Vol. I1). N'o. 12. December 199,1, pp. 1157.1170 K, Lai, Tile .Vlovu to the Mature Processes. IKKK Software. The Maturity Movement, Jul)' I'>93, pp. 14-17 K. Ifnlln, Attempts tti introduce software quality mantlgunu'nt, Austrian - Hungarian Seminar on Software Engineering Proceedings, Kltlgoiliurt, 7'1' and«"1 April. 19'« .1, (iyorkbs. I, liumtui, Asitcsment and control of the requirements client ion process in a