search query: @keyword arviointi / total: 59
reference: 7 / 59
« previous | next »
Author:Penttilä, Elias
Title:Improving C++ Software Quality with Static Code Analysis
C++-ohjelmien laadun parantaminen staattisella koodianalyysillä
Publication type:Master's thesis
Publication year:2014
Pages:85 + 11      Language:   eng
Department/School:Perustieteiden korkeakoulu
Main subject:Ohjelmistotekniikka   (T3001)
Supervisor:Malmi, Lauri
Instructor:Björklund, Kaj
Electronic version URL: http://urn.fi/URN:NBN:fi:aalto-201406252203
OEVS:
Electronic archive copy is available via Aalto Thesis Database.
Instructions

Reading digital theses in the closed network of the Aalto University Harald Herlin Learning Centre

In the closed network of Learning Centre you can read digital and digitized theses not available in the open network.

The Learning Centre contact details and opening hours: https://learningcentre.aalto.fi/en/harald-herlin-learning-centre/

You can read theses on the Learning Centre customer computers, which are available on all floors.

Logging on to the customer computers

  • Aalto University staff members log on to the customer computer using the Aalto username and password.
  • Other customers log on using a shared username and password.

Opening a thesis

  • On the desktop of the customer computers, you will find an icon titled:

    Aalto Thesis Database

  • Click on the icon to search for and open the thesis you are looking for from Aaltodoc database. You can find the thesis file by clicking the link on the OEV or OEVS field.

Reading the thesis

  • You can either print the thesis or read it on the customer computer screen.
  • You cannot save the thesis file on a flash drive or email it.
  • You cannot copy text or images from the file.
  • You cannot edit the file.

Printing the thesis

  • You can print the thesis for your personal study or research use.
  • Aalto University students and staff members may print black-and-white prints on the PrintingPoint devices when using the computer with personal Aalto username and password. Color printing is possible using the printer u90203-psc3, which is located near the customer service. Color printing is subject to a charge to Aalto University students and staff members.
  • Other customers can use the printer u90203-psc3. All printing is subject to a charge to non-University members.
Location:P1 Ark Aalto  1722   | Archive
Keywords:static code analysis
software quality
evaluation
automation
staattinen koodianalyysi
ohjelman laatu
arviointi
automaatio
Abstract (eng):Static code analysis is the analysis of program code without executing it.
Static analysis tools are therefore a useful part of automated software analysis.
Typical uses for these tools are to detect software defects and otherwise suspect code.
Several algorithms and formal methods are available specializing in code analysis.
Token pattern matching is used by simpler tools, while more in-depth tools prefer formal methods such as abstract interpretation and model checking.
The choice of algorithms thus depends on the preferred analysis precision and soundness.

We introduced the practical problems facing static analysis, especially in the context of C++ software.
For static analysis to work in a satisfiable way, the tool must understand the semantics of the code being analyzed.
Many tools, particularly open-source ones, have deficiencies in their capabilities of code understanding due to being unable to correctly parse complex C++.
Furthermore, we examined the difficulty of handling large numbers of warnings issued by these tools in mature software projects.
As a summary, we presented a list of five open-source and six commercial static analysis tools that are able to analyze C++ source code.

To find out the viability of integrating static analysis tools in real-world projects, we performed a two-part evaluation.
The first part was a measurement of the detection accuracy of four open-source and two commercial tools in 30 synthetic test cases.
We discovered that Clang excels in this test, although each tool found different sets of defects, thus reaffirming the idea that multiple tools should be used together.
In the second part of the evaluation, we applied these tools on six consecutive point releases of DynaRoad.
While none of the tools were able to detect any of the crash defects known in these releases, they proved to be valuable in finding other unknown problems in our code base.
Finally, we detailed the integration effort of three static analysis tools into our existing build process.
Abstract (fin):Staattisella koodianalyysilla tarkoitetaan ohjelmakoodin analysointia suorittamatta sitä.
Tämä tekee siitä hyödyllistä ohjelmien automaattista analyysia varten.
Tyypillisiä käyttökohteita ovat ohjelmavirheiden havaitseminen sekä tyylitarkastuksien tekeminen.
Analyysityökalujen toteuttamiseen on useita algoritmeja sekä formaaleja menetelmiä.
Yksinkertaisemmat työkalut turvautuvat merkeistä koostuvien hahmojen etsimiseen lähdekoodista.
Toteutustavan valinta riippuu pitkälti halutusta analyysin tarkkuudesta.

Työssä esiteltiin C++-ohjelmien analyysiin kohdistuvia ongelmia.
Staattisen analyysityökalun on toimiakseen ymmärrettävä analysoitava koodi riittävän hyvin, jotta analyysin tuloksista olisi hyötyä.
Monella analyysityökalulla on vaikeuksia ymmärtää monimutkaista lähdekoodia, mikä koskee erityisesti avoimen lähdekoodin ohjelmia.
Työssä käsiteltiin lisäksi syitä miksi laajojen ohjelmien analysointi on hankalaa suurten varoitusmäärien takia.
Lopuksi listattiin viisi avoimen lähdekoodin analysointiohjelmaa sekä kuusi kaupallista ohjelmaa.

Työn tarkoituksena oli selvittää mahdollisuuksia integroida staattisia analyysiohjelmia olemassa oleviin kehitysprosesseihin suorittamalla ohjelmilla kaksiosainen arviointi.
Ensimmäinen arviointi koostui 30:stä synteettisestä testistä, joissa mitattiin analyysityökalujen tarkkuutta havaita ennalta määriteltyjä ohjelmavirheitä.
Clang-kääntäjä suoriutui parhaiten näistä testeistä.
Kaikki analyysityökalut havaitsivat kuitenkin eri virheitä, mikä vahvistaa käsitystä siitä, että mahdollisimman monen työkalun käyttö on suositeltavaa.
Toisessa arvioinnissa tutkittiin valituilla analyysityökaluilla kuutta eri DynaRoadin julkaisuversiota.
Saaduilla tuloksilla pystyttiin vertailemaan analyysityökalujen pätevyyttä havaita ohjelmasta raportoituja kaatumisvikoja.
Analyysityökalut eivät tunnistaneet yhtään tunnettua vikaa, mutta osoittivat hyödyllisyytensä löytämällä muita tuntemattomia vikoja.
Työn lopuksi käytiin läpi kolmen analyysityökalun integrointi olemassa oleviin kehitysprosesseihin.
ED:2014-08-03
INSSI record number: 49421
+ add basket
« previous | next »
INSSI