Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Ingineria informţiei - linia de studiu română
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MID0010	Verificarea şi validarea sistemelor soft	

Semestrul	Ore: C+S+L	Categoria	Statutul	
6	2+2+0	specialitate	obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
FRENTIU Militon	Dr.	Prof.	Limbaje şi Metode de Programare	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
1. Intelegerea notiunilor de algoritm partial si total corect;
2. Formarea deprinderilor de proiectare a algoritmilor in paralel cu demonstrarea corectitudinii lor;
3. Cunoasterea metodelor de testare si verificare a sistemelor soft;
4. Formarea deprinderilor de proiectare a programelor corecte din specificatii;
5. Formarea unui stil modern de programare.

IV. Conţinutul disciplinei
I. Teoria corectitudinii programelor (4 cursuri)
 -  Specificarea programelor.
 - Metoda lui Floyd de demonstrare a corectitudinii.
 - Metoda lui Hoare de demonstrare. 
 - Axiome şi reguli pentru logica Floyd-Hoare: completitudine şi necontradicţie. 
 - Dezvoltarea corecta a programelor din specificaţii
 - Evoluţia istorică a corectitudinii programelor. Contribuţii: Floyd, Hoare, Dijkstra, Gries, Droomey, Morgan
II. Verificarea şi validarea sistemelor  (3 cursuri)
 - conceptele verificare şi validare; asemănări şi deosebiri
 - metode de verificare
 - inspectarea programelor
 - necesitatea documentării programelor
 - execuţie simbolică
III. Testarea programelor. (3 cursuri)
 - conceptul de testare
 - tipuri de testare: a unei proceduri, a unui modul, T.de integrare,  T. de regresie, T. sistemului, T.de acceptare
 - criterii de testare
 - determinarea datelor de test
 - automatizarea testării
IV. Verificarea modelelor (model checking) (2 cursuri)
V. Legătura între diferitele metode de verificare (2 cursuri)
 - corectitudine-inspectare-testare-execuţie simbolică
 - Cleanroom. Program Quality
 - Impactul teoriei corectitudinii programelor asupra programarii. Reguli de programare.

V. Bibliografie
1. BALANESCU T., Corectitudinea programelor, Editura tehnica, Bucuresti 1995.
2. DIJKSTRA, E., A constructive approach to the problem of program correctness, BIT, 8(1968), pg.174-186.
3. DIJKSTRA, E., Guarded commands, nondeterminacy and formal derivation of programs, CACM, 18(1975), 8, pg.453-457.
4. DROMEY G., Program Derivation. The Development of Programs From Specifications, Addison Wesley Publishing Company, 1989.
5. FRENTIU, M., Verificarea corectitudinii programelor, Ed.Univ."Petru-Maior", 2001.
6. GRIES, D., The Science of Programming, Springer-Verlag, Berlin, 1981.
7. HOARE, C.A.R., An axiomatic basis for computer programming, CACM, 12(1969), pg.576-580, 583.
8. MANNA, Z., Mathematical Theory of Computation, McGrawHill, NewYork, 1974.

VI. Tematica activităţilor didactice pe săptămâni
C1 (+S1) Obiectul cursului. Noţiunea de corectitudine a programelor 
C2 (+S2) Metoda lui Floyd de demonstrare a corectitudinii.
C3 (+S3)  Metoda axiomatică a lui Hoare de demonstrare a corectitudinii. 
C4 (+S4) Evoluţia istorică a corectitudinii programelor. Contribuţii: Floyd, Hoare, Dijkstra, Gries, Droomey, Morgan
C5 (+S5) Dezvoltarea corecta a programelor din specificaţii
C6 (+S6) Verificarea şi validarea sistemelor: concepte, metode, asemănări şi deosebiri
C7 (+S7) Inspectarea programelor
C8 (+S8) Documentarea programelor: necesitate, reguli, automatizare
C9 (+S9) Execuţie simbolică
C10 (+S10). Testarea programelor:  conceptul de testare,  tipuri de testare: a unei proceduri, a unui modul, a mîntregului sistem
C11 (+S11) Testarea unui modul (subalgoritm): testarea funcţională şi testarea structurală; Criterii de testare,  determinarea datelor de test;
C12 (+S12)  T.de integrare,  T. de regresie, T. sistemului, T.de acceptare. Automatizarea testării
C13 (+S13) Verificarea modelelor (model checking) 
C14 (+S14). Legătura între diferitele metode de verificare: corectitudine-inspectare-testare-execuţie simbolică.    Cleanroom. Program Quality. Impactul teoriei corectitudinii programelor asupra programarii. Reguli de programare.

VII. Metode didactice folosite
Conversaţia, expunerea, demonstratia, studii de caz	

VIII. Evaluare
In timpul semestrului activitatea la seminar va fi apreciată prin nota S, iar la laborator prin nota L. La sfarsitul semestrului activitatea se incheie printr-un examen scris, în urma căruia se obţine nota E. Nota finala va fi media aritmetica a celor notelor mentionate mai sus: F=(S+L+2E)/4.	

IX. Bibliografie suplimentară
Articole din Internet	

	Decan 							Şef de catedră,

	Data,							Titular curs,
	24.09.2008						Prof. Dr. FRENTIU Militon