ИССЛЕДОВАНИЕ И РАЗРАБОТКА МЕТОДОВ ДИНАМИЧЕСКОГО АНАЛИЗА КОДА ДЛЯ СОЗДАНИЯ САМОАДАПТИВНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Работая с нашим сайтом, вы даете свое согласие на использование файлов cookie. Это необходимо для нормального функционирования сайта, показа целевой рекламы и анализа трафика. Статистика использования сайта отправляется в «Яндекс» и «Google»
Научный журнал Моделирование, оптимизация и информационные технологииThe scientific journal Modeling, Optimization and Information Technology
Online media
issn 2310-6018

RESEARCH AND DEVELOPMENT OF METHODS OF DYNAMIC ANALYSIS OF CODE FOR CREATING SELF-ADAPTIVE SOFTWARE

Bershadskiy A.M.,  Bozhday A.S.,  Evseieva Y.I.,  Gudkov A.A. 

UDC 004.4
DOI: 10.26102/2310-6018/2018.23.4.009

  • Abstract
  • List of references
  • About authors

The article deals with the development of methods for dynamic code analysis for creating self-adaptive software systems. To date, not so many attempts have been made to create a universal theoretical apparatus for the synthesis of self-adaptable applications, while the research direction itself is relevant: the self-adapting feature will improve the quality of the software being developed and reduce the time and labor costs of its development. The proposed approach develops the concept of reflexive self-adaptation proposed in the earlier works of the authors. The central idea of the new approach is the development of a new universal method of self-adaptation of software systems based on the joint use of technology for dynamic analysis of code and elements of the theory of translators. Throughout the life cycle of the program, the calls of the main functions are recorded, and then a set of dynamic call graphs is constructed on the basis of the recorded calls. This set becomes the basis of a more complex data structure used to analyze the behavior of the system. In such a structure, each vertex of the call graph, which is a function, is bound to an abstract syntax tree, which is a description of the actions performed by the function. By further researching the obtained data structure, variables are found that influence the result of the program execution. The further self-adaptation process consists in the variation of these variables value. The implementation of the obtained theoretical results can be widely used in the development of self-adaptive systems of a wide range, but in particular, adaptive simulators and training applications.

1. Yu.Chernov, A.S.Konoplev. The use of virtualization technology in the dynamic analysis of software code // Automatic Control and Computer Sciences. - Springer, NY: 2015. - P. 834-837.

2. P.V.Shijo, A.Salimb. Integrated Static and Dynamic Analysis for Malware Detection // Procedia Computer Science. - Elsevier, Amsterdam: 2015. - P. 804-811.

3. M. Burch. The Dynamic Call Graph Matrix // VINCI '16 Proceedings of the 9th International Symposium on Visual Information Communication and Interaction.- ACM, NY: 2016. - P. 1-8.

4. Avetisyan A.I., Tikhonov A.Yu. Combined (static and dynamic) binary code analysis // Proceedings of the Institute for System Programming of the Russian Academy of Sciences (electronic journal). - 2012. - № 4 (22). - pp. 131-52.

5. S.P. Vartanov, A.Yu. Gerasimov, M.K. Yermakov, D.O. Kuts, A.A. Novikov. Dynamic analysis of applications with a graphical user interface based on symbolic execution // Proceedings of the Institute for System Programming of the Russian Academy of Sciences (electronic journal). - 2017. - № 1 (29). - p. 149-166.

6. . Balog M., Gaunt A.L., Brockschmidt M., Nowozin S., Tarlow D. DeepCoder: Learning to Write Programs // https://www.sciencedirect.com/science/journal/18770509 ICLR 2017: 5th International Conference on Learning Representations.- ACM, NY: 2017. - P. 1-20.

7. Beltramelli T. pix2code: Generating Code from a Graphical User Interface Screenshot // https://www.sciencedirect.com/science/journal/18770509 ICLR 2018: 6th International Conference on Learning Representations.- ACM, NY: 2018. - P. 47-54.

8. Wang, A.L. Software architectures and the creative processes in game development / A.L. Wang, N. Nordmark // Entertainment computing / edited by K. Chorianopoulos [et al.]. — Cham: Springer International Publishing, 2015. — P. 272-285.

9. Cornforth, D.J. Cluster evaluation, description and interpretation for serious games / D. J.Cornforth, M. T.Adam // Serious games analytics / edited by C. S. Loh, Y. Sheng, D. Ifenthaler. — Cham: Springer International Publishing, 2015. — P. 135-155.

10. Carvalho, M.B. The journey: a service-based adaptive serious game on probability / M.B. Carvalho [et al.] // Serious games analytics / edited by C. S. Loh, Y. Sheng, D. Ifenthaler. — Cham: Springer International Publishing, 2015. — P. 97-106.

11. Fasli, M. Designing and developing electronic market games / M. J. Fasli, M. Michalakopoulos // Games and learning alliance / edited by A. De Gloria. — Heidelberg: Springer Berlin Heidelberg, 2007. — P. 117-151.

12. Bernon, C. Engineering self-organizing systems / C. Bernon [et al.] // Selforganizing software: from natural to artificial adaptation / edited by G. Di Marzo Serugendo, M.P. Gleizes, A. Karageorgos. — Heidelberg: Springer Berlin Heidelberg, 2011. — P. 283-312.

13. Ravindran, K., Rabby, M. Software cybernetics to infuse adaptation intelligence in networked systems // IEEE International Conference on the Network of the Future (NOF).. - Washington: IEEE Computer Society, 2013. - P. 1-6.

14. Ahuja, K., Dangey, H. Autonomic Computing: An emerging perspective and issues // IEEE International Conference on Issues and Challenges in Intelligent Computing Techniques (ICICT 2014). - Washington: IEEE Computer Society, 2014. - P. 471-475.

15. Wang P., Cai, K. Y. Representing extended finite state machines for SDL by a novel control model of discrete event systems // Sixth IEEE International Conference on Quality Software (QSIC 2006). - Washington: Ieee Computer Society, 2006. - P. 159-166.

16. Yang, Q., Lü, J., Xing, J., Tao, X., Hu, H., Zou, Y. Fuzzy control-based software self-adaptation: A case study in mission critical systems // IEEE 35th Annual Computer Software and Applications Conference Workshops (COMPSACW). - Washington: IEEE Computer Society, 2011. - P. 13-18.

17. Bershadsky A.M., Bozhdai A.S., Evseeva Y.I., Gudkov A.A. Mathematical model of reflection of self-adaptive software systems // News of Volgograd State Technical University. - 2018. - № 8 (218). - p. 7-14.

Bershadskiy Alexander Moiseevich
Doctor of Technical Sciences, Professor
Email: bam@pnzgu.ru

Penza State University

Penza, Russian Federation

Bozhday Alexander Sergeevich
Doctor of Technical Sciences
Email: bozhday@yandex.ru

Penza State University

Penza, Russian Federation

Evseieva Yulia Igorevna
Candidate of Technical Sciences
Email: shymoda@mail.ru

Penza State University

Penza, Russian Federation

Gudkov Alexey Anatolievich
Candidate of Technical Sciences
Email: alexei.gudkov@gmail.com

Penza State University

Penza, Russian Federation

Keywords: dynamic code analysis, call graph, abstract syntax tree, data mining, software engineering, self-adaptive software systems

For citation: Bershadskiy A.M., Bozhday A.S., Evseieva Y.I., Gudkov A.A. RESEARCH AND DEVELOPMENT OF METHODS OF DYNAMIC ANALYSIS OF CODE FOR CREATING SELF-ADAPTIVE SOFTWARE. Modeling, Optimization and Information Technology. 2018;6(4). URL: https://moit.vivt.ru/wp-content/uploads/2018/10/BershadskySoavtori_4_18_1.pdf DOI: 10.26102/2310-6018/2018.23.4.009 (In Russ).

691

Full text in PDF

Published 31.12.2018