You are on page 1of 6

European Journal of Scientific Research ISSN 1450-216X Vol.26 No.1 (2009), pp.147-152 EuroJournals Publishing, Inc. 2009 http://www.eurojournals.com/ejsr.

htm

Software Reliability Modeling Using Soft Computing Technique


Khalaf Khatatneh Ph.D. in Computer Science, Al-Balqa Applied University Al-Salt, Jordan E-mail: khalafk2002@yahoo.com Thaer Mustafa Post graduate student, Al-Balqa Applied University Al-Salt, Jordan E-mail: Thaer.Mustafa@gmail.com Abstract The application of computer system has now crossed many different fields. Software has become an essential part of many industrial, military and even commercial systems. Both in microcomputers and supercomputers, we may find programs containing millions of lines of code. This has, together with the application of software in many safety critical systems, led to the fact that software reliability is now an important research area. In this paper, a model that can be used for software reliability prediction is explored. The proposed model is implemented using the fuzzy logic technique and has been applied on a custom set of test data. The model is characterized as a growth reliability model. This model focused on a particular dataset behavior in predicting reliability. Focusing on a particular dataset behavior is performed to develop an accurate model since the recent work focused on developing a model which can be more accurate.

Keywords: Software reliability, fuzzy logic, soft computing techniques, software quality assurance.

1. Introduction
The IEEE Standard Glossary of Software Engineering Terminology definition of software reliability is: The ability of the software to perform its required function under stated conditions for a stated period of time [12]. The ability to predict the reliability of a software system would enable project management to better perform product assurance and assess readiness for release. Three bases used in estimating reliability are failure record, behavior for a random sample of input points, or quantity of actual and seeded faults detected during testing. People used to believe that "software never breaks". Intuitively, unlike mechanical parts such as bolts, levers, or electronic parts such as transistors and capacitor, software will stay "as is" unless there are problems in hardware that changes the storage content or data path. Software does not age, rust, wear-out, deform or crack. There is no environmental constraint for software to operate as long as the hardware processor it runs on can operate. Furthermore, software has no shape, color, material, or mass. It can not be seen or touched, but it has a physical existence and is crucial to system functionality.

Software Reliability Modeling Using Soft Computing Technique

148

Without being proven to be wrong, optimistic people would think that once after the software can run correctly, it will be correct forever. A series of tragedies and chaos caused by software proves this to be wrong. These events will always have their place in history. Tragedies in Therac-25 [2], a computer-controlled radiation-therapy machine in the year 1986, caused by the software not being able to detect a race condition, alerts us that it is dangerous to abandon our old but well-understood mechanical safety control and surrender our lives completely to software controlled safety mechanism. Software can also have small unnoticeable errors or drifts that can culminate into a disaster. On February 25, 1991, during the Gulf War, the chopping error that missed 0.000000095 second in precision in every 10th of a second, accumulating for 100 hours, made the Patriot missile fail to intercept a scud missile. 28 lives were lost [14]. Fixing problems may not necessarily make the software more reliable. On the contrary, new serious problems may arise. In 1991, after changing three lines of code in a signaling program which contains millions lines of code, the local telephone systems in California and along the Eastern seaboard came to a stop [15]. There are much more scary stories to tell. Interests in using the soft computing techniques, such as Fuzzy Logic (FL), Artificial Neural Network (ANN), and Genetic Programming (GP), to solve software engineering problems expanded in the recent years. Use a multi layer feed-forward network for both estimating model parameters of a pharmacokinetic system and predicting the noise present in the measured data samples in [11], Demonstrates how neural-network models and training regimes for reliability prediction can used. Results with actual testing and debugging data suggest that neural-network models are better at endpoint predictions than analytic models in [9], and [13] Found that incomplete information in the early life cycle of software development, a software quality model with fuzzy characteristic can perform better, because fuzzy concept deals with phenomena that are vague in nature. In this paper we explore the use of Fuzzy Logic to predict the failures during the software testing process on a dataset from command and control applications [8].

2. Fuzzy Logic
Fuzzy logic is derived from fuzzy set theory dealing with reasoning that is approximate rather than precisely deduced from classical predicate logic. It can be thought of as the application side of fuzzy set theory dealing with well thought out real world expert values for a complex problem [3]. Fuzzy Logic was initiated in 1965 [4, 5, 7] by Lotfi A. Zadeh, a professor of computer science at the University of California in Berkeley. Basically, Fuzzy Logic (FL) is a multi-valued logic that allows intermediate values to be defined between conventional evaluations like true/false, yes/no, high/low, etc. Notions like rather tall or very fast can be formulated mathematically and processed by computers, in order to apply a more human-like way of thinking in the programming of computers [6].

3. The Model
Each failure occurrence initiates the removal of a fault, the number of failures that have been experienced by time t, denoted by M(t), can be regarded as a reflected image of reliability growth. This paper tries to predict the behavior of M(t) using the times between failures t1, t2, using our test dataset. There are four main linguistic variables: Accumulative failures (), Time between failures (t), Failure intensity (), and Number of failures (N). Step 1: The ranges for the linguistic variables should be specified. Suppose that we obtain the results shown in table 1 to 4, where the intervals for the variables are normalized to be within the range [0, 1] by dividing the base numerical values by the corresponding maximum magnitudes.

149
Table 1: Linguistic variables and ranges Accumulative failures ()

Khalaf Khatatneh and Thaer Mustafa

Linguistic value Small Medium Large

Linguistic Variable:Accumulative failures () Notation Numerical range (normalized) S [0, 0.25] M [0.1, 0.4] L [0.35, 0.6]

Table 2:

Linguistic variables and ranges time between failures ( t)


Linguistic Variable: Time between failures ( t) Notation Numerical range (normalized) VS [0, 0.1] S [0.08, 0.25] M [0.2, 0.8]

Linguistic value Very Short Short Medium

Table 3:

Linguistic variables and ranges Failure intensity ()


Linguistic Variable:Failure intensity () Notation VL L M

Linguistic value Very Low Low Medium

Numerical range (normalized) [0, 0.04 ] [0.03, 0.1] [0.08, 0.73]

Table 4:

Linguistic variables and ranges Number of failures (N)


Linguistic Variable:Number of failures (N) Notation VS S M L VL

Linguistic value Very Small Small Medium Large Very Large

Numerical range (normalized) [0, 0.05] [0.04, 0.15] [0.13, 0.25] [0.2, 0.6] [0.55, 0.73]

Step 2: The Determine fuzzy sets. Fuzzy sets can have a variety of shapes. However, a triangle or trapezoid can often provide an adequate representation of the expert knowledge and at the same time significantly simplifies the process of computation. In this step a four fuzzy sets initiated to specify each linguistic variable. Step 3: Elicit and contract fuzzy rules. The relation between the Accumulative failures () and the Failure intensity () can be expressed in the following form assuming that one input variable is fixed: If () is increased then () will not be decreased. Thus, three rules are required: 1. If (Failure intensity is VL) then (Accumulative failures is S) 2. If (Failure intensity is L) then (Accumulative failures is M) 3. If (Failure intensity is M) then (Accumulative failures is L) Now, a 33 fuzzy associative memory (FAM) matrix can be built. This FAM will represent the rest of the rules in a matrix form. The result of the FAM is shown in Figure 1.

Software Reliability Modeling Using Soft Computing Technique


Figure 1: The FAM Representation

150

Step 4: Encode the fuzzy sets, fuzzy rules and procedures to perform fuzzy inference into the expert system. To build our fuzzy expert system, we will use one of the most popular tools, the MATLAB Fuzzy Logic Toolbox [10]. Step 5: Evaluate and tune the system. Tuning fuzzy systems may involve executing a number of actions described in Figure 2.
Figure 2: Tuning Fuzzy Actions

4. Experimental Results
After implementing the proposed model in the previous section, the experimental results are described in this section. Figure 3 represent the Data set using the CASRE [1] tool in the Time between failures form.

151

Khalaf Khatatneh and Thaer Mustafa


Figure 3: Time Between Failures

Figure 4 represent the dataset in the accumulated failures form.


Figure 4: Accumulated Failures

Figure 5 represent the model estimation and the real data in the accumulated failures form.
Figure 5: FL Model Accumulated Failures

Software Reliability Modeling Using Soft Computing Technique

152

5. Conclusion and Future Work


In this paper, a new fuzzy expert system was developed to predict the software failures. This model focused on a particular dataset behavior in predicting failures. Focusing on a particular data set is performed to develop an accurate model since the recent work focused on developing a model which can be more accurate. The experimental results have shown that the developed model can predict accurate results in most points of the target dataset. We hope to use the neural network technique to allow the training for some parameters used in the proposed model to predict more accurate results.

References
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Allen P.Nikora, Computer Aided Software Reliability Estimation (CASRE), Users Guide, March 23, 2000. Clark S. Turner, Nancy Leveson , An Investigation of the Therac-25 Accidents, reprinted from. IEEE Computer, Vol. 26, No. 7, July 1993. Klir, George J., St Clair, Ute H., Yuan, Fuzzy set theory: foundations and applications. Englewood Cliffs, NJ: Prentice Hall, 1997. L.A. Zadeh,Fuzzy algorithms, Info. & Ctl., Vol. 12, 1968. L.A. Zadeh, Fuzzy Sets, Information and Control, 1965. L.A. Zadeh, "Making computers think like people, IEEE. Spectrum, 1984. L.A. Zadeh, Outline of A New Approach to the Analysis of Complex Systems and Decision Processes, 1973. Musa, John D., Software Reliability Data, Data & Analysis Center for Software, January 1980. N. Karunanithi, D. Whitely, Y. K. Malaiya, Using Neural Networks in Reliability Prediction, IEEE, IN-9010546, 1992. Negnevitsky, Michael, Artificial intelligence: a guide to intelligent systems, 2nd edition, Addison-Wesley, 2005. R. Shadmehr and D. Z. DArgeno, A Comparison of a Neural Network based Estimator and Two Statical Estimators in a Sparse and Noisy Data Environment, Proc. IJCNN, Washington D.C, 1990. Standards Coordinating Committee of the IEEE Computer Society, IEEE Standard Glossary of Software Engineering Terminology, IEEE-STD-610.12-1990 (New York: IEEE, 1991). T. M. Khoshgoftaar, E. Allen, Prediction of Software Faults Using Fuzzy Nonlinear Regression Modeling, Boca Raton, Florida, 2000. http://www.math.psu.edu/dna/455.f96/disasters.html http://www.byte.com/art/9512/sec6/art1.htm#aircontrol

[12] [13] [14] [15]

You might also like