№2 2018


Software architecture for highly reliable systems


A.V. Karavanov, N.D. Ivanov


Siberian Federal University
Krasnoyarsk, Russian Federation


The problem of building software for highly reliable systems is considered in the article. The criteria that allow us to evaluate the effectiveness of software architecture were considered first. The brief description of these criteria was given. Software with a wide range of tasks is built in a modular manner. The program is divided into modules for their functional purpose. It is proposed to allocate a separate module in the program to improve the software fault tolerance in highly reliable systems. An example is given of constructing the proposed architecture with a breakdown of the software into modules (programs) for a functional purpose. For this purpose, an intermediary program has been developed, through which the modules exchange information. The interaction between the modules and the mediation program can occur through various technologies (TCP/IP, shared files, shared memory, etc.). The interaction was realized using the network protocol TCP/IP in the example. To compare the monolithically constructed program and the program made on the proposed architecture, an experiment was conducted. The data source passed packets through the built-in software. The number of delivered packages was taken as a criterion for software reliability. The software was built according to the proposed architecture. The experiment demonstrated the advantage of the built-in software.


software architecture, software module, software decomposition, highly reliable systems


[1] Bass L., Clements P., Katsman R. Arhitektura programmnogo obespecheniya na praktike [Software architecture in practice]. St. Petersburg, Peter, 2006, 575 p. (In Russian)

[2] Gagarina L. G., Kokoreva E. V., Visnadul B. D. Tekhnologiya razrabotki programmnogo obespecheniya [Technology of software development]. Moscow, Forum Infra-M, 2013, 400 p. (In Russian)

[3] Cruz R. L. Struktury dannyh i proektirovanie programm [Data structures and program design]. Moscow, «BINOM. Laboratory of Knowledge», 2008, 765 p. (In Russian)

[4] Matsyachek L. A., Lyong B. L. Prakticheskaya programmnaya inzheneriya na osnove uchebnogo primera [Practical software engineering on the basis of a case study]. Moscow, «BINOM. Laboratory of Knowledge», 2009, 956 p. (In Russian)

[5] Fowler M. Arhitektura korporativnyh programmnyh prilozhenij [Architecture of corporate software applications]. Moscow, Williams, 2006, 544 p. (In Russian)

[6] Nazarov S. V. Arhitektura i proektirovanie programmnyh sistem [Architecture and design of software systems]. Moscow, Infra-M, 2016, 374 p. (In Russian)

[7] Nilsson J. Primenenie DDD i shablonov proektirovaniya. Problemno-orientirovannoe proektirovanie prilozhenij s primerami na C# i .NET [Application of DDD and design patterns. Project-oriented design of applications with examples in C # and .NET]. Moscow, Williams, 2008, 560 p. (In Russian)

[8] Fowler M. Shablony korporativnyh prilozhenij [Corporate Application Templates]. Moscow, Publishing. house «Williams», 2011, 544 p. (In Russian)

[9] Microsoft's guide to designing an application architecture. Available at: (accessed 12.03.2018).

[10] Message Bus. Available at: (accessed 15.03.2018).

For citing this article

Karavanov A.V., Ivanov N.D. Software architecture for highly reliable systems // Spacecrafts & Technologies, 2018, vol. 2, no. 2, pp. 100-104. doi: 10.26732/2618-7957-2018-2-100-104

Creative Commons License
This Article is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).