Verificarea programelor

Proiect
8/10 (1 vot)
Domeniu: Calculatoare
Conține 2 fișiere: docx, vsdx
Pagini : 21 în total
Cuvinte : 2196
Mărime: 6.49MB (arhivat)
Publicat de: Larisa D.
Puncte necesare: 8
Profesor îndrumător / Prezentat Profesorului: Diaconescu Denisa
Facultatea de Matematica si Informatica
Universitatea din Bucuresti, Bucuresti

Cuprins

  1. 1. Verificare statică 3
  2. 2. Open - source repository 4
  3. 3. Program de verificare 5
  4. 3.1. Instalare Cppcheck 6
  5. 3.2. Interfața Cppcheck 7
  6. 3.3. Clasificare erori 8
  7. 4. Erori depistate 10
  8. 5. Analiză și metode de rezolvare 11
  9. 6. Figuri 18
  10. 7. Bibliografie 19

Extras din proiect

1. Verificare statică

Procesul de validare se realizează pe întreaga perioadă de dezvoltare a unei aplicații sau al unui produs software.

Verificarea și validarea se fac pentru fiecare etapă a procesului software.

Verificarea va avea ca scop stabilirea gradului de acoperire a funcționalităților pentru care un produs software a fost creat.

Inspectarea codului constă în analiza statică a reprezentării sistemului pentru descoperirea eventualelor erori care sunt mai greu de depistat prin testare (verificare dinamică).

Analiza statică explorează toate căile de execuție posibile într-un program la momentul compilării. Instrumentele de analiză statică pentru găsirea erorilor de programare la nivel scăzut devin tot mai utilizate.

Astfel de instrumente identifică erori cum ar fi depășirea buffer-ului, pointeri nuli, utilizarea variabilelor neinițializate etc. Analiza statică poate găsi erori care apar pe căile descoperite prin testare.

Totuși, analiza statică poate produce erori false.

Testarea, pe de altă parte, are capacitatea de a descoperi nu numai erorile "superficiale" expuse de instrumentele de analiză statică, dar și de a expune erori profunde și de proiectare. Nu ne putem aștepta la instrumente de analiză statică pentru a găsi astfel de erori. Instrumentele de analiză statică găsesc anumite clase ale acestor erori, în timp ce testarea trebuie utilizată pentru a găsi celelalte clase de erori.[1]

Cu timpul au fost dezvoltate programe care se ocupă de analiza statică însă tot mai multe s-au specializat pe anumite limbaje de programare.

Programul ales pentru detectarea erorilor în limbajul de programare C / C++ este Cppcheck cu versiunea 1.87.

2. Open - source repository

Generarea erorilor prin intermediul unui program specializat pentru un proiect relativ mare, destul de bine cotat (peste 1000 de stele), și activ în prezent este destul de dificilă deoarece acestea sunt verificate în prealabil și gradul de găsire a erorilor nedepistate este mic.

Cele mai multe variante sunt pentru jocuri însă această analiză are ca bază un proiect open-source care îndeplinește caracteristicile menționate anterior.

Pentru început au fost testate mai multe variante de proiecte:

- Jocul 2014: https://github.com/plibither8/2048.cpp

- Godot: https://github.com/godotengine/godot

- Cocos2d-x: https://github.com/cocos2d/cocos2d-x

Dintre toate acestea a treia variantă este cea care va fi utilizată.

Cocos2d-x [3] este o suită de instrumente open-source, cross-platform, de dezvoltare a jocurilor, folosite de milioane de dezvoltatori din întreaga lume. De asemenea, cocos2d-x este un cadru pentru construirea de cărți interactive, demo-uri și alte aplicații grafice. Se bazează pe cocos2d-iphone, dar în loc să utilizeze Obiectiv-C, utilizează C ++.

Funcționează pe platforme iOS, Android, OS X, Windows, Linux și platforme Web.

Arhitectura cocos2d-x:

Bibliografie

[1] Nachiappan Nagappan, Thomas Ball, „Static Analysis Tools as Early Indicators of Pre-Release Defect Density”, disponibil online: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.2326&rep=rep1&type=pdf, accesat: 17/05/2019.

[2] Cppcheck, „A tool for static C/C++ code analysis”, disponibil online: http://cppcheck.sourceforge.net/, accesat: 17/05/2019.

[3] Sursă imagine Cocos2d-x: https://camo.githubusercontent.com/62f509218415e5f677180a479fd65cfe54a17f04/687474703a2f2f7777772e636f636f7332642d782e6f72672f6174746163686d656e74732f3830312f636f636f733264785f706f7274726169742e706e67, accesat: 18/05/2019.

[4] Sursă imagine Cppcheck: https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwjssoqquKriAhXQGewKHS2BB4QQjRx6BAgBEAU&url=https%3A%2F%2Fhownot2code.com%2F2016%2F05%2F27%2Fan-overview-of-static-analyzers-for-cc-code%2F&psig=AOvVaw3Y4SFR2dV0fPCrmd2Cam-4&ust=1558453064262767, , accesat: 18/05/2019.

[5] Platforma Cocos2d-x: https://github.com/cocos2d/cocos2d-x, accesat: 01/04/2019.

[6] Sursă pull request #19603: https://github.com/cocos2d/cocos2d-x/pull/19603, accesat: 12/04/2019.

[7] Sursă pull request #19579: https://github.com/cocos2d/cocos2d-x/pull/19579/commits/bc40c143dc09115d30fa9878f0571ac5bb53d991, accesat: 08/04/2019

Preview document

Verificarea programelor - Pagina 1
Verificarea programelor - Pagina 2
Verificarea programelor - Pagina 3
Verificarea programelor - Pagina 4
Verificarea programelor - Pagina 5
Verificarea programelor - Pagina 6
Verificarea programelor - Pagina 7
Verificarea programelor - Pagina 8
Verificarea programelor - Pagina 9
Verificarea programelor - Pagina 10
Verificarea programelor - Pagina 11
Verificarea programelor - Pagina 12
Verificarea programelor - Pagina 13
Verificarea programelor - Pagina 14
Verificarea programelor - Pagina 15
Verificarea programelor - Pagina 16
Verificarea programelor - Pagina 17
Verificarea programelor - Pagina 18
Verificarea programelor - Pagina 19
Verificarea programelor - Pagina 20
Verificarea programelor - Pagina 21

Conținut arhivă zip

  • Figuri Proiect vp.vsdx
  • Verificarea programelor.docx

Alții au mai descărcat și

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Autentificarea prin semnătură digitală

Introducere O semnatura digitala reprezinta o informatie care il identifica pe expeditorul unui document. Semnatura digitala este creata prin...

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Securitatea rețelelor VPN

I. Prezentarea rețelelor VPN O rețea privată virtuală (VPN) este o conexiune criptată de rețea care folosește un tunel sigur între capete, prin...

Te-ar putea interesa și

Proiectare și verificarea unui sașiu spațial folosind programe soft dedicate

Memoriu justificativ Tema lucrării de diplomă este “Proiectarea şi verificarea unui şasiu spatial sudat utilizând pachete software dedicate”. Ea...

Lucrare diplomă mijloace fixe

1.1 Abordarea sistematica a întreprinderii Notiunea de sistem are un caracter relativ, în sensul ca orice sistem poate fi descompus în subsisteme...

Misiunea de Audit Intern Privind Activitatea IT la SC Corsar Grup SRL

INTRODUCERE Tema care a fost aleasă pentru a fi dezbătută în cadrul acestei lucrări cuprind contabilitatea, sistemele de control intern și audit...

Politici și strategii globale de securitate alimentară

1. Conceptul de securitate alimentară 1.1. Problematica securității alimentare 1.2. Factori care influențează securitatea alimentară 1.3....

Implementarea HACCP-ului la Produsele Lactate

CAPITOLUL 1. CARACTERISTICI GENERALE PRIVIND LAPTELE SI PRODUSELE LACTATE 1.1. Igiena produselor lactate Calitatea laptelui materie primă a....

Implementarea sistemului de siguranță a alimentelor conform principiilor HACCP într-o unitate de fabricare a brânzeturilor

1. SISTEME DE MANAGAMENT A CALITATII Sistemul de management a siguranţei recunoscut pe plan internaţional, care şi-a dovedit eficienţa în toate...

Audit - modul de organizare a activității de tehnologia informației din Primăria Municipiului Fălticeni

Primăria Municipiului Fălticeni Compartimentul de Audit Public Intern Nr. 315 /15.09.2010 ORDIN DE SERVICIU În conformitate cu prevederile...

Ingineria reglării automate

1. Tema de proiect 1.1. Proiectarea unui sistem de reglare automată de reglarea turaţiei unui motor de curent continuu utilizând regulatoare...

Ai nevoie de altceva?