Documente Academic
Documente Profesional
Documente Cultură
a. Aplicare:
b. Primitive:
c. Implementare:
d. Exemplu:
1 NOT 51
OR 20
2 AND 50
NOT
3 52
Fig. 1 Graful boolean cauz - efect
Nodul 20 este un nod intermediar ce reprezint rezultatul aplicrii operatorului SAU
exclusiv nodurilor 1 i 2.
O ambiguitate a specificaiei este dat de vizualizarea seciunii, pentru c nu se
precizeaz dac e vizualizat pe ecran sau tiprit la imprimant atunci cnd se d o
comand corect.
Aceast ambiguitate se elimin prin redefinirea efectului 50 astfel:
50 A - seciunea din index se vizualizeaz pe ecran.
50 B - seciunea din index se tiprete la imprimant.
Graful cauz - efect devine:
NOT
1 20 51
OR
2 AND 50A
AND
3 50B
NOT
52
1 1 1 0 1
2 1 0 1 1
20 0
3 1 1 0
Nepermis (*) * 1 1 1 1 1 1
Fiecare coloan din tabelul 1 se poate converti n mai multe teste echivalente. O
posibilitate ar fi:
e. Instruire:
f. Beneficii:
2. Trasabilitatea cerine
a. Aplicare:
b. Primitive:
R1
TM = 100% .
R2
d. Interpretare:
e. Instruire:
f. Exemplu:
Se consider un sistem de suparaveghere a traficului care trebuie s transmit un
avertisment la consola operatorului i s-l tipreasc atunci cnd traficul n sistem este
ridicat.
n figura 3, nu se precizeaz tiprirea avertismentului, trasabilitatea nefiind deci
complet.
R1
R2 = R1 + 1 i TM = 100% < 100%.
R2
Avertizare
Trafic intens Sesizare
supervizor
Avertizare
Trafic intens Sesizare
operator
Mesaj la
imprimant
Aici R1 = R2 + 1 i TM > 100% pentru c o cerin adiional, care n-a fost iniial
n arhitectura sistemului, s-a introdus (lund fig. 3 ca reflectnd ceea ce a cerut
beneficiarul iniial).
Aceast situaie ar putea fi i o eroare (TM > 100%).
g. Beneficii:
IPOTEZE DE LUCRU:
- Cu toate c tipurile de date nseamn alocri de zone de memorie
diferite, toi operaranzii sunt considerai omogeni, putnd fi
contorizai global;
- Dei operatorii nseamn nr. diferit de cicluri main, vor fi
considerai omogeni i vor fi, aadar, contorizai global;
- Chiar dac cuvintele cheie folosite n instruciuni executabile
corespund unor secvene de compilare de lungimi diferite, vor fi
considerate omogene i se vor contoriza global.
Aceste ipoteze simplificatoare sunt specifice metricii HALSTEAD.
Se consider:
n1 nr. operanzilor distinci;
n2 nr. operatorilor distinci;
Se vor defini relaiile:
n = n1 + n2, unde n este vocabularul folosit n program;
N = N1 + N2, unde:
N1 nr. total de operanzi care apar n program;
N2 nr. total de apariii ale operatorilor n program;
N lungimea observat a programului.
C = n1 log2( n1 ) + n2 log2( n2 ), unde C este complexitatea estimat
a programului;
V = N log2( n ), unde V este volumul programului;
K = (V n2 N1) / (2 n1), unde K este claritatea programului;
L = ( 2 n1) / ( n2 N1 ), unde L reprezint nivelul de implementare;
D = 1 / L, unde D este dificultatea.
Se observ c metrica HALSTEAD privete programul ca un ansamblu
de componente, fr a lua n considerare interdependenele dintre
instruciuni i modul de execuie a lor.
De exemplu secvenele:
s = 0; s = 0;
i= 0; for ( i =1; i< n; i++ )
x [ i ] = 1; {
for ( i = 1; i < n; i++ ) y[ i ] = 0;
{ z[ i ] = i;
x [ i ] = ( i +3 ) * (i+3); x [ i ] = ( i+3 ) * (i+3);
s+ = x[ i ]; s+ = x[ i ];
} }
Secvena a) Secvena b)
Pt. secvena a)
n1 = {s, i, x, n, 0, 1, 3}----operanzi distinci;
n2 = { = ; [ ] ( ) < ++ * + }----operatori distinci.
Obs.: 1) { } i , sunt separatori.
2) Cu toate c instruciunile nu sunt comutative, metrica HALSTEAD
nu reflect necomutativitatea, tocmai de aceea, pt. realizarea unor
comparaii reprezentative, ea se aplic unor programe corecte i optimale.
De exemplu secvenele:
s= 0; s= 0;
a = 0; for (i = 0; i < n; i++)
for (i = 0; i < n; i++) {
{ a = 0;
s+ = x[ i ]; s+ = x[ i ];
} }
Secvena a) Secvena b)
Dac se consider graful G asociat unui program, care are N noduri, M arce i P
componente conexe (pentru care se identific perechi de noduri distincte legate printr-un
lan), numrul ciclomatic v(G) = M N +P.
Numrul ciclomatic reprezint o agregare de elemente neomogene (noduri, arce, perechi
de noduri legate prin lanuri).
De exemplu, pentru graful din fig. 1
X6
X4 X5
X1
X7
X2
X8
X3
Numrul de noduri N = 8, numrul de arce M = 7. Perechile de noduri (x1, x5), (x2, x5),
(x3, x5), (x1, x6), (x2, x6), (x3, x6), (x4, x6), sunt legate prin lanuri; n acest caz P = 7.
Numrul ciclomatic asociat grafului din fig. 1 este :
v(G) = M N +P=7 8 + 7 = 6.
Structurilor de program le corespund grafuri care au particulariti impuse de caracterul
secvenial al execuiei instruciunilor. Fiecrei structuri de program i se poate ataa un
graf orientat n care nodurile corespund instruciunilor, iar arcele ordinii de execuie a
instruciunilor. Un astfel de graf are un nod iniial (de start) i un nod terminal (de stop) i
nu este un graf conex, deoarece nu exist un drum de la nodul iniial la cel final. Prin
adugarea unui arc care pleac din nodul terminal i are cealalt extremitate n nodul
iniial se obine un graf conex, ce are o singur component (P = 1).
Numrul ciclomatic se calculeaz dup formula:
v(G) = M N +2,
deoarece a fost adugat grafului iniial un arc suplimentar (fictiv).
De exemplu, pentru un program format din 6 instruciuni de afiare care se execut
secvenial, avnd asociat graful din fig. 2,
I1 I2 I3 I4 I5 I6
void main()
{
int np, nn, nz, i, x[10]={-3, 2, 7, 0, 11, 0, 2, 4, -1, 0};
I1: np=0;
I2: nn=0;
I3: nz=0;
I4: for(i=0; i<10; i++)
I5: if(x[i] < 0)
I6: nn++;
else
I7: if(x[i] > 0)
I8: np++;
else
I9: nz++;
I11: printf(\n Numarul elementelor negative = %d, nn);
I12: printf(\n Numarul elementelor nule = %d, nz);
I13: printf(\n Numarul elementelor pozitive = %d, np);
}, se asociaz graful din fig. 3:
Vom avea:
Numrul de noduri: N = 13
Numrul de arce: M = 15
Numrul ciclomatic asociat acestui graf:
V(G) = M N + 2 = 15 -13+ 2= 4.
nivele de context
3 2 1 2 3
n1 a=3
n2 b=4
n3 c=2
n4 if(a > b)
da
n6 n5
min=a min=b
n7
endif
n8
if(min > c) da
n9
n10 min=c
endif
n11
printf
C = 18 11 + 2 = 9.
Numrul ciclomatic calculat dup formula lui McCabe are valoarea:
CMC = M N + 2 = 12 11 + 2 = 3.
Ic = 8 / ( 12 * 2 11 + 2 ) = 9 / 15.
Se observ, analiznd tabelul 2, c ponderea exprim mai bine diversitatea legturilor
dintre noduri.
I2 nz = 0
I3 nn = 0
I4 for
nu I5 if
da
I7 if
I11
I6 nn++ da
I9 nz++
I8 np++
I12
a. Aplicare:
Metrica poate fi folosit pentru a proiecta timpul mediu pn la descoperirea
urmtoarelor k defecte, dnd indicaie asupra a ct de mult timp se cere pn ce se obine
un nivel dorit de fiabilitate.
b. Primitive:
f = numr de defecte gsite de la nceputul testrii pn n prezent;
ti = timpul ntre defectarea (i-1) i i pentru un nivel de severitate dat (i=1, ).
c. Implementare:
Timpul mediu pn la defectare (metricul 4) ar trebui folosit pentru estimarea
urmtoarelor k defecte n software. El are expresia:
Timpul mediu pn la descoperirea urmtoarelor k defecte (TME)^ =
f +k 1
defectarea i i i+1 i se poate calcula folosind orice model software bazat pe timpii ntre
defectri. Prin estimarea MTTF, se poate estima ct timp de testare va fi necesar pentru a
descoperi toate defectele sau un subset al defectelor reziduale.
d. Interpretare:
Calculele numerice actuale ale estimrii MTTF depind de distribuia aleas de
model pentru MTTF.
e. Consideraii:
n timpul ciclului de via al dezvoltrii software, ar trebui s se utilizeze
evalurile prediciilor unui model pentru f i n funcie de aceasta s se fac planificri
care se pot realiza.
g. Instruire:
Implementarea acestui metric cere cunoaterea aplicrii modelelor software ale
timpilor ntre defectri.
h. Exemplu:
Se folosete modelul de de-eutroficare Jelinski-Moranda pentru a estima
MTTFi (timpul mediu de defectare ntre defectrile i i i+1).
^ 1 , unde:
MTTFi =
^
^ (NF-i)
Q
^
Q = constant de proporionalitate estimat n model;
^
NF = numr estimat al defectelor existente n program.
Timpul mediu estimat pentru a descoperi urmtoarele defecte este:
f + k 1
1
TME = ^
^ (NF-i)
.
i=f Q
i. Beneficii:
Acest metric se poate reprezenta funcie de k (k = 1,2,3, NF) folosind la
aprecierea integritii unui sistem n orice moment dat.
a. Aplicare:
Numrul estimat de defecte rmase ntr-un program ine de fiabilitatea
programului. Sunt mai multe tehnici de estimare a acestui numr. Aici se propune o
form a plantrii defectelor cu o distribuie omogen.
Acest metric poate fi aplicat oricrei faze a ciclului de via software.
Cutarea defectelor continu pn cnd se descoper un anumit numr de defecte
nsmnate, pe lng cele indigene.
b. Primitive:
NS = numr de defecte plantate;
nS = numr de defecte plantate gsite;
nF = numr de defecte indigene gsite;
c. Implementare:
o echip special insereaz NS defecte reprezentative pentru tipul de defecte
indigene ateptate s existe n soft;
echipa de test raporteaz defectele gsite n timpul unei perioade de test
prestabilit. Precizia estimrii crete cu numrul de defecte care au fost
inserate aleator n software. Fiecare defect raportat trebuie atribuit unei clase
(indigen sau inserat) i totodat se stabilete dac a mai aprut;
estimarea numrului de defecte indigene pentru o anumit clas este:
^ n F NS
NF = , unde :
nS
^
NF se va lua ca parte ntreag.
d. Consideraii:
msura depinde de presupunerea c defectele nserate sunt reprezentative
pentru defectele existente. n general, nu toate defectele au posibilitate egal n a
fi descoperite de o procedur de test;
defectele sunt corectate n software-ul original numai dup ce s-a
determinat care sunt erorile indigene dintre toate defectele;
corecia defectelor indigene poate duce la generarea altor defecte.
e. Instruire:
se cere instruire n inserarea defectelor i monitorizarea procesului de
testare;
se cere i pricepere n clasificarea defectelor.
f. Exemplu:
Presupunem c s-au inserat 100 de defecte. n timpul perioadei de testare, au fost
gsite 50 din cele 100 de defecte plantate i 2 dintre cele indigene.
Atunci: NS = 100
nS = 50
nF = 2
^ = nFN S 2 100
NF nS = 50 =4
^ ^
Numr de defecte reziduale: NF rez = NF - nF = 4 - 2 = 2.
Nippon Telephone and Telegraph au obinut rezultate bune aplicnd metoda de
inserare defecte unui sistem de operare cu 15000 linii de cod.
b. Primitive:
(1) program:
funcionale (module, segmente, instruciuni, ramificri, ci);
date (clase de date).
(2) cerine:
cazuri de test;
capaciti funcionale.
c. Implementare:
Acoperire test (TC) are expresia:
(Capabiliti implementate) (Primitive program testate)
TC (%) = (Capabiliti cerute) (Primitive program totale) 100
d. Interpretare:
TC este doar un indicator al desvririi unui test. De obicei exist un
numr infinit de cazuri de test. Acesta poate fi redus semnificativ dac se definesc
logic relaii echivalente referitor la funcii i date;
ncrederea n nivelul testrii crete prin utilizarea de primitive rafinate: de
exemplu, acoperirea segment de 100% este mai puternic dect cea a modulului
de 100%.
e. Consideraii:
programul este un set de instruciuni codificate, iar cerinele sunt un set al
capabilitilor dorite de utilizator;
CUTIE
NNEAGR
CUTIE ALB
PROGRAM
CERINE
CUTIE GRI
(ACOPERIRE DORIT)
f) Instruire:
Utilizatorul ar trebui s neleag baza teoriei de testare.
g). Exemplu:
Presupunem c toate cerinele sunt implementate.
Tabelul 3 d coverage-ul test al unui set de teste n care segmentele sunt
primitivele.
a. Aplicare:
Se folosete pentru a testa un MTTF specificat.
b. Primitive:
MTTF este parametrul de baz cerut de majoritatea modelelor de fiabilitate
software;
calculul e dependent de precizia nregistrrii timpului de defectare ( ti ), unde
ti este timpul dintre defectrile (i-1) i i;
pentru un mediu de dezvoltare software, se recomand timpul de execuie
CPU, iar pentru mediul operaional timpul calendaristic (mai puin precis).
c. Implementare:
se pstreaz istoria defectrilor;
se organizeaz defectele n funcie de complexitate, severitate sau rata de
reinserie;
se alege un model reprezentativ al procesului de defectare, care se valideaz
cu datele despre defectri pe care le-am nregistrat.
c. Interpretare:
O valoare mare a MTTF implic o fiabilitate i disponibilitate corespunztoare ale
software-ului.
d. Instruire:
cunotine de statistic matematic i folosire a modelelor de fiabilitate;
calculele pentru majoritatea modelelor de fiabilitate cer implementarea unor
programe pe calculator.
e. Exemplu:
Se consider trei nivele ale severitii claselor de defectare: SF1, SF2 i SF3.
Fiecare clas de defectare are proprii si timpi ntre defectri:
SF1: 180, 675, 315, 212, 278, 503, 431
SF2: 477, 1048, 685, 396
SF3: 894, 1422.
Atunci o estimare a MTTF este:
i
tk
MTTF = , pentru fiecare clas, unde:
k =1 i
tk = timpii ntre defectri;
i = nr. de defectri din clasa de severitate respectiv.
2594
MTTF SF1 = = 370 .57 ,
7
2606
MTTF SF 2 = = 651 .5,
4
2316
MTTF SF 3 = = 1158 .
2
Aceste valori pot fi comparate cu MTTF specificat pentru fiecare clas de
severitate.
Pentru c rata de defectare e constant, funcia de distribuie a defectrii poate fi
presupus exponenial i F(t) = 1 - exp(-t/MTTF), care reprezint probabilitatea
defectrii software n timpul t.
5. Rata de defectare
a. Aplicare:
Poate fi folosit pentru a indica creterea fiabilitii software n funcie de timpul
de testare.
b. Primitive:
ti = timpul ntre defectri pentru un anumit nivel de severitate (i = 1, 2,..);
fi = numrul de defectri ale unui nivel de severitate n intervalul de timp t.
c. Implementare:
rata de defectare (t) poate fi estimat din funcia de fiabilitate, R(t), care
la rndul ei se poate obine din distribuia de probabilitate cumulativ, F(t),
a timpului pn la urmtoarea defectare folosind orice model de cretere
fiabilitate, cum ar fi modelul Poisson neomogen (NHPP) sau modelul de tip
Bayesian.
R' ( t )
Rata de defectare este : (t) = R ( t ) , unde R(t) = 1 - F(t).
d. Interpretare:
(t) obinut din NHPP depinde numai de timpul t i descrete continuu;
(t) care deriv din modelul lui Littlewood depinde de timpul t i valoarea
funciei de cretere fiabilitate (i) la defectarea a i a.
Cernd funciei (i) s fie cresctoare, condiia (ti) (ti - 1) poate fi
respectat doar n sens probabilistic, pentru c programatorul poate introduce noi erori n
timpul coreciei unei erori.
e. Consideraii:
Modelul NHPP face supoziiile:
(1) Fiecare defect are probabilitate egal de expunere;
(2) Nr. de defecte detectate n timpul intervalelor destinate de test , t i, sunt
independente;
(3) Timpul ntre defectrile i-1 i i depinde de timpul pn la a (i-1) a defectare.
f. Instruire:
programe de calcul pe calculator (pt. parametri i indicatori);
cunoatere a proceselor stochastice i a tehnicilor de optimizare.
g. Exemple:
Misra , un specialist NASA, a obinut o funcie valoare medie pentru rata de
defectare testnd peste 0.5 milioane linii cod surs ale unui software folosit n aviaie.
Dup 38 sptmni de testare ( 2455 h) au fost estimai parametrii modelului
NHPP pentru categoria de erori majore:
a = 163.813; b = 0.287 10-3
Rata de defectare descresctoare are expresia:
n n
( t ) = ab exp b ti + t pentru t i t.
i =1 i =1
Littlewood a examinat un set de date de 136 timpi de execuie, publicat de Musa, pentru
a prezice timpii de defectare viitori, utiliznd
( t ) = ,ti t ti +1
t + ( i)
i lund pentru (i) o form liniar:
(i) = 1 +2i.
Parametrii , 1 i 2 s-au obinut cu metoda verosimilitii maxime bazat pe primele 35
de observaii:
= 1.518; 1 = -0.995; 2 = 7.834.
Cu aceasta, rata de defectare dup defectarea i se poate estima cu formula:
^ ( t) = 1518
.
,
t 0.995 + 7.834 i
ti t ti + 1 (i = 1, .136).
h. Beneficii:
scderea ratei de defectare poate fi folosit pentru a arta mbuntirea
fiabilitii software ca un rezultat al folosirii operaionale;
se poate estima timpul necesar atingerii unei inte de fiabilitate
Introducere n Ingineria Programrii
It e ra tiv e d e v e lo pm e nt
0 25 50 75 1 00
0 25 50 75 1 00
0 25 50 75 1 00
Fiabilitate
Software-ul trebuie s fie de ncredere;
Eficien
Software-ul nu trebuie s abuzeze de resursele sistemului;
Acceptan
Software-ul trebuie s fie acceptat de utilizatorii pentru care a fost
proiectat. Acest lucru nseamn c trebuie s fie uor de neles,
utilizabil i compatibil cu alte sisteme.
Confidenialitate
Trebuie respectat confidenialitatea angajailor i a
clienilor indiferent dac a fost semnat sau nu un
contract de confidenialitate.
Competen
Nu trebuie prezentat greit nivelul de competen.
Nu trebuie acceptat o lucrare care depete
nivelul de competen.
Cerine utilizator
Sunt fraze n limbaj natural plus diagrame ale
serviciilor pe care le ofer sistemul i constrngeri
de operare. Ele sunt scrise de clieni.
Cerine de sistem
Sunt structurate ntr-un document cu descrieri
detaliate ale funciilor sistemului, servicii i
constrngeri de operare. Definete ceea ce va fi
implementat, deci poate fi parte dintr-un contract.
Proprietate Unitate
Viteza Tranzac
Timp de
Timp de
Dimensiune M Bytes
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6
Numr d
Slide 22
Interaciunea cerinelor
Conflictele dintre diferite cerine ne-funcionale
sunt un lucru obinuit n sistemele complexe.
Sistem folosit n navete spaiale
Pentru a minimiza greutatea, numrul de cipuri
separate din sistem trebuie minimizat.
Pentru a minimiza consumul de putere, trebuie
folosite cipuri cu consum redus.
Totui, folosirea cipurilor cu consum redus poate
nsemna c vor fi folosite mai multe cipuri. Care
cerin este mai important (mai critic)?
Lipsa de claritate
Este greu s obii precizie fr s faci documentul
dificil de citit.
Confuzia cerinelor
Cerinele funcionale i cele ne-funcionale tind s fie
amestecate.
Amalgamarea cerinelor
Diferite cerine pot fi exprimate mpreun.
Nota ie Descriere
Limbaj natural Aceast aborda
structurat cerinelor.
Limbaje de Aceast aborda
descriere a cu faciliti ma
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 35
Specificaii n limbaj structurat
Libertatea scriitorului de cerine este limitat de
un ablon predefinit pentru cerine.
Toate cerinele sunt scrise ntr-o manier
standard.
Terminologia folosit n descrieri poate fi limitat.
Avantajul este c se menine expresivitatea
limbajului natural, dar este impus un grad de
uniformizare a specificaiilor.
Card
Card number
Card OK
PIN request
PIN
Option menu Validate card
<<exception>>
invalid card
Card
Card removed
Complete
Cash transaction
Cash removed
Receipt
Cerinele de sistem trebuie s descrie funciile
oferite de sistem.
Un document de cerine software este o
exprimare oficial a cerinelor sistemului.
Standardul IEEE este un punct de start pentru
definirea unor standarde mai detaliate de
specificare a cerinelor.
1
S-a acordat o atenie deosebit terminologiei i aspectelor de ordin conceptual din domeniul
calitii software, prelundu-se i adaptndu-se rezultate ale firmelor de prestigiu n domeniu,
publicate n reviste i cri de specialitate.
Rezultatele cercetrilor i experimentrilor ntreprinse n mediul universitar i
industrial au fost concretizate prin publicarea a peste 40 de lucrri de specialitate, n
perioada 1982-1994 .
O atenie aparte a fost acordat fiabilitii software-ului, studii i experimentri fiind
ntreprinse n cadrul ICI i instituiilor de nvmnt superior (ASE, UPB, ATM), drept urmare se
poate aprecia c s-a format un grup de specialiti care posed cunotine tehnice i care au acumulat
experien n domeniu pe baza experimentelor i studiilor de caz ntreprinse.
Nu se pot spune prea multe lucruri pozitive n ceea ce privete societile care se ocup
cu realizarea i comercializarea produselor din domeniul tehnologiei informaiei, unde
activitile de conducere i asigurare a calitii software-ului sunt foarte slab exprimate.
Cercetrile din domeniul ingineriei software-ului abordeaz implicit i explicit
domeniul calitii software-ului.
Tratarea implicit a calitii se refer la metode, tehnici i instrumente de realizare (analiz,
proiectare, programare) care s aib ca obiectiv final obinerea de software cu un nivel mare de
calitate.
elul specialitilor este de a elabora i implementa tehnologii pentru asigurarea i
mbuntirea calitii software.
Abordarea explicit vizeaz cercetarea direct (nemijlocit) a calitii, avnd ca obiective
principale:
Importana standardelor ce descriu calitatea (de ex. seria de standarde ISO 9000) rezult din
faptul c standardele ISO au fost preluate de un numr mare de organisme de standardizare naionale
i regionale.
Unele organizaii de standardizare folosesc standardele ISO fr a le modifica, altele au
introdus sisteme proprii de numerotare, textul fiind acelai cu cel al standardelor ISO.
Sunt multe organizaii care produc standarde n SUA i alte ri.
n industria de aprare avem de-a face cu standardele DOD (Departament of Defence) care
se folosesc de muli ani. O serie de standarde ale departamentului de aprare au fost preluate i
adoptate n sectorul comercial al produciei de organizaii precum IEEE (Institute for Electrical on
Engineers), ASTM (The American Society for Testing and Materials), UL (Underwriters
Laboratories) i SAE (Society for Automative Engineers).
n ceea ce privete fiabilitatea, ca una dintre principalele caracteristici de calitate
software, ea a fost abordat indirect, prin standardele de asigurare a calitii software n
ansamblu (ISO 9000, ISO 9126, i altele) sau direct, prin standarde care vizau problematica
definirii terminologiei, msurrii i evalurii fiabilitii software pe ntreg ciclul de via,
standarde publicate att de ISO/IEC, ct i de alte organisme i organizaii internaionale.
Mai jos se propune o list cu unele dintre standardele de fiabilitate (plus alte standarde la care
se fac referine) cunoscute i existente pe plan mondial, dar i n ara noastr i pe care autorul le-a
putut consulta prin intermediul IRS (Institutul Romn de Standarde):
Titlu
Nume standard
ANSI/IEEE std. 729-1983[XXXX83] IEEE Standard Glossary of Software
Engineering Terminology.
2
ANSI/IEEE std. 730-1984[XXXX84] IEEE Standard for Software Quality
Assurance Plans.
ANSI/IEEE std. 1012-1986[XXXX86] IEEE Standard for Software
Verification and Validation Plans.
ISO 8402-1994[XXXa94] Management and Assurance of quality -
vocabulary.
Creterea comunitii de cercetare n SRE este de aproximativ 35% pe an, fapt ce explic importana
acordat acestei discipline aflat n ascensiune.
3
Folosirea tehnicilor noi e posibil s creasc fezabilitatea i s reduc riscurile implicate n
obinerea sigur a calitii dorite.
De exemplu, metodele formale pot duce la realizarea unor nivele nalte de fiabilitate, iar
fixarea de prototipuri poate crete ansa atingerii nivelelor dorite n utilizarea produsului.
La elaborarea produselor software,
factor caracteristicile
(caracteristic) de calitate sunt privite difereniat.
Se poate pune accent la un moment dat pe realizarea la cote superioare a unei anumite
caracteristici de calitate.
Celelalte caracteristici vor avea niveluri influenate direct de caracteristica prioritar,
care trebuie meninut ntre limite care nu afecteaz nivelul global al performanei
produsului.
Programele sunt elaborate astfel nct s rspund cerinelor de prelucrare ale
criteriu criteriu n
beneficiarilor, dar 1 n (subcaracteristic)
acelai timp s. . reflecte
. posibilitile materiale i financiare ale
realizatorului i ale beneficiarilor. Dac la proiectare primeaz o anumit caracteristic, odat
cu trecerea la noi versiuni ale programului, se poate modifica ierarhizarea caracteristicilor n
raport cu criteriul importanei.
Caracteristicile metriciprogram formeaz un sistem complex,
metrici i atributele de calitate ale produselor
dinamic; creterea nivelului unei anumite caracteristici influeneaz pozitiv nivelul altor caracteristici,
dar pot exista i situaii conflictuale.
De Fig.
aceea1. Relaia
trebuie caracteristici-subcaracteristici-metrici
asigurat echilibrul necesar ncadrrii produselor program ntre limitele
admise ale performanei, prin utilizarea tehnicilor de analiz - proiectare - programare adecvate, dup
ce s-au evaluat efectele lor.
4
Caracteristicile de calitate reprezint punctul de vedere al utilizatorului i al efului de proiect
asupra calitii, folosind la definirea cerinelor utilizatorului i la stabilirea obiectivelor de calitate
pentru sistemul de programe.
Subcaracteristicile au semnificaie tehnic i sunt relevante pentru personalul de
specialitate (analiti, proiectani, programatori).
Ele faciliteaz comunicarea ntre eful de proiect i personalul de specialitate pentru atingerea
obiectivelor de calitate.
Subcaracteristicile se definesc pentru componentele sistemului de programe i diferitele
forme de reprezentare (cerine, specificaii, cod surs, documentaie de utilizare, .a.) pe
parcursul ciclului de via.
La ultimul nivel se definesc metricile, care permit msurarea subcaracteristicilor i, n
consecin, a caracteristicilor de pe primul nivel.
Relaii
Ierarhice De influen
Conflictuale Complementare
5
- funcionalitate, utilizabilitate, fiabilitate, eficien, mentenabilitate i portabilitate, ca
n figura 3:
Subcaracteristici
Caracteristici
ci Funcionalitate
Utilizabilitate
Maturitate
Fiabilitate
Toleran la erori
Eficien Capacitatea de recuperare
Mentenabilitate
Portabilitate
Caracteristic Semnificaie
- prezena i adecvana setului de funciuni fa de specificaii;
- atributele produsului sunt legate de obinerea rezultatelor corecte sau
convenite (ex. gradul necesar de precizie al valorilor);
FUNCIONALITATE - posibilitatea de interaciune a produsului cu altele specificate;
- aderarea la standarde, convenii, reglementri i alte prescripii
similare, legate de domeniul de aplicaie;
- posibilitatea produsului de a preveni accesul neautorizat, accidental
sau deliberat, la programe sau date.
- gradul de maturitate al produsului, respectiv frecvena cderilor din
cauza erorilor produsului software;
FIABILITATE - capacitatea produsului de a-i menine un anumit nivel specificat de
performan n caz de eroare;
- posibilitatea restabilirii nivelului de performan i refacerea datelor
n cazul unei erori; timpul i efortul necesar pentru aceasta.
- uurina n nelegere, efortul utilizatorului de a recunoate conceptul
UTILIZABILITATE logic i aplicabilitatea lui;
- uurina n operare;
- uurina n nvarea aplicrii produsului.
- comportamentul n timp, eficiena ca timp de rspuns - pe tipuri
PERFORMANE diverse de prelucrri, ratele de transfer sub condiii diferite de
ncrcare i configuraii diferite;
- comportamentul resurselor, respectiv consumul de memorie intern i
extern n diferite condiii.
- rapiditatea i exactitatea cu care se poate identifica o eroare n
MENTENABILITATE execuie din mesajele produsului i cauzele acesteia;
- existena n documentaie a procedurilor i facilitilor de ntreinere a
produsului.
- posibilitatea de adaptare la alte medii specifice, fr a apela faciliti
PORTABILITATE din afara produsului;
- posibilitatea de instalare a produsului ntr-un mediu specificat;
- gradul de aderare a produsului la standardele i reglementrile legate
de portabilitate.
6
Conform acestui standard, fiabilitatea e definit ca fiind capacitatea software-ului de a
menine nivelul su de performan n condiii stabilite pentru o perioad dat de timp.
Uzura sau mbtrnirea nu apare n software. Limitrile fiabilitii sunt generate de
erorile n cerine, proiectare i implementare. ntreruperile care apar din cauza acestor erori
depind de modul cum e utilizat produsul software (profilul operaional) i de opiunile
selectate n program, mai degrab dect de trecerea timpului.
n definiia ISO 8402, fiabilitatea reprezint
Aptitudinea unui produs de a ndeplini o funcie cerut....... n acest standard,
funcionalitatea este numai una din caracteristicile calitii software-ului. Ca urmare, definiia
fiabilitii a fost extrapolat la meninerea nivelului su de performan n loc de
executarea unei funcii cerute.
n ceea ce privete subcaracteristicile, se poate aprecia c nivelul lor este mai detaliat. Vom
exemplifica aici doar subcaracteristicile specifice fiabilitii, cele aparinnd celorlalte caracteristici
putndu-se afla prin consultarea standardului (se pot deduce i din semnificaia dat caracteristicilor
n tabelul 1). Ele sunt:
maturitatea - atribute ale software-ului ce vizeaz frecvena ntreruperilor datorate
erorilor software;
tolerana la defectri - aptitudinea software de a menine un nivel specificat de
funcionare n cazul apariiei erorilor sau al violrii interfeei sale;
capacitatea de recuperare - atribute software ce reflect capacitatea de restabilire a
nivelului su de funcionare i de recuperare a datelor afectate direct de apariia unor
erori, precum i timpul i efortul necesare pentru aceasta.
Definiia dat calitii din ISO 8402 exprim punctul de vedere al utilizatorilor, la fel ca i
caracteristicile din acest standard.
Utilizatorii evalueaz software-ul fr a ti aspectele interne de realizare i interaciune
software.
ntrebrile utilizatorilor pot fi de forma:
funciile cerute sunt disponibile n software?
ct de fiabil este software-ul?
ct de eficient este software-ul?
este software-ul uor de utilizat?
care-i dificultatea transferrii software-ului n alt mediu?
Realizatorii sunt responsabili de producerea software-ului care va satisface cerinele de
calitate, fiind interesai att n calitatea produsului intermediar, ct i n cea a produsului final.
Pentru a evalua calitatea produsului intermediar n fiecare faz a ciclului de realizare,
realizatorii trebuie s foloseasc msuri diferite pentru aceleai caracteristici, nefiind universale
pentru toate fazele ciclului de via..
Punctul de vedere al realizatorilor trebuie s exprime i pe cel al celor care ntrein
software-ul.
Administratorul (managerul de proiect) este interesat de calitate pe ansamblu, dect de o
caracteristic anume i de aceea va trebui s fie acordate ponderi caracteristicilor individuale, care s
oglindeasc cerinele comerciale.
Administratorul echilibreaz mbuntirea calitii cu criteriile de administrare, cum
ar fi ntrzierea fa de timpul planificat sau depirea costului, dorind optimizarea calitii n
cadrul limitelor costului, resurselor umane i a timpului prevzut. Ultimul nivel n modelul
calitii, reprezentat de metrici, nu este nc standardizat.
Se las la latitudinea organizaiilor s-i defineasc metrici specifice.
Unii specialiti folosesc alt terminologie pentru perechea caracteristici - subcaracteristici:
- caracteristici - atribute n modelul Boehm;
- factori - subfactori n modelul McCall.
Modelele difer att prin modul de ierarhizare a caracteristicilor i subcaracteristicilor, ct i
prin definiiile utilizate.
7
Conceptul de management al calitii totale se axeaz pe lucrrile de pionierat ale lui
Armand Feigenbaum, Dr.Edward Deming, Dr. Joseph Juran i alii.
O lucrare de referin n acest domeniu este Total Quality Control, publicat de A.
Feigenbaum nc din 1951.
Calitatea total s-a aplicat pentru prima oar n Japonia la nceputul anilor 80, dup
publicarea crii Ce e calitatea total a dr. Kaoru Ishikawa. La jumtatea anilor 80,
Departamentul Aprrii S.U.A. a popularizat noiunea de management al calitii totale, extrapolnd
disciplina calitii la toate domeniile economice.
Dup o definiie dat de DOD n 1990, managementul calitii totale e o strategie pentru a
continua mbuntirea performanei la orice nivel i-n toate domeniile de responsabilitate.
Calitatea total reprezint un proces continuu cuprinznd toate aspectele unei organizaii, de
la design ori serviciu pn la producie i utilizarea produsului sau serviciului, necesitnd deplina
nelegere a cerinelor i ateptrilor clienilor i implicnd toi angajaii n aprecierea i mbuntirea
calitii, cu ajutorul unor instrumente i tehnici de mbuntire.
Standardele ISO sunt un punct de start corespunztor pentru o firm care-i propune
managementul calitii totale.
Standardele ISO 9000 descriu un set de standarde internaionale care se ocup cu
designul, producia, livrarea, serviciul i testarea procesului. Ele i propun mbuntirea
procesului de producie a unei firme.
n S.U.A. multe companii folosesc standardele MIL - I- 45208 sau MIL - Q - 9858, chiar i
acelea care nu au contracte cu industria de aprare.
Odat ce un standard al calitii sistemului s-a impus, sunt trei ci uzuale de a verifica
ndeplinirea cerinelor de calitate privind sistemele:
cumprtorul are ncredere n buna credin a furnizorului (productorului);
cumprtorul conduce procesul de verificare la productor;
cumprtorul i alege un verificator care certific calitatea sistemului (audit).
Primele dou metode sunt comune n practicile comerciale. De exemplu, DOD S.U.A.
conduce testele de verificare a calitii sistemelor pentru furnizorii si.
Standardele ISO 9000 au adoptat a treia metod de verificare a calitii.
Descrierea lor pe pri este dat n tabelul 2.
Standardele ISO 9001, 9002 i 9003 prevd cerinele contractuale ntre productor i
beneficiar.
Standardele cu cel mai mare efect n proiectare asupra calitii sunt ISO 9001, ISO 9000-3 i ISO
9000 - 4. Prin aplicarea acestora, productorul poate realiza un sistem de calitate innd seama de
etapele de proiectare, producere i dependen pentru produsele hardware ct i pentru software.
Standardul ISO 9000 - 3 ofer un ghid productorilor de software care aplic standardul
ISO 9001.
n standardul ISO 9000 - 1 se afirm:
Procesul dezvoltrii, producerii i ntreinerii produselor software este diferit de
celelalte tipuri de procese industriale n care nu este nici o diferen n faza de producie.
Software-ul nu se uzeaz i n consecin calitatea activitilor n faza de proiectare are o
importan deosebit n calitatea final a produsului.
Cderi (failures)
Fig. 4. Relaiile dintre termenii de baz n fiabilitatea software: Error, fault, failure.
11
FAZA OPERAIONAL
( failures )
FAULTS
REZIDUALE
PROIECT tergere
ARE: adecvat
PUINE
CUNOATERE SRAC, ORIENTARE ERORI
SCHIMBRI PREMATUR NSPRE
INSUFICIENT,
(fcuteUSER
ct mai ERORI
NEVOILE I CALITATEA TOTAL.
curnd posibile)
d natere
Fig. 5 Cauzele incidentelor (failures) previne
permite
susine implementarea uoar
extensii i controlat
directe
PROCESE
CONSTRUC-
TIVE PROIECTARE: INTRRI PROIECTARE:
stabil; din lumea modular;
PROIECT adaptabil real documentat;
ARE:
13
Maintenan&Operare
CONCEPT
CERINE
CODIFICARE
TEST
DESIGN
Livrare& Instalare
Retragere
SOFTWARE
CONCEPIE
personal priceput, competent
Do it right the studiul mediului operaional i al necesitilor USER
first time studiul produselor similare
( Prevenire eroare,
reducere apariie scriere specificaii
defect, proiectare
prototipizare rapid
robust i toleran
la defectri ) simulare
Design & Codificare
Verificare
Detect it early;
fix it as soon as revederi
practicable inspecii Concepia ideal
( detectare i prototipizare 1. folosii verificarea (activiti,
tehnici, scule)
eliminare rapid
pt. a determina i elimina
defecte ) simulare defectele;
2. folosii validarea (activiti,
probare
Validare
METRICII
Monitor it"
colecie de date despre primitive, calcule, evaluare
(Ct de corect?)
(Ct de complet ?)
fiier
e
primitive
mnuire,
cunotine,
inteligen
Proces de observare i monitorizare: 15
colectare date
nregistrare date
Fig. 8 Fluxul informaiei de msurare (parte a procesului de dezvoltare)
Ieire Intrare
Intrare Subproces produs produs Subproces Ieire
produs n n+1 ... produs
...
Criteriul de Criteriul de
Criteriul de intrare ieire pentru intrare pentru
pentru subprocesul n subprocesul n subprocesul n + 1
Msurile aplicate se refer la proces i produs. Msurile produs se vor aplica obiectelor
software rezultate n urma unui proces i se mpart n ase subcategorii:
Erori (errors), defecte (faults) i incidente (failures);
Timpul mediu de defectare; rata de defectare;
Cretere fiabilitate i proiectare fiabilitate;
Defecte rmase n produs (nr. rezidual);
Completitudine i consisten;
Complexitate.
Msurile proces vor fi aplicate activitilor de dezvoltare ale ciclului de via, testrii i
mentenanei software i cuprind trei subcategorii:
Control management;
Acoperire (coverage);
Risc, beneficii i evaluare cost.
n afara acestei clasificri (funcionale), msurile pot fi de asemenea clasificate n funcie de
fazele ciclului de via software n care folosirea lor este corespunztoare.
Fazele ciclului de via clasice se bazeaz pe standardul IEEE 729-1983 (IEEE Standard
Glossary of Software Engineering Terminology i se utilizeaz pentru a ilustra cnd e adecvat
aplicarea fiecrei msuri.
17
Fazele ciclului de via sunt:
Concepia;
Specificare cerine;
Proiectare;
Implementare (codificare);
Testare;
Instalare (la beneficiar);
Operare i mentenan;
Retragere.
Matricea de clasificare msuri (metrici) din tabelul 3 este un index al msurilor i categoriilor
funcionale propuse n [XXXa89]. Ea poate fi folosit pentru a selecta msuri aplicabile fiecrei
categorii. Apoi, pentru fiecare categorie, se prezint o matrice care va referi msurile ce se pot folosi
n fiecare faz a ciclului de via software (tabelele 4-12).
n cadrul fiecrei metrici se trece n parantez o cifr {0,1,2,3} i care are urmtoarea
semnificaie:
- 0 msura a fost formalizat dar nu a fost suficient validat n cmpul operaional;
- 1 metrica respectiv s-a folosit de o comunitate software restrns sau nu e suficient de
bine cunoscut;
- 2 metrica s-a utilizat moderat;
- 3 metrica s-a folosit intens.
Aceast cifr furnizeaz msura ncrederii n utilizarea acestei metrici, valoarea ei fiind direct
proporional cu gradul de recomandare a folosirii ei.
Pentru msurile care au n parantez cifra 2 sau 3 se vor da n anexa 1 detalii privind:
implementarea, interpretarea, consideraiile fcute, instruirea necesar, un exemplu i experiena
cerut.
a.) Msuri produs
Sunt ase subcategorii de msuri produs care au impact asupra fiabilitii:
( 1 ) Erori, defecte, incidente (cderi) - contorizeaz defectele lund n consideraie
eroarea uman, bugurile program i funcionrile sistem atipice observate;
( 2 ) MTBF; rata de defectare (cdere) - msuri derivate ale apariiei defect n timp;
( 3 ) Cretere fiabilitate i proiecie - aprecierea schimbrilor fcute ca urmare a
apariiei unui defect ntr-un produs aflat sub testare i n operare (funcionare).
( 4 ) Defecte reziduale - aprecierea apariiei defectelor rmase nedescoperite n
produs n timpul dezvoltrii, testrii sau mentenanei.
( 5 ) Completitudine i consisten - aprecierea prezenei codului tuturor prilor
sistemului software.
( 6 ) Complexitate - aprecierea factorilor dificili ntr-un sistem.
18
19
TABELUL 3
MATRICEA DE CLASIFICARE MSURI (METRICI)
21
Tabel 4 Numrare Erori Defecte, Incidente
1 Densitate defecte X X X X X X X X
2 Densitatea de X X X X X X X X
defectare
3 Profilul de cdere X X X X X X X X
cumulativ
4 Nr. zile - defect X X X X X X X X
7 Transabilitate X X X
cerine
8 Indici de defectare X X X X X X X X
12 Nr. de cerine X X
conflictuale
23 Cerine n acord X X
30 MTBF X X X
31 Rata de defectare X X X
22
Tabelul 6 Cretere fiabilitate i Proiecie
36 Testare precizie X
23
Nr. FAZA CICLULUI DE VIA
crt.
METRICI
(1) (2) (3) (4) (5) (6) (7) (8)
5 Acoperire testare modular X X X
sau funcional
6 Graficul cauz i efect X X X X X
7 Transabilitate cerine X X X
12 Nr. de cerine conflictuale X X
16 Complexitate ciclomatic X X X
(faza testare )
23 Cerine n acord X X
24 Testare acoperire X X X X X
32 Documentaie listinguri X X X X
surs
35 Completitudine X X X
36 Testare precizie X
Tabelul 9 Complexitate
17 Determinare testare X X X
minimal
19 Proiectare structur X X
25 Complexitate flux date sau X X X
informaii
24
Nr. FAZA CICLULUI DE VIA
crt.
METRICI
(1) (2) (3) (4) (5) (6) (7) (8)
4 Nr. de zile - defect X X X X X X X
8 Indice de defectare X X X X X X
9 Distribuie(i) eroare X X X X X X
11 Ore om/defecte majore X X X X X X
23 Cerine n acord X X
24 Acoperire test X X X X X X
29 Testare suficien X X
32 Documentaie listinguri X X X X
surs
33 RELY - Fiabilitate X X X X X X X
software cerut
35 Completitudine X X X
36 Precizie testare X
25
(1) (2) (3) (4) (5) (6) (7) (8)
5 Acoperire testare modular X X X
sau funcional
10 Index de maturitte X X X X X
software
11 Ore om/defecte majore X X X X X X
detectate
14 Msuri ale ingineriei X X
software
18 Urmrire fiabilitate X X X
19 Proiectare structur X
20 Timpul mediu pentru a X X X
detecta urmtoarele K
defecte
21 Nivel de puritate software X X X
27 Nr. de defecte reziduale X X X
31 Rata de defectare X X X
33 RELY - Fiabilitatea X X X X X X X
software cerut
34 Gata de livrare X X
26
2.3.5.2. Etapele ciclului de via software
Concepte Proiectare
Implementare
Cerine Operare
Instalare Retragere
Testare i i
Verificare Mentenan
funcional
Procesul de msurare
27
Se identific ce caracteristici de fiabilitate ale produsului software sunt necesare
pentru aceste obiective;
Se stabilete o strategie pentru msurarea i managementul fiabilitii software;
Se stabilesc practici documentate pentru conducerea msurtorilor.
28
Datele procesului de dezvoltare i din timpul operrii se rein (se nregistreaz) pentru
proiecte viitoare. Ele formeaz baza pentru mbuntirea fiabilitii i comparaiilor msurilor
utilizate n mai multe proiecte.
fiabilitate
Restricii 1. Planificare
i
obiective
strategic organizational
Necesiti Scopuri de
utilizator
2. Determinare scopuri fiabilitate
fiabilitate software intermediar
3. Implementare Proces de
a unui proces de msurare msurare
fiabilitate
Date de
performan 4. Selectare 5. Pregtirea unui
software msuri poteniale plan de msurare i
a unei colecii de date
6. Monitorizarea
msurtorilor
Ajustri
NU necesare
S-a construit
fiabilitate
7. Aprecierea
9. Reinerea datelor fiabilitii
despre msurtorile
software mbuntiri necesare
Obiectivele NU
de fiabilitate sunt
Evaluare practici de satisfcute
msurare
DA ( ACCEPTABIL)
8. Folosire Satisfacie
software utilizator
29
Material auxiliar din cartea Ingineria sistemelor informatice, M. Popescu, ATM, 2005
Felul n care se grupeaz activitile i succesiunea fazelor duc la diferite modele care
implementeaz ciclul de via.
Un model al ciclului de via descrie activitatea de realizare a produsului software i fluxul
procesului de dezvoltare.
Dintre cele mai cunoscute modele, innd seama de evoluia lor n timp, putem enumera
[CSAB98]:
Modelul n cascad
Modelul incremental
Modelul evolutiv
Modelul n spiral
Inginerie software bazat pe model
I. Modelul n cascad
Analiz
Proiectare
Implementare cod
Testare
Utilizare i mentenan
Etapele finale se realizeaz n mai muli pai succesivi, fapt ce permite obinerea de mai
multe versiuni ale produsului software (fig. 2).
Cerine utilizator
Cerine software
Proiectare arhitectural
Proiectare detaliat i
producie
Transfer
Utilizare i mentenan
timp
Cerine utilizator
Cerine software
Proiectare arhitectural
Proiectare detaliat i
producie
Transfer
Utilizare i mentenan
timp
Axat pe protopizare, prin reluarea tuturor fazelor, modelul acesta construiete un produs n
timp mai ndelungat, dar ofer posibilitatea rezolvrii unor probleme noi sau adugarea de funcii
noi cerute de utilizatorii produselor software.
Prototipul este folositor utilizatorului final care va nelege mai bine ce dorete sau ce se
vrea de la produs, el fiind implicat n ntreg procesul de dezvoltare(fig. 10) i e util i realizatorului
n testarea unor tehnici, algoritmi sau interfee realizate.
n ceea ce privete prototipul, el are dou forme:
prototipul de ncercare, care trebuie realizat rapid, chiar dac e incomplet i care se
utilizeaz pentru validarea interfeei i a unor algoritmi implementai, urmrind
construirea unei arhitecturi care s rspund ct mai bine cerinelor utilizatorilor;
prototipul evolutiv, care dezvolt produsul final, avnd ca scop nglobarea tuturor
caracteristicilor de calitate formulate; acest prototip evolueaz mai lent, dar permite
mbuntirea continu a calitii produsului final, reducnd astfel costurile de
mentenan.
Acest model este utilizat de programele cu risc mediu nalt.
Provocarea pentru dezvoltatorii de sistem va consta n a concepe un proces de dezvoltare
care va descoperi, defini i formula cerinele reale, implicnd direct utilizatorii i testnd versiunile
intermediare ale prototipurilor.
Raportat la cerinele pieei, modelul poate oferi o soluie evolutiv sau una revoluionar
(prin strategia agresiv).
Combinarea celor dou soluii, innd seama de studiile de pia, poate duce la o soluie
intermediar.
Reluare pn cnd produsul e complet
Modelul are aceleai etape de realizare, ns fiecare ciclu de dezvoltare ncepe cu studiul de
fezabilitate, continund apoi cu specificarea cerinelor, analiza, proiectarea i implementarea.
ANALIZ
PROIECTARE
SPECIFICAII CERINE
v1
v2 v3 v4
VERSIUNE FINAL
INTEGRARE
Fig.5 Modelul n spiral
Criteriul care st la baza alegerii unor alternative de implementare este costul implicat.
n esen, dezvoltarea produselor software conine toate fazele i activitile descrise, chiar
dac se numesc altfel n diferite metodologii, dezvoltarea avnd loc incremental, indiferent de
metoda de dezvoltare aleas.
La nceput un grup mic de persoane face analiza i proiectarea, ntr-o manier iterativ.
Cnd structura sistemului devine stabil, este antrenat mai mult personal n activitile de
implementare i testare.
O divizare a timpului destinat fazelor proiectului, precum i raportul timp/efort pe faze, pot
arta ca n fig. 6 .
efort
Testare
Implementare
Proiectare
Analiz
timp
program
Caracteristicile de calitate
1. Fiabilitatea: un program posed caracteristica de fiabilitate n msura n care ndeplinete funciile de
prelucrare cerute de beneficiar, pe un interval de timp dat, fr erori;
2. Corectitudinea: un produs program este corect daca transformrile pe care le efectueaz conduc la
obinerea de rezultate ce corespund calitativ i cantitativ cu specificaiile de programare;
3. Eficacitatea: realizeaz o corelaie ct mai adecvat ntre consumurile de resurse (timp de execuie,
memorie intern, tipuri i numr periferice) i complexitatea problemei ce se rezolv;
4. Sigurana n utilizarea curent: stabilete msura n care un program aplicativ nu permite efectuarea
de modificri neautorizate sau nedorite n volume de date, precum i distrugerea parial sau total a
volumelor de date;
5. Stabilitatea: indic "rezistenta" programului aplicativ fa de efectele generate de o modificare a datelor
iniiale, ct i n secvenele de instruciuni care compun modulele care intr n componenta sa;
6. Mentenabilitatea: msura n care este permis actualizarea rapid si uoar a produsului program
pentru a putea continua utilizarea acestuia chiar n condiii modificate;
7. Adaptabilitatea: capacitatea produsului program de a permite integrarea de noi funcii de prelucrare i
de a include acele secvene de instruciuni care mresc performanta programului, aducndu-l la nivelul
eficienei de utilizare de la un moment dat, ulterior elaborrii;
8. Liniaritatea: msoar gradul n care la elaborarea unui modul, a unei secvene sunt utilizate instruciuni
care se executa una dup alta sau msura n care nu sunt utilizate instruciuni de salt condiionat sau
necondiionat.
9. Claritatea: un produs program este considerat neclar atunci cnd secvenele ce formeaz modulele sale
conin instruciuni ce pot lipsi fr a fi afectata calitatea rezultatelor finale;
10. Reutilizabilitatea: reprezint capacitatea unor module ale produsului program de a fi ncorporate n
alte programe avnd rezultat direct economia de munca;
11. Portabilitatea: este caracteristica de calitate care pune n eviden gradul n care un produs program
poate fi rulat pe mai multe tipuri de calculatoare;
12. Integrabilitatea: este caracteristica de calitate care arata gradul n care produsele program pot fi
incluse n sisteme complexe de prelucrare a datelor.
Atributele calitii
1. testabilitatea: ofer utilizatorilor posibilitatea de a pune n eviden ct mai
multe variante de probleme ce pot fi rezolvate i comportamentul
programului aplicativ n situaii particulare (fiiere vide, date incomplete,
date neconsistente);
2. completitudinea: este atributul ce d msura n care modulele produsului
software sunt parial activabile i fiecare realizeaz funcia de prelucrare
dat n specificaii;
3. generalitatea: este atributul care pune n eviden aria de cuprindere a
funciilor de prelucrare, variantele problemei ce pot fi rezolvate, cazurile
particulare, dimensiunile maxime ce se iau n considerare;
4. consistena: pune n evident msura n care modulele realizeaz funcii de
prelucrare necontradictorii i se bazeaz pe uniformizare n folosirea
simbolurilor, a regulilor de construire a identificatorilor, etichetelor i n
general a secvenelor omogene;
5. complexitatea: fiecrui program aplicativ i se asociaz o reprezentare sub
form arborescent sau o alt form grafic ce conine noduri i arce
orientate. Complexitatea este un atribut care permite stabilirea diferenelor
dintre structurile programelor i ierarhizarea programelor dup noduri, arce
i modul de orientare a acestora din urm.
6. flexibilitatea: determin volumul de restricii impus utilizatorilor pentru a
obine rezultate complete i corecte prin folosirea unui program aplicativ;
programul aplicativ este cu att mai flexibil cu ct volumul restriciilor este
mai redus;
7. modularitatea: este atributul de calitate care descrie ordinea din cadrul
produsului format din module.
Modele ale calitii software
modelul Boehm
modelul James McCall.
Modelul Boehm
definete urmtoarele caracteristici de
calitate:
portabilitate,
fiabilitate,
eficien,
testabilitate,
usurina nelegerii - gradul n care obiectivele
i scopul produsului sunt clar definite,
modificabilitate - gradul n care produsul
faciliteaz efectuarea schimbrilor.
Atributele de calitate ale modelului
Boehm
independena fa de hardware,
completitudine,
acuratee - gradul n care ieirile furnizate de produs sunt suficient
de precise pentru a satisface cerinele impuse,
consistena - gradul n care produsul conine notaii, terminologie i
simboluri unitare),
eficiena utilizrii hardware-ului (gradul n care produsul software
utilizeaz n mod economic hardware-ul),
accesibilitate - gradul n care produsul prezint componentele sale
ntr-o manier organizat,
structuralitate - gradul n care produsul nu conine informaii
excesive,
lizibilitate - gradul n care funciunile produsului pot fi identificate prin
citirea codului sursa,
extensibilitate - gradul n care produsul faciliteaz extinderea sa cu
noi funciuni de prelucrare
Modelul James McCall
mbuntete modelul Boehm
st la baza elaborarii standardului ISO 9126 din 1991.
Factorii de calitate prevzuti de McCall sunt grupai n trei categorii:
exploatarea i utilizarea produsului:
corectitudine;
fiabilitate;
eficiena (volumul resurselor de calcul i al codului utilizat de produs pentru
realizarea funciunilor);
integritate (gradul n care poate fi controlat accesul, de catre persoanele
neautorizate, la produs i la date);
utilizabilitate (efortul necesar pentru nvarea produsului i pentru pregtirea
datelor de intrare);
revizia produsului:
mentenabilitate;
testabilitate;
flexibilitate
tranziia produsului:
portabilitate;
reutilizabilitate;
interoperabilitate (efortul necesar pentru a cupla produsul cu alte produse).
Msurarea nivelului calitii
(software metrics metrici software) disciplina destinat
construirii i analizei indicatorilor cu care se evalueaz
nivelul caracteristicilor de calitate
Pentru o caracterizare concret trebuie respectate
urmtoarele cerine:
a. ierarhizarea caracteristicilor de calitate msurabile, dup
importana pe care ele o prezint la beneficiar;
b. evaluarea ct mai precis a nivelului fiecrei caracteristici i
sporirea efortului pentru creterea preciziei;
c. nivelul maxim al caracteristicii trebuie s fie asociat produselor
program cele mai bune;
d. stabilirea modului n care se utilizeaz informaia privind
calitatea, pentru creterea duratei ciclului de via al produsului
program.
Indicatorii de calitate pentru caracteristici, atribute, metrici sunt caracterizai prin: valoarea
i ponderea indicatorului, relaii de influenare (conflictuale sau complementare) i relaii de
ierarhizare (care se stabilesc ntre indicatorii ce se afla n relaii de subordonare).
n cazul relaiilor de ierarhizare, indicatorilor subordonai le sunt asociate ponderi care
semnific gradul de importan fa de ceilali indicatori subordonai aceluiai indicator-
printe. Suma ponderilor de pe un nivel inferior subordonat unei caracteristici de calitate
este constant i egal cu 1 (cel mai utilizat sistem de ponderi).
Metrici
Curs 12
Productivitatea muncii
Costurile de dezvoltare
IP
12
Metrici de baz
KLOC: Kilo Lines Of Code (mii linii de cod)
Exprimat n PM
Procentul de Productivitatea
Numar linii cod linii de cod pentru acest tip
generate automat generate automat de activitate
IP
12
COCOMO 2: dup proiectare
n!
lu
e pe
Constrngeri Experiena st
Sigurana echipei ule
memorie e
, pr
Constrngeri Folosirea Da
timp instrumentelor
IP
12
Distribuia forei de munc n timp
20 om-lun
20 oameni muncesc 1 luna
4 oameni muncesc 5 luni
NU
1 om muncete 20 luni
Lipsa de acuratee
... pentru
atenie
rbdare
Proiectare orientat obiect
o 1 : C1 o 3 :C3 o 4: C4
sta te o 1 sta te o 3 sta te o 4
o ps1 () o ps3 () o ps4 ()
o 2 : C3 o 6 : C1 o 5 :C5
sta te o 2 sta te o 6 sta te o 5
o ps3 () o ps1 () o ps5 ()
Angajat
name: string
address: string
dateOfBirth: Date
employeeNo: integer
socialSecurityNo: string
depar tment: Dept
manager: Employee
salary: integer
status: {current, left, retired}
taxCode: integer
. ..
join ()
leave ()
retire ()
changeDetails ()
Ma na g e r Pro g ra m m e r
Em plo y e e De pa r tm e nt
is-m e m b e r-o f
is-m a na g e d-b y
m a na g e s
Ma na g e r
sub sy ste m
Da ta c o lle c tio n sub sy ste m
Da ta displa y
Ob se rv e r Sa te llite
U Useser r Ma p
Co m m s inte
inter rfafac ce e displa y
We a the r Ma p
sta tio n Ba llo o n Ma p printe r
Da
Datata
Da ta Da ta sto
storaragge e
c h e c king inte g ra tio n
Ma p sto re Da ta sto re
Sta r tup
Sh utdo w n
Re po r t
Ca lib ra te
Te st
Sistem
Use-case
Actori
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 14 Slide 29
Proiectare arhitectural
Odat ce interaciunile dintre sistem i mediul lui au
fost nelese, aceast informaie este folosit pentru
proiectarea arhitecturii sistemului.
O arhitectur pe straturi este potrivit pentru staia
meteo
Stratul de interfa pentru rezolvarea comunicaiilor;
Stratul de colecie de date pentru lucrul cu instrumentele
meteo;
Stratul instrumentelor meteo pentru colectarea datelor.
n mod normal nu trebuie s apar mai mult de 7
entiti ntr-un model arhitectural.
We a th e r sta tio n
sub sy ste m Ma na g e s a ll
e xte rna l
Inte rfa c e c o m m unic a tio ns
sub sy ste m Pa c ka g e o f
Instrum e nts instrum e nts fo r ra w
d a ta c o lle c tio ns
Instrum e nt
We a th e rSta tio n Sta tus
sub sy ste m
Instrum e nts
Air
th e rm o m e te r Ra inGa ug e Ane m o m e te r
re q ue st (re po r t)
a c kno w le d g e ()
re po r t ()
sum m a rise ()
se nd (re po r t)
re ply (re po r t)
a c kno w le d g e ()
c a lib ra tio n OK
sta r tup () te st ()
Sh utdo w n Wa iting Te sting
} //WeatherStation
NOm e te r Sm o ke Me te r
Be nze ne Me te r
Atribute
Operatii
Responsabilitati
Instanta
reprezinta o manifestare concreta a unei
abstractizari asupra careia se poate aplica un
set de operatii si care are stare ce stocheaza
efectele operatiilor.
Instantele pot fi :
- concrete reprezinta instante ale unor clase
concrete;
- prototipice reprezinta instante potentiale ale
claselor concrete care sunt subclase ale claselor
abstracte, sau ale claselor concrete care
realizeaza interfete
Interfata
reprezinta o colectie de operatii care
specifica un serviciu al unei clase sau al
unei componente
Simbol:
Nume interfa
Colaborarea
defineste o interactiune; o colaborare este
un ansamblu de elemente ce lucreaza
mpreuna pentru a oferi un comportament
cooperativ mai important dect suma
comportamentelor elementelor
Simbol:
Nume colaborare
Cazul de utilizare
reprezinta o descriere a seturilor de
secvente de actiuni pe care le executa un
sistem, conducnd la un rezultat
observabil ce prezinta importanta pentru
un anumit actor
Simbol:
Nume caz de utilizare
Clasa activa
o clasa ale carei obiecte poseda unul sau
mai multe procese sau fire de executie si
prin urmare pot initia controlul activitatilor
Componenta
o parte fizica, nlocuibila, a unui sistem,
care ofera implementarea unui set de
interfete
Simbol:
Nodul
element fizic care exist la momentul
execuiei i reprezint o resurs de calcul,
are cel puin memorie i adesea capaciti
de procesare
Simbol:
Nume nod
Elemente comportamentale
Sunt partile dinamice ale modelului UML,
reprezentnd comportamentul modelului n
timp si spatiu. Ele sunt verbele modelului.
- Interactiune
- Main cu stri
Interactiune
este un comportament ce cuprinde un set
de mesaje schimbat ntre o multime de
obiecte ntr-un context particular, pentru a
realiza un scop specific. Implica un numar
de alte elemente, incluznd mesaje,
secvente de actiuni si legaturi
- Simbol:
nume
Main cu stri
este un comportament ce specifica
secventa de stari prin care trece un obiect
sau o interactiune n cursul existentei sale,
ca raspuns la evenimente, mpreuna cu
raspunsurile la aceste evenimente
Simbol:
nume
Elemente de grupare
sunt partile organizationale ale modelelor
UML. Exista un singur tip de elemente de
grupare, pachetele.
Un pachet este un mecanism general
pentru organizarea elementelor n grupe.
ntr-un pachet pot fi plasate elemente
structurale, elemente comportamentale si
chiar alte elemente de grupare.
Simbol: Nume pachet
Elemente de adnotare
sunt partile explicative ale modelelor UML.
Exista un singur astfel de tip de element,
nota - un simbol pentru marcarea de
restrictii sau de comentarii atasate unui
element sau a unei colectii de elemente
Simbol:
nume not
Relatii
abstractiuni ce leaga elementele ntre ele.
O relatie este o conexiune ntre elemente
dependentele
generalizarile
asocierile
realizarile
Dependenta
este o relatie semantica ntre doua
elemente n care o schimbare a unui
element (elementul independent) poate
afecta celalalt element (elementul
dependent). Se utilizeaza atunci cnd se
doreste indicarea faptului ca un element
este folosit de un altul
Simbol:
Asocierea
este o relatie structurala care descrie un
set de legaturi, o legatura fiind o
conexiune ntre obiecte
Simbol: 0..1 *
rol rol
Dincolo de forma de baza a asocierilor, se mai folosesc si
urmatoarele notiuni:
Nume - folosit pentru a descrie natura relatiei;
Rol - atunci cnd o clasa participa ntr-o asociere, ea are
un rol specific pe care l joaca n acea relatie;
Multiplicitate - indica numarul de obiecte ce pot fi
conectate prin intermediul unei instante a unei asocieri;
Agregare - este un tip de asociere ce modeleaza o
relatie de tipul are un, ceea ce nseamna ca un obiect
al ntregului are (contine) obiectele partii
Clase i asocieri
Generalizarea
se foloseste pentru a arata existenta unor
relatii de tip parinte/copil. Este o relatie de
specializare n care obiectele elementului
specializat (copil) pot fi substitute pentru
obiecte ale elementului generalizat
(parinte)
Simbol:
Realizarea
este o relatie semantica ntre clasificatori,
unde un clasificator specifica un contract
pe care un alt clasificator garanteaza sa l
execute
Simbol:
Diagrame
sunt prezentari grafice ale unui set de
elemente, cel mai adesea exprimate ca un
graf de noduri (elementele) si arce
(relatiile).
Clasificare
Diagrame structurale
Diagrame comportamentale
Reguli UML
Blocurile constructive UML nu pot fi grupate oricum, n
maniera aleatoare, existnd reguli detaliate pentru
definirea modelelor bine formate;
Un model bine format este unul autoconsistent semantic
si n armonie cu modelele sale nrudite.
Exista reguli semantice pentru nume, domeniul de
reprezentare, vizibilitate, integritate si executie;
Sunt admise si modele mai putin dect bine formate, n
sensul ca se pot admite si modele cu elemente ascunse,
modele incomplete sau modele inconsistente, cel putin
pentru iteratiile preliminare ale procesului de dezvoltare.
Mecanisme generale UML
specificatii
adnotari
diviziuni generale
mecanisme de extensie
stereotip
valoare etichetat
constrngere
Specificatii
pentru fiecare parte a notatiei grafice UML
exista o specificatie ce ofera o descriere
textuala a sintaxei si semanticii acelui bloc
constructiv;
n timp ce notatia grafica UML se foloseste
pentru vizualizarea unui sistem,
specificatiile UML se folosesc pentru
specificarea detaliilor sistemului
Adnotari
Notele sunt cel mai important tip de adnotare. O
nota este un simbol grafic pentru reprezentarea
grafica a constrngerilor sau comentariilor
atasate unui element sau unei colectii de
elemente.
Notele se folosesc numai pentru acele cerinte,
observatii si explicatii care nu pot fi facute n
mod simplu sau inteligibil folosind celelalte
elemente UML;
Simbol:
Diviziuni generale
diviziunea clasa/obiect
o clasa este o abstractie,
un obiect este o manifestare concreta a acelei
abstractii;
separatia interfata/implementare
interfata declara un contract
implementarea reprezinta o realizare concreta
a acelui contract, responsabila pentru
realizarea integrala a semanticii complete a
interfetei
Mecanisme de extensie
un Stereotip extinde vocabularul UML,
permitnd crearea de noi tipuri de blocuri
constructive derivate din cele existente,
dar care sunt specifice unei anumite
probleme;
Mecanisme de extensie
O valoare etichetata extinde proprietatile
unui bloc constructiv UML, permitnd
crearea de noi informatii n cadrul
specificatiei elementului
Mecanisme de extensie
O constrngere extinde semantica unui
bloc constructiv UML, permitnd
adaugarea de noi reguli sau modificarea
unora existente
UML (Unified Modeling
Language)
limbaj unificat de modelare
orientat obiect
Diagrame
sunt prezentari grafice ale unui set de
elemente, cel mai adesea exprimate ca un
graf de noduri (elementele) si arce
(relatiile).
Clasificare
Diagrame structurale
Diagrame comportamentale
Diagrame structurale
Diagrame de clase
Diagrame de obiecte
Diagrame de componente
Diagrame de amplasare
Diagramele de pachet
Diagrame comportamentale
Diagrame de cazuri de utilizare
Diagrame de secventa
Diagrame de colaborare
Diagrame de tranzitie a starilor
Diagrame de activitate
Diagrama bine structurata
Este focalizata pe comunicarea unui aspect al
sistemului;
Contine numai acele elemente care sunt
importante pentru ntelegerea acelui aspect;
Furnizeaza detalii consistente cu nivelul sau de
abstractizare (nu expune dect acele parti care
sunt esentiale pentru ntelegere);
Nu este att de redusa nct sa dezinformeze
cititorul asupra elementelor semantice relevante.
DIAGRAME DE CLASE (DC)
contin o multime de clase, interfete si
colaborari, precum si relatiile dintre ele
sunt cele mai folosite diagrame n
modelarea sistemelor orientate obiect
ilustreaza vederea statica de proiectare a
unui sistem
Clas abstract
Clasele template
DIAGRAME DE CLASE (DC)
interfaa
Element ce apare n diagramele de clase
DIAGRAME DE CLASE
atributele i operaiile
Reprezentare:
Sintaxa folosita pentru descrierea atributelor:
nume_atribut : tip_atribut = valoare_initiala
Sintaxa folosita pentru descrierea operatiilor:
Nume_operatie ( lista_argumente ) : tip_returnat
unde lista_argumente reprezinta lista argumentelor
operatiei, fiecare argument fiind descris astfel :
nume_argument : tip_argument =
valoare_implicita.
DIAGRAME DE CLASE
atributele i operaiile
Vizibilitatea atributele si operatiilor unei
clase:
publice ( + ) orice alta clasa poate
folosi proprietatea sau poate invoca
operatia;
protejate ( # ) sunt vizibile numai pentru
descendentii clasei respective;
private ( - ) numai clasa respectiva poate folosi
proprietatea sau operatia.
DIAGRAME DE CLASE
tipuri de operaii
Abstracte sunt operatii incomplete pentru care
clasele copii trebuie sa furnizeze o
implementare (sunt specificate cu caractere
italice);
Frunza ({leaf}) nu pot fi suprascrise;
Polimorfice - sunt specificate, intr-o ierarhie de
clase, cu aceasi semnatura, n diferite puncte
ale ierarhiei. Operatia invocata, n momentul
executiei, este aleasa n functie de tipul
obiectului caruia i apartine.
DIAGRAME DE CLASE
reprezentri utiilizate
DIAGRAME DE CLASE
relaii
Asocieri;
Relaii de generalizare;
Relaii de dependenta;
Relaii de realizare;
DIAGRAME DE CLASE
relaii- asocierea
DIAGRAME DE CLASE
relaii- asocierea - clasa a asocierii
DIAGRAME DE CLASE
relaii- asocierea - agregarea
Simpla este n ntregime conceptuala si
nu face altceva dect sa disting ntre un
ntreg si o parte;
Compoziie semnific faptul ca parile pot
fi create dup obiectul compus, dar o data
create traiesc si sunt distruse odat cu
obiectul compus
DIAGRAME DE CLASE
relaii- asocierea - agregarea
DIAGRAME DE CLASE
relaii- generalizarea
una sau mai multe clase motenesc
structura si comportamentul unei clase
mai generale.
(DC)
DC pentru cazul de utilizare Selectare informaii despre evenimente
DIAGRAMA DE ACTIVITATI (DA)
este o schem logic care prezint fluxurile de control
dintre activiti.
este folosit pentru a modela aspectele dinamice ale
sistemului
presupune modelarea unui proces pas cu pas,
modelndu-se fluxul unui obiect care trece din stare n
stare.
grafic, DA este o colecie de vrfuri si arce.
Elementele DA
stri de activitate i stri de aciune
tranziii
obiecte
ramuri
bifurcaii si mbinri
culuare (swimlanes)
DIAGRAMA DE ACTIVITATI (DA)
Stri de activitate i stri de aciune
sunt stri ale sistemului, fiecare reprezentnd executarea
unei aciuni
reprezentare grafica: n interior se poate scrie orice
expresie
strile de aciune nu pot fi descompuse. Ele sunt atomice
i nu pot fi ntrerupte.
Strile de activitate pot fi descompuse, activitatea putnd
fi reprezentat de alt diagram. Ele nu sunt atomice si
pot fi ntrerupte
Starea de aciune este un caz particular al strii de
activitate. ntre ele exist anumite diferene de notaie:
starea de activitate are pri n plus: aciuni de intrare i
de ieire, precum i specificarea mainii pe care se
desfoar activitatea.
DIAGRAMA DE ACTIVITATI (DA)
Tranziia reprezint fluxul de control de trecere de la o stare
de activitate sau de aciune complet la urmtoarea stare de
activitate sau de aciune. n UML tranziiile se reprezint printr-
o linie. Fluxul de control trebuie s nceap i s se termine
undevas existe o stare iniiala notata cu i o stare final
Utilizare:
Pentru modelarea sistemelor cu software
implementat hardware
Pentru modelarea sistemelor client/server
Pentru modelarea sistemelor complet
distribuite
DIAGRAME DE COMPONENTE
(DC)
descriu un set de componente i relaiile dintre ele.
Grafic, reprezint o colecie de noduri i arce
utilizare:
Pentru a modela codul sursa
Pentru a modela produse executabile
Pentru a modela baze de date fizice
Pentru a modela sisteme adaptabile
DIAGRAME DE COMPONENTE
(DC)
Etape i activiti:recomandri
(material opional de studiu)
Modelarea realizrii unui caz de utilizare: poate fi
realizat de una sau mai multe colaborri. Aceasta
presupune urmtorii pai:
identificarea elementelor structurale necesare si suficiente
pentru a exprima semantica cazului de utilizare
exprimarea organizrii acestor elemente structurale n diagrame
de clasa
luarea n considerare a fiecrui scenariu ce reprezint cazul de
utilizare
exprimarea dinamicii acestor scenarii n diagrame de
interaciune
organizarea elementelor structurale i comportamentale ca o
colaborare care va fi conectat la cazul de utilizare prin realizare
Etape i activiti:recomandri
Modelarea procesoarelor i
dispozitivelor
se identific elementele de calcul ale
implementrii sistemului i se reprezint
fiecare ca un nod
dac elementele reprezint procesoare i
dispozitive generice, ele se reprezint direct,
n caz contrar se folosesc stereotipuri.
se stabilesc atributele i operaiile fiecruia
Etape si activiti:recomandri
Testare
Curs 11
Adriana Gheorghie,
adrianaa@infoiasi.ro
Ovidiu Gheorghie,
ogh@infoiasi.ro
IP
11
Sondaj
36
scriere cod
proiectare
64
IP
11
Validare, verificare
Validare: Construim produsul corect?
(Are we building the right product?)
=>program corect din punctul de vedere al
utilizatorului
Pregtete Datele
de test
datele de test
Testare funcional
Testare structural
Testarea la integrare
Testarea interfeelor
Testarea la stress
Testarea orientat obiect
IP
11
Testare funcional (cutie neagr)
Date de test Ie
Rezultatele testului Oe
IP
11
Testare funcional (2)
Program
Ieiri
IP
11
Testare funcional (5)
Clase de echivalen:
1. Date n care elementul cheie apare n secven.
2. Date n care elementul cheie nu apare n secven.
3. Secvena conine o singur valoare.
4. Secvena conine mai multe valori.
IP
11
Testare funcional exemplu (2)
Cazuri de test
Secvena Element cutat
a) o valoare este n secven
b) o valoare nu este n secven
c) mai multe valori primul element din secven
d) mai multe valori ultimul element din secven
e) mai multe valori elementul din mijloc al secvenei
f) mai multe valori nu este n secven
Date de test
secvena de intrare cheia rezultat ateptat (Found,L))
a) 17 17 true,1
b) 17 0 false, ??
c) 17, 29, 21, 23 17 true, 1
d) 41, 18, 9, 31, 30, 16, 45 45 true, 7
e) 17, 18, 21, 23, 29, 41, 38 23 true, 4
f) 21, 23, 29, 33, 38 25 false, ??
IP
11
Testare structural (cutie alb)
Testele sunt construite innd cont de
implementarea programului i vizeaz
execuia fiecrei instruciuni cel puin o dat.
Se aplic la uniti de program de dimensiuni
mici (subrutin, operaie asociat unui
obiect).
Analiza codului ofer indicaii privind numrul
de teste necesare pentru a avea garania c
toate instruciunile din program (component)
au fost executate cel puin o dat.
IP
11
Testare structural (2)
Schema general:
Date de test
testeaz deriveaz
}
7
}//while
}//search
}
IP
11
Testare structural (3)
Punctul de plecare l constituie graful execuiei.
nodurile reprezint decizii (se ignor atribuirile i
instruciunile de intrare/ieire)
muchiile indic fluxul execuiei
Scop: fiecare drum independent din program se
execut cel puin o dat.
Drum independent = drum care conine cel puin o
muchie nou (netestat) din graful execuiei.
Fiecare ramificaie trebuie testat n ambele situaii
(condiie adevrat/fals).
IP
11
Testare structural exemplu (2)
Graful execuiei
Cazuri de test:
1 a) 1, 2, 3, 8, 9
b) 1, 2, 3, 4, 6, 7, 2
first>last while first<=last
2 c) 1, 2, 3, 4, 5, 7, 2
d) 1, 2, 3, 4, 6, 7, 2, 8, 9
if (elemArray[middle] == key)
3
if (elemArray[middle]<key)
8 4
9 5 6
7
IP
11
Testarea la integrare
Problem: localizarea erorilor care apar n
timpul testrii.
Localizarea erorilor este mai uoar n cazul
integrrii incrementale a componentelor.
Iniial ar trebui testat o configuraie minimal
a sistemului, restul componentelor fiind
adugate una cte una.
Strategii de testare:
top-down
bottom-up
IP
11
Testarea interfeelor
Are loc atunci cnd modulele sunt integrate
pentru a crea sisteme mai mari.
Fiecare modul are o interfa utilizat de
celelalte componente ale programului.
Scop: detectarea erorilor care apar la nivelul
interfeelor sau care se datoreaz unor
presupuneri greite legate de interfee.
IP
11
Tipuri de erori
utilizare greit a interfeei (parametri cu un
alt tip sau ntr-o alt ordine dect sunt
specificai n interfa).
nelegerea greit a interfeei (presupuneri
greite legate de ce ar trebui s fac o
component).
Erori de timing (au loc n sistemele n timp
real care folosesc memorie partajat sau
transmitere de mesaje).
IP
11
Testarea la stress
Scop: evideniaz performana i sigurana
sistemului.
Presupune planificarea unei baterii de teste
n care sistemul este suprancrcat.
Se testeaz astfel comportarea sistemului
atunci cnd acesta cedeaz (este important
ca acest lucru s nu cauzeze coruperea
datelor).
IP
11
Testarea orientat obiect
Nivele de testare:
Testarea individual a operaiilor asociate
unui obiect.
Testarea individual a unei clase de obiecte
(secvene de operaii)
Testarea unui cluster de obiecte (scenarii)
Testarea sistemului OO (verificare i validare)
IP
11
V mulumim !
... pentru
atenie
rbdare
Instrumente de tip CASE
Concepte i caracteristici
CASE - Computer Aided Software Engineering -
reprezint colecii de metode, instrumente si
procese destinate ingineriei software asistat de
calculator.
denumire introdus n 1987 de John Manley
pentru a desemna dezvoltarea de software
utiliznd instrumente care s acopere i etapele
de analiz-proiectare i s ofere facilitai pentru
reprezentrile grafice folosite cu precdere de
metodele de analiz i proiectare
Caracteristici suplimentare
s ofere facilitai grafice puternice pentru a descrie i documenta software-ul
s fie integrat, astfel nct s permit transmiterea uoara a datelor ntre
componente
sa stocheze informaiile referitoare la software ntr-o bibliotec
computerizat, permind accesarea acestor informaii de ctre toi membrii
echipei de elaboratori
s poat fi utilizat ca baz pentru automatizarea procesului de producere a
software-ului folosind una sau mai multe metode de analiz i proiectare
s fie reutilizabil pentru dezvoltarea de noi sisteme, aplicaii i programe
s poat fi utilizat pe orice platform hardware, ncepnd cu calculatoare
personale pn la mainframe-uri
s permit realizarea uoara a interfeei cu utilizatorul final i expandarea
interaciunii cu acesta
s asigure dezvoltarea de aplicaii n limbaje de programare evoluate
s asigure software-ul realizat din punct de vedere calitativ.
Importana i avantajele utilizrii
CASE-urilor
scurteaz durata de realizare a proiectelor i de implementare a
aplicaiilor
asigur din punct de vedere calitativ produsul software i cresc
ncrederea utilizatorului n calitatea acestuia
asist realizarea fiecrei etape i deci mbuntesc calitatea
procesului de realizare
dezvoltarea software-ului se face conform unor metodologii care
specific pe lng etapele de dezvoltare, coninutul i ieirile
fiecrei etape, n mod difereniat dup natura produsului sau dup
domeniul su de aplicaie
obinerea de specificaii de definire complete
acurateea specificaiilor de realizare (de proiectare)
obinerea unei ci uor de ntreinut i dezvoltat (n ideea c un
produs software nu este niciodat n mod real terminat, dezvoltarea
sa fiind prelungit de operaiile de mentenan).
Generaii de produse CASE
Generaia I