Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397
Issue N3 2021 year
Reducing the complexity of developing software systems that solve complex problems of science and practice, as well as ensuring their viability are among urgent tasks of software engineering. For systems with knowledge bases, as noted in many literature sources, this problem is most acute, despite the fact that significant results have been achieved in its solving. This problem is especially critical for those systems in which one of the requirements is a time limit for decision-making. Given that the used solution methods belong to the class of exhaustive ones that have a large computational complexity, parallelization is required to reduce the execution time. A methodology for using declaratively defined control graph structures for developing problem solvers for systems with knowledge bases is proposed. Special attention is paid to the processing of knowledge base fragments and the possibility of placing architectural components of the solver on different computing devices. The structure of such an information-and-control graph includes related constructs (operators), one of which is marked as "initial". These structures can be divided into two main types: computing control structures and information processing structures. The developer can group individual operators into blocks — for their repeated usage (including organization of recursive calculations). The structure of the graph also includes a description of the data.