Optimal Release Time Decision from Fuzzy Mathematical Programming Perspective

Demand for high software reliability requires rigorous testing followed by requirement of robust modeling techniques for software quality prediction. On one side, firms have to steadily manage the reliability by testing it vigorously, the optimal release time determination is their biggest concern. In past many models have been developed and much research has been devoted towards assessment of release time of software. However, majority of the work deals in crisp study. This paper addresses the problem of release time prediction using fuzzy Logic. Here we have formulated a Fuzzy release time problem considering the cost of testing under the impact of warranty period. Results show that fuzzy model has good adaptability.


Introduction
Software development life cycle (SDLC) consists of five stages namely: Analysis, Design, Coding, Testing and Operational phase. Testing phase of SDLC plays a very important role in determining the quality of the software. The main objective of testing phase is to remove as many faults as possible with a minimum cost. The three main quality attributes are viz Reliability, Scheduled Delivery and Cost and the primary objective of the software developer's is to attain them at their best values. On the other hand software user's requirements conflicts with the developers. Software users demand faster deliveries, cheaper software and quality product, whereas software developers aim at minimizing their development cost, maximizing the profit margins and meeting the competitive requirements. The resulting situations call for a tradeoff between conflicting objectives of software user's requirement with the developers. As a course of best alternative the developer management must determine optimally when to stop testing and release the software system to the user focusing on users requirements, simultaneously satisfying their own objectives. Such a problem is known as software release time decision (SRT D) problem [13], [14].
On time release of the software benefit developers in two ways: Firstly they can obtain the maximum returns on their investments, secondly they can satisfy the conflicting users requirement. Premature release of the software may require a lot of time to fix the faults after the release and can suffer from goodwill loss. Also the delay in software release impose penalty cost, revenue loss etc. Thus one must optimally determine the release time of the software to reduce the losses that can be imposed due to early or later release of the software [13], [14]. Such a problem of software reliability discipline can be formulated as an optimization problem with single or multiple objectives under some well-defined sets of constraints. There are a number of crisp and soft computing methodologies, optimization techniques and routines to solve such problems.
Making use of traditional SRGM , many optimization problems have been formulated in literature. These models have helped to determine the relationship between the testing progress and time. Okumoto and Goel [22] derived simplest release time policies based on exponential SRGM in two ways. In the first approach they considered an unconstrained cost objective while in the other, they considered the unconstrained reliability objective. The problem was formulated assuming all the costs are deterministic and well defined, as well as the level reliability required to achieve is determined on the basis of experience by the management. Later other researchers followed the approach with different consideration and improvements.
Yamada and Osaki [25] discussed release time problems with cost minimization objective under reliability aspiration constraint and reliability maximization objective under constraint based on exponential, modified exponential and S-shaped SRGM . Kapur and Garg [21] discussed the concept of considering penalty cost by introducing the concept of releasing the software at scheduled delivery time set by the management and\or with an agreement between the user and developer on release time problem. Kapur and Garg [19] discussed release policies using exponential, modified exponential and S-shaped test effort based SRGM for maximizing expected gain function subject to achieving a given level of failure intensity. Huang [4] and Huang and Lyu [5] discussed release policies considering the effect of testing effort expenditure.
Yun and Bai [26] proposed that software release time problems should assume software life cycle to be random as several factors such as availability of alternative competitive product in the market, a better announcement by the developer himself, etc. Later Kapur et al [17] determined release for a software system based on minimizing expected cost subject to achieve a desired level of intensity assuming software life cycle to be random. Further, Kapur et al [18] developed a software cost model incorporating the cost of dependent faults along with independent faults. Pham and Zhang [23] modified the traditional cost function by incorporating warrant and risk cost.
Kapur et al [20] developed a simple cost model to include separate cost of fixing a fault due to perfect and imperfect fault debugging during testing and operational phase along with the testing cost per unit time. Pham [24] discussed a release policy for a fault complexity based pure fault generation SRGM . Along with the above mentioned basic cost model they included the penalty cost in the cost function and defined the operational life cycle length to be random. Further, Kapur and Garg [20], Huang [4] and Huang et al. [6] have considered the effect of fault removal efficiency in determining the release time of the software. Later on some researchers work on bi-criterion release time problem, Such as Kapur et al. [16] developed a multi-objective optimization problem for determination of release time. In which the considered two simultaneous objective functions as reliability maximization and cost minimization for release time determination, they assigned weights to the two objective functions according to their relative importance. Owing to the importance of change point concept Kapur et al. [13] formulated a release policy for the exponential change point SRGM in which they modified the simple cost model as given by Okumoto and Goel [22] to include the cost of fault removal before and after the change point.
Most of the problems on release time even up to the recent times have been formulated using static conditions. Crisp optimization techniques such as method of calculus, Lagrange multipliers or crisp mathematical programming techniques were used to solve the problem. Crisp modeling has complications such as [1] : 1. Real situation are not very often crisp and deterministic and they cannot be prescribed precisely.
2. The complete description of a real system often would require more detailed data than a human being could ever recognize simultaneously, process it and understand.
Crisp means yes-or-no type rather than more-or-less type. Many management problems involve decision making under the ambiguous information. Due to conditions prevailing in the market and competitive reasons, the developers can only make ambiguous statements on the organizations goals and available resources bringing uncertainty in the problem definition. There are various other sources that bring uncertainty in the computation such as system complexity, subject's awareness, communication and thinking about uncertainty, intended flexibility, complex relationships between the various variables and economics of information. One widely accepted solution of this problem is to define the problem under fuzzy environment, as it offers the opportunity to model subjective imagination of the decision maker. Fuzzy set theory offers a precise mathematical form to describe fuzzy terms in the form of linguistic variables. To represent the shades of meaning of such linguistic terms, the concept of possibility values of membership has been introduced. Membership of an object will vary like [1]: Fuzzy set theory builds a model to represent a subjective computation of possible effect of the given values on the problem and permits the incorporation of vagueness in the conventional set theory that can be used to deal with uncertainty quantitatively. Fuzzy optimization is a flexible approach that permits a more adequate solution of real problems in the presence of vague information, providing the well defined mechanisms to quantify the uncertainties directly. It has proven to be an efficient tool for the treatment of fuzzy problems. Another advantage of fuzzy set theory is that it saves lot of time required for enormous information processing in order to determine average values in the classical modeling due to its capability to directly operate on vague information.
Kapur et al [12] formulated a software release time decision-making problem with cost minimization goal subject to failure intensity constraint under fuzzy environment and discussed the solution methodology with numerical illustrations. Jha, Indumati and Kapur [7] formulated a discrete SRGM based single criteria constrained release policy for software system under fuzzy environment. Jha et al. [8] proposed the fuzzy bi-criterion constrained release time problem based on discrete SRGM by using two conflicting fuzzifier objectives of cost minimization and reliability maximization simultaneously subject to the crisp budgetary constraint. Jha et al. [9] formulated a fuzzy bi-criterion constrained release time problem by using two objectives of cost minimization and reliability maximization simultaneously subject to a failure intensity constraint on two types of Imperfect debugging and Error Generation SRGM under Fuzzy environment. Jha, Indumati and Kapur [10] developed an interactive mathematical programming approach for a bi-criterion unconstrained release time problem for a flexible SRGM under two stage Yamada model [13] with two types of imperfect debugging and logistic fault removal model.
In this paper, an optimal release time of the software is determined based on minimizing the cost and achieving the desired level of reliability under fuzzy environment. Further, we discussed the approach to solve fuzzy optimization problem by transforming it into a crisp problem. The resulting problem may be feasible or infeasible. If the crisp problem is feasible then the optimal solution is also the solution of fuzzy problem but if it is infeasible the approach of goal programming can be applied to obtain a compromised solution of the problem.
Rest of the paper is organized as follows: Section-2 gives a brief knowledge about the SRGM used in the cost modeling. Modeling of the cost structure and problem formulation is discussed in section-3 while in the next section some basic terminologies of fuzzy theory and the solution procedure is presented in section-5 describing in detail about the fuzzy optimization technique. Numerical analysis of the above proposed model is given in section-6. Finally conclusion and references are presented.

Software Reliability Growth Model
To formulate the release time problem for minimizing the cost incurred during testing and debugging under the warranty period; we used the cost structure as given by Pham and Zhang [23] for determining the optimal release time of the software. In this paper, we use the SRGM given by Goel and Okumoto [3] to describe the expected failure phenomenon. The following assumptions are used: Assumption 1. Failure observation / Fault removal phenomenon is modeled by N HP P . 2. Software is subject to failures during execution caused by faults remaining in the software. 3. Each time a failure is observed immediate efforts takes place to find the cause of the failure in order to remove it. 4. Failures are observed during execution caused by remaining faults in the software.
Following differential equation describes the failure phenomenon of the Goel and Okumoto model [3] based on above set of assumptions.
Solving equation (1) under the initial condition m(0) = 0, we get the following mean value function And the reliability of the software is given as follows:

Problem Formulation
In this section we discuss an optimal release time problem based on the methodology to minimize the total expected cost testing subject to a reliability level to be achieved till the time of release of the software. Here, we have considered the cost structure given by Pham and Zhang [23] to describe the total expected cost. Accordingly we have, C 0 to be the fixed set up cost of testing the software. Under the assumption that it takes time to remove faults and removal time of each fault follows a truncated exponential distribution the probability density function of the time to remove a fault during testing period Y , can be given by, where λ y is a constant parameter associated with truncated exponential density function Y and T 0 is the maximum time to remove any error during testing period. Then the expected time to remove each error is given by Hence, the expected total time to remove N (T ) faults corresponding to all failures experienced up to time T is given by Thus, the expected cost to remove all errors detected by time T in the testing phase, where C 1 is now the cost of removing an error per unit time during testing phase is given by The cost of testing per unit time is assumed to be a power function of time T since the cost of testing increases with higher gradient in the beginning and slow down later.
Further it is assumed that the software developer does not maintain the software for the whole of its operational life cycle. This is because the software developers always keep on improving their software and come up with newer versions with added features and improved reliability. The newer versions are usually launched even before the earlier version obsoletes and the developers encourage the users of the previous versions to improve their version with the new one as it has enhanced features. So, given any version of the software, developers decides a warranty period for which they provide after sales services and after that period if a failure is encountered no removal is made from the part of the developer. Hence now instead of calculating the cost for the whole life cycle of the software we need to calculate it only up to the time when the warranty period ends. The expected cost to remove all faults during warranty period [T, T + T w ] is given by Therefore, the total expected cost can be summed up to: The optimal release time problem can be formulated as follows: where the inequality in the reliability constraint is not precise. Infact the management may be ready to accept a level of reliability lesser than R 0 . The symbol is called fuzzy greater than or equal to and have linguistic interpretation i.e. essentially greater than or equal to. The crisp optimization problems can be solved by the mathematical programming approach. If the desired level of reliability by the time is too high and the available resources are very limited then the problem becomes infeasible and can be solved by the goal programming approach to find a compromised solution. Solution obtained using goal programming is sensitive to the waiting vectors and goals of the problem. Crisp optimization techniques have no well-defined mechanisms to handle the uncertainties in the problem formulation. Hence fuzzy optimization techniques (Fuzzy Mathematical Programming, Fuzzy Goal Programming, etc) are used to solve the fuzzy optimization problems. In the following section we discussed some basic terminologies of fuzzy optimization techniques as available in literature [1].

Basic Definition of Fuzzy Set Theory and Fuzzy Number
In this section we introduce some of the basic terminologies of fuzzy set theory and present various set theoretic operations [1].
(1) Fuzzy Set: Let X be the universe whose generic element is denoted by x . A fuzzy set A in X is a function A : X → [0, 1] (2) Support of a Fuzzy Set: Let A be a fuzzy set in X. Then the support of A, denoted by S(A), is the crisp given by S(A) = {x ∈ X : µ A (x) > 0} (3) Standard Union: The standard union of two fuzzy sets A and B is a fuzzy set C whose membership function is given by µ C = max{µ A (x), µ B (x)}for allx ∈ X This we express as C = A ∪ B (4) Standard Intersection: The standard intersection of two fuzzy sets A and B is a fuzzy set C whose membership function is given by µ C = min{µ A (x), µ B (x)}for allx ∈ X This we express as C = A ∩ B (5) α−cut : Let A be a fuzzy set in X and α(0, 1] The α−cut of the fuzzy set A is the crisp set A α given by A α={x∈X:µ A (x)>α} (6) Convex Fuzzy Set: A fuzzy set in R n is called a fuzzy set if its α−cut A α are (crisp) bounded sets for all α ∈ (0, 1]. (7) Fuzzy Number: A fuzzy set in R n is called a fuzzy number if it satisfies the following conditions: i. A is normal ii. A is convex iii. µ A is upper semi continuous iv. The support of A is bounded The theorem presented below gives a complete characterization of a fuzzy number. Theorem 1. Let A be a fuzzy set in R. Then A is a fuzzy number if and only if there exists a closed interval (which may be a singleton) [a, b] = Φ such that Where i. l : (−∞, a) → [0, 1] is non-decreasing, continuous from the right and l(x) = 0 for x ∈ (−∞, w 1 ), w 1 < a ii. r : (b, ∞) → [0, 1] is non-increasing, continuous from the left and r(x) = 0 for x ∈ (w 2 , ∞), w 2 > b and µ(x) is called Membership Function of Fuzzy Set A on R.
For solving the fuzzy mathematical problems Zimmermann's approach can be used. In this approach first the objective function of the fuzzifier minimization is understood in the sense of the satisfaction of a restriction level C B and appropriate membership functions are defined for fuzzy inequalities and then employ Bellman and Zadeh [2] principle to identify the fuzzy decision, which results in a crisp mathematical programming problem algorithm.
In the next section we have used the Zimmermann's approach to solve the Fuzzy Optimization Problem.

Solution of the Release Time Problem: Fuzzy Optimization Technique
Fuzzy Optimization Zimmermann's [27] approach is discussed for solving the Fuzzy Release Time Problem formulated in section-3. The first step is to restate the problem with fuzzifier in objective function included as a restriction level constraint. The problem can be restated as follows: We define the membership function µ i (T ); i = 1, 2 for each of the fuzzy inequality in problem where C * and R * are the respective tolerance for the reliability level and available resources. Next we use Bellman and Zadeh's [2] principle to identify the fuzzy decision to solve the fuzzy system of inequality corresponding to the problem. The resulting crisp optimization problem is given as If the problem is feasible then an optimal solution can be found using crisp mathematical programming approach else if the problem is infeasible then we use crisp goal programming approach to solve the problem and identify the fuzzy goal decisions. The problem P3 after incorporating parameter values can be solved by mathematical programming approach using LIN GO or any other software package.

Numerical Example
For application of the above formulated release policy let us consider the data set reported by Musa et al. based on the failure from real time command and control system. Using this data set the parameters of Goel Okumoto [3] are estimated to be a = 143.32 and b = 0.1246 . Let us suppose that cost parameters are C 0 = $50, C 1 = $60, C 2 = $700 and C 4 = $3600. If the operational mission time x = 1 CPU hour, the warranty period length is T w = 450 CPU hour, α = 0.95, µ w = 0.5 and µ y = 0.1 . The release time problem based on following data can be analyzed. Further total budget C β = $26000 and the reliability requirement by the release time is R 0 = 0.95 with tolerance on cost and reliability C * = $31000 and R * = 0.80 (we have assumed these values for illustration, however these values are set by management based on past experience). Using values of various parameters and constants, solution of the problem is obtained with fuzzy optimization method discussed above. The mean value function for failure phenomenon and reliability function with estimated values of the parameters is given below:    Figure 5 shows that the two curves intersect at a point, which gives the optimal release time of the software and can be found by solving the crisp mathematical programming problem using standard mathematical programming approach in LIN GO software.  If suppose the available amount of total testing resources is changed from C B = 26000 to C B = 23000 with tolerance level changed from C * = 31000 to C * = 24500 then we see that coat and reliability function don't intersect at any point as shown in figure 6 which indicate that the crisp problem is infeasible.
In such a situation we solve the problem using the Goal Programming approach to obtain a fuzzy goal solution. In Goal Programming approach, management aspirations and restrictions are achieved Maximize Solving the above problem by LINGO software we obtain the optimal release time T * = 34.68 and η 1 = 0.105 . At the optimal release time the cost is 24657.35 which is 157.35 more than the maximum tolerance level and reliability is 0.80.

Conclusion
In this paper, we have formulated a fuzzy release time problem and discussed the fuzzy mathematical programming solution procedure with an illustration when a feasible solution exist and if the problem is infeasible fuzzy goal programming approach is used to solve the problem. The global market has become fiercely competitive and the software developers have many competitive goals to be optimized simultaneously. Hence the release time of the software should be determined simultaneously optimizing the various conflicting objectives.