Известия высших учебных заведений. Поволжский регион:Технические науки (Oct 2020)

SELF-ADAPTIVE SOFTWARE DESIGN BASED ON THE COMPUTING PROCESS’S TRACE TECHNOLOGY

  • A. S. Bozhday,
  • Yu. I. Evseeva,
  • A. A. Gudkov

DOI
https://doi.org/10.21685/2072-3059-2020-3-3
Journal volume & issue
no. 3

Abstract

Read online

Background. The problem of creating a universal technology for the development of self-adaptive software (SW) has become more and more urgent in recent years, due to the breadth of application of complex software systems and high requirements for their performance and reliability. The purpose of the article is to describe the principles and prospects for developing adaptive software using the technology of tracing the computational process. As a practical example, the possibility of using a popular hardware and software solution for such tracing - Intel Processor Trace - is shown, which is a toolkit for recording traces of program code execution with the minimum amount of information required for this. Analyzing the accumulated set of traces, it is possible to evaluate the statistics of execution of various fragments of the program code and draw conclusions about their comparative efficiency in various conditions. The obtained data can be used as the basis for selfoptimization algorithms for software products. Materials and methods. Intel Processor Trace software and hardware solution is used as a technological solution for tracing the computational process. Proposed formalization methods use the mathematical apparatus of dynamic graphs. Results. The concept of using the tracing of the computational process to create software libraries and toolkits aimed at developing self-adaptive software is proposed. Two main ways of practical implementation of the concept are considered: creation of algorithms for the development of self-adaptive software systems operating on the Intel hardware platform; development of a specialized software library for a high-level language that allows collecting and processing traces of the computational process. A method of formal representation of program traces is proposed, based on the mathematical apparatus of graph theory. Conclusions. Computing process tracing is a software and hardware technology that allows you to track the characteristic features of the execution of a program code and describe them with the minimum required amount of information. By analyzing its own computational paths, the software system gains the possibility of lowlevel introspection with the possibility of further actions aimed at self-adaptation to changing operating conditions.

Keywords