Fast Abstracts Archives . .

FastAbstracts


WHAT IS a
FastAbstract

The History

Archives of
FastAbstracts

ISSRE 2003
ISSRE 2002
ISSRE 2001
ISSRE 2000
ISSRE 1999
ISSRE 1998
FTCS 1999
FTCS 1998



 

 

 

Customization of Software Project Simulator for Improving Estimation Accuracy

Osamu Mizuno, Shinji Kusumoto and Tohru Kikuno 1
Department of Informatics and Mathematical Science
Osaka University

 

Abstract

We have developed a Petri-net based project simulator for predicting development effort and residual fault content. The simulator requires customization based on four parameters to reflect project characteristics. In this paper, we propose a new method for determining these parameters and validate the effectiveness of the method in two industrial experiments.

1 Project Simulator

The software project simulator consists of Project model and Process model. Project model specifies three key components: activities, products and developers. Process model defines a set of Activity models that are described by an extended GSPN(Generalized Stochastic Petri-Net).

1.1 Activity Model. Figure 1(a) shows an example of the description of the design activity. In the extended GSPN, a token has three attributes: product size s, the number of faults f and consumed workload w(We define the term ``workload'' of an activity as the total time needed for a developer who has the standard capability to complete the activity[2].), as shown in Fig. 1(b).

 

Figure 1. Activity model

Transitions used here are timed transitions. The firing delay of each transition is exponentially distributed and the average firing delay of a transition is specified by a firing rate assigned to it. In Fig. 1(a), the firing rate rcm of transition t1 means that the average firing delay of transition t1 is 1/rcm.
Each transition has a function (called an execution function) to be evaluated on its firing, as shown in Fig. 1(c). The execution of the function updates the attribute values of the token.

1.2 Customization using parameters. The firing rates rcm, rth and rwr of the transitions are formulated by functions fcm, fth and fwr, respectively[2]. Additionally, fault injections are interpreted as the stochastic events whose occurrences depend on the fault injection rate pin. In general, pin is formulated by function fin.

In the previous study[2], we define concrete functions for all of these formulas. Since, we consider only design and coding activities in this paper, we present concrete functions for rcm, rth, rwr and pin as follows:
 
(1) Communicating rate: rcm = Kcm x (M2/(Sigma L) x R)
(2) Thinking rate: rth = Kth x ((Sigma L) / M) x M = Kth x (Sigma L)
(3) Writing rate: rwr = Kwr x ((Sigma L) / M) x M = Kwr x (Sigma L)
(4) Fault injection rate: pin = Kin x (M / (Sigma L)xRxD) x M

Here, M is the number of the developers engaged in the activity, (Sigma L) is the sum of each developer's experience level, R is the completion rate of the input products, D is the number of the days from the current date to the deadline of the activity. Before simulating a certain project, we must customize the simulator by tuning up the values of parameters so that each activity in the project can simulate actual situation. But, it is generally very hard to determine parameters, since these are tightly related each other. Therefore, in the previous studies, we used heuristic values shown in Table 1.

Kcm

Kth

Kwr

Kin

Design

0.10

0.20

0.20

15.5

Coding

0.10

0.20

0.20

17.0

Table 1. Old values of parameters[2]

2 Proposed Algorithm

For customization of the simulator, we assume that an actual project data, for which the data on the amount of efforts and the number of faults are collected, is given.

Based on the lessons learned from the previous studies, we consider the following algorithm with two phases: Phase 1 is to determine Kcm, Kth and Kwr, and Phase 2 is to determine Kin with the values of Kcm, Kth and Kwr obtained at Phase 1.

/* Phase 1 */
for i := 0.02 to 0.30 step 0.02 do begin
for j := 0.05 to 0.30 step 0.05 do begin
for k := 0.05 to 0.30 step 0.05 do begin
#Effort := (the amount of effort obtained
by simulation under (Kcm,Kth,Kwr)=(i,j,k));
if (#Effort is within ±5% of Effortactual) then
Store (i,j,k) as a candidate;
end;
end;
end;
Choose the best candidate (Kcm,Kth,Kwr)best.
/* Phase 2 */
lo := 1.0 ; hi := 100 ;
while lo <= hi do begin
Kin := (lo+hi)/2
#Fault := (the number of faults obtained
by simulation under Kin and (Kcm,Kth,Kwr)best;
if #Fault is within ±5% of Faultactual) then break;
if Faultactual <= #Fault) then hi := Kin else lo:=Kin;
end;

Figure 2. Algorithm for determining parameters

The outline of the algorithm is shown in Fig.2. In Fig.2, variables Effortactual and Faultactual are the target values for the simulation and are obtained from the actual project data.

3 Experimental Evaluation

In order to confirm the effectiveness of proposed method, we have performed two experimental evaluations. In Experiments 1 and 2, we use two actual project data PR1 and PR2 offered from a certain company. Both projects are the development of the embedded software, and for almost the same application. The sizes of PR1 and PR2 are 12.3 Kstep and 9.6 Kstep, respectively.

In Experiment 1, we determine the value of firing parameters from the data of PR1. Successively, in Experiment 2, we execute the simulation of PR2 and evaluate the efforts and residual faults in PR2.

3.1 Experiment 1. By applying the data of the project PR1 to the algorithm shown in Fig.2, we determine the values of parameters for the design and coding activities. The values of parameters obtained are shown in Table 2.

Kcm

Kth

Kwr

Kin

Design

0.05

0.26

0.22

18.6

Coding

0.04

0.20

0.15

43.8

Table 2. New values of parameters

Comparing the values in Table 1 and Table 2, the values of Kcm, Kth, Kwr are almost the same. But the values of Kin are quite different each other.

3.2 Experiment 2. In order to evaluate the validity of the proposed algorithm, we estimate the number of faults in another project PR2 by the project simulator using the values of parameters in Table 2.

Effort
(person-days)

Residual Faults
(# of faults)

Actual project data

41.7

17.0

New Estimation

38.6

17.9

Old Estimation

37.1

13.2

Table 3. Simulated result of PR2

Table 3 shows the simulated result of the project PR2(For comparison, we also show the simulation result in [2]). From Table 3, the simulated effort is 38.6 (person-days) and the actual effort is 41.7 (person-days). The simulated value of residual faults is 17.9 and the actual value is 17. Thus, the new estimations of both effort and the residual faults for PR2 are very close to the actual data. Furthermore, with respect to estimation accuracy, the new estimation by the proposed method is superior to the one in [2].

As a result, we can say that the values of parameters obtained from the project PR2 are applicable to the estimation of the software quality in another project PR2. Unfortunately, we don't have any more generalized data yet.

4 Future Work

In this study, we have discussed only the design and coding activities. Thus, determining the values of parameters in the test and debug activities is an important future research work. Additionally, we should contrast our approach for simulation and prediction with other approach[1].

References

[1] L. C. Briand, K. E. Emam, B. Freimut and O. Laitenberger: ``Quantitative evaluation of capture-recapture models to control software inspections,'' Proc. 8th International Symposium on Software Reliability Engineering, pp.234--244, 1997.

[2] S. Kusumoto, O. Mizuno, Y. Hirayama, T. Kikuno, Y. Takagi and K. Sakamoto: ``A new software project simulator based on generalized stochastic petri-net,'' Proc. 19th International Conference on Software Engineering, pp.293--302, 1997.


1. Author contact: Department of Informatics and Mathematical Science, Osaka University., 1-3 Machikaneyama, Toyonaka-city, Osaka 560-8531, JAPAN. Phone +81-6-850-6567. Fax: +81-6-850-6569. E-mail: o-mizuno@ics.es.osaka-u.ac.jp