Documente Academic
Documente Profesional
Documente Cultură
FIABILITATEA SISTEMELOR
INFORMATICE
(CAIET DE SEMINAR)
Cuprins
CAPITOLUL 1
Fiabilitate, defecte, erori - concepte generale
1.1. Definirea fiabilităţii, defectării, defectului
1.2. Obiective ale fiabilităţii
1.3. Ciclul de viaţă al sistemelor
1.4. Defecte, defectări, erori
1.5. Evoluţia în timp a defectelor
1.6. Tipuri de erori software
1.7. Teme de rezolvat
CAPITOLUL 2
CAPITOLUL 3
Modele matematice pentru calculul indicatorilor de
fiabilitate
3.1. Tipuri de distribuţie statistică
3.2. Calculul funcţiilor de fiabilitate specifice
3.2.1. Pentru variabile aleatoare discrete
3.2.2. Pentru variabile aleatoare continui
3.3. Distribuţia binominală
3.4. Distribuţia Poisson
3.4. Distribuţia normală (Gauss-Laplace)
3.6. Teme de rezolvat
CAPITOLUL 4
Studiul fiabilităţii sistemelor pe baza blocurilor logice de fiabilitate
CAPITOLUL 5
Metoda arborilor de defectare pentru studiul fiabilităţii sistemelor
5.1. Principii de bază referitoare la arborii de defectare
5.2. Metode de analiză ale arbori de defectare
5.3. Elementele componente ale arbori de defectare
5.4. Evaluarea probabilităţii de defectare
5.5. Teme de rezolvat
CAPITOLUL 6
Calculul probabilităţilor de defectare a sistemelor complexe
prin metoda binominală
6.1. Prezentarea distribuţiei binomiale
6.2. Aplicarea metodei
6.3. Probleme
CAPITOLUL 7
Metoda lanţurilor Markov pentru fiabilitatea sistemelor
7.1. Definirea lanţului Markov
7.2. Matricea stărilor de tranziţie
7.3. Exemplu de calcul pentru matricea stărilor de tranziţie
7.4. Etapele aplicării metodei lanţurilor Markov
7.3. Exemple de aplicare al metodei
CAPITOLUL 8
Testarea software
9.3. Metode de testare
9.3.1. Testarea individuala a unor unitati separate dintr-un sistem software
9.3.2. Testul de integrare
9.3.3. Testarea de validare
9.3.4. Testul de acceptare
9.3.5. Testul de sistem
9.3.6.Testarea regresivă
9.3.7.Testarea de compatibilitate
9.4. Instrumente de testare
9.5. Testarea empirică
9.6. Efectuarea testării
9.7. Indicatori de testare
9.8. Teme de studiu
CAPITOLUL 10
CAPITOLUL 11
CAPITOLUL 12
BIBLIOGRAFIE
Capitolul 1. FIABILITATE, DEFECTE, ERORI - CONCEPTE
GENERALE
1.1. Definirea fiabiltăţii, defectării, defectului
Fiabilitatea sistemelor tehnice este definită ca fiind probabilitatea ca un
sistemul să-şi îndeplinească funcţia proiectată un interval de timp specificat, în
condiţii de utilizare prestabilite.
Matematic, fiabilitatea se exprimă cu ajutorul funcţiei de fiabilitate
(reliability function) R(t ) şi reprezintă probabilitatea ca în intervalul (0, t ) sistemul
să funcţioneze fără să apară defecte 12:
p (t ) P (t T ) R (t ), (1.1.1)
unde:
p (t ) – probabilitatea de bună funcţionare;
t – variabila timp;
T – limita specificată a duratei de funcţionare, respectiv durata de funcţionare
până la defectare;
Atunci când ne referim la fiabilitatea unui sistem tehnic trebuie să ne referim
la toate părţile componente ale acestuia care au fiabilităţi diferite. Componentele
unui sistem tehnic pot însemna echipamente fizice, hardware, software, interfeţe,
conexiuni, operator uman, proceduri de utilizare şi nu în ultimul rând,
înfrastructura suport. Un sistem trebuie să fie echilibrat din punct de vedere al
fiabilităţii: toate componentele sale trebuie să aibă nivele de fiabilitate
comparabile, altfel cea mai nefiabilă componentă determină fiabilitatea sistemului,
ea este veriga cea mai slabă a lanţului.
Fiabilitatea unui sistem poate fi îmbunătăţită folosind diferite tehnici speciale
pe care le vom studia în capitolele următoare. Din studiile de specialitate se poate
considera că în defectarea sistemelor de calcul, defectarea hardului reprezintă un
procent de 19%, a softului 14% în timp ce factorul uman (proceduri incorecte sau
incorect aplicate) generează 49% din defectări, actele de vandalism 1%, accidente
de mediu 11%, suprasolicitarea 6%. În acestă carte ne vom ocupa de fiabilitatea
hardware şi software, de modelele care descriu defectarea acestora, metode de
evidenţiere a defectărilor, măsurare a parametrilor şi îmbunătăţirea indicatorilor de
fiabilitate.
Un sistem bine proiectat, corect realizat, minuţios verificat, judicios utilizat nu
ar trebui să prezinte defectări în funcţionare. Experienţa a arătat că şi cele mai bune
sisteme în condiţiile unei exploatări corecte nu exclud posibilitatea apariţiei unor
defecte în funcţionare.
9
1.2. Obiective ale fiabilităţii
Teoria fiabilităţii se construieşte pe baza datelor referitoare la defectarea
sistemului şi componentelor acestuia. Defectarea este procesul de pierdere a
capacităţii sistemului (sau componente ale sistemului) de a-şi realiza funcţia
proiectată.
Fiabilitatea ca ştiinţă are ca obiectiv:
- aprecierea cantitativă a comportării sistemelor în timp, ţinând seama de
influenţa pe care o exercită asupra acestora factorii interni şi externi;
- stabilirea metodelor de proiectare, dezvoltare, constructive, tehnologice şi de
exploatare pentru asigurarea, menţinerea şi creşterea fiabilităţii sistemelor şi
componentelor acestora;
- studiul defectelor şi erorilor (al cauzelor, proceselor de apariţie şi dezvoltare),
al metodelor de prevenire a apariţiei defectelor, de remediere a defectelor şi
corectare a erorilor;
- analiza fizică a defectelor;
- stabilirea modelelor şi metodelor de calcul şi prognoză a fiabilităţii pe baza
încercărilor specifice şi a urmăririi comportării în exploatare a sistemelor;
- stabilirea metodelor de selectare şi prelucrare a datelor privind fiabilitatea;
- determinarea valorilor optime a indicatorilor de fiabilitate;
- stabilirea unor măsuri corective pentru reducerea riscurilor pe parcursul
ciclului de viaţă şi îmbunătăţirea fiabilităţii.
Apectele privin managementul şi procedurarea activităţilor utilizatorilor
sistemului sunt tratate separat în ştiinţe noi de exemplu calitate, optimizare
securitate şi management inteligent.
Fiabilitatea este inseparabil legată de capacitatea sistemului de a fi repus în
funcţiune după defectare. Probabilitatea ca starea de bună funcţionare a sistemului
să fie restabilită prin operaţii adecvate desfăşurate într-un anumit interval de timp
se numeşte mentenabilitate. Ansamblul tuturor ativităţilor desfăşurate pentru a
menţine sau restabili starea de bună funcţionare se numeşte mentenanţă. Există
sisteme care în urma unor operaţii de mentenanţă pot fi aduse într-o stare de
funcţionare apropiată de cea iniţială, iar astfel de sisteme se numesc sisteme cu
restabilire sau reparabile (numite şi sisteme cu reînnoire) şi sisteme care nu mai
pot fi aduse în starea de bună funcţionare prin nici un program de mentenanţă.
Astfel de sisteme se numesc sisteme nereparabile.
10
3. proiectare/dezvoltare: realizarea proiectului pe baza cerinţelor identificate ale
beneficiarului referitoare la funcţiile sistemului, cu respectarea cerinţelor legale şi
celorlalte reglementări legale din domeniu;
4. realizare - realizarea propriu-zisă pe baza proiectului elaborat;
5. testarea - utilizând metode adecvate, inclusiv funcţionarea în condiţii
controlate/de laborator care simulează funcţionarea reală;
6. implementare, funcţionare/operare în condiţii reale/nominale;
7. verificare, testare, inclusiv validare;
8. întreţinere şi îmbunătățire, mentenanță - corectarea erorilor care au condus la
defectare, up-grade, up-date;
9. retragere.
11
pot surveni oricând în timpul ciclului de viață al sistemului. Atunci când apar sunt
sistematice și au caracteristici similare.
Un defect soft reprezintă incapacitatea unui soft de a opera din cauza erorilor.
Un defect soft rămâne latent până când este activat în anumite circumstanțe de
funcționare și în mod normal devine inactiv când aceste circumstanţe nu mai
există. Un defect soft poate cauza defectarea sistemului.
Eroarea soft este o este de obicei produsă de acțiunea greşită a unui
programator în timpul codificării sau de interpretarea greșită de către programator a
cerințelor specificației soft, traducerea incorectă (compilarea) în limbajele specifice
sau omiteri ale cerințelor în specificația de proiectare.
În mod uzual se foloseste termenul de eroare atât pentru o acţiune greşită cât şi
pentru manifestarea greşelii în program.
În domeniul programelor defectarea constă în punerea în evidenţă a unei erori
latente conţinute în program şi care nu se datorează uzurii. Datorită faptului că o
anumită configuraţie de date, care pune în evidenţă eroarea, apare după un interval
de timp aleator de testare sau utilizare, defectările software-ului pot fi tratate ca
evenimente aleatoare, care se produc de-a lungul unui interval de timp. În cazul
programelor defectarea reprezintă manifestarea unei erori prezente în program şi
care este detectată prin:
- mesaje de eroare de execuţie;
- o durată de execuţie nefinită a programului;
- obţinerea unui rezultat clar eronat, în afara domeniului.
S-a demonstrat că în timp, chiar într-un program foarte bun, elaborat la firme
mari se specialişti recunoscuţi şi minuţios verificate au apărut defecte. Prognoza
defectării unui program este afectată de două surse de incertitudine:
- variabilitatea datelor de intrare şi lipsa unei anumite legi de succesiune a
acestora;
- variabilitatea programelor care pot implementa o aceeaşi funcţie, respectiv
variabilitatea raţionamentelor pentru rezolvarea unei probleme.
Elementele esenţiale în definirea defectării software, conform IEEE (ANSI)
982.2 din 1988 [34] sunt: eroarea (error), neregula (fault, bug), defectul (defect) şi
defectarea sau căderea (failure). Legăturile dintre aceste elemente sunt prezentate
în figura 1.1.
12
Conform standardului mai sus citat, eroarea (error) este o greşeală umană care
are drept rezultat un program incorect. Programele sunt elaborate în baza unor lungi
şiruri de raţionamente în care erorile umane sunt inevitabile. De exemplu, dacă
beneficiarul a omis o cerinţă critică atunci când a solictat elaborarea programului
(specificaţia), produsul final, deşi corect conceput, este necorespunzător.
Alte tipuri de erori sunt determinate de interpretarea greşită a unei cerinţe sau
trecerea de la proiectarea simbolică la coduri.
În urma erorii umane rezultă neregula (fault sau bug). Ea reprezintă accidentul
intern care face ca sistemul să nu funcţioneze conform aşteptărilor. Materializarea
directă a erorii umane în program este o porţiune a codului care trebuie corectată.
În exprimarea curentă se utilizează termenul de eroare atât pentru actul de a
greşi (error), cât şi pentru manifestarea lui directă în program (fault sau bug).
Neregulile cauzate de erori conduc la anomalii ale produsului software, numite
defecte (defects). Defectele se referă atât la produsul final (codul), cât şi la
produsele intermediare (cerinţele şi detalierea lor prin proiectare). Ele includ
ambiguităţi la nivelul cerinţelor, omisiuni în documentaţie, date de testare incorect
specificate etc.
Defectarea (failure) este manifestarea vizibilă a defectului prin care o unitate
funcţională a sistemului (inclusiv hardware-ul) nu-şi mai poate îndeplini funcţia
sau n-o poate îndeplini în limitele specificate.
Defectarea se produce numai atunci când un set de date de intrare activează
defectul prezent în software. Defectările reprezintă percepţia utilizatorului interesat
ca sistemul să funcţioneze indiferent de problemele rezidente în structura sa.
Erorile pot fi datorate atât producătorului cât şi utilizatorului. Utilizatorul poate
greşi când specifică cerinţele sau când operează sistemul, în timp ce producătorul
poate interpreta greşit o cerinţă sau o poate coda incorect.
Erorile umane, neregulile (faults) şi defectele (defects) din sistemul software
reprezintă cauzele evenimentelor nedorite iar defectările (failures) reprezintă
efectele. Neregulile şi defectele sunt importante din punctul de vedere al celui care
produce sau întreţine sistemul şi care-l percepe dinăuntru în afară, pornind de la
structura lui.
Monitorizarea funcţionării unui sistem de calcul implică atât partea software cât
şi partea hardware, operatorul uman şi mediul de lucru. Deseori, interacţiunile
dintre aceste părţi pot conduce la defectări chiar în absenţa unor defecte
localizabile în vreuna dintre ele. De aceea, este important să se ia în considerare
ansamblul om-maşină, format din hardware (HW), software (SW) şi personalul
utilizator, factorul uman (FU). Defectarea sistemului se poate produce din cauza
unor malfuncţionări ale software-ului chiar dacă acesta nu conţine defecte dar este
utilizat necorespunzător.
Figura 1.2. Variaţia tipică în timp a ratei de defectare, curba "cadă de baie"
14
Perioada a III-a, perioada finală (de uzură, aşa numita "bătrâneţe")
se caracterizează printr-o creştere bruscă a frecvenţei defectărilor datorită uzurii
accelerate a sistemului (degradare). În acestă perioadă caracteristicile de fiabilitate se
înrăutăţesc rapid. Pentru multe sisteme tehnice, inclusiv pentru soft, această perioadă
nu se atinge în practică, ele uzându-se moral înainte de uzură şi înlocuite cu altele cu
caracteristici superioare.
Extinderea în timp a celor trei perioade variază în funcţie de natura sistemului
studiat.
15
vi. erori în contextul execuţiei datorate memoriei dinamice insuficiente sau
nealocată, periferice neoperaţionale, comunicare defectuoasă cu sistemul de
operare.
O mare parte din erorile menţionate mai sus depistate în faza de compilare a
programului şi sunt extrase în fişierul de ieşire, într-o formă specifică fiecărui
compilator. Tot ca erori de codificare sunt considerate şi cele detectate în faza de
editare a legăturilor.
16
Criteriu Defectare Forma de manifestare Exemplificări
Uzură în timp Alterare a caracteristicilor în timp, în mod natural
Greşeli de Se manifestă în perioada de început a ciclului de
proiectare sau viaţă şi se pot elimina prin teste preliminare,
Cauza
realizare rodaj, burn-in, selecţie etc.
Apar la aplicarea unor solicitări care depăşesc
Utilizare improprie
limitele specificate
Caracter temporar, tranzitoriu, uneori se
Tranzientă remediază fără intervenţia omului, atunci când
anumite condiţii de utilizare au fost modificate
Durata Intermitentă Temporară şi repetată
defecţiunii Caracter temporar de scurtă durată, determinate
Rateuri
de scurte perturbaţii; se remediază de la sine
Caracter permanent (remedierea necesită
Permanentă
reparaţie)
Primară Apar din orice motiv, dar nu ca efect al unei alte
Legăturile
(independentă) defecţiuni
dintre
Secundară Apare ca rezultat al altor defecţiuni care s-au
defecţiuni
(dependentă) produs deja
Se descoperă prin control uzual sau la punerea în
Modul de Evidentă
funcţiune a sistemului
detectare
Ascunsă Se descoperă numai prin măsurări speciale
Modificarea rapidă a caracteristicilor funcţionale
Bruscă
ale sistemului
Caracterul
Treptată sau
apariţiei Înrăutăţirea lentă a parametrilor sistemului ca
progresivă (de
urmare a uzurii şi îmbătrânirii în timp
uzură)
19
Nu împiedică exploatarea normală a sistemului,
Deranjament
Cum afectează îndeplinirea funcţiei de bază
capacitate de Depăşirea unor limite de către unul sau mai mulţi
funcţionare a Defecţiune parţială parametri, dar care permite realizarea parţială a
sistemului funcţiei proiectate
Defecţiune totală Ieşirea completă din funcţiune a sistemului
Poate provoca pierderi de vieţi omeneşti, rănire de
Critică
persoane sau pierderi materiale importante
Efecte Afectează funcţionarea sistemului la parametri
Majoră
nominali
Minoră Nu afectează funcţia principală a sistemului
Catastofică Defectarea întregului sistem
Afectează o funcţie prioritară pentru beneficiar
Severă care nu este disponibilă atunci când acesta are
Gravitate nevoie
Sistemul poate funcţiona dar cu modificări
Semnificativă
importante
Minoră Funcţia de bază a sistemului nu este afectată
Se manifestă ori de câte ori apar aceiaşi factori
Frecvenţa Sistematică
perturbatori în funcţionare
apariţiei
Întâmplătoare Nu apare ca urmare a aceloraşi cauze
Determinată de fabricaţie incorectă sau erori
Avarie grave în exploatare; necesită timp îndelungat
Volumul şi pentru restabilire
caracterul Determinate de modificări irevversibileîn
restabilirii Cădere structura sistemului; se înlătură prin înlocuirea
elementului defect
Dereglare Este afectat regimul normal de funcţionare
20
Capitolul 2. STUDIUL INDICATORILOR DE FIABILITATE
PENTRU SISTEME TEHNICE ŞI SPECIFICI SOFTWARE.
21
Figura 2.1. Funcţia de fiabilitate
F (t ) P(t T ). (2.1.2)
F (t ) reprezintă probabilitatea de defectare a sistemului în intervalul (0, t ).
R(t ) şi F (t ) sunt funcţii complementare, funcţia F (t ) numindu-se şi funcţia
de nonfiabilitate. Matematic aceasta se scrie:
R(t ) F (t ) 1. (2.1.3)
Aceste funcţii se exclud reciproc, un sistem este la un moment dat, fie funcţional
fie defect. Ele se pot uşor substitui, uneori este avantajos să discutăm despre
probabilitatea de defectare a unui sistem, prin încercările de fiabilitate se obţin în
mod uzual date despre defectele care se manifestă.
2.1.3. Densitatea de probabilitate a timpului de funcţionare fără defectare
f (t ) (probability density function), exprimă frecvenţa relativă a defectărilor într-un
interval de timp dat şi se mai numeşte lege de repartiţie sau de distribuţie statistică
a timpului de funcţionare până la defectare. Se defineşte cu relaţia:
F (t t ) F (t ) dF (t ) dR(t )
f (t ) lim . (2.1.4)
t 0 t dt dt
F (t t ) F (t ) f (t ) 1 dR
z (t ) lim . (2.1.5)
t 0 R(t ) t R(t ) R(t ) dt
22
Relaţia dintre rata de defectare şi funcţia de fiabilitate rezultă din relaţia 1.1.5
scrisă sub forma:
t R
dR(t )
z dt R(t )
ln R (t ). (2.1.5)
0 1
Pentru t 0 R 1.
Pentru cazul general se poate scrie:
t
R (t ) exp z (t )dt . (2.1.6)
0
Rata de defectare permite o clasificare a sistemelor după tipul de uzură. Un
sistem fără uzură are rata de defectare constantă (RDC), un sistem cu uzură
pozitivă are rata de defectare pozitivă (RDP), iar un sistem cu uzură negativă are
rata de defectare negativă (RDN). Funcţia de fiabilitate are proprietăţi specifice
fiecărui tip de uzură.
2.1.5. Un alt indicator de fiabilitate este media timpului de funcţionare până
la defectare, m, care se defineşte cu ajutorul relaţiei:
t
m t f (t ) dt R (t ) dt z( ) d dt, t (0, ).
exp (2.1.7)
0 0 0 0
D. (2.1.9)
Aceste două mărimi indică gradul de împrăştiere sau de uniformitate a
performanţelor individuale ale unor sisteme de acelaşi tip, din punct de vedere al
fiabilităţii.
Dacă procesul de fabricare al elementelor componente ale unui sistem este
bine controlat, valorile lui D şi vor fi mici.
2.1.7. Cuantila timpului de funcţionare, t , reprezintă timpul în care
proporţia de elemente defectate dintr-un eşantion nu depăşeşte o valoare
prestabilită . Este definit ca rădăcină a ecuaţiei:
F (t ) . (2.1.10)
t nu depinde de timp şi poate fi interpretat ca timpul garantat de producător
până la atingerea unui anumit procent de defecte, un anumit nivel de încredere
garantat de producător.
O sinteză a funcţiilor de fiabilitate este prezentată în tabelul 2.1
23
Simbol pentru:
Nr. Valoarea estimată
Indicator Valoare Definţie UM
crt. Punc- Interval de
teoretică
tual încredere
0 1 2 3 4 5 6
Probabilitatea ca un sistem (sau o componentă a sistemului) să-şi îndeplinească
Rinf corect funcţiile prevăzute pe o perioadă de timp dată, în condiţii de utilizare
1 Funcţia de fiabilitate R(t) R̂ (t) -
Rsup specificată, respectiv :
p(t) = P(t < T)= R(t)
Funcţia de repartiie a Finf Probabilitatea ca sistemul să se defecteze în intervalul (0, t) :
2 F(t) F̂ (t) -
timpului de funcţionare Fsup F(t) = P(t≥T)
Frecvenţa relativă a defectărilor într-un interval de timp dat şi se mai numeşte lege
Densitatea de probabilitate finf de repartiţie a timpului de funcţionare până la defectare.
3
a timpului de funcţionare
f(t) fˆ (t) fsup F (t t ) F (t ) dF (t ) dR(t ) h-1
lim
t o t dt dt
Descrie pericolul de defectare în jurul unui moment dat al unui element component
z (t ) al unui sistem aflat în stare de bună funcţionare până la acel moment. h-1
Rata (intensitatea) de zinf
4
(t )
ẑ (t) F (t t ) F (t ) f (t ) 1 dR sau
defectare zsup lim 1FIT
t 0 R(t ) t R(t ) R(t ) dt
Media timpului de Valoarea medie a timpului de funcţionare (momentul centrat de ordinul 1):
funcţionare: minf t
5
- MTTF
M m̂ msup m t f (t )dt R(t )dt exp[ z ( )]dt h
- MTBF 0 0 0 0
24
2.2. Indicatori pentru fiabilitatea software
O parte din indicatorii referitori la fiabilitatea software sunt similari cu cei pentru
orice sistem tehnic cum sunt funcţia de fiabilitate, de nonfiabilitate sau funcţia
densitate probabilitate a timpului de funcţionare fără defecte iar rata de defectare este
înlocuită de rata de manifestare a erorilor. Există însă şi o serie de indicatori specifici,
indirecţi ce vor fi prezentaţi mai jos.
2.2.1 Funcţia de fiabilitate, R (t ).
Reprezintă probabilitatea ca nici o eroare să nu fie activată într-un interval de lucru
precizat. În notaţia R(t , t t ), unde t reprezintă intervalul de lucru, iar t momentul
de iniţializare al intervalului, care coincide de obicei cu sfârşitul testării. Funcţia de
nonfiabilitate este F(t), cu aeleaşi atribute ca şi la &2.1.2.
Argumentul timp din expresia funcţiei de fiabilitate poate fi uneori exprimat în
unităţi calendaristice, dar este de preferat să se considere timpul de lucru al unităţii
centrale de procesare (CPU time - Central Processing Unit time), astfel, atât t cât şi t
semnifică durate de execuţie. Uneori argumentul funcţiei de fiabilitate (t şi t ) se
exprimă în număr de rulări. Pentru t = 1, funcţia de fiabilitate reprezintă probabilitatea
unei rulări încununate de succes. De regulă, aceasta se evaluează pe baza a n rulări
anterioare în care nu s-au detectat erori.
2.2.2 Rata de manifestare a erorilor sau densitatea de defectare, z (t ).
Reprezintă probabilitatea manifestării unei erori în intervalul t raportată la
mărimea t a acestui interval.
F (t t ) F (t )
z (t ) . (2.2.1)
t R(t )
Rata de manifestare a erorilor, z (t ), se referă la o defectare oarecare, indiferent de
numărul ei de ordine. Unitatea de măsură pentru z (t ) este inversa unităţii de măsură a
timpului de execuţie.
Există însă şi indicatori specifici fiabilităţii software care nu-şi găsesc un
corespondent în teoria generală a fiabilităţii.
2.2.3 Cuantila timpului de execuţie, ta .
Reprezintă durata unei execuţii în care funcţia de fiabilitate are cel puţin valoarea a
după un interval de testare t. Se mai numeşte inversul funcţiei de fiabilitate, adică
durata de execuţie în care probabilitatea activării unei erori este limitată la o valoare
prescrisă egală cu 1 - a.
2.2.4 Numărul de erori remanente, N (t ), rămase în program după o durată de
testare t.
Dacă pentru t se consideră valoarea 0, indicatorul va reprezenta numărul total de
erori N = N (0) rezidente în program. Raportându-se acest număr la numărul mediu de
linii de cod (LOC), rezultă densitatea erorilor exprimată în KLOC- 1 (număr mediu de
erori la o mie de linii de cod). Pentru codul sursă se foloseste KSLOC- 1 (număr mediu
de erori la o mie de linii de cod sursă).
2.2.5 Durata medie de funcţionare până la defectare
(m = MTTF – Median Time To Failure)
Timpul mediu până la defectare se modifică după fiecare intervenţie exterioară,
astfel încât el depinde de timpul de testare, recomandându-se notaţia m (t ). Spre
deosebire de o largă clasă de sisteme pentru care durata medie până la defectare
25
coincide cu durata medie între defectări succesive (MTTF = MTBF ), în cazul
sistemelor software o asemenea egalitate este exclusă.
26
n n1 n2 ; (2.2.2)
2. Lungimea observată a programului :
N N1 N 2 ; (2.2.3)
3. Lungimea estimată a programului :
N n1 log2 n1 n2 log2 n2 ; (2.2.4)
4. Volumul programului :
V N log2 n; (2.2.5)
5. Dificultatea programului :
n1 N 2
D (2.2.6)
2 n2
6. Nivelul programului :
1
NP ; (2.2.7)
D
7. Efortul mental necesar implementării codului :
V
E V D; (2.2.8)
NP
8. Numărul de nereguli (Delivered Bugs) din program. Acesta se estimează
utilizând următoarea formulă empirică stabilită de Halstead:
V E2/3
B . (2.2.9)
3000 3000
Se poate observa că prin micşorarea volumului programului, respectiv prin
scăderea efortului mental necesar implementăriii codului (a lui E ), se reduce numărul
de erori din program, deci fiabilitatea programului creşte.
9. Timpul de implementare al unui program :
E
t , (2.2.10)
S
unde S 18 numărul de operaţii elementare de comparaţii/secundă (determinat de
Halstead).
Ansamblul indicatorilor Halstead prezentaţi permite evaluarea dificultăţii
programelor care nu trebuie să depăşească un anumit prag pentru ca fiabilitatea să nu
fie periclitată. Acest prag este specific limbajului de programare folosit.
27
dinamică se calculează folosind formula complexităţii statice la diferite momente de
timp:
𝐶𝑑 = 𝐶𝑠 (𝑡) (2.2.12)
28
1. Studiaţi interdependenţa dintre funcţiile specifice fiabilităţii, realixând un
grafic cu exemplificarea relaţiei dintre funcţiile R(t), F(t), f(t) şi z(t) şi un tabel
Relaţia dintre funcţiile R(t), F(t), f(t) şi z(t) este prezentată sintetic în figura 2.4.1
şi în tabelul 2.2, (fără a ţine seama de o anumită formă a funcţiei f(t)):
t
R(t ) 1 F (t ) 1 f ( ) d exp z ( ) d
0
t
dF (t ) dR(t )
f (t ) 1 z (t ) R(t )
dt dt
f (t ) f (t )
1 dF (t )
1 dR(t )
z (t ) R(t ) dt R(t ) 1
1 F (t ) dt f ( )d
t
R (t ) exp ( t ),
f (t ) exp t ,
1
m exp ( t ) dt .
0
2.4.2. Calculaţi indicatorii Halstead pentru segmentul de program (în C)
pentru care vom identifica operatorii, operanzii, numărul de intervenţii şi vom
calcula indicatorii de complexitate Halstead:
main()
{
int a, b, c, avg;
scanf("%d %d %d",&a, &b, &c);
29
avg = (a + b + c) /3;
printf ("avg = %d",avg);
}
N N1 N2 16 15 31;
N n1 log 2 n1 n2 log 2 n2 10 log 2 10 7 log 2 7 52,9;
4. Volumul programului:
V N log 2 n 31 log 2 17 126,7
5. Dificultatea programului:
n1 N 2 10 15
D 10,7; (2.2.6)
2 n2 2 7
6. Nivelul programului:
1
NP ; (2.2.7)
D
V
E V D 10,7 126,7 1.3557; (2.2.8)
NP
30
E 1,3557
T 75,3s
S 18
Nr. noduri 𝑁 = 5
Nr. arce 𝐸 = 6
Nr. regiuni 𝑅𝐺 = 2
Nr. noduri bifurcate 𝑆𝑁 = 1 (nod 5)
𝑀𝐴 = matricea de adiacentă numită şi matricea resurselor are factori 𝑟𝑖𝑗 unde
𝑟𝑖𝑗 = 0 dacă 𝑖 nu este legat de 𝑗
𝑟𝑖𝑗 = 1 dacă 𝑖 este legat de 𝑗 (cu săgeată)
Drumuri I 12354
II 5435123
31
0 1 0 0 0
0 0 1 0 0
0 0 0 0 1
0 0 1 0 0
(1 0 0 1 0)
Numărul valorilor de 1 din matrice este egal cu numărul arcelor; Numărul de linii
şi coloane egal cu numărul nodurilor
𝐶𝑠 = 𝐸 − 𝑁 + 1 = 6 − 5 + 1 = 2
𝐶𝑐 = 𝑅𝐺 = 2
𝑆𝑃 + 1 = 2
6 6 5
C g ci d k rik ,
i 1 i 1 k 1
32
Capitolul 3. MODELE MATEMATICE PENTRU CALCULUL
INDICATORILOR DE FIABILITATE.
33
k
m M (T ) T pi ti . (3.2.1)
i 1
k
D(T ) 2 M (T M (T )) 2 pi (ti m) 2 . (3.2.2)
i 1
m M (T ) t f (t ) dt.
(3.2.3)
D (t m) 2 f (t ) dt.
2
(3.2.4)
sau
M r (t m) r f (t )dt pentru variabile continui.
(3.2.6)
P( Ak ) Pn (k ) Cnk p k q n k (3.3.1)
iar distribuţia variabilei aleatoare va avea următorul tablou:
34
0 1 ... k ... n
. (3.3.2)
q n
Cn1 pqn 1 ... Cnk k
p q nk
... p n
k C
k 0
k
n p k q n k np m np. (3.3.6)
1
unde 0 n ; cele două funcţii (densitatea de distribuţie şi funcţia de
12n
distribuţie) se pot scrie:
n!
f (t; k ) Cnk p k q n k pk qnk , (3.3.11)
k !(n k )!
35
x n
n! n!
F (t; k ) pk qnk p k (1 p)n k . (3.3.12)
k 0 k!(n k )! k 0 k!(n k )!
0 1 2 3 ... k .....
2 3
e a a e a a e a a e a ... a e a .... . (3.4.2)
1! 2! 3! k!
Densitatea de distribuţie depinde de un singur parametru, a, şi are forma:
ak a
f (t ; a) e . (3.4.3)
k!
Funcţia de distribuţie corespunzătoare are expresia:
ak a
t
F (t; a)
k 0 k!
e . (3.4.4)
D M (T 2 ) M (T ) 2 k
a a
2
e a2
k!
După cum se poate observa, atât valoarea medie cât şi dispersia au valori egale
cu parametrul distribuţiei.
36
( t m ) 2
1
f (t; m, ) e 2 2 .
(3.5.1)
2
unde t 0 şi 0.
Graficul funcţiei f (t; m, ) este dat în figura 3.4, depinde de doi parametri, m
şi , şi are următoarele proprietăţi:
37
Funcţia de repartiţie a unei variabile cu distribuţie aleatoare normală,
T, este:
t t ( m ) 2
1 1
F (T ) P(T t )
2 f ( ) d
0 2
e
0
2 2
d F (t; m, ). (3.5.5)
3.6.Teme de rezolvat
t ( m ) 2
1
Dacă în relaţia F (t , m; ) e 2 2
d se face o schimbare de
2 0
t m
variabilă, numită variabila aleatoare normată de forma u , din care rezultă
38
că t = u + m iar d t = d u , se obţine funcţia de distribuţie a variabilei
aleatoare normale normate, numită şi legea normală normată sau repartiţia nor-
mală redusă (repartiţie standard )care se scrie:
t m t m t m
u2 u2
1 1
F (u; 0, 1)
2
0
e 2 du
2
0
e 2
du N (u; 0, 1) du,
0
u2
1
unde N (u; 0, 1) este funcţia , care corespunde valorilor m=0 şi =1
e 2
2
Densitatea de distribuţie a repartiţiei normale normate este de forma:
u2
1
f (u; 0, 1) e 2 .
2
Reprezentarea densităţii de probabilitate a distribuţiei normale normată este
dată în figura de mai jos pentru t (– , ); Valoarea maximă a acestei funcţii se
obţine în punctul m = 0, şi este 1/ 2 0,3989).
M (T ) t
2
e 2 2 dt.
t m
y t y m dt dy.
Cu această schimbare de variabilă se obţine:
39
y2 y2
m y
u2
m
M (T )
2
e 2 dy
2
e
2
dy
2
ye
2
dy.
1
y2
1
y2 y2
Dar
2 e
2 dy
N ( y; 0, 1) 1, şi
2
y e 2 dy e 2 0, deci
M (T ) m. Dispersia este dată de relaţia:
(t m ) 2
(t m) 2
D(T )
2 e 2 2 dt 2 .
2
y e y dy.
2
Apelând la aceeaşi schimbare de variabilă, se poate scrie: D(T )
2
2
y2
y 1
Dacă se ţine seama că lim
y
y2
0 şi
2
e 2
dy N ( y; 0, 1) dy 1,
e 2
se obţine dispersia:
D(T ) 2 ,
40
Capitolul 4. STUDIUL FIABILITĂŢII SISTEMELOR
PE BAZA BLOCURILOR LOGICE DE FIABILITATE
41
Pentru cele mai multe sisteme complexe o asemenea analiză conduce la
identificarea grafului de arborescenţă a fabricării, asamblării, întreţinerii şi
reparării produsului.
conform relaţiei: n
Rs (t ) R1 (t ) R2 (t ) ... Rn Ri (t ). (4.2.2)
i
Pentru un sistem complex, fiabilitatea sa scade cu cât sistemul este mai
1
complex, valoarea indicatorului s creşte cu atât mai mult cu cât termenii sumei
constitutive (relaţia 4.2.1) sunt în număr mai mare.
Din relaţia 4.2.2 se observă că fiabilitatea sistemului este mai mică decât
fiabilitatea oricăreia din componentele sale. Dacă o componentă are o fiabilitate
mult inferioară celorlalte, aceasta determină fiabilitatea sistemului şi reprezintă
veriga cea mai slabă. Este, deci, contraindicată realizarea unui sistem de tip serie
cu elemente neomogene din punct de vedere al fiabilităţii.
42
Rezervele se diferenţiază în funcţie de durata de conectare în sistem atunci
când se defectează elementul de bază şi de starea în care se află elementul de
rezervă în perioada de asteptare, astfel:
- rezervă activă - elementul rezervă şi cel de bază sunt solicitate la fel în
perioada de funcţionare, iar conectarea rezervei active se face imeediat ce
elementul din sistem s-a defectat, în timp practic egal cu zero;
- rezervă semiactivă - elementul de rezervă este mai puţin solicitat decât
elementul de bază, iar timpul de conectare al rezervei este mic, dar nu zero;
- rezervă pasivă - elementul de rezervă nu este pregătit pentru înlocuirea
imediată a elementului de bază, solicitarea acestora este neglijabilă în perioada de
rezervă.
Cazul cel mai favorabil de redundanţă, din punct de vedere al funcţionării
sistemului (nu şi al costurilor) este cel în care un element este dublat de un altul
identic, aflat în rezervă activă.
În cazul general se consideră un sistem format din n elemente legate în paralel,
cu rate de defectare i (pentru componenta i ), i - rata de reparare a
componentei i şi Ri (t ) - funcţia de fiabilitate, respectiv probabilitatea de
funcţionare a componentei i. Funcţie de structură a acestui sistem este tipul SAU
logic:
S x1 x2 x3 .... xn . (4.2.3)
Reprezentarea unui sistem format din n elemente conectate în paralel este în
figura 4.2.
Rz
În aşteptare R e t t.e t
C. S În aşteptare cu R e t
R
t z 1 e t
z 1!
R
44
RS 1 (1 R n ) z
În aşteptare t e t
RS În
D. e naşteptare
t
nt ecu
n R
R R R
nt e z 1 nt
x 1!
R R R
R R R
În aşteptare t
D. În aşteptare cu R e
RS e t e
t t n
R R R
R R R
Rbn
R B. Activ presupunând z = 2, n = 1 şi
toate funcţiile de fiabilitate egale,
Raj Rbj Rzj R e t cu excepţia
Rsw t t
R Rsw RS e R sw e R sw e 2 t
45
4.4. Probleme rezolvate
4.4.1. Fie un sistem alcătuit din i = 4 elemente înseriate cu ratele de defectare:
1 0,1106 h 1 , 2 0,2 106 h 1 , 3 4 0,5 106 h 1.
Funcţia de distribuţie a timpului de bună funcţionare a sistemului este considerată
a fi exponenţială.
Să se calculeze probabilitatea de bună funcţionare a sistemului
46
Fiabilitatea sistemului se calculează pe subsisteme cu conexiuni de bază,
conform grupărilor din figură din figură:
Ra R1 R2 1 (1 R3 )(1 R7 ) ,
Rb R8 R9 1 (1 R10 )(1 R11 ) ,
Rc R4 R5 R6 ,
Rs Rc 1 (1 Ra ) (1 Rb )
a.
A1 B1 C1 Z
I 11 1 O
A2 B2 C2 Z
2
A1 B1 C1
b. I D 11 O
A2 B2 C2
A1 B1 C1
c. I D 11 O
A2 B2 C2
47
Capitolul 5. METODA ARBORILOR DE DEFECTARE PENTRU
STUDIUL FIABILITĂŢII SISTEMELOR
49
uzual la proiectarea de centrale de energie nucleară, sisteme de transport, sisteme
de comunicaţie, procese chimice sau industriale, sisteme de cale ferată, sisteme
medicale, şi nu în ultimul rând a sistemelor informatice
50
orice defecţiune a sistemului este rezultatul unei secvenţe cuantificate de stări ale
procesului de defectare.
Analiza Booleană a arborelui de defect este una dintre metodele frecvent
utilizată pentru analiza arborilor de defectare. Metoda are la bază logica booleeană
unde cele două valori sunt Defect (D), corespunzând lui 0 şi Funcţional (F ),
corespunzând lui 1. După cum se cunoaşte, în sistemul binar din n variabile, se pot
forma 2n combinaţii binare.
Pentru orice aplicaţie practică, orice funcţie logică poate fi obţinută prin
folosirea numai a celor trei funcţii logice de bază – funcţii fundamentale ale
algebrei booleene: funcţia negaţie (NU), produsul logic(ŞI) şi suma logică
(SAU).Aşa cum spu matematicienii aceste trei funcţii logice definesc un sistem
complet.
Pentru fiecare eveniment care apare în arborele de defectare se recomandă să se
realizeze o listă cu numele sau descrierea evenimentului, să se codifice evenimente
şi să se calculeze probabilitatea de apariţie.
Dacă un eveniment reprezintă un eveniment repetat sau din cauză comună, el este
prezentat în arborele de defect în mod repetat, dar cu un steguleţ de atenţionare.
Toate evenimentele repetate sau din cauză comună din arbore trebuie să aibă
acelaşi cod şi trebuie marcate cu un simbol transfer-intrare sau cu un alt simbol ales
special pentru un anumit arbore de defectare. Această regulă se aplică tuturor
evenimentelor repetate sau cu cauză comună cu excepţia evenimentului de cel mai
mic nivel din ansamblu, care este marcat cu un simbol transfer-ieşire. În unele
diagrame ale arborilor de defect, simbolurile pentru evenimentele primare repetate
sau de nivel mai mare sunt aceleaşi.
51
Tabelul 5.1 – Simboluri utilizate frecvent pentru un arbore de defectare
53
Simbol Nume Descriere Corelaţia cu Numărul
Fiabilitatea de intrări
Poartă AND Evenimentulde ieşire apare Redundanţă paralel 2
(ŞI) numai dacă evenimentul de
intrare apare la toate intrările
54
În figura 5.1 este dată reprezentarea cea mai simplă a unui arbore de defectare,
alcătuit din evenimente primare, interconectate prin intermediul unei structuri
logice booleene, care indică posibilităţile, în care evenimentele se pot combina
pentru a produce avaria sistemului. Dacă sistemul are mai multe condiţii de avarie,
pentru fiecare dintre ele trebuie construit un arbore de defectare separat.
Arborele de defectare se construieşte pornind de la evenimentul din vârf
(defectarea sistemului) până când se ajunge la evenimentele primare (defectarea
componentelor sau subsistemelor) studiind interacţiunile logice dintre aceste
evenimente ale sistemului [18, 66, 83, 94, 96].
În faza de proiectare, metoda arborilor de defectare permite evidenţierea unor
deficienţe de concepţie, a locurilor şi elementelor vulnerabile din sistem.
55
Starea poate fi caracterizată prin probabilitatea existenţei sale la momentul t,
iar evenimentul poate fi caracterizat, fie prin rata sau frecvenţa de defectare, fie
prin probabilitatea de apariţie a evenimentului la momentul t.
56
Din relaţia de mai sus rezultă că:
s A B . (5.4.10)
- ieşirea porţilor ŞI :
Considerând n elemente independente la intrarea porţii ŞI, rata de defectare a
sistemului se determimă reluând, corespunzător, raţionamentul de la poarta SAU, şi
rezultă:
N
i ( i 1)
S i 1
N
, (5.4.11)
i 1
i 1
unde
, i 1, N .
1
i (5.4.12)
1 exp(i t )
În cazul logicii paralel (redudanţă), cu N elemente identice
N
S N 1 , (5.4.13)
i
i 0
1
unde i . (5.4.13)
1 e i t
Pentru cele mai multe sisteme, o analiză a fiabilităţii sistemului, ţinând seama
de buna funcţionare a tuturor elementelor componente conduce la realizarea
grafului de arborescenţă [30].
Un anumit produs complex, în procesul studierii fiabilităţii, se poate
descompune în subsisteme de diferite niveluri (subansamble, blocuri, elemente
etc.). În funcţie de scopul analizei, fiecare asemenea ansamblu (la orice nivel)
poate fi considerat ca un întreg, care se supune cercetării de sine stătător. Deci
orice subsistem, sau chiar sistemul în ansamblul său, poate fi considerat ca obiect
de studiu al fiabilităţii, care se realizează după aceeaşi metodologie ca şi studiul
unei componente elementare.
57
System out of
specification
or not
operational
No or No or
inadequate inadequate
data
Intermediate event voltages processing
Cause of the next level event The event developed on another
Input event to the next level event >=1 place in the fault tree
Output event of its inputs Power Supply Represented graphically by a
transfer gate
Microprocessor
>=1 >=1
Basic event MFG_Open_L1 MFG_Short_C1
Open_L1 Short_C1
Figura 5.1 – Exemplu de arbore de defect care prezintă diferite tipuri de porţi
58
Fiecare defectare software se poate datora fie (logică SAU):
- versiunii greşite (V ),
- deciziei greşite (D ),
- defectării software, datorită unei specificaţii incomplete (G ).
Fiecare defectare hardware se poate datora defectării ambelor unităţi hard (H )
(logică ŞI ).
Arborele de defectare corespunzător acestui sistem este dat în
figura 5.2.
59
Capitolul 6. CALCULUL PROBABILITĂŢILOR DE
DEFECTARE A SISTEMELOR COMPLEXE
PRIN METODA BINOMINALĂ
61
n
k C
k 0
k
n p k q n k np m np. (6.1.6)
1
unde 0 n ;
12n
cele două funcţii (densitatea de distribuţie şi funcţia de distribuţie) se pot scrie:
n!
f (t; k ) Cnk p k q n k pk qnk , (6.1.11)
k !(n k )!
x n
n! n!
F (t; k ) pk qnk p k (1 p)n k . (6.1.12)
k 0 k!(n k )! k 0 k!(n k )!
Numărul total de stări în care se poate afla sistemul este dat de relaţia:
𝑛𝑠𝑠 = 2𝑛 (6.2.1)
Elemente tabelului de adevăr vor fi:
- pentru sistemul binar format din elemente binare un simbol pentru starea de
succes care poate fi F = funcţionare, S = succes sau 1 iar pentru cea de refuz D =
defect, R = refuz sau 0;
- pentru sistemul multivalent format din elemente binare, tabelul va conţine valori
ale performanţelor elementelor, respectiv ale sistemului.
63
Probabilitatea producerii simultane a două sau mai multe evenimente
independente este egală cu produsul probabilităţilor evenimentelor.
Pentru categoriile de stări menţionate anterior, avem:
- probabilitatea stării cu toate elementele în funcţiune
𝑛
𝑝0 = ∏ 𝑝𝑗
𝑗−1
𝑝𝑖 = 𝑞𝑖 ∏ 𝑝𝑖
𝑗−1;𝑗−𝑖
𝑝𝑖,𝑘 = 𝑞𝑖 ∙ 𝑞𝑘 ∏ 𝑝𝑖
𝑗−𝑖−𝑘
𝑝𝑑𝑓 = ∏ 𝑞𝑗 ∙ ∏ 𝑝𝑙
𝑗𝑒𝑑 𝑙𝑒𝑓
𝑝𝑑−𝑛 = ∏ 𝑞𝑗
𝑗−1
∏(𝑝𝑖 + 𝑞𝑖 )
𝑖−1
6.3. Probleme
Pentru exemplificare vom rezolva 2 probleme considerând 2 elemente
independente, care pot avea numai două stări, funcţional sau defect şi care sunt
conectate într-un ssstem, mai întâi în serie, apoi în paralel.
65
Rezolvare:
I. Datele de intrare
𝑝1 = 0,98, 𝑞1 = 0,02
𝑝2 = 0,95, 𝑞2 = 0,05
𝑇 = 10 𝑎𝑛𝑖 ~ 87600ℎ
IV. Gruparea stărilor sistemului, așa cum rezultă din tabelul de stări:
- sistem funcțional, 𝐹: [𝑆1 ]
- sistem defect, 𝐷: [𝑆2 , 𝑆3 , 𝑆4 ]
VIII. Verificare:
𝑀𝑇𝐹𝐵 + 𝑀𝐷 = 87600
81555,6 + 6044,4 = 87600ℎ
𝑃𝑠 + 𝑄𝑆 = 1 = 0,931+0,069=1,00
VIII. Verificare:
𝑀𝑇𝐹𝐵 + 𝑀𝐷 = 87512,4 + 87,6 = 8760ℎ
𝑃𝑠 + 𝑄𝑆 = 0,999 + 0,001 = 1,000
Așa cum se poate urmări din cele două exemple de calcul, probabilitatea de bună
funcționare a sistemului realizat din aceleași elemente conectate în paralel este mult
mai mare decât a sistemului realizat din elementele conectate în serie:
0,999 ≫ 0,931
La fel și durata de bună funcționare în cazul sistemului cu elementele conectate în
paralel față de sistemul serie:
67
87512,4 ≫ 81555,6
Durata de nefuncționare a sistemului paralel este numai 87,6 h, mai puțin de 4 zile
din 10 ani în comparație cu 6044ℎ~243 zile din 3650 zile.
Capitolul 7. METODA LANŢURILOR MARKOV PENTRU
FIABILITATEA SISTEMELOR
69
- rata de trecere de la o stare la alta, reprezentată de regulă fie prin
probabilitatea trecerii de la o stare la alta pentru evenimente individuale sau rata de
defectare (λ) şi/sau rata reparaţiilor (µ) pentru evenimentele continue.
Tehnica de analiză Markov este centrată în jurul conceptului de „stări”, de
exemplu „disponibil” şi „defect” şi pe tranziţia dintre cele două stări în timp
considerând probabilităţi constante de tranziţie. Este utilizată o matrice a
probabilităţilor aleatorii de tranziţie pentru a descrie trecerea de la o stare la alta şi
a permite calcularea diverselor outputuri.
Ipotezele care stau la baza studiului fiabilităţii unui siste, utilizând lanţuri
Markov sunt:
1. fiabilitatea sistemului se poate estima în funcţie de fiabilitatea tuturor
elementelor sale;
2. perioada de timp în care este analizat sistemul este cea de maturitate,
caracterizată prin = constant;
7. tranziţiile dintr-o stare în alta se pot produce în orice moment;
4. defectarea sau repararea unui element al sistemului este independentă de
starea celorlalte elemente;
5. defectarea unui element al sistemului este un eveniment, a cărui probabilitate
de realizare într-un interval de timp, t, este t, probabilitate care depinde
numai de mărimea intervalului, nu şi de timpul anterior de funcţionare;
7. repararea unui element al sistemului este un eveniment a cărui probabilitate
de realizare într-un interval de timp t este t;
7. probabilitatea defectării şi reparării unui element al sistemului în intervalul t
este 0 (t t = 0) adică în acest interval poate să aibă loc o singură tranziţie, fie
defectare, fie reparare.
Considerând că în mod sigur (cu certitudine) într-un interval de timp foarte mic,
d t, sistemul nu poate decât să-şi păstreze starea i de la momentul iniţial sau să
tranziteze într-o stare j, se poate scrie:
n n
pij 1 sau qij 1. (7.2.3)
i 1 j 1
70
Px(t dt) i S x(t d t ) i / x(t ) j Px(t ) j. (7.1.5)
jS
Introducând notaţia:
Pi (t ) Px(t ) i, t R , i S , (7.1.6)
Pj (t )aij dt 1 ah i dt Pi (t ). (7.1.7)
j S i h S i
unde
pij (t )
aij lim (7.1.7)
t 0 t
reprezintă rata de tranziţie din starea i în starea j cu i j, la momentul
t + d t.
În mod similar
pii (t ) 1
aii lim (7.1.7)
t 0 t
este rata de tranziţie din starea i în starea i (de fapt menţinerea aceleiaşi stări i ).
Ţinând seama că
pij 1, (7.1.8)
jS
se poate scrie:
aij a ji . (7.1.9)
jS
j i
71
dPi (t )
ai j Pj (t ). (7.1.10)
dt jS
Soluţia acestui sistem este dificil de obţinut pentru cazul general. În caz
dPi
staţionar, când t (pentru un timp de observare suficient de mare), lim 0,
t dt
72
Pentru că aii aki , rezultă că suma termenilor fiecărei linii a matricei
kS
k 1
- AT este matricea transpusă a ratelor de tranziţie.
Această formă a soluţiei este elegantă, dar soluţia este dificil de evaluat, fiind
nevoie de scrierea matricei AT .
det AT T 0. (7.2.6)
73
- V reprezintă matricea formată din vectorii proprii V1 , V2 , ..., Vn ai
matricii AT , adică:
unde vectorul propriu Vi este o matrice coloană, obţinut ca soluţie a ecuaţiei:
A I V 0.
T
i (7.2.8)
Matricea eD t se poate scrie, prin dezvoltare în serie Taylor în jurul lui t = 0,
sub forma:
e 1t 0 ... 0
2t
0 e ... 0
. (7.2.9)
0 0 ... e nt
A P 0.
T
(7.2.11)
74
Pentru a ridica nedeterminarea, la ecuaţiile (7.2.10) trebuie adăugată condiţia ca
stările sistemului să formeze un complet de evenimente Pi 1 .
iS
7.3. Exemplu de pentru matricea stărilor de tranziţie
7.3.1. Fie un sistem cu restabilire, cu două stări, S F , D , unde F cores-
punde stării funcţionale şi D - celei de defect. Ratele de defectare şi cele de
reparare sunt constante, egale cu şi, respectiv cu . Probabilităţile de tranziţie
din starea de funcţionare în cea de defect şi invers (din starea de defect în stare de
funcţionare) sunt a12 şi, respectiv a21 . Celelalte probabilităţi, de
menţinere în aceaşi stare, de funcţionare sau de defect sunt: a11 şi a22 .
Graful de tranziţie al stărilor este dat în figura 7.1.
Figura 7.1. Graful de tranziţie al stărilor unui sistem simplu cu două stări
adică
( )( ) ( ) 0. (7.3.3)
Din rezolvarea ecuaţiei de mai sus se obţine:
1 0 şi (7.3.3)
2 ( ) . (7.3.3)
75
Matricea diagonală a valorilor proprii este:
D
0 0
. (7.3.4)
0 ( )
Se poate scrie imediat şi matricea e D t
e 10
Dt 0
t . (7.3.5)
e
Vectorii proprii se obţin în felul următor:
det A I V 0,
T
1 1 (7.3.6)
x
y 0, (7.3.7)
1
x y 0 V1 . (7.3.8)
det A I V 0.
T
2 2 (7.3.9)
x
0, (7.3.10)
y
x y 0,
(7.3.11)
x y 0,
V2
1
. (7.3.12)
1
Matricea vectorilor proprii este:
1 1
V
, (7.3.13)
1
iar inversa sa:
76
V
1
. (7.3.14)
Se obţine în final, conform (7.2.15), vectorul de stare al sistemului:
1 1 1 0
P(t ) 1
1 0 e ( )t
0
(7.3.15)
( )t
e
.
e ( )t
77
În tabelul 7.1 sunt prezentate stările caracteristice ale unui sistem format din
două elemente, care poate avea numai 2 stări, funcţional (F) şi defect (D). În figura
7.1 au fost prezentate tranziţiile între aceste stări (funcţional/defect), iar în figura
7.2 sunt prezentate trei stări caracteristice ale unui element: funcţional (F) - defect
(D) - rezervă (Rz), cu probabilităţile de tranziţie în fiecare stare.
Tabelul 7.1
Nr. Starea
F D
stare sistemului
0 1, 2 - F
1 1 2 D
2 2 1 D
3 - 1, 2 D
78
Graful stărilor se organizează pe niveluri, un nivel cuprinzând stările, care au
acelaşi număr de defecte.
Trecerile sistemului dintr-o stare în alta înseamnă o trecere dintr-un nivel în
nivelul imediat următor sau anterior, în funcţie de evenimentul, care are loc
(defectare sau reparare). Între stările aceluiaşi nivel nu există tranziţii. e
7.5.Exempl3 de aplicare a metodei
Exemplul 1. Fie un sistem format din patru componente, conform schemei din
figura 7.3.
Tabelul de stări pentru acest sistem este dat următorul (tabelul 7.2).
Pentru 3 elemente defecte, oricare ar fi, sistemul este defect (următoarele 7stări)
Graful stărilor tranziţiilor acestui sistem este prezentat în figura 7.3.
79
Figura 7.3. Graful stărilor sistemului analizat
80
i depinde numai de cele două module i şi j, nu şi de restul modulelor
din program.
Pentru durata de execuţie a modulelor se admite orice lege de distribuţie care
descrie funcţionarea acestui modul.
Starea initială
S1 S2 S3
S1 0,95 0,3 0,2
Starea finală S2 0,04 0,65 0,6
S3 0,01 0,05 0,2
S1
0,2 0,04
0,01 0,3
S3 S2
0,2
00,05
0,65
81
Să presupunem că Pi reprezintă probabilitatea să găsim sistemul în starea i
pentru i =1, 2, 3, în care caz ecuaţiile simultane care trebuie rezolvate sunt:
P1 = 0,95 P1 + 0,30 P2 + 0,20 P3 (7.5.1)
P2 = 0,04 P1 + 0,65 P2 + 0,60 P3 (7.5.2)
P3 = 0,01 P1 + 0,05 P2 + 0,20 P3 (7.5.3)
pentru a le rezolva acest sistem se va utiliza şi o ecuaţie care descrie că suma
probabilităţilor de este 1
1 = P1 + P2 + P3 (7.5.4)
Soluţia acestui sistem de ecuaţii este 0,85, 0,13 şi 0,02 pentru stările respective
1, 2, 3 ceace indică faptul că sistemul este complet funcţional 85% din timp,
funcţional parţial 13% din timp şi nefuncţional 2% din timp.
Se iau în considerare două elemente funcţionând în paralel, fiecare trebuind să
fie operaţional pentru a asigura funcţionarea sistemului. Elementele pot fi fie
operaţionale sau nefuncţionale iar funcţionarea sistemului este condiţionată de
statutul acestor două elemente.
Stările pot fi considerate drept:
Starea 1 :Ambele elemente funcţionează corect;
Starea 2: Un element este defect şi se află în reparaţii, celălalt este în funcţiune;
Starea 3:Ambele elemente sunt defecte şi unul se afllă în reparaţii.
Dacă se presupune că rata de defectare a fiecărui element este λ şi rata de
reparare este µ, diagrama tranziţiilor de stare de este:
2
–2 S1 S2 S3 –
– ( + )
82
Tabelul 7.5. – Matricea Markov finală
Starea iniţială
P1(t) P2(t) P3(t)
P1(t + δt) -2 λ µ 0
Starea finală P2(t + δt) 2λ - (λ + µ) µ
P3(t + δt) 0 λ -µ
Modelare
1. Citirea datelor: Datele sunt preluate de pe linia de comunicaţie cu ajutorul
unui circuit specializat fără a se afecta transmisia în sine şi sunt trimise circuitului
de selecţie.
2. Prelucrarea/selecţia datelor: Datele recepţionate sunt verificare şi
selecţionate pe baza unor criterii de corectitudine şi transmise modulului de
memorare spre a fi stocate.
3. Memorarea datelor: Datele sunt înscrise în cardul de memorie de tip Solid
Device pentru prelucrare ulterioară.
Putem considera cele trei funcţii ale sistemului ca 3 module funcţionale,
înseriate, aşa cum se observă în chema sistemului din figura 7.7.
83
Figura 7.7. Schema bloc a sistemul simplu de memorie
Funcţia de fiabilitate
Pentru a putea determina funcţia de fiabilitate vom considera pentru fiecare din
cele 4 modele următorul model Markov cu două stări, funcţionare F şi defect D,
model prezentat în figura 7.8.
84
Figura 7.8. Graful de tranziţie al stărilor per modul
85
Pe baza diagramei de mai sus se scrie matricea lui Markov astfel:
[𝐴(𝑡)] = (𝑎𝑖𝑗 )
1 − 2𝜆1 2𝜆1 0 0
0 1 − 𝜆2 𝜆2 0
𝐴(𝑡) [ ]
0 0 1 − 𝜆3 𝜆3
0 0 0 1 − 𝜆4
Din condiţia obligatorie ca suma intensităţilor de tranziţie pe fiecare coloană să
fie egală cu zero, vom obţine următoarele valori:
𝜆1 = 0,5; 𝜆2 = 0; 𝜆3 = 1; 𝜆4 = 0
Se pot calcula probabilităţile de ocupare a stărilor conform relaţiei:
𝑑𝑃
[ ] = [𝐴(𝑡)] ∙ [𝑃(𝑡)]
𝑑𝑡
adică:
1 − 2𝜆1 2𝜆1 0 0 0.82 0.82
𝑑𝑃 0 1 − 𝜆2 𝜆2 0 0.82 0.82
[ ]=[ ]∙[ ]=[ ]
𝑑𝑡 0 0 1 − 𝜆3 𝜆3 0.95 0.69
0 0 0 1 − 𝜆4 0.99 0.99
86
Capitolul 8. METODE PENTRU ESTIMAREA
INDICATORILOR DE FIABILITATE
87
t
verosimilitate şi se notează cu L , unde t este vectorul rezultatelor
experimentale iar este parametrul de estimat.
Metoda verosimilităţii maxime este o metodă uzuală pentru estimarea
punctuală a parametrilor unei distribuţii statisice, serveşte la estimarea unui
indicator de fiabilitate fără a face ipoteze privind natura legii de repartiţie a
timpului de funcţionare; este deci o metodă neparametrică.
Dezavantajul metodelor neparametrice este legat de faptul că valorile estimate
nu pot fi extrapolate dincolo de intervalul de timp în care se desfăşoară
experimentul.
Se consideră că densitatea de probabilitate este cunoscută şi depinde de s
parametri 1, 2, ..., s, adică este de forma f (ti , k ) (i = 1, ..., n ;
k = 1, ..., s).
Funcţia de verosimilitate L( ) se defineşte ca funcţia de densitate de
probabilitate reunită a variabilelor aleatoare t1, t2, ..., tn:
n
L( k ) f (ti , k ). (8.3.1)
i 1
88
planul secvenţial al lui Wald întrucât porneşte de la încercări de fiabilitate de tip
secvenţial [8, 26, 52].
Graficul planului are axele TS (timpul cumulat de încercare până la luarea deciziei
de întrerupere a încercării) şi r (numărul de defectări înregistrate). În aceste coordonate
se trasează două drepte paralele AN şi RN, corespunzătoare limitelor de acceptare,
respectiv de respingere a lotului de N elemente. Se procedează secvenţial, marcându-se
pe plan, după fiecare defectare (r = 1, 2, 3, ..., n ), punctul de coordoate (TS, r ), aşa
cum se poate urmări în figura 8.1.
89
Figura 8.2. Caracteristica operativă pentru
determinarea probabilităţii de acceptare
e) Testul lui Wald constă în a forma pentru fiecare valoare a lui r raportul
P1 (r )
şi a-l compara cu două numere date a şi b aflate în relaţia b < a, ambele
P0 (r )
stabilite pe baza caracterisiticilor operative conform relaţiilor:
1
a şi b . (8.3.4)
1
Dacă
P1 (r )
, (8.3.5)
P0 (r ) 1
90
P1 (r ) 1
, (8.3.6)
P0 (r )
atunci lotul se respinge, conform ipotezei H1.
Dacă
P (r ) 1
1 , (8.3.7)
1 P0 (r )
testul se continuă.
Condiţia de continuare a testului, cu notaţiile de la (8.3.16) se mai poate scrie:
P (r )
b 1 a (8.3.7)
P0 (r )
0 1 1
sau ln b r ln T ln a. (8.3.7)
1 1 0
0
Împărţind cu ln , relaţia (8.3.19) devine:
1
1 1 1 1
T T
0 0
1 1
ln b ln a
r . (8.3.8)
ln 0 ln 0 ln 0 ln 0
1 1 T1 1
Introducând notaţiile:
1 1
1 0
m , (8.3.9, a)
ln 0
1
ln
1 ,
ln b
n1 (8.3.9, b)
0
ln ln 0
1 1
1
ln
n2
ln a
; (8.3.9, c)
0
ln 0 ln
1 1
relaţia (8.3.8) se poate scrie:
mT n1 r mT n2 . (8.3.10)
8.4. Probleme
1. Să se estimeze valorile ratei de defectare, , pe baza duratelor de defectare
(t1, t2, ..., tn) pentru sistem pentru care, pentru timpul dintre defectării este valabilă
distribuţia exponenţială.
Rezolvare:
Estimatorul (parametrul) în acest caz, este .
Funcţia de verosimilitate este:
n
n ti
Lt , e t i n e i 1
, (8.3.3)
i 1
lnL( ) n n
ti 0. (8.3.4)
i 1
Soluţia ecuaţiei 8.3.4 este:
n 1
n
. (8.3.5)
t
ti
i 1
k x1 ... xn
p (8.3.8)
n n
92
1 n
Aşadar, valoarea medie a selecţiei, x xi (8.3.8) este o estimaţie de
n i 1
verosimilitate maximă a probabilităţii p.
3. Un lot format din 100 unităţi de memorie RAM au fost supuse la o
probă de Funcţionare într-un mediu controlat care avea următorii parametrii:
- temperatura mediului: 65oC
- umiditate relativă: 90%
- timp de 14 zile (14x24=336h)
După acest timp de funcţionare în mediu se va determina numărul de
dispozitive defecte şi se va opri încercarea.
Să se calculeze indicatorii de fiabilitate şi apoi aplicând metoda
verosimilităţii maxime să se estimeze valoarea ratei de defectare.
Dacă numărul de dispozitive defectate este sub 10%, în cazul nostru 10
buc., se va considera că memoria a trecut acest test şi că el poate avea durata de
viaţă de un an pentru parametrii de funcţionare.
În tabelul următor sunt prezentaţi timpii de defectare ai dispozitivelor
defectate în acest interval.
Nr. element Timp defectare Nr. elemente rămase
funcţionale
1 t1 = 2 h 99
2 t2 = 15 h 98
3 t3 = 70 h 97
4 t4 = 121 h 96
5 t5 = 122 h 95
6 t6 = 238 h 94
7 t7 = 301 h 93
8 t8 = 320 h 92
94
Capitolul 9. TESTAREA SOFTWARE
9.1 Cerinţe fundamentale privind testarea software
Testarea software reprezintă o investigație empirică, o sumă de proceduri, operaţii şi
acţiuni menite sa asigure buna funcţionare a programelor, realizată cu scopul de a oferi
informații referitoare la calitatea programului supus testării, ţinând seama de contextul
operațional în care va fi folosit programul.
Testarea software poate fi definită ca un proces de validare și verificare a faptului că
un program/aplicaţie/produs software corespunde cerințelor de business și celor tehnice
care au stat la baza proiectării și implementării lui, rulează și se comportă corespunzător
așteptărilor.
Tehnicile de testare se aplică în procesul proiectare şi codificare, de execuție a
programului sau aplicaţiei în scopul identificării defectelor/erorilor de software.
Testele de acceptare au două scopuri:
- să detecteze deviaţii faţă de comportarea prevăzută a programului şi
- să prevină furnizarea unor rezultate periculoase.
Testarea software poate fi implementată la orice etapă în cadrul procesului de
dezvoltare, deși cele mai considerabile efortului de testare se fac în etapa de după
codarea propriu-zisă şi în etapa de finisare a implementării. Se aplică întotdeauna pro-
gramelor noi care sunt supuse unor teste de acceptare foarte severe sau celor pentru care
se solicită un nivel de fiabilitate ridicat, dar şi programelor mai vechi care au fost
îmbunătăţite.
Prin buna functionare a software se înţelege în mod uzual:
- Respectarea specificaţiilor / cererilor clientului;
- Implementarea corecta a cerinţelor de functionare (requirements);
- Absenţa erorilor de proiectare logică şi algoritmică;
- Siguranţa datelor folosite în cadrul programului;
- Viteza optima de rulare a aplicaţiei;
- Folosirea eficienta a resurselor disponibile;
- Grad ridicat de utilizare etc.
Testarea software este o preocupare a specialiştilor apărută odată cu primele sisteme
informatice (1945-1956), iniţial orientată către componentele hardware ale sistemului de
calcul. Se considera că defectele din software, atunci când de elaborarea de soft se
ocupau specialişti, erau puţin probabil să apară. Specialiştii implicaţi în elaborarea codul
efectuau şi testarea acestuia într-o etapă distinctă numită verificare, facând şi depanarea.
În perioada 1957 - 1978 procesul de testare a început să fie efectuat cu scopul
declarat de a descoperi erori era o activitatea de analiză şi control în timpul rulării a
unui program.
În perioada '83 - '87 au apărut metodologii de evaluare care cuprind metode de
analiză, evaluare și testare aplicabile de-a lungul întregului ciclu de viață al aplicaţiei.
Există aşa numite Ghiduri de bune practici care propun metode de verificare și
validare, în funcție de caracteristicile fiecărui soft, necesităţile de securitate şi grupul
ţintă al acestuia. Rezultatul testării riguroase a fost scăderea numărului de defecte care
ajung nedetectate în programul final.
În ultimii ani accentul este pus pe prevenirea apariţiei erorilor în programe, urmărind
izolarea și corectarea defectelor care au potenţial de a cauza erori.
95
Testarea include atât examinarea statică a codului sursă cât și examinarea codului în
execuție în diferite condiții.
9.2.Strategii de testare
În timpul proiectării şi codificării pot apărea următoarele categorii de erori:
- erori legate de alegerea şi descrierea algoritmului:
algoritm incorect sau corect dar inadecvat problemei;
algoritm mai puţin performant ca precizie sau timp necesar rezolvării
problemei;
omiterea, interpretarea greşită sau incompletă a unor părţi ale algoritmului;
validarea incorectă şi/sau incompletă a datelor de intrare;
inversarea răspunsurilor la un bloc de decizie;
- erori în definirea şi utilizarea datelor ce provin din variabile neiniţializate,
formate improprii de citire, contoare de capacitate insuficientă, neverificarea datelor de
intrare, aliniere/redefinire incorectă a câmpurilor, utilizarea unor cuvinte cheie ca
variabile, variabile ilegale (formate prin concatenare sau despărţite între două linii de
program);
- erori de calcule care au ca surse: expresii complicate cu posibilităţi necontrolate
de eroare; conversii implicite de tip (cu eroare de conversie, rotunjire, trunchiere);
neinterceptarea cazurilor de depăşire/subdepăşire a intervalului definit;
- erori produse în tehnica de programare cum sunt variabile şi structuri de date
globale, acces necontrolat la zone de memorie partajate, interfeţe program - subprogram
nerespectate, pasarea constantelor ca parametri transmişi prin adresă, pasarea
parametrilor de intrare/ieşire prin valoare, automodificarea programului în timpul
execuţiei, utilizarea necontrolată a mai multor limbaje cu convenţii de apel diferite;
- erori produse din neatenţie caz în care logica de control e defectuoasă, salt în
afara limitelor programului, condiţii logice compuse sau incorect negate, neprelucrarea
primei sau ultimei înregistrări, neluarea în considerare a posibilităţii de existenţă a
fişierelor vide, neprelucrarea erorilor de intrare/ieşire, depăşirea capacităţii stivei,
adresare incorectă, necontrolarea indecşilor;
- erori în contextul execuţiei datorate memoriei dinamice insuficiente sau
nealocată, periferice neoperaţionale, comunicare defectuoasă cu sistemul de operare.
Cea mai mare parte a erorilor de proiectare şi codificare sunt depistate în faza de
compilare a programului şi sunt extrase în fişierul de ieşire, într-o formă specifică
fiecărui compilator. Ca erori de codificare sunt considerate şi cele detectate în faza de
editare a legăturilor.
În timpul execuţiei programelor apar erori de genul:
- erori de echipament, care sunt legate de contextul în care se execută un program
şi care se împart în: erori în datele de intrare, erori ce decurg din neglijarea specificului
unui limbaj sau compilator (aritmetica numerelor în calculator, modul de implementare
a tipurilor şi structurilor de date pe un limbaj dat) şi
- erori de încărcare a programelor şi de apelare incorectă a diferitelor periferice
97
Deşi principiul testării de sus în jos pare inaccesibil, există totuşi o serie de avantaje:
se elimină testarea întregului sistem, căci nu mai este necesară; se testează mai întâi
interfeţele dintre module, eliminându-se de la început erorile dificil de detectat; micile
erori de codificare afectează numai un modul şi deci se localizează cu uşurinţă;
beneficiarii au o versiune preliminară parţial funcţională a programului; termenele de
predare sunt respectate sau chiar devansate; timpul de testare este mai bine distribuit;
testarea îmbunătăţeşte moralul programatorului, întrucât oferă acestuia şi beneficiarului
rezultate parţiale pe parcurs.
Testarea de jos în sus
Este o metodă clasică de testare şi constă în testarea individuală a modulelor urmată
de testarea ansamblului de module ca un tot unitar.
Pentru fiecare modul trebuie efectuate:
- testul de funcţionalitate - se verifică dacă modulul îndeplineşte funcţia sau
funcţiile sale;
- testul de depistare a datelor eronate ce nu corespund funcţiei şi
- testul de comportare în condiţii extreme de lucru.
Testarea sistemului nu este exhaustivă. Ea presupune verificarea sistemului din punct
de vedere al specificaţiilor sale, dar şi al performanţelor: timp de răspuns, capacitate de
lucru etc. Testele de sistem ocupă până la 30% din timpul total de realizare. Un
dezavantaj al metodei este dificultatea în stabilirea datelor de test pentru sistemul final.
Erorile cele mai dificile fiind cele legate de modul de comunicare între module date
neutilizate, date iniţializate în mai multe module, date modificate în diferite module,
rutine suplimentare de simulare.
Metoda mixtă
Presupune aplicarea simultană a celor două metode precedente, rămânând
predominantă testarea descendentă. Prin urmare se începe elaborarea proiectului într-o
manieră descendentă, dar simultan se realizează module din nivelul de bază al ierarhiei.
În acest caz testarea descendentă se desfăşoară paralel cu cea ascendentă. Acest
procedeu de concepere şi testare s-a dovedit eficient în elaborarea multor produse
program.
Nici una din metode nu rezolvă singură şi unic toate problemele de testare, sunt şi
situaţii când ordinea de abordare conţine şi bucle, metodele se adaptează situaţiilor
particulare ale programelor complexe.
99
Testul de securitate
Presupune verificarea mecanismelor de protecţie implementate în sistem, de fapt
protecţia la intrările neautorizate în sistem. Rolul unui proiect de securitate al unui
sistem este să facă astfel încât costul de spargerea al sistemului să fie mai mare decât
beneficiile pe care le obţine prin spargerea sistemului.
Testul de stres
Presupune execuţia sistemului într-o manieră anormală. Adică se testează
confruntarea software cu situaţi anormale (multiple tranzacţii, memorie insuficientă,
spaţiu liber mic pe disc, blocarea perifericelor cu care lucrează aplicaţia etc.)
Testul de performanţă
Este proiectat să testeze în run-time performanţele sistemului. Acest test se face atât
la nivelul modulelor cât şi la nivelul global al întregii aplicaţii, dar însă pentru
verificarea cerinţelor de performanţă această testare se face după ce integrarea este
completă. Testarea de performanţă implică atât elemente software cât şi elemente
hardware.
9.3.6.Testarea regresivă
Reprezintă o treaptă deosebit de importantă pentru echipele care doresc să dezvolte
procese accelerate. Ca modalitate de lucru, prevede repetarea testării cu date de test şi în
condiţii identice, pentru fiecare nouă versiune internă a unei componente software. Prin
compararea rezultatelor testării şi identificarea diferenţelor se depistează erorile nou
apărute; acest lucru este deosebit de util pentru maniera actuală de dezvoltare a
aplicaţiilor RAD - Rapid Application Development, care implică utilizarea
instrumentelor vizuale de programare şi se caracterizează prin apariţia unui număr mare
de modificări într-un interval scurt de timp.
9.3.7.Testarea de compatibilitate
Testarea compatibilităţii presupune verificarea interacţiunii software cu celelalte
componente software cu care va coexista şi va interacţiona.
Testarea produsului pe mai multe platforme este o muncă foarte costisitoare, atât din
punct de vedere al testării cât şi din punct de vedere al rezolvării problemelor care sunt
descoperite.
Testarea compatibilităţii, realizată în beta testing, reprezintă o testare externă cu un
grup selectat ca potenţiali clienţi. Selectarea grupului se efectuează după criterii precise
întrucât rezultatele testării sunt cu atât mai concludente cu cât există garanţia că aceşti
clienţii selectaţi utilizează o diversitate cât mai mare de module.
O aplicaţie complexă are în componenţă multiple configurări de parametrii, de
variabile de mediu setări dependente de sistemul de operare, de tipul bazei de date, de
diferitele configurări pe care le permite aplicaţie în funcţie de potenţiali clienţii. Foarte
multe din aceste configurări se centraliză pe un singur calculator al clientului şi se
distribuie automat pe celelalte calculatoare.
Testarea configurării presupune verificarea îmbinării dintre setările posibile şi
ambientul software şi hardware existent. Dacă aplicaţia este proiectată să folosească
scanner trebuie să fie compatibilă cu hardware existent. Trebuie făcute setările necesare
pentru a putea utiliza un anumit tip de hardware.
Incompatibilitățile ce apar între versiuni se datorează faptului că la momentul
scrierii codului programatorul a considerat sau a testat, produsul doar pentru un singur
sistem de operare (sau un set restrâns de sisteme de operare), fară a lua în calcul
problemele ce pot apărea la schimbarea contextului de execuție, iar ultima versiune a
programului poate să nu mai fie compatibilă cu acea combinație de software/hardware
folosită mai devreme, sau poate să nu mai fie compatibilă cu un alt sistem,
compatibilitate extrem de importantă.
Testarea de compatibilitate este o "strategie orientată spre prevenire", fiind ultima
din fazele de testare
101
9.5. Testarea empirică
Are un caracter parţial şi se efectuează în etapele de analiză, proiectare, programare,
integrare module. Este atât un proces de autoverificare cât şi un proces global.
Testarea empirica se realizează în principal de către elaboratorii de programe şi mai
apoi de către utilizatorii programelor. Programul trebuie privit ca o cutie neagră. Din
documentaţie, din module de proiectare a interfeţelor rezultă structura datelor de intrare.
Cum se efectuează prelucrările, care sunt acestea, ce efecte secundare sunt generate, nu
reprezintă un element esenţial din punct de vedere al testării empirice.
Obiectivul testării empirice este acela de a pune în evidenţă că programul e bun sau
nu e bun (merge sau nu merge).
Testarea empirică se focalizează în trei puncte:
i. la nivelul datelor de intrare pentru a verifica dacă programul acceptă ca intrări
datele care definesc problema; se testează situaţii cu date mai multe/mai puţine şi egale
decât oferta.
ii. la nivelul prelucrărilor în parcurgând paşii algoritmului execuţiei sau în puncte
diferite, cu găsirea unor legături între datele oferite şi punctul în care are loc
întreruperea;
iii. la nivelul rezultatelor când se identifică rezultate incomplete structural, rezultate
complete structural şi incorecte şi respectiv situaţia în care rezultatele corespund
calitativ fără a putea fi făcute menţiuni asupra corectitudinii efective a lor.
Testarea empirică este direcţionată fie spre latura pozitivă fie spre latura negativă a
testării produsului.
În urma testării empirice prin exemple de test se obţin rezultatele concrete prin care
se defineşte comportamentul programului.
𝑇𝐷𝑢𝑛𝑖𝑐𝑒
𝑅𝑑 = × 100
𝐶𝑇
unde CT – cazurile de test
103
Rata incidentelor - numărul de incidente în exploatarea sistemului (Ri) reprezintă
raportul dintre numărului de incidente şi numărul de ore de funcţionare sau numărul de
tranzacţii efectuate date de relaţia:
𝑁𝐼
𝑅𝑖 = × 100
𝑁𝑇
unde: NI – număr de incidente;
NT – număr de tranzacţii;
Prin incident se înţeleg acele erori care apar din exploatarea sistemului de exemplu:
întreruperea programului, blocarea programului, resetări de funcţii şi de stări, erori în
afişarea şi imprimarea rezultatelor saui alte comportamente neprevăzute.
Acest indicator descrie eficienţa măsurilor de întreţinere şi de corectare după
implementare a produsului-program.
După cum se poate urmări în figură, rata de defectare scade la fiecare defectare
a programului, deci fiabilitatea acestuia creşte; se poate spune că este un proces de
reînnoire cu reînnoiri negative.
105
Caracteristici şi parametri de fiabilitate:
a) Este un model de creştere exponenţială a fiabilităţii.
b) Funcţia de fiabilitate şi funcţia densitate de probabilitate pe intervalul k
sunt.
Rk (t ) e ( N k 1)t (10.1.2)
dR
f (t ) ( N k 1) e ( N k 1) tn (10.1.2')
dt
c) Media timpului între defectările k - 1 şi k este:
1
m R(t )dt . (10.1.3)
0
( N k 1)
106
n 1 ntn
N k 1 n
,
k 1
Nt n (k 1) t k
k 1
(10.1.8)
n
,
n
Nt n (k 1) t k
k 1
N , 0 t t1 ,
CN , t1 t t 2 ,
N (t ) C 2 N , t 2 t t3 , (10.2.1)
... ...
k
C N , t k t t k 1.
b) Rata de defectare este proporţională cu numărul de erori latente astfel încât
este constantă pe fiecare interval iar valorile ei formează o progresie geometrică
descrescătoare cu raţia C, având expresia:
0 N , 0 t t1 ,
CN C , t1 t t 2 ,
z (t ) N (t ) k 1 0
(10.2.2)
... ...
k C N C 0 ,
k k
t k t t k 1.
107
Parametrii modelului Jelinski-Moranda geometric sunt 0 şi C, iar numărul de
erori latente şi ponderea fiecărei erori sunt neprecizate.
Caracteristici şi parametri de fiabilitate :
Modelul nu poate prevede numărul de defectări într-un interval de timp şi nici
numărul de erori remanente la un moment dat, dar permite calculul funcţie de
fiabilitate într-un interval anume şi duratei medii reziduale de viaţă:
a) Funcţia de fiabilitate şi funcţia densitate de probabilitate pe intervalul k este:
R (t , t t ) e C 0 t iar f (t ) 0 C k e C 0 t
k k
(10.2.3)
C k 1 tk 0
0 k 1
n (10.2.7)
k 1 n
0 (k 1)C t k 0,
k 2
k 1 C k 1
Din rezolvarea sistemului complex (cu un program de calcul specializat) se obţin
parametrii modelului:
108
ˆ n
0 n ,
C k 1
x k
k 1
n n (10.2.8)
(k 1)C xk (k 1)
k 2
k 1 n k 1
.
k 1 nC
k1 C xk
n
m (t n ) . (10.3.2)
2 ( N n)
109
n 1
k 1
t n 0,
k 1 0C
n C k 1 n
k 1
C k 1 t k 0, (10.3.6)
k 1 0C k 1
n (k 1) C k 2 n
k 1
(k 1)C k 2 t k 0,
k 1 0 C k 1
cu
n
tn tk . (10.3.6)
k 1
10.4.Probleme propuse
1. Pentru rezolvarea sistemului sunteţi invitaţi să elaboraţi un program de
calcul şi să rezolvaţi folosind datele deţinute de la capitolul anterior.
110
Capitolul 11. FIABILITATEA HARD DISCURILOR
111
unul peste altul, la distanţe menţinute constante printr-un separator, fixate de un ax
care roteşte tot ansamblul de platane la mii de rotaţii pe minut (4000÷15000Rpm).
Capul de citire/scriere reprezintă „translatorul”, cel care prelucrează
informaţia de pe platane în format digital şi o transferă controlerului de disc pentru
a o transmite mai departe la procesor.
Există câte un cap de citire/scriere pentru fiecare din feţele platanului acestea
fiind acţionate simultan, prin intermediul aceluiasi braţ.
113
suprafata platanului și această acțiune reduce înălțimea de zbor. După răcire
gimbal-ul se îndreaptă.
Motivul pentru care preamplificatorul este situat în interiorul HAD-ului este
simplu - semnale de la capete sunt foarte slabe și pe HDD-uri moderne careo
frecvență mai mare de 1GHz, iar dacă elimini preamplificatorul din HDA astfel de
semnale slabe nu ar supraviețui, ele vor dispărea pe drumul spre PCB .
Preamplificator are mult mai multe cai ce merg la capetele (partea dreaptă)
decât la HDA (lateral stânga),asta pentru că HDD-ul poate lucra numai cu un "cap"
(pereche de elemente scriere/citire)ela un moment dat. HDD trimite semnale de
control pentru preamplificator și acesta selectează capul HDD de care are nevoie la
momentul actual. Acest HDD are șase contacte pe "cap". Un contact este de
impamantare, alte două pentru elemente de citire și scriere. Alte două pentru
microactuatorilor - dispozitive piezoelectrice speciale sau magnetice care pot misca
sau roti slider-erul, care ajuta la reglarea pozitiei acestuia iar ultimul contact este
pentru sursa de încălzire care poate ajuta la ajustarea înălţimii la care plutesc
slidere-le. Sistemul de încălzire poate încălzi GIMBAL-ul, legătura specială care
conectează slider-ul la HGA. GIMBAL-ul este realizat din două lamele din diferite
aliaje cu coeficienţi de dilatare termică diferita. Odată ce gimbal-ul fost încălzit se
curbează spre suprafata platanului reducând astfel înălțimea de zbor. După răcire
gimbal-ul se îndreaptă.
Placa cu circuite imprimate
Componentele electronice şi conectorii HDD sunt montate pe o placă cu circuite
imprimate numită PCB - Printed Circuit Board. În figura 11.5 se pot observa
aceste componente electronice pentru un HDD al companiei Seagate
(ST31000333AS1 de 1TB), preluată de pe site-ul oficial al producătorului
http://www.seagate.com/as/en/:
115
Figura 11.6. Secţiune transversală a câmpului magnetic cu evidenţierea
modulării în frecvenţă şi codificării binare
Când un HDD este supus unei formatări de nivel scăzut (în fabrică) suprafaţa
este împărţită în piste şi sectoare (sectors and tracks). Pistele sunt cercuri
concentrice pe fiecare parte a platanelor, în jurul axului central. Pistele, egal
distanţate de axul platanului de pe fiecare parte a platanului şi de pe toate platanele,
sunt grupate în cilindri care sunt subdivizate la rândul lor în sectoare a câte 512 biţi
fiecare. Formatarea low level înseamnă stabilirea numărului de sectoare şi de piste
pe care le are un HDD. Formatarea de nivel înalt scrie apoi fișierele de sistem în
anumite blocuri logice selectate, păstând anumite blocuri disponibile pentru
sistemul de operare gazdă şi aplicațiile sale. Sistemul de fișiere al sistemului de
operare foloseste o parte din spațiul de pe disc pentru a organiza fișierele de pe
disc, înregistra numele lor și secvența de zone de disc care reprezintă fișierul.
Un hard disc funcţionează aproape la fel ca o casetă magnetică obisnuită, dar
datele pe HDD se pot scrie şi rescrie foarte repede şi pot fi menţinute mai mult.
Platanele sunt rotite cu viteze foarte mari. Informaţia se scrie pe platan în timpul
rotirii acestuia de către capetele de citire/scriere. Aşa cum am specificat, pentru
fiecare suprafată a platanului există câte un cap de citire/scriere montat la un braţ
comun. Acest braţ mişcă capetele de citire/scriere peste suprafeţele platanelor, pe
un arc de cerc (aproximativ radial), pentru a permite capetelor să acceseze aproape
întreaga suprafată a platanelor în timp ce se rotesc.
Braţul este mutat folosind mecanismul de acţionare electromagnetic, cu bobină
mobilă (voice coil). Înainte de 1980 motorul care acţiona braţul era de tipul pas cu
pas ceea ce nu permitea viteze de rotaţie prea mari.
Pentru a accesa o pistă oarecare pe unul din platane, braţul care susţine capetele
de citire/scriere va muta capetele spre acea pistă. O metodă de a optimiza timpul de
acces la date este ca un grup de date care sunt accesate secvenţial să fie scrise pe o
singura pistă. Dacă datele nu încap pe aceeasi pistă, atunci este optim să fie scrise
pe pista cu acelaşi număr pe un platan diferit. Pentru a minimiza timpul de mutare
al capului, trebuie urmărit ca datele să nu fie împrăştiate pe mai multe piste.
Pentru a descrie modul optimizat de stocare a datelor pe multiplele platane
suprapuse se foloseşte termenul de cilindru. Un cilindru se referă la toate pistele
care au acelaşi numar, dar localizate pe diferite platane.
117
optimă, se pot apropia şi distruge platanele, sau se pot depărta prea mult şi nu mai
pot citi datele inscripţionate pe platane.
Un alt factor care poate modifica distanţa la care plutesc sliderele peste platane
este temperatura din incintă. Termocuplul din componenţa Heads Gimbals
Assembly îşi modifică curbura lamelelor în funcţie de temperatura din incintă
modificând astfel distanţa la care plutesc sliderele. O astfel de problemă poate
conduce ca datele citirea datelor să fie alterată temporar, până când temperatura
capului se se stabilizează (așa numita thermal asperity).
Dacă aerul din incinta ar fi contaminat, din cauze interne sau externe, aceşti
contaminanţi ar afecta plutirea capului de citire. Din acest motiv aerul din interiorul
incintei nu este inlocuit cu aer din exterior, ci este recirculat după filtrare, cu filtre
speciale, aşa cum am specificat în capitolul 2 al lucrării.
Un alt mod de defectare este cel numit de specialisti Stiction, adica capul nu
mai „decolează” asa de rapid cum ar fi necesar, defect care de datoreaza in special
lubrifierii necorespunzătoare a suprafeței platanelor dar si uzurii acestor suprafete.
Defecţiunile mecanice pot duce la o pierdere parţială sau chiar totală a datelor
de pe hardul respectiv. Problemele de natură mecanică se pot datora erorilor la
nivelul de citire/scriere precum şi defecţiuni ale motorului HDD-ului.
Zona firmware defecta într-un hard disc
Dacă firmware-ul hard discului este corupt sau nu mai poate fi citit atunci
calculatorul nu va mai citi informaţia corect şi se pot pierde date. Datele de pe
HDD cu astfel de probleme se pot recupera după reparare şi reprogramare.
11.4.Teme de studiu:
1. Identificaţi problemele de fiabilitate la HDD moderne
2. Identificaţi îmbunătăţirile apărute în realizarea HDD moderne pentru
rezolvarea problemelor de fiabilitate
3. Prezentaţi metode de recuperare a datelor de pe un HHD defect
Capitolul 12. FIABILITATEA MEMORIILOR SEMICONDUCTOARE
12.1. Introducere
O memorie defectă poate crea multe probleme unui sistem de calcul, indiferent
dacă echipează un server sau un PC. În funcţie de tipul şi rolul ei, defectarea unei
memorii poate fi catastofică (de exemplu, dacă ea este memoria ROM în care este
stocat BIOS-ul), poate duce la pierderi de date sau poate corupe fişierele
sistemului. Există o preocupare foarte mare pentru îmbunătăţirea fiabilităţii
memoriilor, atât la producătorii de memorii cât şi la realizatorii de sisteme de
calcul şi utilizatorii acestor sisteme
La ora actuală memoriile sunt realizate din materiale semiconductoare sau
supraconductoare, bule magnetice, discuri optice. Pentru viitorul apropiat se
preconizează realizarea lor din materiale organice. Memoriile pe care le studiem în
acestă lucrare sunt circuite integrate VLSI realizate din siliciu monocristalin, în
care informaţia este memorată sub formă binară.
Fiabilitatea memoriilor semiconductoare depinde de nivelul de integrare,
tehnologia de fabricaţie şi maturitatea acesteia precum şi de rigurozitatea şi
complexitatea încercărilor de selecţie pentru eliminarea defectelor de mortalitate
infantilă. În funcţie de tipul memoriei, fiabilitatea poate să varieze după :
- tehnologie (bipolară, MOS sau combinată);
- forma semnalului;
- tipul de celulă (dinamică sau statică);
- persistenţa conţinutului (volatil, nevolatil);
- tipul memoriei (numai citire, scriere/citire, reprogramabilă);
- modul de programare;
- modul de ştergere.
119
memorie sau în blocul de ieşire are acelaşi efect asupra rezultatului operaţiilor cu
memoria.
Adresarea unei memorii se face, de regulă, cu ajutorul unui decodificator iar
ieşirea prin intermediul unui multiplexor. Pentru optimizarea fluxului de date,
memoriile se conectează la o magistrală de date.
În figura 12.1 este reprezentată o memorie semiconductoare ROM la care
intrările sunt prin intermediul unui decodificator, notat în figură DCD iar ieşirile
sunt conectate la o magistrală de date (DB) prin intermediul unui multiplexor, notat
în figură MUX.
Atât decodificatorul, cât şi celulele
din matricea de memorie şi
multiplexorul sunt realizate în mod
uzual din Si monocristalin
(semiconductor), din tranzistoare
bipolare sau cu efect de câmp
(MOS), interconectate într-o
manieră specifică sub forma
integrată.
Diferenţele funcţionale constau în
maniera de interconectare şi tipul de
tranzistoare folosite.
În acest seminar ne vom referi la
Figura 12.1. Sistem de memorie cu n intrări prin DCD defecte care se manifestă în matricea
şi m ieşiri la o magistrală de date prin MUX de memorie şi metodede reducere a
manifestării acestor defecte, metode.
de îmbunătăţire a fiabilităţii memoriilor semiconductoare
După cum bine se cunoaşte, memoriile semiconductoare pot fi considerate într-
o primă clasificare, memorii ROM (Read Only Memory) – memorii ce nu pot fi
rescrise sau şterse şi memorii RAM (Random Access Memory) – memorii care pot
fi citite sau scrise în mod aleator, la care se pot accesa celule singulare fără
implicarea altor celule. Aceste două mari categorii de memorii, la rândul lor
prezintă mumeroase tipuri constructive, cu destinaţii specifice. De exemplu
memoriille ROM pot fi memorii PROM – memorii programabile cu acces numai
pentru citire (Programable Read Only Memory), EPROM – memorii programabile
cu acces aleator, cu ştergere (Erasable PROM), EEROM – memorii ROM cu
ştergere electrică (Electrically Erasable ROM). Memoriile RAM pot fi statice
(SRAM -Static Random Acces Memory) sau dinamice (DRAM) (Dinamic Random
Acces Memory), memorii CAM – memorii adresabile prin conţinut (Content
Addressable Memory), memorii asociative (Associative Memory) etc.
Înscrierea informaţiei în memoria ROM se face în momentul realizării
structurii, atât pentru memorii realizate cu tranzistoare bipolare cât şi în cele
realizate cu tranzistoare MOS. Mecanismul prin care se stochează informaţia diferă
de la o tehnologie la alta, în majoritatea cazurilor prezenţa sau absenţa unui
tranzistor sau a unei legături face diferenţa între un 0 sau un 1.
În figura 12.2 este prezentată o schemă mult simplificată a unei matrici de
memorie realizată cu tranzistoare bipolare.
Fiecare linie verticală din figură corespunde unui bit de ieşire din matricea de
memorie şi se numeşte linie de bit (notată în figură cu BL), iar fiecare linie
orizontală se numeşte linie de cuvânt şi este notată cu WL. Fiecare intersecţie
dintre o linie de cuvânt şi una de bit corespunde unui bit memorat. Dacă la
intersecţie se află un dispozitiv conectat (diodă, tranzistor bipolar sau MOS) în
memorie se stochează un 1. Dacă dispozitivul lipseşte sau conexiunea nu este
realizată, în memorie se stochează un 0. Aceasta este aşa numita logică negativă,
dar uneori se adoptă soluţia inversă pentru memorarea lui 0 şi 1 logic, aşa numita
logică pozitivă.
După cum se poate observa în figură, tranzistoarele bipolare se conectează cu
colectorii la ieşire sau nu se conectează. În cazul prezentat, pentru memorarea
lui 0 logic colectorii sunt conectaţi, iar pentru memorarea lui 1 logic legătura
colectorilor la linia de bit nu este realizată.
Pentru înţelegerea modului de funcţionare şi a aspectelor de fiabilitate specifice
memoriilor semiconductoare vom prezenta pe scurt două celule elementare de
memorie realizate în tehnologie bipolară şi MOS. Celula elementară de memorie
PROM prezentată în figura 12.3.a) este realizată în tehnologie bipolară şi are un fir
fuzibil între emitor şi coloana de bit care permite programarea acestei celule.
Programatorul PROM provoacă arderea unor anumite punţi de fuzibil conform
programului, întrerupând astfel legătura la coloana matricii de memorie şi schimbă
121
astfel bitul de stare. Arderea se realizează prin trecerea unui tren de impulsuri de
curent cu valori de 0,5 1A sau de tensiune mare (10 30V) prin conexiunile
respective. Este evident că o asemenea matrice nu poate fi programată decât o
singură dată.
Celula dinamică RAM prezentată în figura 12.3.b) este cea mai simplă celulă de
memorie DRAM realizată folosind un tranzistor MOS (M) şi un condensator de
sarcină (numit şi condensator de memorare) CS. Pentru stocarea unui 1, la linia de
bit se conectează o tensiune High de la care condensatorul se încarcă prin
tranzistorul deschis. Pentru stocarea unui 0 condensatorul se descarcă datorită
tensiunii Low de pe linia de bit.
Pentru a citi o celulă din DRAM, linia de bit (BL) se preîncarcă întâi la o
valoare de tensiune situată la jumătatea intervalului dintre High şi Low, iar apoi
linia de cuvânt (WL) trece în High. În funcţie de tensiunea de pe condensator –
High sau Low, se aduce linia de bit preîncărcată la o tensiune puţin mai mare sau
puţin mai mică. Un amplificator de detecţie sesizează această modificare şi reface
un 1 sau un 0, după caz. Prin citirea unei celule DRAM se distruge sarcina electrică
iniţială stocată în condensator, deci datele recuperate trebuie rescrise în celulă după
fiecare citire.
Sistemele de memorii DRAM utilizează cicluri de împrospătare pentru
actualizarea periodică a tuturor celulelor de memorie, respectiv citirea secvenţială a
conţinutului uşor alterat al fiecărei celule prin preluarea lui într-un circuit latch de
tip D, urmată de rescrierea unei valori clar delimitate – High sau Low, preluată din
circuitul latch.
În figura 12.4 este prezentată o matrice bidimensională DRAM realizată cu
celule cu tranzistoare MOS, în care sunt detaliate structurile a două celule de
memorie şi este evidenţiat circuitul de amplificare care efectuează operaţiile de
reîmprospătarea conţinutului memoriei după citire, circuit numit amplificator de
reîmprospătare (Refresch Amplifier – RA). În celula cu M4 , M5 şi M6 nu s-a mai
figurat condensatorul C S , el este cuprins în tranzistor ca dispozitiv parazit.
Figura 12.4. Matrice de memorie DRAM realizată în tehnologie MOS.
Pentru a citi informaţia din celulă se activează linia de bit Y şi linia de citire X ,
astfel că tranzistorul M3 din circuitul inversor (format din tranzistoarele M2 şi M3)
este pus în conducţie. M2 se va deschide dacă în CS este stocată o sarcină, deci dacă
poarta lui M2 este activată. Astfel prin linia de bit Y va apare semnal 0 (se descarcă
la 0) numai dacă în CS era stocat bitul 1. În caz contrar linia Y va rămâne la
potenţial înalt. Se poate observa că linia de citire Y furnizează complementul logic
al informaţiei din celulă. Sesizarea unui curent prin linia de bit Y permite
recunoaşterea stării memorate în CS .
Deşi citirea este nedistructivă, datorită scurgerii de sarcină din CS (prin
joncţiunea asociată din M1) este posibil ca sarcina stocată în CS să se micşoreze şi
informaţia să fie alterată sau chiar distrusă. De aceea estenecesar ca informaţia
conţinută în CS să fie regenerată periodic. Aceasta se face prin citirea periodică a
conţinutului celulei şi transferul acesteia – prin intermediul liniei de citire Y – la
amplificatorul de reâmprospătare la care se aplică după ce a fost inversată, deci
complementată. Din amplificator, informaţia este aplicată din nou la linia Y de
scriere prin activarea simultană şi a liniei X.
În matricea reprezentată în figura 4 se pot observa două decodificatoare, unul
pentru adresele X iar celălat pentru Y (intrare şi ieşire de date şi adrese).
123
În memoriile semiconductoare pot apare erori care se manifestă la fiecare
activare logică a memoriei, în orice regim de funcționare, numite erori permanente
sau erori care se activează numai într-un anumit regim de funcţionare, favorizant,
numite erori tranziente.
Erorile permanente depind numai de starea actuală a memoriei și operația
efectuată, caracterizată la rândul ei de valoarea adresei celulei vizate, tipul operației
și datele furnizate. Defectele memoriei care generează erori permanente sunt
defecte fizice ale unei celule, linii sau a unui bit individual.
Erorile tranziente sunt erori are nu se repetă şi nu cauzează o deteriorare
permanentă. Constau în trecerea defectoasă a unui bit din starea 0 în starea 1 sau
invers. Pot fi determinate de zgomotul sistemului, de variaţii ale tensiunii de
alimentare etc. Aceste erori sunt mai numeroase faţă de cele permanente (chiar cu
două, trei ordine de mărime), dar nu sunt catastrofale.
Defectarea memoriilor semiconductoare poate avea mai multe cauze datorate
proiectelor inadecvate, tehnologiilor şi erorilor de fabricare dar şi greşelilor la
montare sau utilizării necorespunzătoare. Creşterea capacităţii memoriilor şi
nivelului de integrare a condus la reducerea dimensiunii celulelor elementare,
îngustarea regiunilor tranzistorului şi mai ales a bazei tranzistoarelor bipolare,
reducerea dimensiunii canalului dintre sursă şi drenă, reducerea grosimii traseelor
metalice şi a distanţei dintre ele etc.
Mecanismele de defectare în memoriile semiconductoare sunt cele specifice
tranzistoarelor din care sunt realizate dar şi mecanisme noi datorate interacţiunii
dintre ele, traseelor metatalie de conectare, sistemelor de interconectare,
încapsulării etc.
Pentru memorii realizate în tehnologie bipolară, mecanismele de defectare
specifice sunt creşterea generării-recombinării pe nivele adânci, electromigrarea Al
în Si şi a Si în Al, scurtcircuitarea colector-emitor prin pătrunderea bazei, aparţiţia
de compuşi metalici la sudura firelor etc.
Creşterea generării-recombinării pe nivele adânci este principalul mecanism de
defectare care determină modificarea valorilor curenţilor în tranzistoarele bipolare,
făcând să apară un curent de generare-recombinare fotoindus care se adaugă
curentului colector-bază. Este un proces activat termic care creşte la polarizarea în
invers a joncţiunii. Este semnificativ în cazul joncţiunilor puternic dopate şi pentru
circuite cu nivel mare de integrare.
Electromigrarea Al în Si duce la degradarea traseelor metalice datorită
transportului de ioni, ceeace determină formarea în firul metalic (pelicular) a unor
goluri şi unflături care pot determina chiar întreruperea traseului metalic sau
formarea unor creşteri dendritice ce pot sparge stratul de dielectric şi realiza
scurtcircuit între trasee metalice alăturate.
Electromigrarea Si în Al duce la o slăbire a peliculei de Al, deoarece Si se
precipită la graniţa cu Al şi formează aglomerări de compuşi Al-Si (eutetic),
compuşi conductivi care degradează caracteristicile electrice şi mecanice ale meta-
lizării. Aceşi compuşi pot determina creşterea curenţilor de scurgere între două
benzi de metalizare alăturate.
Scurtcircuitarea colector-emitor prin pătrunderea bazei presupune formarea
unor canale de curgere între cele două regiuni de sarcină spaţială de la joncţiunile
E–B şi B–C, cu atât mai importante cu cât baza este foarte îngustă iar separarea
fizică dintre cele două joncţiuni este critică.
În mod uzual sistemul de conexiune este realizat din benzi de Al pentru
exterior şi din fire de Au pentru interior. Contactul Au-Al este realizat prin termo-
compresia firelor de Al pe padurile de Au. La contactul Au-Al au loc difuzii reci-
proce (efect Kirkendall), cu formarea de compuşi intermetalici fragili şi goluri sub
bila de sudură. Aceşti compuşi pot determina deteriorarea contactului realizat,
formarea de microcrăpături, care pot duce chiar la desprinderea bilei de sudură
dintre Al şi Au.
Pentru memoriile PROM realizate din tranzistoare bipolare cu fuzibil,
mecanismele de defectare critice sunt datorate arderii insuficiente a siguranţelor în
timpul topirii care pot conduc la formarea ocazională a unor punţi de topire
sau posibilităţii ca în cursul citirii anumite siguranţe să se ardă şi să schimbe
programarea iniţială.
Mecanismele de defectare critice ale memoriilor realizate în tehnologie MOS
sunt defecte în oxid, datorită faptului că poarta de oxid nu este suficient
protejată, impurităţi în şi la suprafaţa oxidului sau impurităţi metalice, precum
şi defecte în monocristalul de Si de bază, respectiv dislocaţii, defecte de
împachetare sau fisuri, care produc perechi de purtători de sarcină, ce pot conduce
la apariţia unui curent rezidual cu efect catastrofal. La acestea se pot adăuga şi
mecanisme similare cu cele de la tehnologia bipolară, de exemplu electromigrarea
şi formarea de compuşi intermetalici etc.
În cazul memoriilor dinamice predomină defectele de oxid din cauza grosimii
mari a stratului de oxid şi a faptului că poarta de oxid nu este protejată. Straturi mai
subţiri de oxid nu pot fi utilizate pentru că ar putea conduce la pierderi de sarcină
prin curenţii reziduali.
Străpungerea oxidului de poartă se poate produce în anumite puncte, acolo
unde stratul de oxid are o grosime mai mică sau unde au apărut impurificări
necontrolate (în timpul sau după depunerea oxidului de poartă). Străpungerea
oxidului de poartă se poate realiza prin tunelare. Datorită asperităţii stratului de
oxid şi precipitatelor de oxigen localizate la suprafaţa oxidului se pot forma
microcanale cu densitate crescută a trapelor de recombinare, ce favorizează
"curgerea" unor curenţi de conducţie asistaţi de trape, numiţi curenţi Fowler-
Nordheim. Acest mecanism de defectare este cel mai important pentru memoriile
MOS.
Pot apare străpungeri ale oxidului de poartă datorate descărcărilor
electrostatice (ESD), chiar în funcţionare normală sau la manipularea memoriilor.
Pentru memoriile reprogramabile la care ştergerea se realizează cu radiaţii
ultraviolete, pot apare ştergeri ale memoriei chiar sub acţiunea radiaţiei solare,
motiv pentru care nu este recomandată expunerea la nici un fel de radiaţii sau
câmpuri electostatice a memoriilor. Această defectare duce la ştergeri ale memoriei
şi de asemenea este catastrofală.
Un mecanism de defectare important este cel numit purtători fierbinţi (hot
carriers). Purtătorii fierbinţi sunt generaţi la creşterea câmplui electric, când
purtătorii de sarcină au primit o energie ridicată şi pot determina creterea curentului
de drenă şi de substrat, astfel încât pot apare străpungeri strat-substrat, generarea
125
de trape de interfaţă şi în oxid care pot provoca deriva tensiunii de prag şi creşterea
probabilităţii de pătrundere.
Scurtcircuitele poartă-substrat duc la defectarea totală a celulelor individuale
ale unei întregi linii sau ale unei coloane şi pot produce defectarea întregii memorii.
Capacitatea porţilor este de ordinul câteorva zecimii de pF şi se pot deteriora chiar
la energi mici.
Defectările în oxid se produc după câteva microsecunde, astfel încât aceste
defecte pot fi eliminate prin aplicarea unui câmp electric de intensitate mare timp
de câteva secunde, în cadrul încercărilor de selecţie.
Un mecanism de defectare specific în memoriile care folosesc tehnologie
combinată sau CMOS se datorează interacţiunilor secundare între regiuni dopate
diferit, interacţiuni care pot fi modelate sub forma unor dispozitive parazite. Cel
mai frecvent dispozitiv parazit este cel numit tiristorul parazit de volum p-n-p-n
format din două tranzistoare bipolare parazite conectate într-o buclă cu reacţie
pozitivă şi anume:
- un tranzistor p-n-p lateral format între regiunea de drenă p+ a unui tranzistor p
MOS, substratul n şi vana p şi
- un tranzistor n-p-n vertical format între regiunea de sursă n+ a unui tranzistor n
MOS, vana p şi substratul n.
Această structură este bistabilă. La comutarea tiristorului din starea blocat
(corespunzătore funcţionării corecte a dispozitivului), în starea deschis, se
formează o cale de curent de mică rezistenţă între alimentare şi masă. Se stabileşte
un curent mare pe calea parazită care provoacă perturbarea funcţionării memoriei,
chiar degradarea ei permanentă. Întreruperea curentului de tiristor se poate realiza
numai prin întreruperea alimentării. Fenomenul în literatura de specialitate, este
denumit “latch-up” şi, este responsabil pentru numeroase defectări ale memoriilot
realizate în tehnologie CMOS.
La nivelul memoriilor semiconductoare manifestarea acestor mecanisme de
defectare, în anumite condiţii de exploatare, poate duce pierderea datelor din una
sau mai multe celule. Condiţiile care pot determina pierderea datelor memorate pot
fi:
- pomparea încărcării: de câte ori o comandă face să crească potenţialul de
comandă, o mică parte din încărcarea celulei poate fi pompată în celulele vecine,
astfel încât, după o anumită perioadă de timp, între două cicluri de împrospătare,
poate apare modificarea informaţiilor memorate;
- atât pentru memoriile statice cât şi pentru cele dinamice se poate întâmpla ca
decodificatorul de adresă să fie prea lent, comunicarea cu memoria să fie
perturbată;
- în cazul memoriilor dinamice, timpul de pauză al sistemului de citire a unor
linii poate să fie prea lung şi să genereze erori de citire;
- unele defecte ale monocristalului din care este realizat cipul pot bloca funcţia
de ansamblu a unei celule sau pot forma legături între două celule vecine iar
înregistrarea informaţiei să se facă în celula învecinată;
- limitele de toleranţă ale parametrilor dinamici ai memoriilor semiconductoare
sunt uneori prea mici, iar sub influenţa temperaturii se pot reduce şi mai mult;
- curenţii de scurgere prea mari pot conduce la pierderea rapidă a datelor
memorate.
Analiza defectelor memoriilor EPROM 2716, la firma INTEL, a pus în evidenţă
următoarea distribuţie a defectărilor 52:
- pierderea informaţiilor pe unul sau mai mulţi biţi: 6,15%;
- modificarea timpului de acces (prin contaminare, polarizare, sarcină
superficială): 18,9%;
- curent rezidual în oxid : 12%;
- defecte ale metalizării (circuite interne deschise): 5,5%;
- defecte de fabricaţie: 2,1%.
În cazul memoriilor PROM bipolare, principalele mecanisme de defectare sunt:
- formare ocazională a unor punţi de topire;
- modificarea aparentă a unui bit programat;
- scurtcircuite ale comenzilor cuvânt (biţi de scriere şi citire);
- probleme de stabilitate;
- curenţi de scurgere în celule;
- deficienţe în controlul şi menţinerea stabilităţii procesului.
Fabricarea memoriilor în tehnologie bipolară presupune mai multe etape de
fotogravură şi difuzie, ceea ce face ca defectele datorate procesului de fabricaţie să
fie mai frecvente. Memoriile bipolare pot fi însă de10 ori mai rapide decât cele
MOS, deşi densitatea circuitelor MOS este de 5 ori mai mare faţă de a celor
bipolare.
12.4.Teme de studiu:
1. Identificaţi problemele de fiabilitate la memoriilor semiconductoare.
Exemplificaţi tipuri de erori datorate defectării memoriei calculatorului
2. Identificaţi îmbunătăţirile apărute în realizarea memoriilor semiconductoare
pentru rezolvarea problemelor de fiabilitate
3. Prezentaţi alte tipuri de memorii şi avantajele lor faţă de cele
semiconductoare
4. Prezentaţi moduri de recuperare a datelor din memoria calculatorului
127
BIBLIOGRAFIE
128
20. J. D. MUSA AND K. OKUMOTO, Software reliability models: concepts,
classification, comparisons, and practice, in Electronic Systems Effectiveness and Life
Cycle Costing, Heidelberg, 1983.
21. J. Von Neumann, “Probabilistic Logics,” Auromafa Studies, Princeton University
Press, 1956.
22. J.D PALMER Electronic-Module Environmental-Stress-Screening Data-Evaluation
Technique, Annual Reliability and Maintainability Symposium 1999 Proceedings, 50;
23. B. PARHAMI Defect, Fault, Error ..., or Failure? IEEE Transaction on Reliability,
Vol. 46, No. 4, 450, 1997
24. A. PASQUINI s.a Reliability Analysis of Systems Based on Software and Human
Resources, IEEE Transaction on Reliability, Vol. 50, No. 4, 337, 2001
25. M. PERMAN s.a. Semi-Markov Models with an Application to Power-Plant Reliability
Analysis, IEEE Transaction on Reliability, IEEE Transaction on Reliability, Vol. 46,
No. 4, 526, 1997
26. D. C. SECUI – Fiabilitatea staţiilor electrice de distribuţie Editura Universităţii din
Oradea, 2003
27. C. SMIDTS s.a. Software Reliability Modeling: An Approach to Early Reliability
Prediction. IEEE Transaction on Reliability, Vol. 47, No. 2, 268, 1998
28. N. D. STOJADINOVIC, S. D. RISTIC, “Failure Physics of Integrated Circuits and
Relationship to Reliability, Phys. Stat. Sol. (a) 75, 11, (1983)
29. V. SUNE, J.A.CARRASCO A Failure Distance Based to Bound the Reliability of
Non-Repairable Fault Tolerant Systems without the Knowledge of Minimal Cuts IEEE
Transaction on Reliability, Vol. 50, No. 1, 60, 2001
30. V. K. ŞTEFAN – Evaluarea fiabilităţii sistemelor de calcul, Editura Universităţii din
Oradea, 2003
31. X. TENG, H. PHAM A Software Reliability Growth Model or N-Version Programing
Systems, IEEE Transaction on Reliability, Vol. 51, No.32, 311, 2002
32. VANDERKUL W., The Use of Triple-Modular Redundancy to Improve Computer
Reliability, 1962, http://www.ccs.neu.edu/course/csg712/resources/Lyons-Vanderkulk-
62.pd,
33. WALD, Abraham. Contributions to the Theory of Statistical Estimation and Testing
Hypotheses. Ann. Math. Statist. 10 (1939), no. 4, 299--
326.doi:10.1214/aoms/1177732144. http://projecteuclid.org/euclid.aoms/1177732144.
34. IEEE (ANSI) Standard 982.2/1988 Software Reliability Terminology
35. IEEE Std. 381/1977 IEEE Standard Criteria for Type Tests of Class 1E Modules Used
in Nuclear Power Generating Station
36. IEEE 352/75 - Guide for General Principles of Reliability Analysis of Nuclear Power
Generating Station Protection Systems ;
37. MIL HDBK 217C/1979 – Military Standardization Handbook Realiability Prediction
of Electronic Equipment
38. MIL STD 19.500E/1969 – Military Standard General Specification for Semiconductor
Devices
129
39. SR ISO 2854/2000 - Interpretarea statistică a datelor. Tehnici de estimare şi teste
referitoare la medii şi dispersii
40. SR CEI 60863/1998 - Prezentarea rezultatelor previziunii caracteristicilor de
fiabilitate şi disponibilitate
41. SR CEI 61070/1998 - Proceduri de încercare a conformităţii pentru disponibilitate în
regim stabil
42. SR CEI 61164/1998 - Creşterea fiabilităţii. Încercări şi metode de estimare statistică
43. STAS R 12007/4-89 - Metode de calcul al estimatorilor punctuali şi al limitelor de
încredere, rezultate din încercările de determinare a fiabilităţii echipamentelor
44. STAS R 12007/5-86 - Încercarea de fiabilitate a echipamentelor – Planuri de
eşantionare pentru confirmarea proporţiei succesului
45. STAS R 12007/6-89 - Teste de validare a ipotezei unei rate de defectare constante
46. STAS R 12007/7-81 - Încercarea de fiabilitate a echipamentelor – Planuri de
eşiantionare pentru confirmarea ratei de defectare şi a timpului mediu între defectări,
în ipoteza unei rate de defectare constante
47. STAS 12689/88 - Analiza modurilor de defectare şi a efectelor defectărilor
48. STAS 8174/1,2,3/77 - Fiabilitate/Mentenabilitate/Disponibilitate - Terminologie
49. STAS 10307/75 - Fiabilitatea produselor industriale – Indicatori de fiabilitate
50. SR EN 61025/2007 - Analiza fiabilităţii pe baza arborilor de defectare
51. http://www.e-mtbf.com/INTEL Reliability Report, RR febr. 2001
52. http://ep.etc.tuiasi.ro/files/CID/memorii.pdf
53. http://en.wikipedia.org/wiki/Configurable_Fault_Tolerant_Processor
54. http://www.ace.tuiasi.ro/users/103/2011-Huzum%20rezumat%20.pdf
130