I. J. Computer Network and Information Security, 2017, 5, 21-30 Published Online May 2017 in MECS (http://www.mecs-press.org/) DOI: 10.5815/ijcnis.2017.05.03 Copyright © 2017 MECS I.J. Computer Network and Information Security, 2017, 5, 21-30 Enhancing Software Reliability against Soft-Error using Minimum Redundancy on Critical Data Saeid A. Keshtgar Department of Computer Engineering, Tabriz Branch, Islamic Azad University, Tabriz, Iran E-mail: saultimate@gmail.com Bahman B. Arasteh Department of Computer Engineering, Tabriz Branch, Islamic Azad University, Tabriz, Iran E-mail: b_arasteh@iaut.ac.ir AbstractNowadays, software systems play remarkable roles in human life and software has become an indispensable aspect of modern society. Hence, regarding the high significance of software, establishing and maintaining software reliability is considered to be an essential issue so that error occurrence, failure and disaster can be prevented. Thus, the magnitude of errors in a program should be detected and identified and software reliability should be measured and investigated so as to prevent the spread of error. In line with this purpose, different methods have been proposed in the literature on software reliability; however, the majority of the proposed methods are inefficient and undesirable due to their high overhead, vulnerability, excessive redundancy and high data replication. The method introduced in this paper identifies vulnerable data of the program and uses class diagram and the proposed formula. Also, by applying minimum redundancy and duplication on 70% of the critical data of the program, the proposed method protects the program data. The evaluation of the operation of the propose method on program indicated that it can improve reliability, reduce efficiency overhead, redundancy and complexity. Index TermsReliability, redundancy, failure, fault, error, performance overhead. I. INTRODUCTION Computer-based systems are ubiquitous in all different areas of modern life from house appliances such as microwave ovens and washing machines to complex application programs like airplanes, trains, medical control systems, etc. The costs and consequences of the failure of these systems can be so disastrous and catastrophic that serious injuries, harms and life losses can result from them. Such failures can devastate computer system, breach security, lead to the collapse of business or the loss of opportunities. Indeed, such misadventures and non-successes are related to defects which interrupts systems and cause incompatibilities among them. Your goal is to simulate the usual appearance of papers in a Journal of the Academy Publisher. We are requesting that you follow these guidelines as closely as possible. One fault or defect can cause an error or failure. It is sometimes referred to as a bug. Indeed, a fault is an abnormal condition which occurs in the software or hardware of a system [22]. One of the important challenges in designing computer systems is soft error. Also, soft errors which are due to radiation are regarded as a key challenge in designing computer systems [32]. As the complexity increases and the demand for the required quality in the markets goes up, the need for designing reliable digital systems has become increasingly essential [26]. For achieving high reliability and delivering it to customers, two major attempts should be made. First, architects should figure out the impact of soft errors in their designing. Second, they should make a smart choice among the available methods for reducing the impact of soft errors so that maximum reliability and minimum overhead can be achieved [28].There are two basic methods for establishing reliability; the first one is to avoid error by using specifications and acknowledging formal methods and the second method is a highly meticulous and precise process for developing software. Hence, the enhancement of software reliability by reducing redundancy and performance overhead is another notable issue in this research domain [21]. From a system point of view, two highly critical features are software quality and reliability [19]. Reliability can be regarded as a remarkable criterion or standard for measuring the quality of a system [14].Since software can be examined and observed as an important component of a system, system analysts investigate software reliability as an indication and signal of the entire system [4].Software reliability enables a program to tolerate and resist against the probable errors which might occur. Indeed, acceptable software reliability can enable the program to properly function within a specific period of time [10]. Furthermore, good reliability guarantees that the software operate at a certain level in spite of the presence of several faults and errors so that