Fondată în 1985 şi având sediu central în UK, PRQA este specializată în prevenirea defectelor şi promovarea de practici de programare sigură pentru a asigura buna funcţionare a sistemelor comerciale, a celor axate pe siguranţă şi îndeplinirea sarcinii. PRQA îşi menţine reprezentarea de vot în grupurile de lucru ISO pentru C şi C++, este un membru fondator al Grupului de Lucru MISRA C (producători ai standardelor de programare C şi C++) şi iniţiator al standardului de programare de înaltă integritate C++ (HICPP).
Frans Nomden, manager teritorial pentru Europa de Est al PRQA – discută cu Gabriel Neagu despre importanţa analizei statice şi de ce să se aleagă soluţii automate de inspectare în loc de metode manuale.
Care este opinia dumneavoastră cu privire la inspecția manuală a programelor?
PRQA pledează pentru utilizarea de procese de inspectare automată a programelor, datorită în primul rând creşterii exponenţiale a cantităţii de programe dezvoltate, precum şi a complexităţii acestora.
De exemplu, o simplă maşină de spălat poate conţine acum peste un milion de linii de cod integrate şi ar fi o sarcină uriaşă să se detecteze manual problemele într-un astfel de labirint de program. Un alt factor este acela că de fiecare dată un program nou, proaspăt, este adăugat unui program de bază existent, iar întregul cod trebuie să fie reinspectat, pierzându-se timp valoros şi efort, atunci când această sarcină poate fi făcută automat. Noi recunoaştem totuşi că, pentru ca procesul automat să funcţioneze, intervenţia umană este încă necesară pentru a controla deviaţiile şi excepţiile de la neconformităţi clare.
Care este diferenţa dintre detectarea unei probleme neprevăzute şi verificarea conformităţii la un standard de programare?
În principiu, detectarea problemelor utilizează simularea funcţionării bazată pe curgerea datelor pentru a identifica eroarea, în vreme ce conformitatea la standardul de programare se bazează pe utilizarea celor mai bune practici şi prevenirea introducerii de defecte încă de la început. Pe piaţă există disponibile nişte unelte statice ce caută detectarea defectelor, dar nu ajută la îmbunătăţirea procesului. În acest timp noi permitem clienţilor noştri îmbunătăţirea procesului de programare şi dezvoltarea de programe de înaltă calitate, prin găsirea şi remedierea problemelor precoce și de multe ori în timpul fazei de dezvoltare, înainte de testare. Noi credem în principiul “prevenirea este mai eficientă decât vindecarea”. Prin urmare, punem în aplicare un standard de programare și ajutăm clienții noștri în dezvoltare de programe robuste, de înaltă integritate.
Cât de importante sunt unelte de analiză statică?
Uneltele de analiză statică sunt mijloace foarte importante de găsire a erorilor şi identificare a problemelor de programare extrem de devreme în ciclul de dezvoltare, permiţând ca în stadiile mai avansate ale procesului de dezvoltare să ajungă programe mai bune. La PRQA recomandăm utilizarea de unelte de analiză statică împreună cu standarde de programare – această soluţie permite dezvoltatorilor să găsească defectele, să se conformeze celor mai bune practici şi să prevină introducerea de erori.
Cum reuşesc uneltele de analiză statică să ajute un dezvoltator să îmbunătăţească substanţial calitatea programului?
Analiza statică este un element crucial al procesului de dezvoltare software de înaltă
calitate, permiţând dezvoltatorilor să identifice defecte în program încă de foarte devreme în procesul de lucru. Prin asigurarea conformităţii la un standard de programare, analiza statică nu numai că identifică defectele ce pot cauza căderea unor programe, dar furnizează ghiduri de bună practică, permiţând dezvoltatorilor să producă programe de înaltă calitate şi să prevină introducerea de defecte.
Analiza statică ajută la automatizarea comentării programului, îndepărtând pericolul erorii umane în proces, furnizând rezultate obiective, fără emoţiile asociate adesea prin verificarea de către anumiţi indivizi a unor programe realizate de alţi dezvoltatori.
Uneltele QA•C şi QA•C++ oferă dezvoltatorilor un feedback imediat despre programul scris, permiţându-le rezolvarea problemelor încă înainte de implementarea de schimbări în registrul de programe al organizaţiei. Uneltele pot fi de asemenea utilizate pentru a furniza o măsură a calităţii generale a proiectului când este utilizat în conjuncţie cu un sistem de management al calităţii software.
Ce fel de standarde de programare aplică produsele dvs.?
Istoric, câteva industrii au creat standarde de programare specifice, adoptate de producătorii de pe lanţurile de furnizare. Unele dintre standardele cheie pentru care avem suport sunt: MISRA C | MISRA C++ | JSF AV C++ | High Integrity C++ | Standarde de programare particulare In-House / Interne.
Cine utilizează uneltele dvs.?
Automotive Networking Business Unit a Mentor Graphics, localizată în Ungaria, la Budapesta, utilizează QA∙C de la PRQA în dezvoltarea Volcano, o unealtă de proiectare de reţea de tip in-vehicle. Thales Rail Signalling Part Security Solutions şi Continental cu sediul în România, sunt utilizatori ai uneltelor noastre. Alţi clienţi internaţionali din industria auto sunt:
BMW, Toyota, Delphi şi Autoliv. Apărarea şi industria aerospaţială includ SELEX Galileo, Thales, Northrop Grumman şi BAE Systems. Dispozitivele medicale cunosc o dezvoltare importantă, iar printre clienţii noştri putem evidenţia: Abiomed, Novo Nordisk şi Gambro.