2.1. Sistemul caracteristicilor de calitate ale produselor software Dupã cum se aratã şi în definiţia datã calitãţii (standardul ISO 8402, [ISO3]), aceasta este prezentã în fapt printr-un set de caracteristici. Aceste caracteristici pot fi împãrţite în: a) caracteristici economice, exprimate prin costuri (de proiectare, elaborare, implementare, utilizare), economii (de resurse materiale, umane, financiare), creşteri de randament şi productivitate, privite în legãturã cu costurile şi economiile şi analizate împreunã în vederea stabilirii oportunitãţii realizãrii produsului; b) caracteristici sociale şi psiho-senzoriale , care constau în potenţarea elementelor creatoare, eliminarea rutinei şi stereotipiei, instruirea asistatã a operatorilor. Asupra acestor caracteristici s-au fãcut studii comparative. S-a constatat, de pildã, cã rutina şi nemulţumirea utilizatorilor datorate lucrului, timp îndelungat, cu anumite produse, este mult mai micã în cazul utilizãrii interfeţelor utilizator grafice (Microsoft Windows, X-Windows, MacIntosh), decât în cazul utilizãrii unor interfeţe în mod text; c) caracteristici tehnice şi de utilizare (de utilitate generalã) . Aceste caracteristici sunt tratate “in extenso” în literatura de specialitate, iar organizaţia internaţionalã pentru standardizare a elaborat un model concretizat în standardul ISO 9126 din 1991 [ISO1]. Între caracteristicile de calitate, indiferent din ce perspectivã ar fi privite sau grupate, existã multiple relaţii de interdependenţã, subordonare, ierarhizare, decompoziţie sau agregare. Complexitatea acestor relaţii determinã ca ansamblul caracteristicilor de calitate sã alcãtuiascã un sistem. Pentru ca acest sistem de caracteristici de calitate sã poatã fi operaţional, în sensul ca sã se poatã selecta un set de caracteristici pe baza cãruia sã se construiascã un sistem de metrici cu care calitatea unuia sau mai multor produse software sã fie evaluatã, setul selectat trebuie sã aibã urmãtoarele proprietãţi: - sã fie apreciat complet de cãtre evaluatori, în sensul de a putea surprinde toate aspectele calitãţii în care evaluatorii sunt interesaţi (prin evaluatori se înţeleg persoanele autorizate şi în cunoştinţã de cauzã, interesate în evaluarea calitativã a produsului, a organizaţiei producãtoare sau a sistemului calitãţii, respectiv producãtori, beneficiari, auditori); - sã fie ierarhizabil , în sensul ca principalele caracteristici sã poatã fi descompuse în factori ce pot cuantificaţi cu ajutorul metricilor; - sã fie necontradictoriu - caracterul contradictoriu al unor caracteristici nu poate fi eliminat în totalitate, fiind practic imposibil sã se dezvolte un set de caracteristici perfect consistent. Astfel, complexitatea vine în contradicţie cu fiabilitatea, portabilitatea cu eficienţa, etc. Ca urmare, pentru elaborarea unor specificaţii pe baza unui set de caracteristici de calitate ce presupun aspecte contradictorii, fie se pot stabili anumite nivele pentru anumite caracteristici, celelalte pãstrându-se în limite acceptabile sau lãsându-se la dispoziţia priceperii proiectanţilor şi programatorilor, fie se stabileşte un sistem de prioritãţi specificate explicit. De exemplu, în cadrul unui produs software, anumite programe/module trebuie sã se execute mai rapid, iar altele sã fie prevãzute cu proceduri suplimentare de verificare şi testare a corectitudinii datelor, chiar dacã aceasta duce la încetinirea duratei de execuţie. La nivel general, sistemul trebuie sã se bazeze, conform [BRÃ1], pe urmãtoarele considerente elementare: 1. conexiunea elementelor interne ale sistemului sã fie mai puternicã decât legãturile sistemului cu mediul. Aceasta se realizeazã prin selectarea pe anumite criterii (specificaţiile beneficiarilor, urmãrirea de cãtre producãtor a unor anumite caracteristici specifice clasei din care face parte produsul software respectiv, etc), a caracteristicilor de calitate incluse; 2. orice sistem, indiferent de complexitatea sa este un subsistem al unui sistem mai cuprinzãtor. În toate situaţiile, sistemul caracteristicilor de calitate ce urmeazã a fi construit este doar un subsistem al calitãţii software; 3. unitatea şi complexitatea unui sistem presupune o anumitã ordine în aşezarea şi funcţionarea elementelor sale; 4. orice sistem este caracterizat printr-o anumitã structurã, care poate fi privitã ca atare, adicã sub forma exactã de reunire a tuturor subsistemelor sau prin urmãrirea diferitelor structuri componente; 5. orice subsistem poate avea o multitudine de bucle de reacţie care se închid pe anumite porţiuni de proces, pe anumite porţiuni de sistem sau chiar la nivelul întregului sistem. Acest lucru se traduce la nivelul sistemului caracteristicilor de calitate prin interdependenţele şi contradicţiile existente între caracteristici. Cea mai dificilã problemã a sistemului calitãţii software este cercetarea mecanismului specific al interacţiunii dintre diferitele caracteristici de calitate ale sistemului, problemã posibil de soluţionat doar prin managamentul calitãţii. Obţinerea unui sistem operaţional de caracteristici - modelul calitãţii - pe baza cãruia sã se poatã realiza managementul şi gestiunea calitãţii, presupune parcurgerea unor etape anterioare obligatorii, astfel: a) definirea problemei - în care se stabilesc caracteristicile şi factorii de calitate ce vor fi luaţi în considerare; b) construirea modelului calitãţii - analiza şi modelarea relaţiilor dintre componente, a modului de interacţiune, a interdependenţelor, precum şi alegerea unui criteriu de performanţã. Aceastã alegere este parţial determinatã de felul în care este precizatã problema; c) stabilirea soluţiei - o soluţie este obţinutã când se apreciazã cã rãspunsul obţinut la un moment dat este cel mai bun în comparaţie cu criteriile stabilite; d) omologarea soluţiei - omologarea soluţiei obţinute pe baza modelului - rezultat al procesului de optimizare. Se poate face prin: A. compararea cu performanţele precendete sau ale altor produse concurente pe piaţã - superioritatea noii soluţii poate fi consideratã ca o verificare a valabilitãţii ei. Inconvenientul acestei metode constã în aceea cã în evaluarea calitãţii oricãrui produs pe o perioadã trecutã toate intrãrile sunt cunoscute şi elemente importante ale luãrii deciziei (variaţiile probabilistice ale pieţei, obişnuinţele utilizatorilor, etc.) sunt astfel eliminate. B. compararea cu performanţele viitoare - constã în compararea soluţiilor supuse la seturi de date de intrare externe identice, faţã de una din ele. Inconvenientele sunt în principal legate de timp şi cost ridicat pentru alcãtuirea seturilor respective de date, elaborarea sau luarea în calcul a unor variante diferite ale produsului, obţinerea şi analiza rezultatelor sumare comparative. În plus, oricât de exhaustiv ar fi elaborate seturile de date de test, în cazul produselor complexe, acestea nu pot fi atotcuprinzãtoare, neputându-se trage concluzii privind alte seturi de date de intrare. C. comparaţia prin simulare - experimentãrile repetate satisfac caracteristicile unor încercãri în condiţiile unor date de intrare externe diferite şi alese la întâmplare. Dar, aşa cum se aratã în [BRÃ1], şi aceastã metodã genereazã probleme specifice care pot reduce contribuţia sa la rezolvarea problemei.