Sunteți pe pagina 1din 6

Semnificaia calitii Un produs de calitate, indiferent dac este un frigider, usctor de pr sau orice altceva, este unul care

face exact ceea ce consumatorul asteapt de la el s fac. Adecvarea la scop este un concept important i constituie doctrina central a asigurrii calitii. Aceasta fraz implic ca peste tot s fie o descriere a scopului pentru care va fi dezvoltat produsul respectiv. De exemplu termenul de usctor de pr nu are alte funcionaliti n afara aceleia de a usca prul. Dar pentru alte produse, descrierea scopului poate s cuprind o carte ntreag, care s prezinte n detaliu cum se va folosi produsul respectiv i s mai precizeze i citeva specificaii tehnice. Pentru produsele mari, , scopul este de obicei descris ntr-un document de obicei numit requirements specificaion (specificaii de cerine), alteori system specificaion (specificaii sistem). Specificaiile de cerine conin o descriere a ceea ce trebuie s fac sistemul software, mpreun cu descrierile constrngerilor care vor fi impuse sistemului, cum ar fi timpul de rspuns care i este asociat. Acesta este cel mai important document generat ntr-un proiect software. n jurul acestui document graviteaz calitatea sistemului. Viziunea modern asupra calitii este mai complicat dect cea mai sofisticat viziune care se poate formula n jurul ideii de potrivire pentru scop. Un produs de calitate nalt este unul care are asociai un numr de factori de calitate care pot fi descrii n documentul de specificaii ale cerinelor. Acestia pot fi factori culturali, asociai de obicei cu o anumit famile de produse pentru care utilizatorul are nevoie de o anumit experient n utilizare, sau pot fi factori de calitate pe care producatorul i consider importani, dar care pentru client nu sunt neaprat interesani i prin urmare nu sunt inclusi n documentul de specificare a cerinelor. Factori de calitate Ce este important lucru la demararea unui proiect nou este s se asigure c, nc de la nceputul lui, managerul de proiect va examina toi factorii de calitate care vor fi necesari pentru a decide controlul calitii i nu va presupune c este suficient doar potrivire n scop. Vom examina civa din cei mai importani factori de calitate . Corectitudinea (correctness) - capacitatea software-ului de a funciona n acord cu specificaiile cerute. Totui, determinarea corect a specificaiilor i cerinelor nu este o sarcin usoar, majoritatea metodelor folosite pentru descrierea acestora utilizeaz tehnici informale (de obicei, limbajul natural). Evident, acest factor va fi ntotdeauna prezent n orice sistem. Intreinerea (maintainability) sau modificabilitatea (modifiability) capacitatea unui sistem soft de a putea fi modificat. Modificrile apar de obicei cnd sunt nregistrate erori la client. Paradoxal, unul din indicatorii care-i intresc credina dezvoltatorului c a construit un sistem bun, este numrul cererilor de modificare care apar odat cu modificrile cerinelor. Acestea contituie i punctul de plecare n realizarea unor noi funcionaliti pe sistem.

De asemenea, dezvoltatorul va primi cereri de modificare din motive independente de client. De exemplu, un pachet de taxe trebuie modificat deoarece sistemul de taxare s-a schimbat. Deoarece, n condiiile actuale, clientul depinde din ce n ce mai mult de sistem, deci funcionarea corect a sistemului ii este vital, modificri majore pot duce chiar la modificri ale cerinelor. Mai este o alt categorie de modificri: acelea care se fac fr a se modifica funcionalitatea: mrirea vitezei de rspuns a sistemului la realizarea unui anumit task, integrarea unor drivere noi n sistem sau gsirea altor modaliti de iesire a informaiei. Prima categorie de modificri, cunoscute ca modificari corective, a doua adaptive, iar a treia perfective. Ce este important nu sunt tipurile de modificri care se fac, ci nivelul la care apar aceste modificri, nct majoritatea modificrilor s fie adaptive. De multe ori, n special n cazul proiectelor lungi, aceste modificri apar nc n faza de proiect Calitatea ntreinerii va fi mereu un factor foarte important n orice proiect soft. ntreinerea este unul din factorii care n mod normal l intereseaz pe client doar indirect. Foarte puini clieni includ cereri referitoare la ntreinere n documentele pe care le dau dezvoltatorilor, n afar, desigur, de aceia care intenioneaza s-i ntrein singuri sistemele. Portabilitatea (portability): este definit ca fiind usurina cu care produsele software pot fi transferate ntre diferite platforme hardware i software. Evident n faz de specificare a cerinelor va trebui precizat gradul de portabilitate cerut viitorului sistem. Din motive comerciale el este cteodat un factor de calitate care-l intereseaz pe dezvoltator i numai indirect pe client. Testabilitatea (testability): este un alt factor care-l intereseaz direct pe dezvoltator i va fi doar foarte rar va fi specificat direct clientului. El reprezint usurina cu care un sistem, sau o parte a unui sistem, este testat. Usurina n utilizare (usuability) Acest factor este o msur a efortului necesar nvrii funcionalitailor sistemului. Reprezint o problem important a dezvoltatorului: muli dintre dezvoltatori au tendina de a se concenta exclusiv pe funcionalitatea sistemului i a neglija interfaa sistemului. O interfa slab duce la o utilizare slab a sistemului. Sigurana, increderea n sistem (reliability). Este definit ca abilitatea soft-ului de a nregistra ct mai puine ntreruperi n funcionarea sa. Acest factor este de obicei unul cultural i nu va fi trecut n specificaiile cerinelor, dar presupune i cunoasterea unor reguli din partea consumatorului. Eficiena (efficiency): acest factor este folosit pentru a descrie gradul de utilizare a resurselor: memorie, timp procesor, spaiu fiiere folosite de aplicatie. Este un factor de calitate destul de dificil de categorisit: specificaiile cerinelor vor conine o descriere detaliat a cerinelor hardware i a timpul de rspuns scontat. Cu toate astea, putem spune c sunt aspecte care in de cultura cerut clientului, de capacitatea acestuia de a face sistemul s lucreze mai eficient folosind la maximum resursele sale. Integritatea (integrity): termenul este folosit pentru a descrie protecia datelor la accesele neautorizate. Acesta este un factor care nu poate fi categorisit precis: unele

sisteme, de exemplu cele pentru aplicaiile financiare, necesit specificaii detailate n care s fie precizat nivelul de acces permis de sistem. Reutilizabilitatea (reutilisability): este un alt factor a crui importan este n continu cretere. Descrie modul n care bucai de soft dintr-un sistem pot fi mutate n alt sistem. Acest factor, n mod normal, are un interes indirect pentru client. Interoperabilitatea (Interoperability): este abilitatea unui sistem de a opera n conjuncie cu alte sisteme soft, de exemplu un spreadsheet. n mod normal acest factor de calitate este specificat n documentul care conine specificaiile cerinelor i de obicei este de mare interes pe client. n mod normal calitatea unui sistem trebuie precizat n cadrul unui document cunoscut ca manual de calitate (quality manual). La inceputul unui proiect soft, managerul proiectului decide care sunt elementele care vor trebui respectate pentru a asigura calitatea proiectului. Pentru aceasta managerul trebuie s examineze lista factorilor de calitate, s identifice acele pri din sistemul de factori de calitate care sunt necesare pentru a asigura calitatea soft-ului dezvoltat i bineneles acele prti care nu vor fi trecute n manualul de calitate. Evident vor fi factori de calitate care vor trebui respectai n orice sistem informatic, de exemplu un standard pentru specificaiile necesare va trebui precizat de fiecare dat; cu toate acestea, n funcie de client, aplicaia sau tehnologia software folosit, managerul de proiect va decide ce componente din sistemul de calitate vor fi folosite sau care vor fi omise. Pentru o mai bun nelegere a legturii ntre factorii de calitate si calitatea sistemului, vom prezenta cteva exemple. Exemplul 1. n cazul n care se doreste construirea unui sistem cu grad mare de reutilizabilitate, (aceasta decizie este luat n mod normal de managerul proiectului) sunt citeva intrebri la care trebuie s se raspund: Credei c va fi necesar dezvoltarea unui soft similar n viitor? Are compania o politic de dezvoltare a unor biblioteci de componente reutilizabile? Este vreo ofert pentru construirea unui sistem soft care are asemnri cu unul care este n dezvoltare? Calitatea i sistemul de calitate

Inima unui aplicaii de calitate este ceea ce se cheam sistemul de calitati (system quality), sau altfel spus sistemul de gestiune a calitii (quality management system). Acesta conine structura organizatoric, responsabilitile, activitile, capabilitile i resursele necesare pentru dezvoltarea proiectului, astfel nct acesta s respecte factorii de calitate impui att de client ct i de dezvoltator. Aceasta nseamn c sistemul de caliti conine activitai ca: Revederea sistemului de calitai pe msur ce se dezvolt aplicaia;

Dezvoltarea de standarde, proceduri i ghiduri de utilizare;

Producerea de rapoarte care s descrie respectarea cerinelor sistemului de gestiune a calitii; Detaliile concrete ale sistemului de gestiune a calitii vor fi inute ntr-un manual de calitate. Un astfel de manual va conine standardele pentru calitate i activitile de dezvoltare care vor fi realizate n cadrul proiectului mpreun cu detaliile privitoare la controlul calitii. Relaia ntre standardele internaionale, sistemul de gestiune a calitii i proiectele individuale se poate vizualiza n figura urmatoare:

Standardele internaionale, cum ar fi de exemplu ISO9001 reprezint un ghid pentru companii n ceea ce priveste modul de organizare a sistemului de gestiune a calitii. O component a sistemului este calitatea manualului care descrie varietatea de standarde i controlul calitii disponibile pr oiectului. Cnd un proiect este ntr-un stadiu formativ, managerul de proiect va identifica factorii de calitate importani i va extrage un manual de calitate despre aceste standarde i proceduri care sunt necesare pentru a asigura calitatea dorit a produsului dezvoltat. Astfel, standardele internationale ca ISO9001, i nu numai, conduc la producerea unui sistem de gestiune a calitii care pot ajuta apoi un conducator de proiect s construiasc un plan de calitate. Ca un exemplu pentru acest proces s considerm un proiect software n care managerul decide c portabilitatea sa s fie principala calitate a unui anumit produs. Managerul va consulta manualui de calitate pentru acele pri care decid portabilitatea sistemului. Sunt mai multe modaliti n care un manual de calitate specific asigurarea portabilitaii, de exemplu prin furnizarea unor standarde pentru: Limbajul de programare ales pentru proiect, n care se va specifica cerina ca s nu fie folosite n programare facilitai non-standard; Testarea portabilitaii s fie facut pe toate tipurile de calculatoare i de sisteme de operare cerute de proiect; Verificarea ieirilor aplicaiei i corectarea eventualelor erori;

Un plan de calitate va conine un numr mare de controale de calitate, care s verifice faptul c un anumit factor de calitate este respectat. Citeva exemple de controale ale calitaii: Un test care verifica faptul ca o anumit funcie a fost corect rezolvat;

Utilizarea unui instrument care verific abaterile de la programarea standard. Aceasta va fi un bun indicator pentru verificarea i meninerea corectitudinii programrii, odat ce standardele de programare au fost dezvoltate pentru a minimiza erorile codului. Testarea programatorilor inceptori n raport cu un programator experimentat.

Standarde i proceduri Vom defini standardul ca o informaie despre cum un document va fi plasat pe hrtie sau pe ecran. De exemplu pentru o specificaie a cerinelor care respect un standard, se vor specifica toate seciunile documentului precum i modul n care va fi structurat fiecare seciune. Vom defini o procedur ca un text care descrie modul de realizare al unui task din proiect. De exemplu o procedur pentru programare va descrie ce standarde s aplice, unde se va stoca codul sursa, codul obiect al programului sau modulele, cum se va face testarea. Un aspect important att pentru proceduri ct i pentru standarde, este ca odat adoptate pentru un proiect particular, se va vedea clar avantajul care-l ofer i vor cstiga noi adereni. Ghidul de utilizare (guideline) este un text care conduce o activitate Activiti tehnice Analiza cerinelor este un proces de descoperire a cerinelor pe care clientul le are de la sistemul respectiv. Aceste cerine vor fi funcionale - dac descriu ce va trebui s fac sistemul, sau non-funcionale dac conin cteva aspecte cum ar fi timpul de rspuns. 1. Specificarea cerinelor este procesul de detaliere a proprietailor sistemului care va fi dezvoltat pe baza unei analize fcute anterior. Este documentul care constituie baza dezvoltrii ulterioare a proiectului. 2. Design-ul sistemului este procesul de specificare n mare a ahitecturii sistemului, i apoi rafinarea lui pn la mprirea n module. Acestea vor fi mai apoi implementate ntr -un limbaj de generaia a treia sau a patra. 3. Detalierea design-ului este procesul de specificare a modulelor individuale ale sistemului. De cele mai multe ori se foloseste un instrument de design, care arat mai puin ca un limbaj de programare, i care permite mai curind o descriere a proceselor, funciunilor, evideniind fluxul de execuie a operaiilor. Muli dezvoltatori omit din pcate detalierea design-ului i intr direct n faza de programare. 4. Programarea este transformare modelului rezultat n urma fazei de design n cod surs.

Aceste sunt activitai prin care ar trebui s treac dezvoltarea unui proiect software. Ar urma faza de testare a proiectului. Testul de acceptare (acceptance testing) - este testul final nainte ca sistemul s fie livrat clientului. Acest test verific dac toate specificaiile de cerine au fost corect i complet implementate. Acesta este n mod normal precedat de testarea sistemului (system testing), care const ntr-o serie de teste care constituie premiza dezvoltatorului c sistemul dezvoltat va trece testul de acceptare cu bine. Testarea modulelor (module testing sau unit testing) - este procesul de verificare a funcionrii fiecrui modul din sistem. De obicei datele alese pentru testare au fost selectate cnd s-a verificat c modulul face ce trebuie s fac. Un alt test important este testul de integrare (integration testing). Acesta este un proces de

construire a sistemului adugnd cteva module la un moment dat i apoi testnd buna funcionare a modulelor nou adugate fa de restul sistemului. Seria de standarde ISO 9000 Standardul este important i asta deoarece a devenit principala cale de apreciere de ctre clieni a calitii softului, iar ISO 9000 a fost adoptat n peste 130 de ri. Una din probleme o constituie faptul c nu este un standard industrial. El se exprim n termeni generali i poate fi interpretat de const ructorii mai multor tipuri de produse: de la cei care construiec usctoare de pr, automobile, echipamente sportive, televizoare, i bineneles de dezvoltatorii de soft. Cele mai importante standarde pentru industria de soft sunt: ISO 9001 Quality Systems Model for Quality Assurance n Design, Development, Production, installation and servicing. Acesta este un standard care descrie calitatea sistemelor folosite ca suport n dezvoltarea unor produse care presupun design. ISO 9000-3 Guidelines for the Application of ISO 9001 to the Development, Supply and Maintenance of Software. Acesta este un document care interpreteaz ISO 9001 din punctul de vedere al dezvoltatorului de soft. ISO 9004-2 Quality Management and Quality System Elements Part 2 . Este un ghid pentru servicing of software i faciliti ca suport utilizator. Fiecare ar are propria serie de standarde ISO 9000.