Meniu Referate
Romana
Romana1
Romana2
Istorie
Istorie1
Geografie
Geografie1
Diverse
Drept
Economie
Filozofie
Fizica
Informatica
Biologie
Chimie
Italiana
Spaniola
Germana
Franceza
Engleza
Marketing
Matematica
Medicina
Psihologie
Astronomie
Stiinte Politice
Proiecte

ANALIZA ALGORITMILOR, Corectitudinea probramelor, testarea si depanarea

...ecutiei acestor algoritmi, sau cantitatea de memorie necesara, sa nu permita folosirea lor in practica.Evident, daca spatiul de memorie necesar programului este mai mare decat cantitatea de memorie disponibila, programul nu poate fi executat. De asemenea, daca numarul calculelor ce trebuie efectuat este foarte mare, programul poate fi inutil. Iar asta se poate intampla destul de usor in cazul problemelor ce trebuiesc rezolvate in timp real adica solutia trebuie obtinuta inaintea unui timp critic.Iata cateva motive pentru care este necesar sa analizam algoritmii pe care-i concepem pentru rezolvarea unei probleme.Ne intereseaza sa analizam un program din mai multe puncte de vedere 1 Corectitudine 2 Eficienta 3 Posibilitate de imbunatatire 4 Alte calitati pe care le are.4.1 Corectitudinea programelorUn program este corect daca el satisface specificatiile problemei. Nu ne intereseaza cata memorie foloseste acest program, din cate instructiuni este compus, sau cat timp de executie necesita. Cu alte cuvinte, un program este corect daca pentru acele date de intrare care satisfac specificatiile problemei rezultatele obtinute in urma executiei sunt corecte.Pentru orice program P deosebim trei tipuri de variabile, pe care le vom grupa in trei vectori X, Y si Z. Componentele vectorului X desemneaza variabilele de intrare, deci datele presupuse cunoscute in problema rezolvata prin programul P. Componentele vectorului Z sunt variabilele care reprezinta rezultatele cerute de problema. In sfarsit, componentele vectorului Y sunt variabilele de lucru, care noteaza diferitele rezultate intermediare necesare in program.O problema nu are sens pentru orice date de intrare. Vom folosi predicatul XX pentru a preciza datele pentru care problema are sens. RX se numeste predicat de intrare sau preconditie. Pentru acele valori ale lui X pentru care predicatul este adevarat problema are sens, pentru celelalte nu are sens sa executam programul P.Intre rezultatele Z ale problemei si datele initiale X cunoscute in problema exista anumite relatii. Vom reda aceste relatii prin predicatul de iesire RX,Z, numit si postconditie. Acesta este corect pentru acele valori a si b ale vectorilor X si Z pentru care rezultatele problemei sunt b in cazul cand datele initiale sunt a si este fals in caz contrar. Deci, daca executand programul cu datele initiale a obtinem rezultatele b si Ra,b este fals, acest fapt este un indiciu ca rezultatele obtinute in program nu sunt corecte. Apare o alta regula fiecare variabila sa aiba semnificatia ei si sa nu fie folosita in scopuri diferite.4.2 Testarea si depanarea programelorTestarea programelor este activitatea prin care programatorul observa comportarea programului in urma executiei lui cu date de test. Evident, primul lucru urmarit este corectitudinea rezultatelor obtinute in urma executiei programului cu datele de test folosite. Dar se va urmari si daca programul are alte caracteristici ca utilitate, siguranta in functionare, robustete, performanta. Este beneficiarul multumit de rezultatele care se obtin si de forma sub care sunt prezentate Sunt ele obtinute in timp util Datele de test sunt date de intrare alese pentru variabilele de intrare pentru care se cunosc rezultatele, sau avem unele informatii despre rezultate. Executand programul cu aceste date ar trebui sa ajungem la rezultatele cunoscute. Corectitudinea rezultatelor in aceste executii nu demonstreaza corectitudinea programului in general. Testarea insa pune adeseori in evidenta erori facute in diferite faze ale programarii. In privinta aceasta dam un citat din Dijkstra Testarea programelor poate fi un mijloc eficient de a indica prezenta erorilor, dar din pacate, nu si un mijloc de a demonstra absenta lor.Cu toate ca ea nu demonstreaza corectitudinea programului, testarea mareste certitudinea corectitudinii lui si este deocamdata singura metoda practica de certificare a programului. Ar fi de dorit demons...
Download