Statical and Dynamical Software Analysis
Loading...
Date
2020
Authors
Sosnytskyi, Serhii
Glybovets, Mykola
Pechkurova, Olena
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
The development of software built with quality has become an important trend and a natural choice
in many organisations. Currently, methods of measurement and assessment of software quality, security, trustworthiness cannot guarantee safe and reliable operations of software systems completely and
effectively.
In this article statistical and dynamical software analysis methods, main concepts and techniques families are overviewed.
The article has an overview of why combination of several analysis techniques is necessary for software
quality and examples how static and dynamical analysis may be introduced in a modern agile software
development life cycle.
As a summary of techniques for software analysis, represented on Table 1, due to the computability barrier, no technique can provide fully automatic, robust, and complete analyses. Testing sacrifices robustness.
Assisted proving is not automatic (even if it is often partly automated, the main proof arguments generally
need to be human provided). Model-checking approaches can achieve robustness and completeness only
with respect to finite models, and they generally give up completeness when considering programs (the incompleteness is often introduced in the modeling stage). Static analysis gives up completeness (though it
may be designed to be precise for large classes of interested programs). Last, bug finding is neither robust
nor complete. Another important dimension is scalability. In practice, all approaches have limitations regarding scalability, although these limitations vary depending on the intended applications (e.g., input
programs, target properties, and algorithms used).
Already implemented code could be analysed in a continuous integration environment by a tool like
SonarQube. Properly configured metrics and quality gates provide fast and detailed feedback on incremental changes starting from development machine till highload enterprise production environments.
Software analysis helps to improve quality and development speed in Agile development life cycle with
reasonable cost.
Розроблення програмного забезпечення зі вбудованою якістю стало важливою тенденцією і природним вибором у багатьох організаціях. У наш час методи визначення та оцінки якості, безпеки, надійності програмного забезпечення не можуть гарантувати безпечну й надійну роботу програмних систем повністю і ефективно. У цій статті розглянуто статистичні й динамічні методи аналізу програмного забезпечення, основні поняття і методи сімейства. Досліджено, чому для якості програмного забезпечення необхідне поєднання декількох методів аналізу, і наведено приклади того, як статичний і динамічний аналіз може бути впроваджений у сучасний життєвий цикл розроблення гнучкого програмного забезпечення.
Розроблення програмного забезпечення зі вбудованою якістю стало важливою тенденцією і природним вибором у багатьох організаціях. У наш час методи визначення та оцінки якості, безпеки, надійності програмного забезпечення не можуть гарантувати безпечну й надійну роботу програмних систем повністю і ефективно. У цій статті розглянуто статистичні й динамічні методи аналізу програмного забезпечення, основні поняття і методи сімейства. Досліджено, чому для якості програмного забезпечення необхідне поєднання декількох методів аналізу, і наведено приклади того, як статичний і динамічний аналіз може бути впроваджений у сучасний життєвий цикл розроблення гнучкого програмного забезпечення.
Description
Keywords
Software Static Analysis, Software Dynamical Analysis, Testing, Quality Assurance, SQALE Mode, Continuous Code Analysis, SonarQube, article, статичний аналіз програмного забезпечення, динамічний аналіз програмного забезпечення, тестування, забезпечення якості, режим SQALE, безперервний аналіз коду, SonarQube
Citation
Sosnytskyi S. Statical and Dynamical Software Analysis / S. Sosnytskyi, М. Glybovets, O. Pechkurova // Наукові записки НаУКМА. Комп'ютерні науки. - 2020. - Т. 3. - С. 50-55.