Software Reliability Improvement Techniques

  • Han Seong Son
  • Seo Ryong Koo
Part of the Springer Series in Reliability Engineering book series (RELIABILITY)


Digital systems offer various advantages over analog systems. Their use in largescale control systems has greatly expanded in recent years. This raises challenging issues to be resolved. Extremely high-confidence in software reliability is one issue for safety-critical systems, such as NPPs. Some issues related to software reliability are tightly coupled with software faults to evaluate software reliability (Chapter 4). There is not “one right answer” as to how to estimate software reliability. Merely measuring software reliability does not directly make software more reliable, even if there is a “proper answer” for estimation of software reliability. Software faults should be carefully handled to make software more reliable with as many reliability improvement techniques as possible. However, software reliability evaluation may not be useful. Software reliability improvement techniques dealing with the existence and manifestation of faults in software are divided into three categories:

- Fault avoidance/prevention that includes design methodologies to make software provably fault-free

- Fault removal that aims to remove faults after the development stage is completed. This is done by exhaustive and rigorous testing of the final product

- Fault tolerance that assumes a system has unavoidable and undetectable faults and aims to make provisions for the system to operate correctly, even in the presence of faults


Formal Method Fault Tolerance Software Reliability Formal Verification Software Fault 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Leveson NG (1990) Guest Editor's Introduction: Formal Methods in Software Engineering. IEEE Transactions in Software Engineering, Vol. 16, No. 9Google Scholar
  2. [2]
    Wing JM (1990) A Specifier’s Introduction to Formal Methods. Computer, Vol. 23, No. 9Google Scholar
  3. [3]
    Rushby J (1993) Formal Methods and the Certification of Critical Systems. Technical Report CSL-93-7, SRI International, Menlo Park, CAGoogle Scholar
  4. [4]
    Storey N (1996) Safety-Critical Computer Systems. Addison–Wesley.Google Scholar
  5. [5]
    Proceedings of the Seventh Knowledge-Based Software Engineering Conference, McLean, VA, September 20–23, 1992Google Scholar
  6. [6]
    Agresti WW (1986) New Paradigms for Software Development. IEEE Computer SocietyGoogle Scholar
  7. [7]
    London RL (1977) Remarks on the Impact of Program Verification on Language Design. In Design and Implementation of Programming Languages. Springer–VerlagGoogle Scholar
  8. [8]
    McGettrick AD (1982) Program Verification using Ada. Cambridge University PressGoogle Scholar
  9. [9]
    Gries D (1991) On Teaching and Calculation. Communications of the ACM, Vol. 34, No. 3Google Scholar
  10. [10]
    Mills HD (1986) Structured Programming: Retrospect and Prospect. IEEE Software, Vol. 3, No. 6Google Scholar
  11. [11]
    Dyer M (1992) The Cleanroom Approach to Quality Software Development. John Wiley & SonsGoogle Scholar
  12. [12]
    AECL (1991) Wolsong NPP 2/3/4, Software Work Practice Procedure for the Specification of SRS for Safety Critical Systems. Design Document no. 00-68000-SWP-002, Rev. 0Google Scholar
  13. [13]
    Hopcroft J, Ullman J (1979) Introduction to Automata Theory, Language and Computation. Addison–Wesley.Google Scholar
  14. [14]
    Alur R, Dill DL (1994) A Theory of Timed Automata. Theoretical Computer Science Vol. 126, No. 2, pp. 183–236zbMATHCrossRefMathSciNetGoogle Scholar
  15. [15]
    EPRI (1995) Guidelines for the Verification and Validation of Expert System Software and Conventional Software. EPRI TR-103331-V1 Research project 3093-01, Vol. 1Google Scholar
  16. [16]
    Koo S, Seong P, Yoo J, Cha S, Yoo Y (2005) An Effective Technique for the Software Requirements Analysis of NPP Safety-critical Systems, Based on Software Inspection, Requirements Traceability, and Formal Specification. Reliability Engineering and System Safety, Vol. 89, No. 3, pp. 248–260CrossRefGoogle Scholar
  17. [17]
    Fagan ME (1976) Design and Code Inspections to Reduce Errors in Program Development. IBM System Journal, Vol. 15, No. 3, pp. 182–211CrossRefGoogle Scholar
  18. [18]
    Yoo J, Kim T, Cha S, Lee J, Son H (2005) A Formal Software Requirements Specification Method for Digital Nuclear Plants Protection Systems. Journal of Systems and Software, No. 74, pp. 73–83Google Scholar
  19. [19]
    Koo S, Seong P, Cha S (2004) Software Design Specification and Analysis Technique for the Safety Critical Software Based on Programmable Logic Controller (PLC). Eighth IEEE International Symposium on High Assurance Systems Engineering, pp. 283–284Google Scholar
  20. [20]
    Koo S, Seong P, Jung J, Choi S (2004) Software design specification and analysis (NuFDS) approach for the safety critical software based on programmable logic controller (PLC). Proceedings of the Korean Nuclear Spring MeetingGoogle Scholar
  21. [21]
    Lyu MR, ed. (1995) Software Fault Tolerance: John Wiley and Sons, Inc.Google Scholar
  22. [22]
    IEC, IEC 61508-7: Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems – Part 7: Overview of Techniques and MeasuresGoogle Scholar
  23. [23]
    Murray P, Fleming R, Harry P, Vickers P (1998) Somersault Software Fault-Tolerance. HP Labs whitepaper, Palo Alto, CaliforniaGoogle Scholar

Copyright information

© Springer London 2009

Authors and Affiliations

  • Han Seong Son
    • 1
  • Seo Ryong Koo
    • 2
  1. 1.Department of Game EngineeringJoongbu UniversityKumsan-gunKorea, Republic of
  2. 2.Nuclear Power Plant Business GroupDoosan Heavy Industries and Construction Co., Ltd.Yongin-SiKorea, Republic of

Personalised recommendations