1. Verificare statica 3 2. Open - source repository 4 3. Program de verificare 5 3.1. Instalare Cppcheck 6 3.2. Interfata Cppcheck 7 3.3. Clasificare erori 8 4. Erori depistate 10 5. Analiza si metode de rezolvare 11 6. Figuri 18 7. Bibliografie 19
1. Verificare statica Procesul de validare se realizeaza pe intreaga perioada de dezvoltare a unei aplicatii sau al unui produs software. Verificarea si validarea se fac pentru fiecare etapa a procesului software. Verificarea va avea ca scop stabilirea gradului de acoperire a functionalitatilor pentru care un produs software a fost creat. Inspectarea codului consta in analiza statica a reprezentarii sistemului pentru descoperirea eventualelor erori care sunt mai greu de depistat prin testare (verificare dinamica). Analiza statica exploreaza toate caile de executie posibile intr-un program la momentul compilarii. Instrumentele de analiza statica pentru gasirea erorilor de programare la nivel scazut devin tot mai utilizate. Astfel de instrumente identifica erori cum ar fi depasirea buffer-ului, pointeri nuli, utilizarea variabilelor neinitializate etc. Analiza statica poate gasi erori care apar pe caile descoperite prin testare. Totusi, analiza statica poate produce erori false. Testarea, pe de alta parte, are capacitatea de a descoperi nu numai erorile "superficiale" expuse de instrumentele de analiza statica, dar si de a expune erori profunde si de proiectare. Nu ne putem astepta la instrumente de analiza statica pentru a gasi astfel de erori. Instrumentele de analiza statica gasesc anumite clase ale acestor erori, in timp ce testarea trebuie utilizata pentru a gasi celelalte clase de erori.[1] Cu timpul au fost dezvoltate programe care se ocupa de analiza statica insa tot mai multe s-au specializat pe anumite limbaje de programare. Programul ales pentru detectarea erorilor in 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), si activ in prezent este destul de dificila deoarece acestea sunt verificate in prealabil si gradul de gasire a erorilor nedepistate este mic. Cele mai multe variante sunt pentru jocuri insa aceasta analiza are ca baza un proiect open-source care indeplineste caracteristicile mentionate anterior. Pentru inceput 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 varianta este cea care va fi utilizata. Cocos2d-x [3] este o suita de instrumente open-source, cross-platform, de dezvoltare a jocurilor, folosite de milioane de dezvoltatori din intreaga lume. De asemenea, cocos2d-x este un cadru pentru construirea de carti interactive, demo-uri si alte aplicatii grafice. Se bazeaza pe cocos2d-iphone, dar in loc sa utilizeze Obiectiv-C, utilizeaza C ++. Functioneaza pe platforme iOS, Android, OS X, Windows, Linux si platforme Web. Arhitectura cocos2d-x:
[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] Sursa imagine Cocos2d-x: https://camo.githubusercontent.com/62f509218415e5f677180a479fd65cfe54a17f04/687474703a2f2f7777772e636f636f7332642d782e6f72672f6174746163686d656e74732f3830312f636f636f733264785f706f7274726169742e706e67, accesat: 18/05/2019. [4] Sursa 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] Sursa pull request #19603: https://github.com/cocos2d/cocos2d-x/pull/19603, accesat: 12/04/2019. [7] Sursa pull request #19579: https://github.com/cocos2d/cocos2d-x/pull/19579/commits/bc40c143dc09115d30fa9878f0571ac5bb53d991, accesat: 08/04/2019
Plătește în siguranță cu cardul și beneficiezi de garanția 200% din partea Proiecte.ro.
Simplu și rapid în doar 2 pași: completezi datele tale și plătești.