Keywords: dynamic code analysis, call graph, abstract syntax tree, data mining, software engineering, self-adaptive software systems
RESEARCH AND DEVELOPMENT OF METHODS OF DYNAMIC ANALYSIS OF CODE FOR CREATING SELF-ADAPTIVE SOFTWARE
UDC 004.4
DOI: 10.26102/2310-6018/2018.23.4.009
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.
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).
Published 31.12.2018