Skip to main content

N-version Software Module Requirements to Grant the Software Execution Fault-Tolerance

  • Conference paper
  • First Online:
Cybernetics Approaches in Intelligent Systems (CoMeSySo 2017)

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 661))

Included in the following conference series:

Abstract

N-version programming is one of the approach ensuring high reliability and fault-tolerance of software on the basis of program redundancy and diversity. This approach ensures that faults of one of the versions of an N-version software module will not result in malfunction of the module operation process. N-version software realization, as a rule, depends upon capacities and preferences of the teams of designers and developers. This work is an attempt to denote basic requirements, which should be met at the design of N-version software to minimize the occurrence of possible program faults and influence of the modules versions on one another. The requirements to versions (program modules) of N-version software allow to ensure high-level reliability and fault-tolerance due to the elimination of the possible influence of separate versions on each other. A special attention has been paid to their interaction, which should not have any impact on the operation of the other components. For realization and research of N-version software developed taking into account the defined requirements an N-version software execution environment has been developed. Testing of the N-version software execution environment has demonstrated expediency of a component architecture application and high efficiency of N-version programming as a method of fault-tolerant software development.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

References

  1. Carzaniga, A., Gorla, A., Pezze, M.: Handling software faults with redundancy. In: Architecting Dependable Systems VI. LNCS, vol. 5835, pp. 148–171. Springer, Heidelberg (2009)

    Google Scholar 

  2. Aidemark, J., Vinter, J., Folkesson, P., Karlsson, J.: Experimental evaluation of time-redundant execution for a brake-by-wire application. In: 2002 International Conference on Dependable Systems and Networks, pp. 210–215. IEEE, Washington D.C. (2002)

    Google Scholar 

  3. Avizienis, A., Chen, L.: On the implementation of N-version programming for software fault tolerance during execution. In: IEEE COMPSAC 1977, Chicago, pp. 149–155 (1977)

    Google Scholar 

  4. Avizienis, A.: The methodology of N-version programming. In: Liu, M. (ed.) Software Fault Tolerance. Wiley, Chichester (1995)

    Google Scholar 

  5. Chernigovskiy, A.S., Tsarev, R.Y., Knyazkov, A.N.: Hu’s algorithm application for task scheduling in N-version software for satellite communications control systems. In: 2015 International Siberian Conference on Control and Communications, pp. 1–4. IEEE (2015)

    Google Scholar 

  6. Sommerville, I.: Software Engineering, 9th edn. Addison Wesley Pearson, New York (2011)

    MATH  Google Scholar 

  7. Westphal, L.C.: Handbook of Control Systems Engineering. Springer, New York (2012)

    Google Scholar 

  8. Hosek, P., Cadar, C.: VARAN the unbelievable: an efficient N-version execution framework. In: International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 339–353. ACM, New York (2015)

    Google Scholar 

  9. Kopetz, H., Damm, A., Koza, C., Mulazzani, M., Schwabl, W., Senft, C., Zainlinger, R.: Distributed fault-tolerant real-time systems: the mars approach. IEEE Micro. 9, 25–40 (1989)

    Article  Google Scholar 

  10. Amza, C., Cox, A.L., Dwarkadas, S., Keleher, P., Lu, H., Rajamony, R., Yu, W., Zwaenepoel, W.: TreadMarks: shared memory computing on networks of workstations. Computer 29, 18–28 (1996)

    Article  Google Scholar 

  11. Gruzenkin, D.V., Tsarev, R.Y., Pupkov, A.N.: Technique of selecting multiversion software system structure with minimum simultaneous module version usage. Adv. Intell. Syst. Comput. 465, 375–386 (2016)

    Google Scholar 

  12. Baudry, B., Monperrus, M.: The multiple facets of software diversity: recent developments in year 2000 and beyond. ACM Comput. Surv. 48, 16 (2015)

    Article  Google Scholar 

  13. Creeger, M.: Multicore CPUs for the Masses. ACM Queue 3, 64-ff (2005)

    Google Scholar 

  14. Chen, Y., Cheng, D.K.W., Lee, Y.S.: A hot-swap solution for paralleled power modules by using current-sharing interface circuits. IEEE Trans. Power Electr. 21, 1564–1571 (2006)

    Article  Google Scholar 

  15. Buxton, J.N., Randell, B.: Software engineering techniques report. In: Conference sponsored by the NATO Science Committee, pp. 27–31. Scientific Affairs Division, Brussels (1969)

    Google Scholar 

  16. Hastings, R., Joyce, B.: Purify: fast detection of memory leaks and access errors. In: Proceedings of the Winter 1992 USENIX Conference, pp. 125–138. USENIX Association, Berkeley (1991)

    Google Scholar 

  17. Koren, I., Krishna, C.M.: Fault-tolerant Systems. Morgan Kaufmann, San Francisco (2007)

    MATH  Google Scholar 

  18. Burns, A., Wellings, A.: Real-Time Systems and Programming Languages. Addison-Wesley Longman, Harlow (1997)

    MATH  Google Scholar 

  19. Adams, J.C.: Fortran 95 Handbook: Complete ISO/ANSI Reference. MIT press, Cambridge (1997)

    Google Scholar 

  20. Norvig, P.: Paradigms of Artificial Intelligence Programming: Case Studies in Common LISP. Morgan Kaufmann, San Francisco (1992)

    Google Scholar 

  21. Box, D.: Essential COM. Addison-Wesley, Menlo Park (1998)

    MATH  Google Scholar 

  22. Natella, R., Cotroneo, D., Duraes, J.A., Madeira, H.S.: On fault representativeness of software fault injection. IEEE Trans. Softw. Eng. 39, 80–96 (2013)

    Article  Google Scholar 

  23. Winter, S., Tretter, M., Sattler, B., Suri, N.: SimFI: from single to simultaneous software fault injections. In: International Conference on Dependable Systems and Networks, pp. 1–12. IEEE Computer Society, Washington D.C. (2013)

    Google Scholar 

  24. Tsarev, R.Y., Chernigovskiy, A.S., Shtarik, E.N., Shtarik, A.V., Durmus, M.S., Ustoglu, I.: Modular integrated probabilistic model of software reliability estimation. Informatica 40, 125–132 (2016)

    MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Denis V. Gruzenkin .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this paper

Cite this paper

Gruzenkin, D.V., Chernigovskiy, A.S., Tsarev, R.Y. (2018). N-version Software Module Requirements to Grant the Software Execution Fault-Tolerance. In: Silhavy, R., Silhavy, P., Prokopova, Z. (eds) Cybernetics Approaches in Intelligent Systems. CoMeSySo 2017. Advances in Intelligent Systems and Computing, vol 661. Springer, Cham. https://doi.org/10.1007/978-3-319-67618-0_27

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-67618-0_27

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-67617-3

  • Online ISBN: 978-3-319-67618-0

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics