Phase Distribution of Software Development Effort Ye Yang , Mei He

advertisement
Phase Distribution of Software Development Effort
Ye Yang1, Mei He1,2, Mingshu Li1, Q ing Wang1, Barry Boehm3
1Institute
2Graduate
of Software, Chinese Academy of Sciences, China.
University of Chinese Academy of Sciences, China.
3University
of Southern California, USA.
{ ye, hemei, mingshu, wq}@itechs.iscas.ac.cn, boehm@csse.usc.edu
ABSTRACT
Effort distribution by phase or activity is an important but often
overlooked aspect compared to other steps in the cost estimation
process. Poor effort allocation is among the major root causes of
rework due to insufficiently resourced early activities. This paper
provides results of an empirical study on phase effort distribution
data of 75 industry projects, from the China Software
Benchmarking Standard Group (CSBSG) database. The phase
effort distribution patterns and variation sources are presented,
and analysis results show some consistency in effects of software
size and team size on code and test phase distribution variations,
and some considerable deviations in requirements, design, and
transition phases, compared with recommendations in the
COCOMO model. Finally, this paper discusses the major findings
and threats to validity and presents general guidelines in directing
effort allocation. Empirical findings from this study are beneficial
for stimulating discussions and debates to improve cost estimation
and benchmarking practices.
Categories and Subject Descriptors
D.2.8 [Metrics]: process metrics and product metrics.
D.2.9 [Software Engineering]: Management–Cost estimation
General Terms
Management, Measurement.
Keywords
Cost Estimation, Effort Distribution, Phase Distribution,
Development Type, Estimation Accuracy, Effort Allocation.
1. INTRODUCTION
Cost estimation methods/techniques have been intensively studied
and evolved over the past few decades. Researchers employ
different methods, such as parametric modeling, knowledge-based
modeling, fuzzy logic, dynamic modeling, neural networks, or
case-based reasoning [1, 2], to increase general estimation
accuracy and improve estimation capability with respect to
emergent development paradigms, such as COTS or open sourcePermission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that
copies bear this notice and the full citation on the first page. To copy
otherwise, or republish, to post on servers or to redistribute to lists,
requires prior specific permission and/or a fee.
ESEM’08, October 9-10, 2008, Kaiserslautern, Germany.
Copyright 2008 ACM 978-1-59593-971-5/08/10...$5.00.
based development [3, 4]. However, despite the increasing trend
of amount and varieties of estimation methods, it remains a great
challenge for software projects to be “successfully completed”
according to the 29% success rate of year 2004 reported by
Standish group [5].
In examining the assumptions and construction of typical cost
estimation methods [6-11, 12], two limitations are often the major
impediment for software project to meet the success criteria, i.e.
on time, within budget, and with originally-specified
functionalities. On one hand, limited progress has been made to
fully understand characteristics of emergent development
paradigm, as well as its implications to cost estimation. This
consequently adds lots of complication factors in making processoriented decisions in early project phases. On the other hand, even
with the classic waterfall development process, there is very
limited research effort towards analyzing and understanding root
causes of variations in effort distribution patterns.
Effort distribution by phase or activity is an important but often
overlooked aspect compared to other steps in the cost estimation
process. Poor effort allocation is among the major root causes of
rework due to insufficiently resourced early activities.
Distribution of effort in software engineering process has been the
basis for facilitating more reasonable software project planning,
and is provided as one of the major functionalities in most
estimating or planning methods. A general form of such basis is a
breakdown structure of the total estimate over different life cycle
phases or activities, with corresponding distribution percentage
numbers for each phase/activity.
As the rapidly increasing number of estimation methods and tools
becoming available, practitioners are often left with even greater
difficulty and confusion in making cost estimation and
distribution given large variation in the lifecycle phases/activities
covered in each method. Many software practitioners are facing
insufficient planning support when handling a particular project
conditions, and solely relying on Rule of Thumb or expert
judgment to handle project phase effort planning as this is only
feasible approach available to them [13]. Compared with a total
estimate, it is more important to develop an accurate phase-based
estimation for software development process in order to facilitate
appropriate and strategic resource planning.
The paper presents empirical analysis results on phased effort data
of 75 industry projects, from the China Software Benchmarking
Standard Group (CSBSG) [26] database. The analysis investigates
the general effort distribution profiles of different development
type, software size, business area, and team size. The study also
concludes guidelines on how to take the most significantly
influential factors into consideration when making effort
distribution decisions. Such results are beneficial to guide
software engineers in the effort estimations process and help
project managers in better allocating of resources which could
meet specific project needs.
providing more relevant effort distribution guidance to meet
specific project needs compared to the original COCOMO 81
model.
The reminder of the paper is structured as follows: section 2
introduces an overview of related work; section 3 describes the
objective, subject, and approach of the study; section 4 presents
major results of phase effort distribution profiles on the 75
industry projects; section 5 discusses the results, and section 6
concluded the paper with directions for future work.
One major cause of the lack of phase distribution data is because
of large variation in the lifecycle phases/activities defined in many
leading estimation methods. This complicates the lifecycle
concept synthesizing, model usage, data collection and analysis,
as well as cost model calibration. Table 1 summarizes the
comparison among phase coverage of several leading estimation
models.
2. OVERVIEW OF RELATED WORK
Table 1. Comparison of phase definitions in different model
Empirical assessment of industrial software development project
data, as an integral part of many effort distribution studies, has led
to the production of several well-known and widely adopted bases
to guide software estimation practices. In his seminal work to cost
estimation field, Norden [14] observed the Rayleigh Curve to be a
good staffing level approximation to most hardware development
projects. Though it has been criticized for its inapplicability in
software development projects due to the slow early build-up and
the long-tail effects, Rayleigh distribution has influenced on the
effort distribution mechanisms in many later models, such as the
COCOMO model [6, 11] and the SLIM model [15]. Based on
further empirical studies on effort distribution data, Boehm
presented the waterfall phase/activity breakdown quantities in the
COCOMO model [6, 11], and Krutchen concluded the lifecycle
effort/schedule distribution structure used by the Rational Unified
Process (RUP) [12].
The COCOMO 81 model’s [11] way of handling phase
distribution is to provide a distribution scheme consisting of ratios
for every development phase (i.e. product design, code,
integration and test, for the waterfall processes), approximating
the Rayleigh curve. Furthermore, it defines three development
modes, five levels of project scale, phase-sensitive effort
multipliers to help derive more accurate allocation decision with
respect to specific project settings. For example, COCOMO
model suggests that more development focus should be placed on
integration and test phase as the software size grows (i.e. 16% for
small projects and 25% for large projects) [6], and less focus to be
given to the code phase as the software size increases (i.e. 68% for
small projects and 59% for large projects). Meanwhile, the phasesensitive effort multipliers enable the estimation to be performed
on a more accurate, phase-wise basis, by tracking down the
influences of different effort multiplier ratings on phase
distribution variation. This offers an alternative to adapt the basic
distribution scheme to a better-fitted one according to a particular
project situation. However, the application of the detailed
COCOMO model is a rather complex procedure to produce the
forms and tables following strict steps, which requires intensive
project knowledge upfront.
The COCOMO II [6] model unifies the phase-sensitive effort
multipliers to be the same for all development phases for several
considerations. Simplification of model usage and lack of detailed
COCOMO calibration data are the two major reasons. The
COCOMO II extends the COCOMO 81 model to include the
“plans and requirements” and “transition” phases into its waterfall
lifecycle effort distribution scheme, and a MBASE/RUP
phase/activity distribution scheme adopted from [12]. One
drawback of this simplification is the lack of flexibility in
Model
The phases (effort distribution percentages)
covered in different models
COCOMO
81 [11]
Plan and requirement, preliminary design,
detailed design (25%), code (33%), Integration
& Test (25)
COCOMO
II [6]
Waterfall distribution scheme: Plan and
requirement (7%), preliminary design (17%),
detailed design (25%), code (33%), Integration
& Test (25), deployment & maintenance (12%);
MBASE/RUP
distribution
scheme:
Inception(6%),
Elaboration(24%),
Construction(76%), Transition (12%)
RUP [12]
Inception(5%),
Elaboration(20%),
Construction(65%), Transition(10%)
COCOTS
[6]
Assessment, Tailoring, Gluecode&Integration.
No unified distribution guideline
SLIM [15]
Concept Definition, Requirement & Design,
Construct & Test, Perfective Maintenance
(distribution percentage not available)
SEERSEM [17]
Early specification, design, development,
delivery & maintenance (distribution percentage
not available)
One the other hand, while traditional methods are more focused
on the improvement of general estimation accuracy [6, 18], a
number of recent studies start to investigate different aspects of
effort distribution patterns. Heijstek and Chaudron [10] reported
empirical data on effort distribution from projects employed
model-based development practices, and confirmed the similarity
between the reported effort distribution and the original RUP
hump-chart [12]. Milicic and Wholin [13] studied characteristics
affecting estimating accuracy and proposed a lean approach to
improve estimation based on distribution patterns of estimation
errors. Yiftachel et. al. [18] developed an economic model for
optimal allocation of resources among development phases. Other
researchers also studied on determining optimal effort distribution
across lifecycle phases based on defect-introduction and defectslippage considerations [19, 20]. However, few of these studies
have performed a comprehensive analysis of phase effort
distribution patterns and its possible causes. Consequently,
notable inconsistency exists in results from different researchers
regarding phase distribution patterns even for the same
development life cycle, RUP, as concluded in [10].
Meanwhile, communications and discussions with estimation
experts and practitioners at the COCOMO community indicates
an increasing interests in the needs for more phase-sensitive
distribution facility than what are available now from COCOMO
II default schemes. All this confirms our motivations of this study.
3. OBJECTIVE, SUBJECT AND
APPROACH OF THE STUDY
3.1 Objective of the study
The objective of this study is to perform extensive data analysis
towards developing a more in-depth understanding on what
factors impact on the degree of intensity of different development
phases, and eventually facilitating strategic planning through more
reasonable phase effort prediction. Concluded from previous
studies on ISBSG[21, 22], we focused on four project factors
including development life cycle model, development type, size
of the software, and team size, trying to derive preliminary
answers to our objective. Hence, the central research questions are
formulated as:
1)
What does the overall phase distribution profile of
development effort look like?
2)
Is there a causal relation between difference development
life cycles and phase effort distribution?
3)
Is there a causal relation between phase distribution pattern
and development type, e.g. new development or
enhancement?
4)
Is there a causal relation between phase distribution pattern
and actual software size?
5)
Is there a causal relation between phase distribution pattern
and maximum development team size?
Code
Code, Unit Test, Integration
Test
System Test
Transition
Installation, Transition,
Training, Support
Data collection. Firstly, the CSBSG staff sent questionnaire to
organizations. The electronic questionnaire has the capability to
check some error automatically, such as spelling error and data
inconsistency. Then, after the organization sent back the data to
CSBSG, a special expert group checks the data quality again and
confirms it is eligible to put into the CSBSG database. During this
procedure, there is some specialized focal contact personnel to
connect with the organization and the expert group, and the
information of the organization is hidden in the data submitted to
the expert group; the contact person also reacts when some data
problem is founded.
Data Cleaning. Due to the tight schedule of the data collection
process, there are many phase-level attributes unreported, such as
predicted and actual effort of each development phase. Therefore,
for the purpose of our study, we only make use of a subset of the
CSBSG database with data on our focused attributes. The
attributes and data cleaning steps are summarized in Table 3. Next
we will briefly introduce the data cleaning steps.
Table 3a Summary of the minimum set of attributes
considered in the study
Metric
Size
Effort
Plan phase effort
Empirical data used in this study is from the China Software
Benchmarking Standard Group (CSBSG) [16]. The CSBSG was
established in Jan. 2006 under the support of Chinese government
and software industry association, to advocate and establish
domestic benchmarking standards for system and software process
improvement in Chinese software industry. The establishment of
CSBSG database is consistent with the ISBSG database [21], and
each data point is defined as over 1000 product and process
metrics. The CSBSG dataset we used contains 1012 software
development project data points from 141 organization and 15
geographical regions.
Reqt’s phase effort
Table 2 Activities defined in the CSBSG phases
Phase
Activities Included
Plan
Plan, Preliminary Requirement Analysis
Requirement
Requirement Analysis
Design
Product Design, Detailed Design
User
3.3 Data Collection and Cleaning
3.2 Subject of the study
Development phases defined in CSBSG database roughly follow
the waterfall model, with a comprehensive list of guidelines for
individual data submittal organization to match their own process
and transform data appropriately. The following table lists the
CSBSG development phases and major activities included in each
phase.
Acceptance Test,
Design phase effort
Code phase effort
Test phase effort
Transition phase
effort
Development
life
cycle
Team Size
Development Type
Unit
SLOC
PersonHour
PersonHour
PersonHour
PersonHour
PersonHour
PersonHour
PersonHour
Nominal
Person
Nominal
Description
Total Lines of Code
Summary Work Effort
Work Effort of plan phase
Work Effort of reqt’s phase
Work Effort of design phase
Work Effort of code phase
Work Effort of test phase
Work Effort of transition phase
Waterfall, iterative, rapid
prototyping
Maximum size of the development
team
New development, Enhancement,
Re-development
Table 3b The process of data selection
Step
ID
1
# of proj.
excluded
2
14
# of proj.
remained
115
101
Reason for exclusion
Do not contain phased-related
effort records
there are two or more phases’
effort data missing
3
1
the sum of its 5 recorded phased
effort is greater than the total effort
if only 1 of the 5 phase effort value is missing, it is filled up by
subtracting the other 4 phases from the total effort
25
75
one or more than one phase’s effort
data recorded as zero, and they are
excluded and considered to not
cover the whole life-cycle phases
4
5
100
At first, 115 data points containing phased-related effort records
were extracted out of the whole CSBSG dataset. Among these, 14
data points were excluded because there are two or more phases’
effort data missing. Furthermore, 1 project is identified to be bad
data and excluded, because the sum of its 5 recorded phased effort
is greater than the total effort. Additionally, there are 25 projects
with one or more than one phase’s effort data recorded as zero,
and they are excluded sine the records are considered to not cover
the whole life-cycle phases. Finally, 75 projects with complete
phased effort values are included in this research.
4. RESULTS
The 75 projects came from 46 software organizations distributed
in 12 regions across China, and the largest number of projects
from the same organization is 8. Table 4a at below summarizes
the project data on size and effort of our dataset. Note the
significant difference between the mean and median of the size
metric is mainly due to 1 very large project whose size is greater
than 1000KSLOC.
4.1 Overall Phase Distribution Pattern
Table 4b summarizes the median, mean, and standard deviation of
effort distribution percentage for each of the five CSBSG
development phases after the combining of the original plans and
requirements phases.
Table 4b Overall phase distribution profile
Phase Plan&Req.
1.82%
Min
35%
Max
15.94%
Median
16.14%
Mean
8.62%
Stdev
Design
0.62%
50.35%
14.21%
14.88%
8.91%
Code
6.99%
92.84%
36.36%
40.36%
16.82%
Test
4.24%
50.54%
19.88%
21.57%
11.04%
Trans.
0.06%
36.45%
4.51%
7.06%
7.06%
Though it is generally believed that “major variations in both
waterfall and RUP phase distribution quantities come in the
phases outside the core development phases” [6], the CSBSG data
shows that code and test are the two development phases with
greater variation than other phases. For example, the project with
the least design phase effort distribution quantity, i.e. 0.62%, is
also the same project with the greatest percentage numbers in
code phase, i.e. 92.84%.
To examine the differences of individual phase distribution
between CSBSG dataset and COCOMO II recommendations, we
compare the mean distribution profile of CSBSG dataset with the
COCOMO II waterfall distribution quantities.
Table 4a Summary of the project data
Median
Min
Max
Size (KSLOC)
136.4
45.7
0.77
2340
Effort (Person-Hours)
8969
4076
568
134840
45%
40%
35%
Effort %
Mean
To illustrate the stability of the variation associated with the
dataset, scatter-plot of the log-transformed size and effort is given
in Figure 2. It indicates a significant linear relationship between
them (significance level is based on p-value <0.01), and the Rsquare of the linear regression line in the chart is 0.5231.
30%
25%
20%
15%
10%
5%
0%
Plan&Req.
Design
Code
T est
T rans.
Phase
14
R2 = 0.5231
12
COCOMO II
CSBSG
Ln(Effort)
10
Figure 3. Comparison of overall waterfall distribution
quantities between CSBSG and COCOMO II datasets
8
6
4
As shown in Figure 3, distribution similarities appear only in the
Test and Transition phases. Some significant differences between
the two datasets include that:
2
0
-2
0
2
4
6
8
10
1)
a greater emphasis on Plans and Requirements phase in
CSBSG dataset: 16.14% of overall development effort,
compared to 6% in COCOMO II;
2)
the design phase is dramatically less resource-allocated in
CSBSG projects (i.e. 14.88%) than COCOMO II projects
(35% in average); and
Ln(Size)
Figure 2. Scatterplot of total development effort against
software size after log-transformation.
3)
the average distribution percentage for Code phase (40.36%)
in CSBSG projects is much higher than that (27.8% in
average) in COCOMO II projects.
One possible explanation is that the great distribution percentage
for code phase in CSBSG database may have resulted from some
projects’ insufficiently resourced design phase, which might cause
frequent rework in code phase.
4.2 Development life cycle
Excluding 1 project with bad data on development life cycle with
vague description, our dataset consists of projects employed three
different development life cycles: waterfall (57 projects), iterative
(15 projects), and rapid prototyping (2 projects). Due to the small
sample size of rapid prototyping projects, we exclude it from
further analysis. Figure 4 illustrates the comparison of phase
distribution profiles of waterfall and iterative models using
median value.
Effort%
A further examination is also performed to check the average
software size of projects employing each of these three
development life cycles. The results show that the average
software size for these three groups is: 103KSLOC, 259KSLOC,
and 85KSLOC for waterfall, iterative, and rapid prototyping
respectively. It indicates that iterative is the mostly deployed life
cycle model for ultra large projects.
4.3 Development Type
Development type is another factor that might affect phased effort
distributions. Three software development types are pre-defined
by the CSBSG database, namely new development (New), redevelopment (ReDev), and enhancement (Enhance), according to
the following definitions:

New development: where a software product was developed
and introduced for the first time to satisfy specific customer
needs;

Re-development: where new technologies was incorporated
in replacing or upgrading an existing software product in
use;

Enhancement: where new functionality requirements were
designed and implemented to modify or extend an existing
software system.
Effort%
50%
45%
40%
35%
30%
25%
20%
15%
10%
5%
0%
since the concept of phase in iterative or rapid prototyping
development is not as clear as that in waterfall processes, data
collection process is likely to involve greater participant bias in
matching and transforming data from their own process
breakdown structure to CSBSG process structure.
50%
45%
40%
35%
30%
25%
20%
15%
10%
5%
0%
Plan&Req.
Design
Code
Test
Trans.
Phase
Plan&Req.
Design
Code
Test
Re-Dev
Trans.
Phase
Waterfall
New Dev
Enhance
Figure 5 Comparison among difference development types
Iterative
Figure 4 Comparison among different process models
Table 5 Summary of phase distribution differences from Mean
Effort% for whole dataset by development type
LifeCycle
Model
N
Plan &
Req.
Design
Code
Waterfall
Iterative
57
15
0.00%
-2.38%
1.85%
-1.45%
-0.88%
7.42%
Test
Each of the 75 data points in our study contain a development
category identified by the project team based on the above
definition. The median effort ratios of each phase for three
development type projects are illustrated in Figure 5, and the
phase distribution deviation from the total average is listed in
Table 6. The numbers of projects for the three groups are: 6
(ReDev), 53 (New), and 16 (Enhance).
Trans.
0.17% -0.99%
-1.60% 2.67%
The phase distribution deviation from the total average is listed in
Table 5. Iterative processes, most suitable for complex large scale
projects in CSBSG dataset, employ less effort percentage in plan
and requirement, design, and test phases. It is actually due to
iterative testing and integration effect on the basis of multiple
iterations. This can also explain the highest distribution
percentage of iterative development in code phase, because the
iterative integration effort is included into code phase, according
to CSBSG phase definition discussed in section 3.2. However,
Table 6 Summary of phase distribution differences from Mean
Effort% for whole dataset by development type
Dev type
N
Plan &
Design
Req.
ReDev
New Dev
Enhance
6
53
16
-3.64%
-0.44%
2.82%
-3.96%
-0.12%
1.88%
Code
Test
Trans.
8.95%
2.20%
-10.67%
-4.96%
-1.07%
5.40%
3.59%
-0.58%
0.56%
New development and enhancement projects seem to have similar
distributions in most of the development phases, except that new
development projects spend more effort (roughly 13% more) in
Code phase, while enhancement projects have greater focus on
A further examination on the estimation accuracy of phase
effort distribution in the three development types shows that the
Transition phase has been overestimated in all projects as shown
in Figure 6. The accuracy measure used is the relative error (RE)
percentage, which is calculated by the equation of RE =
(Estimated phase effort – Actual phase effort)/Actual phase effort,
for each individual development phase. Further investigation is
needed to explain the overestimation phenomena in transition
phase in CSBSG dataset.
28
30
24
25
# of Projects
Test phase (about 6.5% more). This is because enhancement
development involves through system testing even though the
modifications happen on a smaller code base. At the meantime,
re-development type has the greatest distribution emphasis on
Code phase. A possible reason is that re-development projects
involve the migrating of existing system to a different technology,
but not requirements or design by its definition.
20
15
12
10
6
4
5
1
0
<2
2~8
8~32
32~128
128~512
>512
KSLOC
Figure 7 Distribution of software size
50%
40%
Phase Error
30%
20%
10%
0%
-10%
Plan &
Req.
Design
Code
T est
T rans.
-20%
Phase
ReDev
New
Enhance
Figure 6. Comparison of estimation accuracy
The data also indicates that new development projects have much
lower estimation error and hence more easier to estimate than the
other two types for almost all phases, except the underestimation
for the test phase. Moreover, design and code phases have been
underestimated for the re-development projects.
First of all, all the projects are divided into six groups: Small,
Intermediate, Medium, Large, Ultra-Large, and Super-Ultra-Large
according to the ranges adapted from COCOMO model, as shown
in Figure 7. About 69% of projects in our dataset are medium to
large scale projects, with 24% of projects are ultra-large scale or
even bigger, while the small project ratio is relative as low as 7%.
The data indicates that software size data in CSBSG dataset
roughly follows a normal distribution after taking logtransformation, consistent with the distribution reported in the
ISBSG dataset [21].
Figure 8a depicts the average phase distribution of each size
group. The CSBSG data does not show a clearly consistent
decreasing trend in design and code phase, or an increasing trend
in integration and test phase, as software size increase from
smaller to larger scales. However, such trends are only observed
between ultra-large group and super-ultra-large group. One
possible reason might be that projects in CSBSG dataset were
mostly completed in the past 3 years supported by advanced
programming technologies, and it is likely for the size data to take
the automatically generated code into account. However, this may
again challenge on the validity of using LOC as the unit for
effective software size.
4.4 Software Size
It is noted that size metrics used in our study is Lines of Code. In
this dataset, only 1 project recorded its size in Function Point. At
the same time, another 3 projects from the same organization as
this project are found, and they also use the same primary
programming language, Java; moreover, these 3 projects have
size records in both FP and LOC, and the ratio of LOCs per FP
are all 53, which is consistent with the transformation ratio
reported in SPR documentation [23]. In that case,
transforming the size of this project into LOC metrics is
considered to be reasonable.
60%
50%
40%
30%
20%
10%
0%
P&R
2 KLOC
8 KLOC
Design
32 KLOC
Code
Test
128 KLOC
512 KLOC
Trans.
>512 KLOC
Figure 8a Comparison among difference software sizes scale in
LOC
4.5 Team Size
60%
Maximum team size is another metric collected in CSBSG dataset.
It is also reported in [24] that the maximal number of members
50%
involved in the whole project life-cycle is easier to measure
than average team size. An analysis of its influence on phase
distribution is performed to explore possible causality. Since one
project contains missing data on max team size, the other 74
projects are included in this analysis. The average phase
distribution ratio results are depicted in Figure 9. And the phase
distribution differences from the total average value in each group
are listed in Table 8.
40%
30%
20%
10%
45%
0%
40%
Plan & Req.
Design
XXS
M1
Code
M2
L
Test
XL
XXL
Trans.
30%
XXXL
Figure 8b Comparison among difference software sizes in FP
scales
We then considered to use ofFunction Point (FP) as alternative
software size metric. Following backfiring ratios in [23] and FP
sizing scales in [25], we re-group all 75 projects into 7 groups,
from “Extra-extra-small” to “Extra-extra-extra-large”. The effort
distribution comparison of the 7 groups is illustrated in Figure 8b.
According to this categorization, the phase distribution variations
in each group are listed in Table 7.
Table 7 Summary of phase distribution variation by software
size in FP scales
Size
(KLOC)
XXS
M1
M2
L
XL
XXL
XXXL
Size
(KLOC)
XXS
M1
N
M2
L
XL
XXL
XXXL
1
Plan &
Req.
7.72%
-1.18%
2.40%
1.47%
-5.90%
-5.32%
0.16%
Plan &
Req.
7.72%
11
-1.18%
27
2.40%
17
1.47%
9
-5.90%
6
-5.32%
4
0.16%
1
11
27
17
9
6
4
N
Design
Code
9.42%
-0.66%
0.74%
-0.01%
-0.55%
-3.66%
1.21%
-18.88%
-3.29%
-4.25%
-0.08%
12.83%
15.74%
-9.69%
35%
Test
Trans.
-2.56%
6.55%
2.74%
-2.64%
-5.69%
-4.87%
-4.56%
4.30%
-1.42%
-1.63%
1.27%
-0.69%
-1.89%
12.87%
Design
Code
Test
Trans.
9.42%
0.66%
0.74%
0.01%
0.55%
3.66%
1.21%
-18.88%
-2.56%
4.30%
-3.29%
6.55%
-1.42%
-4.25%
2.74%
-1.63%
-0.08%
-2.64%
1.27%
12.83%
-5.69%
-0.69%
15.74%
-4.87%
-1.89%
-9.69%
-4.56%
12.87%
The data shows that as the software size grows from small to
medium, more development effort should be allocated to code and
test phases; as the software size grows from medium to large,
more development effort should go to plan and requirement and
code phases; when the software size is extra large, more attention
should be paid to design, code, and test phases.
25%
20%
15%
10%
5%
0%
P&R
Design
5
Code
10
15
Test
Trans.
>15
Figure 9 Average phase distribution for different team size
Table 8 Summary of phase distribution differences from Mean
Effort% for whole dataset by team size
Team
size
N
5
10
15
>15
31
27
13
3
Plan &
Req.
2.22%
-1.45%
-2.26%
-2.76%
Design
Code
Test
Trans.
-0.90% 0.16%
0.23%
0.51%
0.66% -0.15%
1.27%
0.64%
-1.85%
0.30%
3.16%
3.52%
0.36%
0.40%
-1.42%
-2.67%
The data indicates a consistent relationship between maximum
team size and phase distribution pattern. It shows a
distinguishable emphasis on Test phase with the growth of team
size..
5. ANALYSIS
The discussions in previous section contain some indications to
the research questions. However, to further elaborate more
statistical proofs about factors influencing phased distribution and
their relation to the phase distribution patterns, we performed
more statistic analysis on our dataset.
5.1 Factors Influencing Phased Distribution
ANOVA analysis is used to examine to what a degree the variance
of each phase effort distribution percentage is explained by class
variables, i.e. development type, software size, and team size. The
variable of development life cycle was excluded from this study
because possibly biased data from projects that can not easily
mix-match their non-waterfall-based data into CSBSG structure,
as well as its correlation with software size, as discussed in
section 4.2.
The data summarized in Table 9 shows the degree of variance
explained by an influencing factor for the variation in individual
phase effort distribution. For example, it shows that FP software
size is the major metric to be considered when making
distribution decisions for all development phase with the highest
values in all phases. It also indicates that FP is a stronger
predictor in measuring effective software size and predicting
development effort. This confirms the software-scale-sensitive
distribution scheme in COCOMO model. Development type is
another major factor to be considered in determining appropriate
adjustment for code and test phases. However, team size factor is
a less significant factor to influence effort distribution on all
phases.
Table 9 Summary of ANOVA results
Phase
Distribution
DevType
Software size
FP scale
LOC scale
5)
CSBSG dataset shows that for enhancement type of projects,
percentage of development effort in code phase decreases by
10.67%, and that for test phase increases by 5.4%.
6)
CSBSG dataset indicates that as software size dramatically
grows, distribution has an intensive focus on both code and
test phases.
7)
CSBSG dataset indicates that team size is not a significant
factor which may cause phase effort distribution variation.
However, it shows a distinguishable emphasis on Test phase
with the growth of team size
5.3 Threats to Validity
Two major threats to external validity of our study are:
Team
size
P&R%
3.96%
14.80%
13.65%
5.50%
Design%
2.57%
3.67%
3.36%
0.62%
Code%
12.22%
7.93%
20.56%
0.02%
Test%
7.47%
7.16%
14.59%
3.05%
Trans.%
2.72%
9.36%
22.45%
1.52%
Through such analysis, parametric model can be developed in
order to sophisticatedly consider these influencing factors, and
predict appropriate amount of adjustment to be made against the
nominal quantities offered by current methods for estimation and
benchmarking purposes.
5.2 Guidelines for Phase Allocation
Though it is infeasible to deploy a unified distribution scheme
over different types of projects, analyzing empirical effort data
helps to develop understanding to variations and possible causes
of phase effort distribution, identify most frequently presented
effort distribution patterns, and conclude insightful suggestions to
lead to improved project planning practices. Concluded from the
observations and analysis results of this study, the following
general guidelines are provided for further discussion, adoption,
and validation by software estimation and management
practitioners, esp. in Chinese software industry:
1)
Analysis on determining reasonable phase effort distribution
quantities should be performed in the cost estimation
process.
2)
CSBSG data analysis shows a waterfall-based phase
distribution scheme as: 16.14% for plans and requirements
phase, 14.88% for design phase, 40.36% for code phase,
21.57% for test phase, and the other 7.06% for transition
phase.
3)
CSBSG data shows that iterative development projects have
allocation intensity on code (+7.42%) and transition
(+2.67%) phases compared to median values of the overall
dataset.
4)
FP-based software size and development type are two major
factors to be considered when adjusting effort allocation.
1)
Data representativeness. The dataset used in our study was
pre-collected by CSBSG through its member organizations.
Hence, the data may represent software organizations with
above average performance, because otherwise they are
rarely willing to submit data even if they have collected such
historical records.
2)
Data quality. On the other hand, the data collection process
is likely to bring in individual biases or participant error
which may involve mis-reporting or double counting issues.
Even though we have gone through strict data clean and
exclusion criteria, this still remains a big risk to the
trustworthiness of this study.
The major threat to internal validity is the generalization of the
empirical findings. Given that all projects are from domestic
China mainland, in which many external and internal conditions
might differ greatly from oversea projects, the findings will be
more reliable and appropriate for projects from a similar setting..
In addition, for the issue of sizing metrics, one may question the
way how each organization count the lines of code. In fact, we
cannot figure out that in detail, and it really leaves us a question
expected to be further explore in the future work. However, as we
know, since the scare resource of expert in Function Point Method,
most organizations still choose the relative direct and original
counting method to measure the software size.
Another issue has to do with the interpretations following the
analysis on each influencing factor. Most interpretations are
compared with COCOMO findings and only with respect to
individual factors, i.e. development life cycle, development type,
software size, and team size. Possible correlations among multiple
factors are not studied and may lead to counter-intuitive findings.
Moreover, analysis and exclusion of potential outliers from the
subject is not included in the current study. This could also reduce
the validity of this study.
6. CONCLUSION AND FUTURE WORK
Poor effort estimation and allocation comes from lack of
recognition to process variations and lack of understanding to
process effort distribution patterns. However, limited amount of
studies are found to date to develop in-depth exploration what
factors cause the variations in effort distribution.
The work performed within the study aimed to examine the effort
distribution profile using 75 project data from a certain number of
Chinese software organizations to gain additional understanding
about the variations and possible causes of waterfall-based phase
effort distribution. The phase effort distribution patterns were
compared with that from the COCOMO model, and further
analysis examines the relationships between the distribution
patterns and some significant factors including development life
cycle, development type, software size, and team size. It identifies
distinguishable phase effort distribution similarities and
differences, and provided guidelines for improving future
estimation and allocation practices. Such empirically-based
information offers various beneficial outcomes in developing
better understanding to development phase focuses and predicting
cost estimation and phase allocation.
Future work includes investigation and extension of current study
to address the following issues:
[4] Feller, J. and Fitzgerald, B.: A Framework Analysis of The
Open Source Software Development Paradigm.
Proceedings of the 21st International Conference in
Information Systems (ICIS 2000). (2000), 58-69.
[5] The Standish Group. 2004 the 3rd Quarter Research Report,
(2004). http://www.standishgroup.com
[6] Boehm, B.W., et al.: Software Cost Estimation with
COCOMO II. Prentice Hall, NY(2000)
[7] Reifer, D.: Industry software cost, quality and productivity
benchmarks, software. Tech News 7(2) (July 2004)
[8] Kroll, P.: Planning and estimating a RUP project using
IBM rational SUMMIT ascendant. Technical report, IBM
Developerworks (May 2004)

Continuing on similar analysis to search for other significant
influencing factors, possible candidate including
requirement volatility and business area;

[9] QSM Inc.: The QSM Software Almanac: Application
Development Series (IT Metrics Edition) Application
Development Data and Research for the Agile Enterprise.
Quantitative Software Management Inc., McLean,
Virginia, USA (2006)
Strengthening the findings through more thorough statistical
analysis including interrelationship modeling among
multiple factors and proper outlier identification and
handling;
[10] Heijstek, W. and Chaudron, M. R. V.: Effort distribution in
model-based development. 2nd Workshop on Model Size
Metrics (2007)

Using linear regression to construct a parametric model of a
consolidated set of predicting factors to calculate phase
sensitive effort distribution quantities for a given project
setting;

Extending the scope of current analysis to cover phase
schedule distribution analysis.
7. ACKNOWLEDGMENTS
We would like to thank the Chinese Systems and Software
Process Improvement Association for their data support of this
study and the anonymous reviewers for their constructive
suggestions.
This work is supported by the National Natural Science
Foundation of China under grant Nos. 60573082,90718042; the
National Hi-Tech Research and Development Plan of China under
Grant No. 2006AA01Z182, 2007AA010303; the National Key
Technologies R&D Program under Grant No. 2007CB310802.
8. REFERENCES
[1] Boehm, B. and C. Abts, Software Development Cost
Estimation Approaches-A Survey. Annals of Software
Engineering, 2000. 10(1-4): p. 177-205.
[2] Jorgensen, M. and M. Shepperd, A System Review of
Software Development Cost Estimation Studies. IEEE
Transaction on Software Engineering, 2007. 33(1): p. 3353.
[3] Basili, V.R.: Software development: a paradigm for the
future. Proceedings of the 13th Annual International
Computer Software and Application Conference, (1989)
471-485.
[11] Boehm, B.W.: Software Engineering Economics. Prentice
Hall, (1981)
[12] Kruchten, P.: The Rational Unified Process: An
Introduction. Addison-Wesley Longman Publishing Co.,
Inc., Boston, MA, USA (2003)
[13] Wohlin, C.: Distribution Patterns of Effort estimation.
EUROMICRO Conference (2004)
[14] Norden P.V.: Curve Fitting for a Model of Applied
Research and Development Scheduling. IBM J. Research
and Development, Vol. 3, No. 2, (1958), 232-248.
[15] Putnam, L. and Myers, W. (1992), Measures for
Excellence, Yourdon Press Computing Series.
[16] He, M., et al.: An Investigation of Software Development
Productivity in China. ICSP 2008, (2008) 381-394
[17] SEER-SEM. http://www.galorath.com/index.php
[18] Peleg Yiftachel, et al.: Resource Allocation among
Development Phases: An Economic Approach. EDSER’06,
May 27, 2006, Shanghai, China, (2006) 43-48
[19] Huang, L., Boehm, B.: Determining how much software
assurance is enough?: a value-based approach. In: EDSER
’05: Proceedings of the seventh international workshop on
Economics-driven software engineering research, NY,
USA, ACM Press (2005) 1–5
[20] Yiftachel, P., Peled, D., Hadar, I., Goldwasser, D.:
Resource allocation among development phases: an
economic approach. In: EDSER ’06: Proceedings of the
2006 international workshop on Economics driven
software engineering research, New York, NY, USA, ACM
Press (2006) 43–48
[21] Jiang, Z., Naudé, P. and Comstock, C.: An investigation on
the variation of software development productivity.
International Journal of Computer, Information, and
Systems Sciences, and Engineering, Vol. 1, No. 2 (2007)
72-81
[22] ISBSG Benchmark Release 8. http://www.isbsg.org
[23] SPR Programming Languages Table 2003, Software
Productivity Research. ttp://www.spr.com
[24] Agrawal, M., Chari, K.: Software Effort, Quality and Cycle
Time: A Study of CMM Level 5 Projects. IEEE
Transactions on Software Engineering, Vol. 33, No. 3
(2007) 145-156
[25] Software Measurement Services Ltd. ‘Small project’,
‘medium-size project’ and ‘large project’: what do these
terms mean?”
http://www.measuresw.com/library/Papers/Rule/RulesRelat
iveSizeScale%20v1b.pdf
[26] http://www.csbsg.org
Download