The article discusses a software module developed by the authors for automatic generation of program code based on UML diagrams. The relevance of developing this module is due to the limitations of existing foreign code generation tools related to functionality, ease of use, support for modern technologies, as well as their unavailability in Russian Federation. The module analyzes JSON files obtained by exporting UML diagrams from the draw.io online service and converts them into code in a selected programming language (Python, C++, Java) or DDL scripts for DBMS (PostgreSQL, Oracle, MySQL). The Python language and the Jinja2 template engine were used as the main development tools. The operation of the software module is demonstrated using the example of a small project "Library Management System". During the study, a series of tests were conducted on automatic code generation based on the architectures of software information systems developed by students of the Software Engineering bachelor's degree program in the discipline "Design and Architecture of Software Systems". The test results showed that the code generated using the developed module fully complies with the original UML diagrams, including the structure of classes, relationships between them, as well as the configuration of the database and infrastructure (Docker Compose). The practical significance of the investigation is that the proposed concept of generating program code based on visual models of UML diagrams built in the popular online editor draw.io significantly simplifies the development of software information systems, and can be used for educational purposes.
Keywords: code generation, automation, python, jinja2, uml diagram, json, template engine, parsing, class diagram, database, deployment diagram
In the article, based on the estimate of the Euclidean norm of the deviation of the coordinates of the transition and stationary states of the dynamic system, the compression condition of the generalized projection operator of the dynamic system with restrictions is derived. From the principle of contracting mappings, taking into account the derived compression condition of the projection operator, estimates are obtained for the sufficient condition for the stability of the dynamic system of stabilization of the equilibrium position and program motions. The obtained estimates generalize the previously obtained results. Ensuring the stability of the operator of a limited dynamic system is demonstrated experimentally.
Keywords: sufficient condition for stability, projection operator, stabilization of equilibrium position. stabilization of program motions, SimInTech
A complex dynamic system is defined by a structurally invariant operator. The operator structure allows formulating problems of stabilizing program motions or equilibrium positions of a complex dynamic system with constraints on state coordinates and control. The solution of these problems allows synthesizing a structurally invariant operator of a complex dynamic system with inequality-constraints on the vector of locally admissible controls and state coordinates. Computational experiments confirming the correctness of the synthesized structurally invariant projection operator are performed.
Keywords: structurally-invariant operator, stabilization of program motions, complex nonlinear dynamic system, projection operator, SimInTech
The paper presents the formulation of problems of minimization and maximization of a linear functional with inequality constraints on the vector of admissible program motions and equality constraints specified by a linear manifold. An analytical solution is synthesized that determines the projection operator for solving the specified mathematical programming problems with equality constraints and inequalities. An analytical solution is obtained that determines the boundary values of the Lagrange multiplier for the synthesized projection operator. The correctness of the obtained solution is illustrated.
Keywords: mathematical programming, linear functional, projection operators, admissible program motions, stabilization of program motions, SimInTech