Documente Academic
Documente Profesional
Documente Cultură
Nume:
Ureche Mihai
Cotoc Ginel-Dragos
Grupa:
443A
Cuprins
1) Introducere
2) Cele cinci nivele ale procesului de maturitate
3) Definitia operational a capabilitatii modelului de maturitate
4) Directii viitoare ale CMM
5) Concluzii
1. Introducere
o estimare realistica. Atunci cand sunt impuse termene de terminare, calitatea produsului si
functionalitatea sunt deseori compromise pentru a respecta termenul limita.
Intr-o organizatie imatura, nu exista nici un obiectiv de baza pentru evaluarea calitatii sau
pentru rezolvarea produsului sau problemelor procesului. Prin urmare, este dificil de a prezice
calitatea produsului.
Pe de alta parte, o organizatie de software matura poseda o abilitate la nicel de organizatie
pentru gestionarea proceselor de dezvoltare si intretinere a soft-ului. Procesele software sunt
comunicate in detaliu atat personalului existent si cat noilor angajati, si activitatile de munca se
desfasoara comform cu procesele planificate. Rolurile si responsabilitatile in cadrul procesului
definit sunt clare dealungul proiectului si in toata organizatia.
Intr-o organizatie matura, managerii monitorizeaza calitatea produselor software si procesele
ce le produc. Exista un obiectiv de baza bine stabilit pentru a califica calitatea produsului si de a
analiza probleme produsului si proceselor. Termenele limita si bugetele sunt bazate pe o
performanta stabilita si este realistica; rezultatele asteptate pentru cost, termenul limita,
functionalitate, si calitatea produsului sunt deobicei atinse. In general, un proces disciplinat este
urmarit indeaproape deoarece toti participantii inteleg valoarea de a face acest lucru, si
infrastructura necesara exista pentru a sprijini procesul.
1.2 Conceptele fundamentale ce stau la baza proceselor de maturitate
Un proces software poate fi definit ca fiind un set de activitati, metode, practice si
transformari pe care oamenii le folosesc pentru a dezvolta si mentine software-ul si produsele
associate ( ex: planuri de proiecte, documente de proiectare, codul si manuale de folosire ). Ca o
organizatie matura, procesele de software devin mai bine definite si sunt implementat mai
consistent in cadrul organizatiei.
Capabilitatea proceselor software descrie valoarea rezultatelor asteptate care pot fi atinse
urmand procesele software.
Performanta proceselor software reprezinta rezultatele actuale obtinute urmand procesul
software. Astfel, performanta proceselor software sunt concentrate pe rezultatele obtinute, in timp
ce capabilitatea proceselor software sunt concentrate pe rezultatele asteptate.
Maturitatea proceselor software este masura in care un process specific este explicit definit,
gestionat, masurat, controlat si eficient. Maturitatea implica un potential de crestere in capabilitate
si indica atat imbogatirea proceselor software organizationale cat si consistenta cu care sunt aplicate
in proiectele din intreaga organizatie.
2.
Imbunatatirea continua a procesului se bazeaza pe pasi mici mai degraba decat inovatii
revolutionare. Structura CMM-ului se bazeaza pe principii de calitate expuse de catre Walter
Shewart, W. Edwards Deming, Joseph Juran si Philip Crosby. CMM ofera un framework folosit
pentru organizarea acestor etape evolutive in cinci niveluri de maturitate care pun bazele succesive
pentru imbunatatirea continua a proceselor. Aceste cinci nivele definesc o scara ordinala pentru
masurarea maturitatii proceselor unei organizatii de soft si pentru evaluarea capacitatii procesului
software.
Un nivel de maturitate este un platou evolutiv bine definit spre realizarea unui proces
software matur. Fiecare nivel cuprinde un set de obiective, care atunci cand sunt indeplinite
stabilesc o componenta importanta a procesului software. Atingand fiecare nivel de maturitate din
framework se stabiliste diferite componente in procesul software, rezultand cresterea procesului de
capabilitate a organizatiei.
Organizarea CMM in cinci niveluri prezentate in figura urmatoarea prioritizeaza actiuni de
ameliorare pentru cresterea procesului de maturitate software. Sagetile din figura indica tipul de
capacitate a procesului de a fi institutionalizat de catre organizatie pentru fiecare pas din cadrul
framework-ului de maturitate.
exceptionale se produc, cauza speciala de variatie poate fi identificata si abordata. Cand limitele
cunoscute ale proceselor sunt depasite, se iau masuri pentru a corecta aceasta situatie.
2.1.5 Nivelul 5 Nivelul de optimizare
La nivelul de optimizare, toata organizatia este concentrata pe procesul continuu de
imbunatatire. Organizatia are ca scop identificarea punctelor slabe si sa consolideze procesul de
productivitate, cu scopul de a preveni aparitia de defecte. Datele privind eficacitate procesului de
software este utilizat pentru a efectua analize cost-beneficiu a noilor tehnologii sis a propuna
modificari la procesul de software al organizatiei. Inovatii care exploateaza cele mai bune practice
de inginerie software sunt identificate si transferate in intreaga organizatie.
Echipele de proiect software in organizatiile de nivel 5 analizeaza defectele si determina
cauzele sale. Procesele software sunt evaluate pentru a preveni tipurile cunoscute de defecte din
recurenta, si lectiile invatate sunt disseminate si la alte proiecte.
Aici exista pierderi cronice, in forma de reprelucrare in orice sistem datorita variatilor
random. Pierderile sunt inacceptabile; sunt organizate eforturi pentru a elimina rezultatele pierdute
in schimnbarea sistemului, exemplu : imbunatatirea procesului de schimbare a cauzelor comune
de ineficienta pentru a preveni pierderile care apar. In timp ce acest lucru este valabil la toate
nivelele de maturitate, acesta este punctual central al nivelului 5.
Capabilitatea software a proceselor a organizatiilor de nivel 5 poate fi caracterizata ca o
continua imbunatatire, deoarece organizatiile de nivel 5 fac in permanenta eforturi pentru a
imbunatatii gama de compatibilitate a proceselor, imbunatatind astfel procesele de performanta si
proiectele lor. Imbunatatirea are loc atat prin integrarea proceselor avansate in procesele existente
cat si prin inovatii folosind noi tehnologii si metode. Tehnologia si imbunatatirile proceselor sunt
planificate si gestionate ca activitati de afaceri obisnuite.
2.2 Procesul de capabilitate si predictia de performanta
Maturitatea proceselor software ale organizatiilor ajuta la anticiparea abilitatii proiectului ca
sa isi atinga obiectivele sale. Proiectele din nivelul 1 organizeaza experiente in variatii mari in
realizarea costului, termenului limita, functionalitatii, si obiectivelor de calitate. Asa cum este
ilustrat in Figura 2.4, trei imbunatatiri sunt intalnite in atingerea obiectivelor ca procese mature de
software ale organizatiei. Aceste asteptari sunt bazate pe rezultatele proceselor de imbunatatire care
au fost atinse in alte industrii, si acestea sunt in concordant cu rezultatele initiale raportate in studiul
de caz din organizatiile de software.
In primul rand, odata cu cresterea maturitatii, diferenta dintre rezultatele asteptate si
rezultatele actuale scade in cadrul proiectelor.
In al doilea rand, odata cu cresterea maturitatii, variabilitatea rezultatelor actuale din jurul
rezultatelor asteptate scade. De exemplu, in organizatiile de nivel 1 livrarea de date pentru proiecte
de dimensiuni similare este imprevizibila si variaza foarte mult. Similar pentru proiecte dintr-o
organizatie cu un nivel de maturitate ridicat, cu toate acestea, vor fi livrate cu un interval mai mic.
In al treilea rand rezultatele vizate imbunatatesc astfel incat maturitatea organizatiei creste.
Astfel atunci cand o organizatie de software se maturizeaza, costurile se diminueaza, timpul de
dezvoltare devine mai scurt, si productivitatea si calitatea cresc. Intr-o organizatie de nivel 1, timpul
de dezvoltare poate fi destul de lung deoarece cantitatea de reprelucrare trebuie efectuata pentru a
corecta erorile. In schimb, organizatiile cu un nivel de maturitate ridicat au crescut eficienta
procesului si pentru ca au redus reprelucrarea costisitoare, timpul de dezvoltare a devenit mai mic. (
Acest lucru este ilustrat in Figura 2.4 prin deplasarea orizontala a liniei tinta fata de origine )
Imbunatatirile estimate in rezultatele proiectului reprezentat in Figura 2.4 presupune ca
rezultatele proiectului software devin mai previzibile, precum zgomotul, adesea sub forma de
reprelucrare este eliminat din procesul de software. Chiar si in cazul sistemelor fara precedent,
practicile caracteristice de management si inginerie a mai multor organizatii mature contribuie la
identificarea si solutionarea problemelor mai devreme in ciclu de dezvoltare decat ar fi fost
detectate in organizatiile mai putin mature. In unele cazuri, un process matur inseamna ca erorile
proiectelor sunt identificate mai devreme in ciclul de viata al soft-ului si investitia intr-o cauza
pierduta este minimizata.
Studiile ce caz documentate ale procesului de imbunatatire a softului indica faptul ca exista
imbunatatiri semnificative atat in calitate cat si productivitate ca urmare a efortului de imbunatatire.
Randamentul investitiilor pare a fi de obicei in intervalul 5:1 la 8:1 pentru eforturile de imbunatatire
a proceselor.
Echipele de evaluare vor folosi CMM pentru a identifica punctele forte si punctele
slabe in cadrul organizatiei
Echipele de evaluarea vor folosi CMM pentru a identifica riscurile de a alege intre
diferiti contractori pentru acordarea de afaceri si pentru a monitoriza contractele.
Din cauza utilizarilor diverse ale CMM, aceasta trebuie sa fie descompusa in suficiente detalii
astfel ca recomandarile proceselor actuale pot fi derivate din structura nivelelor de maturitate.
Aceasta descompunere indica, de asemenea procesele cheie si structura lor, care caracterizeaza
procesul de maturitate software si capabilitatea de proces.
Practicile specifice care urmeaza sa fie executate in fiecare zona cheie de proces va evolua ca
organizatia sa atinga nivele mai ridicate ale procesului de maturitate. De exemplu, multe dintre
capacitatile estimate ale proiectului descrise in cadrul Planificari Proiectului Software: zonele cheie
de proces de la nivelul 2 trebuie sa evolueze pentru a face fata datelor suplimentare ale proiectului
disponibile la nivelul 3, astfel cum este descris in Managementul Software Integratat.
Zonele cheie ale procesului la nivelul 2 se concentreze asupra proiectului software referitoar
la stabilirea unor controale de management de baza de proiect.
Scopul Cerintelor de Management este de a stabili un cadru comun de intelegere intre
client si proiectul de software legat de cerintele clientului, care vor fi abordate de catre
proiectul de software.Acest acord cu clientul este baza pentru planificarea si
gestionarea proiectului software.
Scopul Planificari Proiectului Software este de a stabili planuri rezonabile pentru
efectuarea de inginerie software si pentru gestionarea proiectului software. Aceste
planuri sunt fundamentul necesare pentru gestionarea proiectului software.
Scopul Urmariri si Supravegheri Proiectului Software este de a stabili vizibilitate
corespunzatoare in progresul actual, astfel ca managementul sa poata lua actiuni
eficiente atunci cand performanta proiectului software se abate in mod semnificativ de
planurile de software.
Scopul Managementului de Subcontract Software este de a selecta subcontractori
software calificati si sa ii gestioneze in mod eficient .
Scopul Asigurarii Calitatii Software este de a oferi management cu o vizibilitate
adecvata in proces care este utilizat de proiectul software si a produselor care sunt
construite.
Scopul Managementului de Configurare Software este de a stabili si mentine
integritatea produselor proiectului software pe parcursul cilului de viata al proiectului
software.
Zonele cheie ale procesului la nivelul 3 se adreseaza problemelor de proiectare si
organizatorice,pe masura ce organizatia stabileste o infrastructura care institutionalizeaza ingineria
software eficient si procesele de management in toate proiectele.
Scopul Concentrari Procesului Organizatiei este de a stabili responsabilitatea de
organizare pentru activitatile procesului de software care sa imbunatateasca
capacitatea procesului de software la nivel de organizatie globala.
Scopul Definiri Procesului Organizatiei este de a dezvolta si mentine un set utilizabil
de active ale procesului de software care sa imbunatateasca performanta procesului pe
proiecte si ofera o baza pentru definirea datelor semnificative pentru managementul
cantitativ al procesului. Aceste active ofera un fundament stabil care poate fi
institutionalizat prin intermediul unor mecanisme cum ar fi formarea.
Scopul Programului de Instruire este de a dezvolta abilitatile si cunostintele de
persoane astfel incat sa poata indeplini rolurile lor efectiv si eficient. Instruirea este o
responsabilitate de organizare, dar proiectele software ar trebui sa identifice
competentele necesare si sa furnizeze instruirea necesara
atunci cand nevoile proiectului sunt unice.
Scopul Managementului Software Integrat este de a integra
ingineria software si activitatile de management intr-un proces software coerent,
definit care este adaptat de la organizatia standard a procesului de software si a
Capacitatea de a Executa
Capacitatea de a Executa descrie conditiile prealabile care trebuie sa existe in proiect
sau organizatie ca sa implementeze procesul software competent. Abilitatea de a
Executa de obicei implica resurse, structuri organizatorice, si de formare.
Activitati Executate
Activitatile Executate descriu rolurile si procedurile necesare pentru a implementa o
zona cheie de proces. Activitatile Executate de obicei implica stabilirea planurilor si
procedurilor, executarea lucrarilor, si luand actiuni corective, daca este necesar.
Masurare si Analiza
Masurarea si Analiza descriu necesitatea de a masura procesul si de a analiza
masuratorile. Masurare si Analiza includ de obicei si exemple de masuratori care ar
putea fi luate pentru a determina starea si eficacitatea activitatilor efectuate.
Verificarea Implementari
Verificarea implementari descrie pasii pentru a se asigura ca activitatile sunt efectuate
in conformitate cu procesul care a fost stabilit. Verificarea de obicei cuprinde
comentari si audituri de catre managementul si software-ul de asigurare a calitatii.
Practicile din caracteristica comuna Activitati Executate descrie ceea ce trebuie sa fie
implementat pentru a stabili o capacitate de proces. Celelalte practici, luate ca un ntreg, formeaza
baza prin care o organizatie poate institutionaliza practicile descrise in caracteristica comuna
Activitati Executate.
3.6 Practici cheie
Fiecare zona cheie de proces este descrisa in termeni de cheie practica pe care contribuie la
satisfacerea obiectivelor sale. Practicile cheie descriu infrastructura si activitatile care contribuie cel
mai mult la implementarea si institutionalizarea zonei cheie de proces.
Fiecare practica cheie consta dintr-o singura propozitie, adesea urmat de o mai detaliata
descriere, care pot include exemple. Aceste practici cheie, de asemenea, mentionate in continuare ca
practicile cheie de nivel superior,stabilesc politicile fundamentale, procedurile, si activitatile pentru
zona cheie de proces. Componente descrierii detaliate sunt frecvent mentionate in continuare subpractici. Practicile cheie descriu "ce" este de facut, dar ele nu ar trebui safie interpretate ca
mandatarea "cum" ar trebui sa fie atinse obiectivele. Practicile alternative pot realiza obiectivele din
zona cheie de proces. Practicile cheie ar trebui interpretate rational sa judece daca obiectivele din
zona cheie de proces sunt eficiente, desi poate in mod diferit, atinse. Practicile cheie sunt cuprinse
in " "Key Practices of the Capability Maturity Model,Version 1.1 ", impreuna cu orientari cu privire
la interpretarea lor.
5. Concluzii
CMM reprezinta un "simt comun de inginerie" care abordeaza imbunatatirea procesului
software. Nivelurile de maturitate, zonele cheie de proces, caracterisitcile comune,si practicile cheie
au fost discutate pe larg si revizuite in cadrul comunitatii software. In timp ce CMM nu este perfect,
el nu reprezinta un larg consens al comunitatii software si este un instrument util pentru ghidarea
probabilitatea cu eforturilor de imbunatatire a procesului software.
CMM ofera o structura conceptuala pentru imbunatatirea managementului si dezvoltarea de
produse software intr-un mod disciplinat si consecvent. Aceasta nu garanteaza ca produsele
software vor fi construite cu succes sau ca toate probleme in ingineria software vor fi rezolvate in
mod corespunzator. Cu toate acestea, rapoarte curente de programe imbunatatite pe baza de CMM
indica faptul ca se poate imbunatati care o organizatie de software poate atinge obiectivele privind
costul sau,calitatea, si productivitatea. [Dion92, Humphrey91b, Lipke92, Wohlwend93].
CMM identifica practici pentru un proces de software matur si ofera exemple de state-of-thepractice (si, in unele cazuri, state-of-the-art), dar aceasta nu este menit sa fie exhaustiv sau
dictatorial. CMM identifica caracteristicile unui proces eficace de software, dar organizatia matura
abordeaza toate aspectele esentiale pentru un proiect de succes, inclusiv oameni si tehnologie,
precum si procesul.