Close
About
FAQ
Home
Collections
Login
USC Login
Register
0
Selected
Invert selection
Deselect all
Deselect all
Click here to refresh results
Click here to refresh results
USC
/
Digital Library
/
University of Southern California Dissertations and Theses
/
Quantitative and qualitative analyses of requirements elaboration for early software size estimation
(USC Thesis Other)
Quantitative and qualitative analyses of requirements elaboration for early software size estimation
PDF
Download
Share
Open document
Flip pages
Contact Us
Contact Us
Copy asset link
Request this asset
Transcript (if available)
Content
QUANTITATIVE AND QUALITATIVE ANALYSES
OF REQUIREMENTS ELABORATION
FOR EARLY SOFTWARE SIZE ESTIMATION
by
Ali Afzal Malik
A Dissertation Presented to the
FACULTY OF THE USC GRADUATE SCHOOL
UNIVERSITY OF SOUTHERN CALIFORNIA
In Partial Fulfillment of the
Requirements for the Degree
DOCTOR OF PHILOSOPHY
(COMPUTER SCIENCE)
August 2010
Copyright 2010 Ali Afzal Malik
ii
Dedication
I dedicate this work to the One and Only Who has the most beautiful names.
iii
Acknowledgements
First and foremost, I thank the Almighty for giving me the ability to pursue
this research. Whatever good I possess is from Him alone. His blessings are
uncountable and priceless. Good health, caring family members, knowledgeable
mentors, cooperative colleagues, and generous sponsors are just a few of these
blessings.
My family’s love, care, and support has played a vital role in reaching thus
far. My late father taught me the value of education and instilled in me the desire to
strive for the best. My mother’s encouragement and moral support helped me to
overcome various obstacles in life. My elder brother took the lion’s share of
household responsibilities after my father passed away. This allowed me to give
undivided attention to my studies. My wife’s emotional and spiritual support has
provided the much-needed motivation to take this research to fruition.
I owe a lot to my research advisor and dissertation committee chair – Dr
Barry Boehm. His remarkable knowledge, vast experience, and good nature make
him one of the best mentors. Dr. Boehm’s expert advice and constructive criticism
have been invaluable in tackling this hard research problem. I am also indebted to
other members of my qualifying exam and dissertation committees i.e. Dr. Nenad
Medvidović, Dr. Bert Steece, Dr. Rick Selby, and Dr. Ellis Horowitz. Each of these
individuals has played an important role in refining this research.
A number of my colleagues have been instrumental in conducting this
research. Supannika Koolmanojwong, Pongtip Aroonvatanaporn, Dr. Ye Yang
iv
(ISCAS) and Yan Ku (ISCAS) have provided invaluable assistance in data
collection. Julie Sanchez (CSSE Administrator) and Alfred Brown (CSSE System
Administrator) have provided valuable support in a number of vital administrative
and technical maters.
Last, but certainly not the least, I thank my sponsors – Fulbright, HEC
Pakistan, and USAID – for giving me an opportunity to pursue graduate studies i.e.
MS and PhD degrees. Their comprehensive financial assistance has enabled me to
study at one of the most prestigious universities in the world i.e. USC.
v
Table of Contents
Dedication........................................................................................................................... ii
Acknowledgements............................................................................................................iii
List of Tables .................................................................................................................... vii
List of Figures.................................................................................................................... ix
Abbreviations...................................................................................................................xiii
Abstract............................................................................................................................. xv
Chapter 1 Introduction ........................................................................................................ 1
1.1 Problem Definition.................................................................................................... 1
1.2 Research Approach ................................................................................................... 3
1.3 Research Significance............................................................................................... 4
1.4 Dissertation Outline .................................................................................................. 5
Chapter 2 Related Work...................................................................................................... 7
2.1 Sizing Methods ......................................................................................................... 7
2.2 Sizing Metrics ........................................................................................................... 9
2.3 Requirements Elaboration....................................................................................... 13
Chapter 3 From Cloud to Kite .......................................................................................... 18
3.1 Experimental Setting............................................................................................... 19
3.2 Method .................................................................................................................... 23
3.3 Results..................................................................................................................... 33
3.4 Elaboration of Capability Goals.............................................................................. 38
3.5 Utility of Elaboration Groups ................................................................................. 40
3.6 Threats to Validity .................................................................................................. 43
Chapter 4 From Cloud to Clam......................................................................................... 45
4.1 Experimental Setting............................................................................................... 46
4.2 Method .................................................................................................................... 47
4.3 Results and Discussion ........................................................................................... 51
4.4 Requirements Elaboration of Commercial Projects................................................ 56
Chapter 5 Efficacy of COCOMO II Cost Drivers in Predicting Elaboration Profiles...... 59
5.1 Method .................................................................................................................... 60
5.2 Results..................................................................................................................... 62
5.3 Discussion............................................................................................................... 75
vi
Chapter 6 Comparative Analysis of Requirements Elaboration....................................... 78
6.1 Empirical Setting .................................................................................................... 78
6.2 Data Collection ....................................................................................................... 79
6.3 Results..................................................................................................................... 83
6.4 Comparison with Second Empirical Study............................................................. 87
6.5 Conclusions............................................................................................................. 89
Chapter 7 Determinants of Elaboration ............................................................................ 91
7.1 Stage 1 Cloud to Kite.............................................................................................. 91
7.2 Stage 2 Kite to Sea.................................................................................................. 94
7.3 Stage 3 Sea to Fish.................................................................................................. 95
7.4 Stage 4 Fish to Clam............................................................................................... 96
Chapter 8 Contributions and Next Steps........................................................................... 98
8.1 Main Contributions ................................................................................................. 98
8.2 Future Work.......................................................................................................... 100
Bibliography ................................................................................................................... 103
Appendix A Specification and Normalization of High-Level Requirements................. 108
A.1 Category vs. Instance ........................................................................................... 108
A.2 Aggregate vs. Component.................................................................................... 110
A.3 One-to-One........................................................................................................... 111
A.4 Main Concept and Related Minor Concept.......................................................... 112
Appendix B Multiple Regression Results for Small E-Services Projects....................... 115
B.1 First Stage of Elaboration..................................................................................... 115
B.2 Second Stage of Elaboration ................................................................................ 116
B.3 Third Stage of Elaboration ................................................................................... 116
B.4 Fourth Stage of Elaboration ................................................................................. 117
Appendix C COCOMO II Cost Drivers and Elaboration Profiles of SoftPM Versions. 118
C.1 COCOMO II Cost Driver Ratings........................................................................ 118
C.2 Results of Simple Regression Analyses............................................................... 120
vii
List of Tables
Table 1: Projects used for first empirical study 21
Table 2: Metrics 29
Table 3: Values of metrics for capability goals and capability requirements 33
Table 4: Values of metrics for LOS goals and LOS requirements 34
Table 5: Elaboration determinants 42
Table 6: Projects used for second empirical study 47
Table 7: Mapping 48
Table 8: Relevant artifacts 49
Table 9: Formulae for elaboration factors 51
Table 10: Elaboration factor sets for each project 52
Table 11: Summary of elaboration results 54
Table 12: Multi-level requirements data of large IBM projects 57
Table 13: Elaboration factors of large IBM projects 57
Table 14: Cost driver rating scale 60
Table 15: COCOMO II scale factor ratings 63
Table 16: COCOMO II product factor ratings 64
Table 17: COCOMO II platform factor ratings 65
Table 18: COCOMO II personnel factor ratings 66
Table 19: COCOMO II project factor ratings 67
Table 20: Correlation between
CG
CR
and COCOMO II cost drivers 69
viii
Table 21: Correlation between
CR
UC
and COCOMO II cost drivers 70
Table 22: Correlation between
UC
UCS
and COCOMO II cost drivers 71
Table 23: Correlation between
UCS
SLOC
and COCOMO II cost drivers 72
Table 24: COCOMO II cost drivers relevant at each elaboration stage 74
Table 25: Results of multiple regression analysis 75
Table 26: Requirements levels of SoftPM 79
Table 27: Multi-level requirements data of SoftPM 83
Table 28: Elaboration profiles 84
Table 29: Summary statistics of elaboration factors 86
Table 30: Comparison of summary statistics 88
Table 31: Determinants of elaboration 99
Table 32: Scale factor ratings 118
Table 33: Product factor ratings 119
Table 34: Platform factor ratings 119
Table 35: Personnel factor ratings 119
Table 36: Project factor ratings 119
ix
List of Figures
Figure 1: Cone of uncertainty 2
Figure 2: Sizing metrics 9
Figure 3: Cockburn’s metaphor illustrating refinement of use cases 14
Figure 4: SLOC/Requirement ratios of large-scale projects 16
Figure 5: Multiple requirements levels for large IBM projects 17
Figure 6: Partial software development process 22
Figure 7: Typical high-level capability goal with its low-level capability requirements 25
Figure 8: Typical high-level LOS goal with its low-level LOS requirement 26
Figure 9: Table of contents of OCD 27
Figure 10: Table of contents of SSRD 28
Figure 11: EF ranges defining different elaboration groups 31
Figure 12: Elaboration of capability goals into capability requirements 36
Figure 13: Elaboration of LOS goals into LOS requirements 37
Figure 14: Elaboration groups for capability goals 39
Figure 15: Data collection process 47
Figure 16:
CG
CR
distribution 52
Figure 17:
CR
UC
distribution 53
Figure 18:
UC
UCS
distribution 53
x
Figure 19:
UCS
SLOC
distribution 54
Figure 20: Elaboration of use cases to use case steps 55
Figure 21: Example scenario depicting overlaps amongst versions 80
Figure 22: Example scenario after removing overlaps amongst versions 81
Figure 23: Distribution of CG to CR elaboration factor 85
Figure 24: Distribution of CR to UC elaboration factor 85
Figure 25: Distribution of UC to UCS elaboration factor 85
Figure 26: Distribution of UCS to SLOC elaboration factor 86
Figure 27: Proportion of atomic capability goals 94
Figure 28: Proportion of atomic capability requirements 95
Figure 29: Proportion of alternative use case steps to main use case steps 96
Figure 30: EF(CG, CR) vs. PREC 121
Figure 31: EF(CG, CR) vs. FLEX 121
Figure 32: EF(CG, CR) vs. RESL 122
Figure 33: EF(CG, CR) vs. TEAM 122
Figure 34: EF(CG, CR) vs. PMAT 123
Figure 35: EF(CG, CR) vs. TIME 123
Figure 36: EF(CG, CR) vs. ACAP 124
Figure 37: EF(CG, CR) vs. PCAP 124
Figure 38: EF(CG, CR) vs. PCON 125
Figure 39: EF(CG, CR) vs. APEX 125
Figure 40: EF (CR, UC) vs. PREC 126
xi
Figure 41: EF (CR, UC) vs. FLEX 126
Figure 42: EF (CR, UC) vs. RESL 127
Figure 43: EF (CR, UC) vs. TEAM 127
Figure 44: EF (CR, UC) vs. PMAT 128
Figure 45: EF (CR, UC) vs. TIME 128
Figure 46: EF (CR, UC) vs. ACAP 129
Figure 47: EF (CR, UC) vs. PCAP 129
Figure 48: EF (CR, UC) vs. PCON 130
Figure 49: EF (CR, UC) vs. APEX 130
Figure 50: EF(UC, UCS) vs. PREC 131
Figure 51: EF(UC, UCS) vs. FLEX 131
Figure 52: EF(UC, UCS) vs. RESL 132
Figure 53: EF(UC, UCS) vs. TEAM 132
Figure 54: EF(UC, UCS) vs. PMAT 133
Figure 55: EF(UC, UCS) vs. TIME 133
Figure 56: EF(UC, UCS) vs. ACAP 134
Figure 57: EF(UC, UCS) vs. PCAP 134
Figure 58: EF(UC, UCS) vs. PCON 135
Figure 59: EF(UC, UCS) vs. APEX 135
Figure 60: EF(UCS, SLOC) vs. PREC 136
Figure 61: EF(UCS, SLOC) vs. FLEX 136
Figure 62: EF(UCS, SLOC) vs. RESL 137
Figure 63: EF(UCS, SLOC) vs. TEAM 137
xii
Figure 64: EF(UCS, SLOC) vs. PMAT 138
Figure 65: EF(UCS, SLOC) vs. TIME 138
Figure 66: EF(UCS, SLOC) vs. ACAP 139
Figure 67: EF(UCS, SLOC) vs. PCAP 139
Figure 68: EF(UCS, SLOC) vs. PCON 140
Figure 69: EF(UCS, SLOC) vs. APEX 140
xiii
Abbreviations
AEF Abnormal Elaboration Factor
CG Capability Goal
CMMI Capability Maturity Model Integration
COCOMO II Constructive Cost Model Version II
COSYSMO Constructive Systems Engineering Cost Model
COTS Commercial of-the-Shelf
CR Capability Requirement
CSSE Center for Systems and Software Engineering
EF Elaboration Factor
EP Elaboration Profile
HEF High Elaboration Factor
ICM-Sw Incremental Commitment Model for Software
IOC Initial Operational Capability
IV & V Independent Verification and Validation
KSLOC Thousand Source Lines of Code
LCO Life Cycle Objectives
LCP Life Cycle Plan
LEF Low Elaboration Factor
LOS Level of Service
MBASE Model-Based (System) Architecting and Software Engineering
MEF Medium Elaboration Factor
xiv
OCD Operational Concept Description
RL Requirements Level
RUP Rational Unified Process
SAIV Schedule as Independent Variable
SE Software Engineering
SLOC Source Lines of Code
SSAD System and Software Architecture Description
SSRD System and Software Requirements Definition
UC Use Case
UCS Use Case Step
UML Unified Modeling Language
USC University of Southern California
xv
Abstract
Software size is one of the most influential inputs of a software cost estimation
model. Improving the accuracy of size estimates is, therefore, instrumental in improving
the accuracy of cost estimates. Moreover, software size and cost estimates have the
highest utility at the time of inception. This is the time when most important decisions e.g.
budget allocation, personnel allocation, etc. are taken. The dilemma, however, is that only
high-level requirements for a project are available at this stage. Leveraging this high-
level information to produce an accurate estimate of software size is an extremely
challenging task.
Requirements for a software project are expressed at multiple levels of detail
during its life cycle. At inception, requirements are expressed as high-level goals. With
the passage of time, goals are refined into shall statements and shall statements into use
cases. This process of progressive refinement of a project’s requirements, referred to as
requirements elaboration, continues till source code is obtained. This research analyzes
the quantitative and qualitative aspects of requirements elaboration to address the
challenge of early size estimation.
A series of four empirical studies is conducted to obtain a better understanding of
requirements elaboration. The first one lays the foundation for the quantitative
measurement of this abstract process by defining the appropriate metrics. It, however,
focuses on only the first stage of elaboration. The second study builds on the foundation
laid by the first. It examines the entire process of requirements elaboration looking at
each stage of elaboration individually. A general process for collecting and processing
xvi
multi-level requirements to obtain elaboration data useful for early size estimation is
described. Application of this general process to estimate the size of a new project is also
illustrated.
The third and fourth empirical studies are designed to tease out the factors
determining the variation in each stage of elaboration. The third study focuses on
analyzing the efficacy of COCOMO II cost drivers in predicting these variations. The
fourth study performs a comparative analysis of the elaboration data from two different
sources i.e. small real-client e-services projects and multiple versions of an industrial
process management tool.
1
Chapter 1 Introduction
1.1 Problem Definition
Software cost models are best described as “garbage in-garbage out devices”
[Boehm, 1981]. The quality of the outputs of these models is determined by the quality of
the inputs. Hence, if input quality is bad, output quality cannot be good. This fact clearly
implies that one of the prerequisites of improving the estimates (outputs) of these models
is to improve the quality of the inputs supplied to these models.
Different parametric cost models such as SLIM [Putnam, 1978], PRICE-S
[Freiman and Park, 1979], COCOMO II [Boehm et al., 2000], and COSYSMO [Valerdi,
2005] require a different set of inputs. One input, however, is common amongst most of
these models i.e. “an estimate of likely product size” [Fenton and Pfleeger, 1997]. In fact,
size is the most influential input of these models. The accuracy of cost estimation
“depends more on accurate size estimates than on any other cost-related parameter”
[Pfleeger, Wu, and Lewis, 2005].
The fundamental challenge of cost estimation, therefore, is “estimating the
amount (size) of software that must be produced” [Stutzke, 2005]. Addressing this
challenge lies at the crux of improving cost estimation accuracy. Producing an accurate
estimate of product size, however, is not an easy task.
The difficulty of accurate size estimation is compounded especially at the time of
inception when very little information is available. This problem is visually depicted in
the “cone of uncertainty” diagram from [Boehm et al., 2004] which is reproduced in
Figure 1. This diagram plots the relative size range versus the various phases and
2
milestones. It clearly indicates that, at the beginning of a project, estimates are far off
from the actual values. As time progresses, the error in estimation starts decreasing but so
does the utility of these estimates.
Figure 1: Cone of uncertainty
The cone of uncertainty highlights the fundamental dilemma of system and
software size estimation i.e. the tradeoff between accuracy and utility of estimates.
Estimates are of highest value at the beginning of a project. This is the time when
important decisions such as those regarding budget and personnel allocation are made.
Estimation accuracy at this point, however, is lowest. Therefore, in order to achieve
maximum utility, it is extremely important to improve the accuracy of estimates produced
at the time of inception.
3
Improving the accuracy of early size estimation necessitates leveraging high-level
project requirements available at the time of inception i.e. project goals and objectives.
Leveraging this information about the high-level requirements of a project is only
possible if one is aware of the details of the process of their elaboration into lower-level
requirements e.g. shall statements, use cases, etc. These details about the process of
elaboration are previously unavailable. This problem is succinctly summarized in the
following statement:
At the time of a project’s inception, when estimates have
the highest utility, very high-level requirements are
available and the elaboration process of these high-level
requirements is unknown.
1.2 Research Approach
Requirements for any project can be expressed at multiple levels of detail e.g.
goals (least detailed), shall statements, use cases, use case steps, and SLOC (most
detailed). At the time of a project’s inception, requirements are usually expressed as high-
level goals. With the passage of time, these goals are elaborated into shall statements,
shall statements are transformed into use cases, use cases are decomposed into use case
steps, and use case steps are implemented by SLOC. Each subsequent level builds on the
previous by adding more detail. This progressive refinement of requirements is called
requirements elaboration. This research addresses the problem identified in the previous
section by uncovering the details of this process of requirements elaboration.
The mechanics of this abstract process of requirements elaboration are studied by
first measuring this process quantitatively using metrics specifically designed for this
4
purpose. The quantification of this process, in turn, facilitates looking at its qualitative
nuances. It helps in teasing out factors that determine its variations.
1.3 Research Significance
A deeper understanding of the quantitative and qualitative aspects of the
requirements elaboration process provides a number of benefits. First and foremost, it
helps in solving the fundamental dilemma of system and software size estimation i.e.
estimates are less accurate when their utility is more and more accurate when their utility
is less. Leveraging a project’s high-level requirements by studying the elaboration
process enables producing accurate estimates when estimation accuracy really matters i.e.
at the time of inception.
Another important benefit of this work is that quantitative information about
requirements elaboration helps in resolving inconsistencies between the level of detail of
model inputs and model calibration data. If not resolved, such inconsistencies can easily
lead to over- or under-estimation of cost. Consider, for instance, a model that has been
calibrated using lower-level requirements such as shall statements as one of the inputs.
Using higher-level requirements such as goals as an input to this model will result in an
under-estimation of cost. However, if the elaboration process of higher-level
requirements is known, these high-level goals can be converted to equivalent lower-level
shall statements expected as input by the model.
Last but not the least, quantitative measures of elaboration allow comparisons
between estimates of models that use different size parameters. As an example, consider
two cost estimation models A and B. If, for instance, model A uses shall statements as
5
input while model B uses SLOC, then the outputs of these two models can be made
comparable only after transforming the shall statements into equivalent SLOC and
plugging this value into model B. Transforming shall statements into equivalent SLOC,
however, requires understanding how shall statements elaborate into SLOC. The analyses
presented in this research help in achieving this understanding.
1.4 Dissertation Outline
The rest of this dissertation is organized as follows:
• Chapter 2 briefly describes previous work relevant to this research. It surveys
prior work in three areas i.e. software sizing, software metrics, and requirements
elaboration. Gaps and shortcomings in prior work are also highlighted in this
chapter.
• Chapter 3 describes the first empirical study on requirements elaboration. This
study analyzes the first stage of requirements elaboration. It examines the
elaboration of two different types of goals – capability and level of service (LOS)
– into respective immediately lower-level requirements. New metrics are
introduced to quantitatively measure requirements elaboration.
• Chapter 4 summarizes the second empirical study which examines the entire
process of requirements elaboration. A five-step process for gathering and
processing a project’s multi-level requirements to obtain its elaboration data is
described. The utility of summary statistics obtained from the elaboration data of
multiple similar projects in early size estimation is illustrated. A case study
6
showing the application of this approach in estimating the size of a large new
IBM project is also included.
• Chapter 5 presents the third empirical study which determines the efficacy of
COCOMO II cost drivers in predicting variations in different stages of
elaboration. For each stage of elaboration, the relationship between the values of
the relevant cost drivers and the magnitude of elaboration is analyzed.
• Chapter 6 describes the fourth and final empirical study on requirements
elaboration. This study first presents a novel approach to determine the
elaboration profiles of different versions of an industrial product. It then
compares these elaboration profiles with the elaboration profiles obtained in the
second empirical study.
• Chapter 7 contains a discussion on the determinants of elaboration. It presents the
factors responsible for variations in different stages of elaboration.
• Chapter 8 concludes this dissertation by summarizing the major contributions of
this research. It also highlights avenues for future work in this area.
7
Chapter 2 Related Work
2.1 Sizing Methods
A number of methods for estimating size have been proposed in the literature. A
good overview of these methods can be found in [Boehm, 1981], [Fenton and Pfleeger,
1997], and [Stutzke, 2005]. Most of these methods can be classified into four major
categories: expert judgment, analogy-based, group consensus, and decomposition.
As is evident from the name, size estimation based on expert judgment takes
advantage of the past experience of an expert. A seasoned developer is requested to
estimate the size of a project based on the information available about the project. One of
the main advantages of this approach is that experts can spot exceptional size drivers. The
accuracy of the estimate, however, is completely dependent on the experience and
memory of the expert.
Analogy-based size estimation methods use one or more benchmarks for
estimating the size of a new project. The characteristics of the new project are compared
with the benchmarks. The size of the new project is adjusted based on the similarities and
differences between the new project and the benchmarks. Pair-wise comparison is a
special case of analogy-based sizing which uses a single reference point. This type of
estimation can only be employed when suitable benchmarks are available. The main
advantage of this approach is that it uses relative sizing which prevents most of the
problems associated with absolute sizing such as personal bias and incomplete recall.
Group consensus techniques such as Wideband Delphi [Boehm, 1981] and
Planning Poker [Cohn, 2005] use a group of people instead of individuals to derive
8
estimates of size. Estimation activities are coordinated by a moderator who describes the
scenario, solicits estimates, and compiles the results. At the end of the first round,
divergences are discussed and individuals share rationales for their estimation values.
More rounds of estimation may be necessary to reach a consensus. The main advantage
of these techniques is that they improve understanding of the problem through group
discussion. Iteration and group coordination, however, requires more time and resources
than techniques relying on a single person.
Decomposition techniques for estimating size use a more rigorous approach. Two
complementary decomposition techniques are available: top-down and bottom-up. Top-
down estimation focuses on the product as a whole. Estimates of the overall size are
derived from the global product characteristics and are then assigned proportionally to
individual components of the product. Bottom-up estimation, on the other hand, focuses
on the individual components. Size is estimated for each individual component. The size
of the overall product is then derived by summing the size of the individual components.
Since these two techniques are orthogonal, the advantages of one are the disadvantages of
the other. The top-down approach has a system-level focus but lacks a detailed basis. The
bottom-up approach, on the other hand, has a more detailed basis but tends to ignore
overall product characteristics.
Apart from the four main size estimation method categories mentioned above,
other categories also exist. Probabilistic methods such as PERT sizing [Putnam and
Fitzsimmons, 1979] are an example. Fuzzy logic-based size estimation methods such as
those described in [Putnam and Myers, 1992] and [MacDonell, 2003] are another
example.
9
Combinations of sizing methods belonging to different categories are also
possible options. For instance, pair-wise comparisons may be used in conjunction with
top-down estimation to derive an estimate of size. Similarly, expert judgment may be
combined with bottom-up estimation.
The basic problem, which none of these methods addresses, is the high amount of
uncertainty involved in early size estimation. This uncertainty stems from the fact that
very little information is available at the time of inception. Thus, as shown in the cone of
uncertainty (see Figure 1), estimates produced at the time of inception are far off from the
actual values.
2.2 Sizing Metrics
Process
Phase
Possible
Measures
Primary
Aids
Concept Elaboration Construction
Increasing Time and Detail
Subsystems
Key Features
User Roles,
Use Cases
Screens,
Reports,
Files,
Application
Points
Function
Points
Components Objects
Source
Lines of
Code,
Logical
Statements
Product
Vision,
Analogies
Operational
Concept,
Context
Diagram
Specification,
Feature List
Architecture,
Top Level
Design
Detailed
Design
Code
Figure 2: Sizing metrics
Product size can be expressed using a number of different metrics. A vast
majority of the commonly used size metrics is captured by Figure 2 which is reproduced
10
from [Stutzke, 2005]. This figure shows the metrics available at different process phases
along with the primary aids which act as sources for deriving values for these metrics. In
the construction phase, for instance, size can be measured in terms of the number of
objects specified in the detailed design.
The possible measures listed in Figure 2 can be divided into two broad categories
i.e. functional size measures and physical size measures. Functional size refers to the size
of the software in terms of its functionality while physical size refers to the size of the
software in terms of the amount of code. Each of these measures has benefits and
shortcomings. Functional size measures are technology independent and can be obtained
earlier than physical size measures. However, it is difficult to automate the counting of
functional size. Physical size measures, on the other hand, are technology dependent but
can be obtained automatically.
Function Point Analysis [Albrecht, 1979] is the most popular functional size
measure. Many versions of Function Point Analysis are being used throughout the world.
In USA, the IFPUG version of function points [IFPUG, 2010] is the most popular
methodology. In a nutshell, IFPUG function points measure the functionality of a system
by identifying its components (i.e. inputs, outputs, data files, interfaces, and inquiries)
and rating each component according to its complexity (i.e. simple, average, and
complex). Once each component has been assigned its complexity rating, these ratings
are summed-up to obtain unadjusted function points. Unadjusted function points are
multiplied by a value adjustment factor calculated using overall application
characteristics to obtain the adjusted function points.
11
Other significantly-popular versions of Function Point Analysis (FPA) include
COSMIC Full Function Points [COSMIC, 2009], Mk II FPA [UKSMA, 1998], and
NESMA FPA [NESMA, 2004]. There are a number of conceptual and procedural
differences between IFPUG and COSMIC methods. For instance, unlike IFPUG function
points that use five functional component types, COSMIC Full Function Points use four
i.e. entry, read, write, and exit. Nonetheless, both IFPUG and COSMIC functional size
methods are international standards. Mk II FPA, used mainly in the United Kingdom,
employs only three component types i.e. inputs, outputs, and entity references. This
simple measurement model was originally developed by Charles Symons [Symons, 1991]
to overcome the weaknesses claimed to be found in the original FPA (now supported by
IFPUG) such as difficulty of usage and low accuracy. The FPA guidelines published by
the Netherlands Software Metrics Association (NESMA) and IFPUG are practically the
same. There are no major differences between these two methods.
In order to accommodate algorithmically-intensive applications such as systems
software (e.g. operating systems) and real-time software (e.g. missile defense systems)
Software Productivity Research, Inc. (SPR) developed a variant of function points called
Feature Points [SPR, 1986]. Feature Points are a superset of the classical function points
in the sense that they add one additional component i.e. algorithms. This simple extension
of function points has not gained much popularity in the industry.
A number of approaches that produce approximate yet quick counts of function
points have been proposed. David Seaver’s Fast Function Points [Seaver, 2000] and
NESMA’s Indicative Function Points [NESMA, 2010] are good representatives of this
category. These methods use a much simpler approach to obtain function points of an
12
application in the early phases of the life cycle. For example, Indicative Function Points
(also known as the “Dutch Method”) use only two components i.e. data files and
interfaces.
Apart from function points, a multitude of other functional size measures are
available. A number of these such as Use Case Points [Karner, 1993] are based on UML
[Booch, Rumbaugh, and Jacobson, 1999]. Use Case Points, which are widely used in the
industry, utilize the information about the actors and use cases of a system.
Several object-oriented size measures have also been proposed. Typical examples
include MOOSE [Chidamber and Kemerer, 1994], Predictive Object Points [Minkiewicz,
1997], and Application Points [Boehm et al., 2000]. Metrics Suite for Object-Oriented
System Environments (MOOSE) consists of six metrics i.e. weighted measures per class,
average depth of a derived class in the inheritance tree, number of children, coupling
between objects, response for a class, and lack of cohesion of methods. Predictive Object
Points use three metrics from MOOSE (i.e. weighted measures per class, number of
children, and average depth of a derived class in the inheritance tree) along with an
additional metric i.e. number of top level classes. Application Points are adapted from
Object Points [Banker, 1992]. They consider the number of screens, reports, and business
rules in the application. Business rules correspond to the algorithms or third generation
(3GL) components.
SLOC quantify the “physical length” of the software [Laird and Brennan, 2006].
This metric is amenable to automatic counting using code-parsing programs called code
counters. A plethora of free and open source code counters are available for download on
the web e.g. JavaNCSS [Lee et al., 2010] for Java, CCCC [Littlefair, 2006] for C/C++,
13
etc. A number of code counters such as Unified CodeCount [Unified CodeCount, 2009]
and SLOCCount [Wheeler, 2004] provide support for multiple programming languages.
Before any code counter is developed, the notion of SLOC must be precisely
defined. Common classifications of SLOC include physical SLOC, non-comment SLOC,
and logical SLOC. Physical SLOC refer to all lines with carriage returns. Non-comment
SLOC are obtained by excluding commented lines from physical SLOC. Multiple
definitions for logical SLOC are available such as the ones published by Carnegie-Mellon
University’s Software Engineering Institute [Park, 1992], IEEE [IEEE, 1993], and USC’s
CSSE [Nguyen et al., 2007].
The arrow at the bottom of Figure 2 indicates that with the passage of time more
and more detail becomes available to produce a more accurate measure of size. Higher-
level requirements such as product goals are elaborated into shall statements, and shall
statements are refined into use cases. This process of elaboration continues till finally the
lowest level of source lines of code (SLOC) is reached.
Using higher-level requirements such as product goals for size estimation is only
likely to produce estimates that are far off from the actual values as confirmed by the
cone of uncertainty (see Figure 1). This is primarily because the elaboration process of
higher-level requirements into lower-level ones is hitherto unknown.
2.3 Requirements Elaboration
The concept of requirements elaboration has been hitherto studied in different
settings. One of the best graphical illustrations of this concept is to be found in
Cockburn’s work [Cockburn, 2001] on writing use cases. This graphical illustration is
14
reproduced in Figure 3. It employs a powerful visual metaphor to describe the gradual
hierarchical refinement of higher-level use cases to lower-level ones. Use cases are
classified according to the level of detail contained in them. This classification is done
using a set of icons depicting multiple levels of altitude and depth vis-à-vis sea-level.
Cloud and kite icons are used to represent elevation above sea-level while fish and clam
icons are employed to indicate depth below sea-level. The sea-level itself is shown by a
waves-like icon. Each altitude- or depth-level or, in other words, each icon corresponds to
a different level of detail in a use case. The cloud icon, for instance, is used to indicate a
top-level summary use case while the fish icon is used to label a low-level sub-function
use case. The ultimate objective is to express all use cases at the sea-level since the sea-
level achieves the right balance between abstraction and detail.
Figure 3: Cockburn’s metaphor illustrating refinement of use cases
Letier and van Lamsweerde proposed an agent-based approach towards
requirements elaboration [Letier and van Lamsweerde, 2002]. Several formal tactics were
defined for refining goals and then assigning them to single agents. Single agents
15
represented human stakeholders or even software components that realized the refined
goals.
Earlier, Antón had described the Goal-Based Requirements Analysis Method
(GBRAM) and the results of its application in a practical setting [Antón, 1996]. By using
GBRAM goals were identified and elaborated for later operationalization into
requirements. At roughly the same time, Darimont and van Lamsweerde had proposed a
formal pattern-based method for refining goals [Darimont and van Lamsweerde, 1996].
These reusable, recurrent, and generic goal-refinement patterns housed in libraries
enabled, among other things, checking for completeness and consistency of refinements
and hid the complicated mathematical proofs required by formal methods.
All of the works cited above deal with facilitating and improving the elaboration
of high-level requirements into lower-level ones. None of these works focuses on
measuring the process of elaboration itself. A quantitative approach is essential in
studying the mechanics of this process and in analyzing its qualitative aspects.
Several researchers have looked at quantitative “expansion ratios” [Fenton and
Pfleeger, 1997] relating size of specification with size of code. Walston and Felix
observed an empirical relationship between program documentation size in pages and
code size in KSLOC [Walston and Felix, 1977]. Jones [Jones, 1996] and Quantitative
Software Measurement (QSM) Corporation [QSM, 2009] have reported the conversion
ratios (called backfiring ratios or gearing factors) between function points and SLOC of
several different programming languages. Selby’s work [Selby, 2009] records the ratios
of implementation size (SLOC) to requirements (shall statements) of 14 large-scale
projects. These ratios are shown in Figure 4 which is reproduced from his work. Even
16
though these works adopt a quantitative approach they do not solve the problem of
accurate size estimation at inception when very high-level requirements e.g. project goals
and objectives are available.
Figure 4: SLOC/Requirement ratios of large-scale projects
Another shortcoming of the previous quantitative approaches is that they don’t
examine the various stages of elaboration between different levels of requirements such
as those shown in Figure 5 which is reproduced from [Hopkins and Jenkins, 2008]. This
figure depicts the multiple levels (e.g. business events, use cases, etc.) at which
requirements are expressed for a certain category of large IBM projects. It also shows
ballpark figures for the number of requirements at each level. Gathering such multi-level
17
requirements data and conducting quantitative and qualitative analyses on it is crucial in
uncovering the details of the requirements elaboration process.
Figure 5: Multiple requirements levels for large IBM projects
18
Chapter 3 From Cloud to Kite
It is quite interesting to note that Figure 5 reveals an almost magical expansion
ratio of around 7 between some pairs of consecutive requirements levels. For instance,
200 use cases have about 1,500 main steps implying an expansion ratio of 7.5. Similarly,
35 subsystems have 250 components indicating an expansion ratio of about 7.1. Is this
magical expansion ratio a matter of coincidence? If not, does it hold for all types of
projects and all types of requirements? If so, what are the factors that determine the
expansion ratio? Answering these and similar questions requires an in-depth analysis of
the quantitative and qualitative aspects of requirements elaboration.
This chapter reproduces, with minor modifications, the first empirical study
[Malik and Boehm, 2008; Malik and Boehm, 2009] conducted to explore the mechanics
of the requirements elaboration process. This study focuses on the first stage of
requirements elaboration i.e. the elaboration of high-level goals into immediately lower-
level requirements. In terms of the Cockburn metaphor [Cockburn, 2001], it examines the
elaboration of cloud-level requirements into kite-level requirements. The following two
main hypotheses are tested in this empirical study:
• The magical expansion ratio of 7 holds for all types of projects.
• The magical expansion ratio of 7 holds for both functional as well as non-
functional requirements.
The entire experimental scenario, including the scope of this study and the details
of the subjects, projects, and artifacts, is described in Section 3.1. Section 3.2 explains the
method used for gathering the data required for this study. It defines the appropriate
19
metrics and indicates the rationale for their usage. Section 3.3 summarizes the results
gathered using these metrics and discusses the salient aspects of these results. An in-
depth analysis of the elaboration of capability goals is provided in Section 3.4. Section
3.5 highlights the importance of the results obtained from this analysis whereas Section
3.6 mentions the limitations of these results.
3.1 Experimental Setting
USC’s annual series of two semester-long, graduate-level, real-client, team-
project software engineering courses provides a valuable opportunity to analyze the
phenomenon of requirements elaboration. These two project-based courses – Software
Engineering I (SE I) and Software Engineering II (SE II) – allow students to get a first-
hand experience of a considerable chunk of the software development life cycle. Using
the terminology of the Rational Unified Process (RUP) [Kruchten, 2003], SE I covers the
activities of Inception and Elaboration phases whereas SE II encompasses the activities of
Construction and Transition phases.
Most of the time students work in teams of six to eight people. Each team
comprises two parts – the development core and the independent verification and
validation (IV &V) wing. The development core of a team is typically made up of four to
six on-campus students. These on-campus students are full-time students with an average
industry experience of a couple of years. The IV & V wing usually contains two off-
campus students. These off-campus students are full-time working professionals who are
pursing part-time education. Average industry experience of these off-campus students is
20
at least five years. The IV & V wing works in tandem with the development core of the
team to ensure quality of deliverables.
Projects undertaken in these two courses come from a variety of sources spanning
both industry and academia. Typical clients include USC neighborhood not-for-profit
organizations (e.g. California Science Center, New Economics for Women, etc.), USC
departments (e.g. Anthropology, Information Services, Library, etc.), and USC
neighborhood small businesses. As a first step, candidate projects are screened on the
basis of their perceived complexity and duration. Due to constraints imposed by the team
size and course duration, highly complex projects or projects which require a lot of work
are filtered out. Selected projects are then assigned to teams based on the interest
preferences of the teams. Once teams are paired with clients, negotiations between these
two parties play an important role in prioritizing the requirements. This prioritized list of
requirements, in turn, facilitates completion of these projects in two semesters.
This study deals with 20 such fixed-length real-client projects done by teams of
graduate students in the past few years [USC SE I, 2010; USC SE II, 2010]. Table 1
presents a summary of these projects. The column titled “Year” indicates the year in
which each project was initiated. The primary instructor was the same for all of these
years. Special care was exercised in selecting these projects for analysis. COTS-based
projects, for which elaboration data is not available, were filtered out. Similarly, custom-
development projects with incomplete data were also not considered. As a result, each
row in Table 1 represents a fully-documented custom-development project.
21
Table 1: Projects used for first empirical study
S# Year Project Type
1 2004
Bibliographies on Chinese Religions in Western
Languages Web-based database
2 2004 Data Mining Digital Library Usage Data Data mining application
3 2004 Data Mining Report Files Data mining application
4 2005 Data Mining PubMed Results Data mining application
5 2005 USC Football Recruiting System Web-based database
6 2005 Template-based Code Generator Code generator
7 2005 Web Based XML Editing Tool Web-based editor
8 2005 EBay Notification System Pattern-matching application
9 2005 Rule-based Editor Integrated GUI
10 2005 CodeCount™ Product Line with XML and C++ Code counter tool
11 2006 California Science Center Newsletter System Web-based database
12 2006 California Science Center Event RSVP System Web-based database
13 2006 USC Diploma Order/Tracking System Web-based database
14 2006 USC Civic and Community Relations Application Web-based database
15 2006 Student's Academic Progress Application Web-based database
16 2006 New Economics for Women (NEW) Web Application Web-based database
17 2006 Web Portal for USC Electronic Resources Web-based service integration
18 2006 Early Medieval East Asian Tombs Database System Web-based database
19 2006 USC CONIPMO Cost modeling tool
20 2006 Eclipse Plug-in for Use Case Authoring IDE plug-in
22
Figure 6: Partial software development process
Client project
screening
Developer
self-profiling
• Developer team
formation
• Project selection
• Client-developer
team building
• Prototyping
• WinWin
negotiation
LCO Package
preparation
LCO Review
LCA Package
preparation
LCA Review
{developer profiles, project
preferences }
{project descriptions}
{selected client-developer teams}
{LCA package guidance}
{expanded OCD, prototypes, SSRD’,
SSAD’, LCP’, FRD’}
{product development guidance}
{build-to OCD, prototypes, SSRD,
SSAD, LCP, FRD}
{draft OCD}
LCO: Life Cycle Objectives
LCA: Life Cycle Architecture
OCD: Operational Concept
Description
SSRD: System and Software
Requirements Definition
SSAD: System and Software
Architecture Description
LCP: Life Cycle Plan
FRD: Feasibility Rationale
Description
ABC’: Top-level version of
document ABC
1 2
3
4
5
6
7
8
Inception
Elaboration
23
Each project considered in this study followed the MBASE/RUP [Boehm et al.,
2004; Kruchten, 2003] or LeanMBASE/RUP [Boehm et al., 2005; Kruchten, 2003]
development process. Figure 6 shows a partial view of this process. This view covers
only the first half of the process. This half encompasses the Inception and Elaboration
phases. The second half of the process, which deals with the Construction and Transition
phases, has not been shown for the sake of brevity. In Figure 6, boxes indicate major
steps carried out in this process while arrows signify the general flow of the process.
Multiple activities within a step are presented as a bulleted list. Here it must be noted that
several activities such as project planning, client-team interaction etc. that are common
across all steps have been omitted to avoid clutter in the diagram. Each step, which has
been numbered for convenience, produces a set of artifacts [B. Boehm et al., 2005] that is
used by the subsequent step as its primary input. Step 4, for instance, produces the draft
version of the Operational Concept Description (OCD) document which is used by Step 5
to come up with an expanded version of OCD along with prototypes and other documents
such as the System and Software Requirements Definition (SSRD). As explained in the
following section, the OCD and SSRD are the only documents we focus on in this study.
3.2 Method
In order to get a handle on the quantitative aspects of requirements elaboration the
relationship between two different types of goals and requirements is studied. On the one
hand, the relationship between capability goals and capability requirements is examined.
On the other, the relationship between level of service (LOS) goals and LOS
requirements is studied. Capability goals and capability requirements represent,
24
respectively, the functional goals and the functional requirements of a software product.
Figure 7 shows a representative high-level capability goal. It also shows a couple of low-
level capability requirements that are rooted in this goal. LOS goals and LOS
requirements represent, respectively, the non-functional goals and the non-functional
requirements of a software product. Figure 8 depicts a typical high-level LOS goal along
with a low-level LOS requirement that originates from this goal.
25
Figure 7: Typical high-level capability goal with its low-level
capability requirements
26
Figure 8: Typical high-level LOS goal with its low-level LOS
requirement
A number of metrics have been devised to examine the relationship between these
two different types of goals and requirements. Documentation produced at the time of the
Life Cycle Objectives (LCO) milestone [Boehm, 1996] acts as the primary source of data
corresponding to goals-related metrics. The LCO milestone, reached at the end of the
Inception phase, indicates the presence of at least one feasible architecture for the
software product. At this point, a set of artifacts called the LCO Package is produced by
the project team. This is shown as Step 5 in Figure 6. Within the LCO Package, only one
document – the expanded OCD – provides all relevant information about both types of
goals. Figure 9 contains a sample top-level table of contents of this document. As shown
by this table of contents, information about capability goals is available in Section 3.1
while information about LOS goals is present in Section 3.3.3.
27
Figure 9: Table of contents of OCD
Documentation generated at the end of the Construction phase acts as the primary
source of data corresponding to requirements-related metrics. Completion of the
Construction phase coincides with the Initial Operational Capability (IOC) milestone
[Boehm, 1996]. At this stage, a working version of the product is ready to be transitioned
and the project team has generated a set of artifacts called the IOC Working Set.
Depending upon the number of versions released, a team may produce more than one
IOC Working Set where each subsequent Working Set builds upon the previous. All
requirements-related data is gathered from the SSRD document contained in the final
IOC Working Set. Figure 10 presents a brief summary of a typical SSRD by displaying
the high-level table of contents of such a document. As is evident from this figure,
information about capability requirements is contained in Section 3 whereas information
28
about LOS requirements is available in Section 5. Evolutionary capability requirements
and evolutionary LOS requirements, present in Section 7, are not considered in our
analyses. This is because evolutionary requirements deal with future extensions of the
software product and, therefore, are not rooted in goals specified during the Inception
phase. In the text that follows, references to OCD and SSRD should be interpreted as
references to the specific versions of OCD and SSRD as described above.
Figure 10: Table of contents of SSRD
When dealing with capability requirements, both nominal and off-nominal
requirements are examined. In other words, we consider requirements of system behavior
in normal as well as abnormal conditions. This is done to ensure consistency with the
29
analyses of capability goals since all types of goals specified in OCD are examined. No
such distinction of nominal versus off-nominal is applicable in the case of LOS
requirements for these 20 small real-client projects.
Table 2 summarizes the metrics employed by this study to accurately measure the
elaboration of cloud-level goals documented at the time of LCO milestone into kite-level
requirements documented at the time of IOC milestone. This same set of seven generic
metrics is used for both types of goals and requirements. The first four metrics are
“direct” metrics. Data corresponding to these metrics are collected directly from the
project documentation by inspection. The first two – NG
I
and NG
R
– are related to goals
whereas the next two – NR
D
and NR
N
– are related to requirements. NG
I
represents the
number of goals specified during inception. The value of this metric for any project can
be easily obtained by counting the high-level goals specified in OCD. NG
R
specifies the
number of goals that were eventually removed and not taken into consideration while
developing the final product. Finding the value of this metric requires inspecting both
OCD and SSRD documents. Any high-level goal in OCD that does not elaborate into
even a single low-level requirement in SSRD adds to the count of NG
R
.
Table 2: Metrics
S# Metric Description
1 NG
I
Number of initial goals
2 NG
R
Number of removed goals
3 NR
D
Number of delivered requirements
4 NR
N
Number of new requirements
5 NG
A
Number of adjusted goals
6 NR
A
Number of adjusted requirements
7 EF Elaboration Factor
NR
N
indicates the number of requirements that were added later-on in the project
and had no relationship to the goals included in NG
I
. This metric gives a crude indication
30
of the extent of the requirements- or feature-creep phenomenon. Determining the value of
this metric requires studying both OCD and SSRD documents. All low-level
requirements in SSRD that are not rooted in any high-level goal in OCD are included in
NR
N
. NR
D
records the number of requirements satisfied by the product delivered to the
client. This can be easily determined by counting the number of requirements present in
SSRD.
The last three metrics – NG
A
, NR
A
, and EF – are “derived” metrics. Unlike the
direct metrics described above, values of these metrics are not obtained by inspection of
documents. Their values are calculated from existing information instead. The following
formulae are used for this purpose:
Equation 1:
R I A
NG NG NG - =
Equation 2:
N D A
NR NR NR - =
Equation 3:
A
A
NG
NR
EF =
NG
A
and NR
A
represent adjusted metrics while EF is a ratio of these adjusted
metrics. As is evident from Equation 1, NG
A
is obtained by subtracting the removed goals
from the initial set of goals. This adjustment yields only those goals that were retained till
the end of the project and achieved by the final product. NR
A
indicates requirements that
emerge solely from these retained goals. As shown in Equation 2, this adjustment is
accomplished by subtracting the newly introduced requirements from the set of all
delivered requirements. The EF metric shown in Equation 3 quantifies the phenomenon
of requirements elaboration by assigning it a numerical value. This value – called the “EF
31
value” of a project – indicates the average number of low-level requirements produced by
the elaboration of a single high-level goal.
Ranges of EF values can be used to classify projects in different elaboration
groups called “EF groups”. Keeping in view the nature of projects encountered in our
small-project setting and based on the data we have observed (see Section 3.4 Elaboration
of Capability Goals) we have come up with a simple criterion for defining these groups.
This criterion is depicted in Figure 11. The continuous spectrum of EF values is shown
by a horizontal line. The fact that this spectrum covers only positive real numbers can be
easily seen by revisiting Equations 1 through 3 which outline the procedure for
calculating an EF value. As shown by Equations 1 and 2, both the numerator and the
denominator of Equation 3 are positive integers since they represent adjusted counts.
Hence the EF value, which is a ratio of these positive integers, must be a positive real
number.
Figure 11: EF ranges defining different elaboration groups
1 1. 5 2 0
LEF MEF HEF AEF
Elaboration Groups
AEF = Abnormal Elaboration Factor
LEF = Low Elaboration Factor
MEF = Medium Elaboration Factor
HEF = High Elaboration Factor
32
The spectrum of EF values is divided into four sections. Each of these four
sections corresponds to a separate EF group. The first section corresponds to the
Abnormal Elaboration Factor (AEF) group. It contains projects with EF values less than
1. These projects undergo “abnormal” elaboration since their number of adjusted
requirements (NR
A
) is less than their number of adjusted goals (NG
A
). Under normal
circumstances, NR
A
is at least as large as NG
A
producing an EF value greater than or
equal to 1. Sections 3.3 and 3.4 provide some possible explanations for this seemingly
anomalous behavior.
The remaining three sections of EF values classify regular projects, i.e. projects
that undergo “normal” elaboration. The Low Elaboration Factor (LEF) group contains
projects with EF values between 1 and 1.5 (both inclusive) while the Medium
Elaboration Factor (MEF) group contains projects with EF values between 1.5 and 2
(inclusive). Finally, projects with EF values greater than 2 fall under the High
Elaboration Factor (HEF) group. In our setting, even though it is hard to imagine a
project with an EF value greater than 10, the upper bound of the range for the HEF group
has been left unspecified to accommodate cases of exceptionally high elaboration.
The ranges of EF values that define elaboration groups are not cast in stone. As
mentioned above, the ranges shown in Figure 11 were defined in accordance with the
data observed in our specific experimental setting as described in the following section. It
may be necessary to tailor these ranges based on data observed in other settings.
Nonetheless, the concept of using ranges of EF values to classify projects is applicable in
all settings.
33
3.3 Results
This section presents the results obtained by examining the elaboration of both
types of goals into their respective requirements. Values of the seven metrics introduced
in the previous section are tabulated in Tables 3 and 4 for each of the 20 projects. For the
sake of brevity, project names are omitted from these tables. Serial numbers, however,
have been retained for reference and are shown in the first column. These serial numbers
correspond to the serial numbers in Table 1. Also, for the sake of convenience, data in
Tables 3 and 4 are presented in ascending order of EF values. The last column – “Group”
– categorizes these 20 projects according to the elaboration groups defined in the
previous section.
Table 3: Values of metrics for capability goals and capability requirements
S# NG
I
NG
R
NR
D
NR
N
NG
A
NR
A
EF Group
10 14 2 10 1 12 9 0.75
19 8 1 8 2 7 6 0.86
AEF
3 3 1 7 5 2 2 1
16 5 2 3 0 3 3 1
7 10 5 6 1 5 5 1
1 12 3 12 2 9 10 1.11
8 10 2 12 2 8 10 1.25
9 7 4 8 4 3 4 1.33
LEF
2 3 0 9 4 3 5 1.67
20 5 2 7 2 3 5 1.67
17 7 1 21 10 6 11 1.83
6 4 1 7 1 3 6 2
4 5 1 14 6 4 8 2
15 5 1 11 3 4 8 2
MEF
14 3 0 10 3 3 7 2.33
18 6 0 20 5 6 15 2.5
5 4 1 12 3 3 9 3
13 2 0 11 3 2 8 4
12 6 2 19 2 4 17 4.25
11 8 5 16 3 3 13 4.33
HEF
34
Table 3 presents the data related to capability goals and capability requirements.
The first two rows represent projects that underwent abnormal elaboration since their EF
value is less than 1. A detailed examination of these two projects helped understand the
reason behind this anomalous behavior. In the case of project number 10, a few pairs of
capability goals were merged into single capability requirements. In the second case –
project number 19 – the unexpected result was caused by two factors. First of all, like in
the first project, a pair of capability goals was merged into a single capability requirement.
Secondly, the system in project number 19 was so well-understood even at inception that
capability goals were already specified at the level of capability requirements.
Table 4: Values of metrics for LOS goals and LOS requirements
S# NG
I
NG
R
NR
D
NR
N
NG
A
NR
A
EF Group
7 3 1 2 1 2 1 0.50 AEF
1 4 0 4 0 4 4 1.00
2 4 1 5 2 3 3 1.00
3 4 0 5 1 4 4 1.00
4 3 1 2 0 2 2 1.00
5 5 3 3 1 2 2 1.00
6 1 0 3 2 1 1 1.00
8 2 0 3 1 2 2 1.00
10 6 0 6 0 6 6 1.00
11 4 2 5 3 2 2 1.00
12 4 3 1 0 1 1 1.00
13 4 0 4 0 4 4 1.00
14 5 4 6 5 1 1 1.00
15 2 0 2 0 2 2 1.00
18 4 0 4 0 4 4 1.00
19 4 2 3 1 2 2 1.00
20 2 0 2 0 2 2 1.00
LEF
9 4 4 0 0 0 0 -
16 2 2 2 2 0 0 -
17 1 1 4 4 0 0 -
-
35
The data related to LOS goals and LOS requirements are provided in Table 4.
Clearly, the project represented by the first row underwent abnormal elaboration since its
EF value is less than 1. Careful scrutiny of this project’s documentation revealed that this
unexpected behavior was a direct result of merging two LOS goals into one LOS
requirement. The last three rows represent projects with undefined EF values. After
studying the documentation of these three projects, it was found that this unanticipated
result could be due to different reasons in different projects. In the case of project number
9, the client felt that the LOS goals were either too trivial to be included in LOS
requirements or were part of the evolutionary requirements of the system. Thus, no LOS
requirement was specified for the current system. In the case of project numbers 16 and
17, none of the original LOS goals was retained. This led to completely new LOS
requirements.
36
0
2
4
6
8
10
12
14
16
18
20
0 2 4 6 8 10 12 14
NG
A
NRA
(2)
(2)
Figure 12: Elaboration of capability goals into capability
requirements
37
0
1
2
3
4
5
6
7
0 1 2 3 4 5 6 7
NG
A
NRA
(3)
(7)
(4)
(3)
Figure 13: Elaboration of LOS goals into LOS requirements
Figures 12 and 13 display the graphs obtained by plotting NR
A
against NG
A
from
Tables 3 and 4 respectively. By default, each dot represents a single project. In case two
or more projects have identical values of the pair (NG
A
, NR
A
), the dot is annotated with a
parenthesized number specifying the number of projects aggregated by that dot. For
instance, the dot labeled “(7)” in Figure 13 represents 7 projects. Regression lines have
also been added to these graphs for convenience. Here it must be pointed out that the y-
intercept of these lines, and all subsequent regression lines, has been set to zero. This
makes intuitive sense since a project that has no goals to start with cannot exhibit the
phenomenon of requirements elaboration.
38
A comparison of Figure 12 and Figure 13 reveals a marked difference between
the elaboration of capability goals and the elaboration of LOS goals. Figure 13 indicates
that, apart from the four special cases mentioned above (i.e. project numbers 7, 9, 16, and
17), LOS goals seem to have a strict one-to-one relationship with LOS requirements. In
other words, there is a magical expansion ratio of 1 instead of 7 for non-functional
requirements. This implies that a high-level LOS goal is not elaborated into multiple low-
level LOS requirements. This is generally the case because LOS goals and requirements
apply to the total system and not to incremental capabilities. This explains why the vast
majority of projects in Table 4 have an EF value of exactly 1. The situation, however, is
much different in the case of elaboration of capability goals.
3.4 Elaboration of Capability Goals
A glance at Figure 12 suggests a roughly increasing relationship between NR
A
and
NG
A
. This relationship, however, is not very strong and there is a lot of variation around
the fitted regression line. A careful observation of the same figure reveals something very
subtle i.e. the presence of different groups of elaboration. This subtlety is made apparent
in Figure 14 which is a modified version of Figure 12. Both figures contain the exact
same set of data points. Figure 14, however, presents a visual grouping of these data
points. It contains four regression lines along with their equations and coefficient of
determination (R
2
) values. The original set of data points is now clearly divided into four
distinct groups – AEF, LEF, MEF, and HEF – as defined in Section 3.2.
Projects with abnormal (i.e. less than 1) EF values are grouped by the line at the
bottom of Figure 14. Points around the solid line represent projects with low EF values (1
39
– 1.33). The dashed line fits points that correspond to projects with intermediate EF
values (1.67 – 2). Finally, points around the dotted line at the top map to projects with the
highest EF values (2.33 – 4.33). This classification is also indicated in the last column of
Table 3.
y = 0.7772x
R
2
= 0.9067
y = 1.1458x
R
2
= 0.9688
y = 1.8737x
R
2
= 0.9447
y = 3.1446x
R
2
= 0.3262
0
2
4
6
8
10
12
14
16
18
20
0 2 4 6 8 10 12 14
NG
A
NRA
AEF
LEF
MEF
HEF
(2)
(2)
Figure 14: Elaboration groups for capability goals
It is obvious from these results that, as far as the elaboration of capability goals is
concerned, there is no magical or one-size-fits-all formula. Different projects exhibit
different ratios of elaboration. Certain parameters, however, can provide some clue about
the EF group of a project at an early stage. Client experience and architectural
complexity, for instance, are few such parameters.
40
It was found that both projects in the AEF group had highly experienced clients.
These clients thoroughly understood their respective applications. As a result, even at the
time of inception, capability goals of these projects were specified at the level of
capability requirements. Therefore, no further elaboration was required. Some of the
capability goals even overlapped with each other. These were later merged into a single
capability requirement. These two factors – over-specification of capability goals and
merger of overlapping goals – caused these projects to have an abnormal EF value.
A closer examination of projects in the HEF group revealed that all of these
projects were of type “Web-based database” (see Table 1). Capability goals of these
projects underwent extensive elaboration. One possible explanation for this high
magnitude of elaboration could be that web-based databases usually consist of more
architectural tiers than regular databases and stand-alone applications. Thus,
accomplishing one high-level capability goal may require multiple tiers thereby resulting
in a larger number of requirements as compared to other applications.
Other parameters such as a project’s novelty also need to be considered. These
additional factors could explain why, for instance, all projects in the HEF group were of
type “Web-based database” but not all projects of type “Web-based database” had an EF
value greater than 2. Clearly, the goals of a web-based database that has very few novel
capabilities will not need to undergo extensive elaboration.
3.5 Utility of Elaboration Groups
A number of techniques such as Use Case Points [Karner, 1993] and Predictive
Object Points [Minkiewicz, 1997] have been proposed to come up with early estimates of
41
software development effort. All of these techniques, however, are applicable only after
some preliminary analysis or design of the software project at hand. Early determination
of a project’s EF group enables a much earlier “goals-based estimation”. Once the EF
group of a project has been determined its EF value has been bound by a narrow range.
This information together with the information about the number of goals of a project,
which is readily available even at the time of inception, can be used to come up with a
much better early estimate of a project’s size.
By definition, a larger EF value indicates a larger number of requirements per
goal than a smaller EF value. Therefore, it should not be hard to see that there is a
positive relationship between the EF value of a project and its size. Assuming everything
else is constant, a project that undergoes more elaboration of goals will be of a bigger
size than the one which undergoes less elaboration.
Accurate a priori determination of a project’s EF group also enables one to get an
insight on the sensitivity of software cost estimates. This is so because EF groups also
give a rough indication of the impact of modifications to the set of project goals.
Introduction of a new goal to the set of goals of a project in the HEF group is likely to be
accompanied by more work than a similar change to a project in the LEF group. This
indicates that a project classified under the HEF group is likely to be more risky in terms
of schedule-slippage and budget-overrun vis-à-vis a project in the LEF group. This
information can help a project manager in calculating risk reserves and coming up with
better early estimates in the presence of risks.
Albeit subtle, another important benefit of early determination of a project’s EF
group is that it provides an opportunity to save valuable time, effort, and money. For
42
instance, if it is determined early-on that a project belongs to the LEF group then it
becomes apparent that this project will exhibit very little elaboration. Therefore, for this
project, some steps of the Elaboration phase may be skipped and the Construction phase
activities may begin earlier.
Table 5: Elaboration determinants
Determinant Relationship
Project Precedentedness Negative
Client Familiarity Negative
Architectural Complexity Positive
Table 5 lists the potential determinants of a project’s EF value. This list is based
on the elaboration data obtained from analyzing the existing set of 20 small-sized real-
client projects. The second column (i.e. Relationship) indicates the direction of the
relationship between a determinant and a project’s EF value. A positive relationship
implies that, other things being constant, a higher level of the determinant will lead to a
higher EF value. A negative or inverse relationship implies that, other things being
constant, a higher level of the determinant will lead to a lower EF value. Project
precedentedness refers to the novelty of the project. Intuitively, a newer project will have
a higher EF value. Client familiarity denotes the experience of the client in the project
domain. As indicated by the two projects in the AEF group, projects with clients that are
thoroughly familiar with the domain have abnormally low EF values. Architectural
complexity stands for the number of architectural tiers present in the application. A web-
based database, for instance, has at least three architectural tiers: presentation, business
logic, and data persistence. The fact that all six projects in the HEF group were web-
43
based databases implies that, other things being constant, projects which are
architecturally more complex have higher EF values.
3.6 Threats to Validity
Even though the projects used for conducting this empirical study involve student
performers, they resemble full-scale commercial projects in a few important aspects.
Firstly, all of these projects have a real client. Secondly, these projects use industrial-
grade processes and tools, and are closely monitored to ensure quality of deliverables and
adherence to deadlines.
Despite the similarities mentioned above, these projects differ from industrial
projects in significant ways. First and foremost, none of the project team members is
working full-time on the project. The development core of the team consists of full-time
students that are usually enrolled in other courses besides SE I and SE II – the two
project-based software engineering courses. Similarly, the IV & V wing of the team
consists of part-time off-campus students who are working full-time in industry on other
assignments. Secondly, all of these projects treat schedule as an independent variable
(SAIV). Development has to finish within two semesters i.e. approximately 24 weeks.
Thus, they are representative of the increasingly frequent industrial agile method of
timeboxing. Last, but not the least, the incentive structure for students is different from
incentive structures in industrial settings. For instance, instead of being rewarded with
pay raises in lieu of healthy performance reviews, students are rewarded for their efforts
by good grades. The motivation to get good grades in all phases and deliverables of the
44
project may cause students, among other things, to over-specify high-level goals to get
good grades on early deliverables.
These constraints on the full-time availability of team members, duration of the
project, and incentive structure for students may limit the applicability of results of this
empirical study in non-academic contexts. It should not be hard, however, to use the
metrics defined in Section 3.2 to collect and analyze data in industrial settings. The only
prerequisite for using these metrics is the availability of project documentation containing
information about early product goals and detailed product requirements. Using
MBASE/RUP [B. Boehm et al., 2004; Kruchten, 2003] or LeanMBASE/RUP [B. Boehm
et al., 2005; Kruchten, 2003] – the software development process followed by the small
real-client projects analyzed in this study – is, by no means, a requirement for using these
metrics.
45
Chapter 4 From Cloud to Clam
The results of the previous empirical study clearly indicate that for non-functional
requirements there is a magical expansion ratio of 1. One cloud-level LOS goal maps to
exactly one kite-level LOS requirement. This is generally the case because LOS goals
and requirements apply to the total system and not to incremental capabilities. For
functional requirements, however, this concept of a magical expansion ratio does not hold.
The elaboration factor between cloud-level capability goals and kite-level capability
requirements varies across different projects. The other three empirical studies, therefore,
focus solely on the elaboration of functional requirements in order to obtain a deeper
understanding of the reasons for this variation.
This chapter reproduces, with minor modifications, the second empirical study
[Malik, Koolmanojwong, and Boehm, 2009] on requirements elaboration which builds on
the foundation laid by the previous study. This study examines the entire process of
elaboration of functional requirements starting at high-level goals and ending at SLOC.
In terms of the Cockburn metaphor [Cockburn, 2001], it examines all intermediate stages
of elaboration between the cloud and the clam levels.
Unlike the previous empirical study which analyzed project documentation
produced at two different milestones (i.e. LCO and IOC), this study (and all subsequent
empirical studies) examine project documentation produced at the time of one milestone
i.e. IOC. This change obviates the need to make adjustments of the type shown by
Equations 1 and 2 in Section 3.2 and allows using relatively simpler metrics for
measuring requirements elaboration.
46
The experimental setting of this study is described in Section 4.1. This is followed
by an outline of the data collection approach in Section 4.2. Section 4.3 summarizes the
results and discusses the salient aspects of these results. A case study demonstrating the
application of the approach defined in this empirical study on large commercial projects
is presented in Section 4.4.
4.1 Experimental Setting
This empirical study examines multi-level requirements data of 25 small real-
client e-services projects done in the past few years by graduate students studying
software engineering at USC [USC SE I, 2010; USC SE II, 2010]. These projects are
listed in Table 6. Each of these 25 projects was done in two semesters (i.e. 24 weeks) by
a team of 6 to 8 graduate students. Clients of these projects included USC-neighborhood
organizations, USC departments, and USC Center for Systems and Software Engineering
(CSSE) affiliate organizations.
Special care was exercised in selecting projects for this empirical study. To enable
a complete end-to-end comparison of elaboration factors, projects with incomplete
information on any level of requirements were filtered out. Similarly, COTS-intensive
applications, for which requirements data is not readily available at all levels, were not
considered. Thus, each of these 25 projects was a fully-documented custom-development
project. Furthermore, each project followed an architected-agile process [Boehm and
Lane, 2008] such as MBASE [Boehm et al., 2004], LeanMBASE [Boehm et al., 2005], or
Instructional ICM-Sw [Instructional ICM-Sw, 2008].
47
Table 6: Projects used for second empirical study
S# Year Project Name Project Type
1 2004 Online Bibliographies on Chinese Religions Web-based Database
2 2004 Data Mining of Digital Library Usage Data Stand-alone Analysis Tool
3 2004 Data Mining from Report Files Stand-alone Analysis Tool
4 2005 Data Mining PubMed Results Stand-alone Analysis Tool
5 2005 USC Football Recruiting Database Web-based Database
6 2005 Template-based Code Generator Stand-alone Conversion Tool
7 2005 Web-based XML Editing Tool Web-based Editor
8 2005 EBay Notification System Stand-alone Analysis Tool
9 2005 Rule-based Editor Stand-alone Database
10 2005 CodeCount™ Product Line with XML and C++ Stand-alone Analysis Tool
11 2006 USC Diploma Order and Tracking System Web-based Database
12 2006 Student's Academic Progress Application Web-based Database
13 2006 USC CONIPMO Stand-alone Cost Model
14 2007 USC COINCOMO Stand-alone Cost Model
15 2007 BTI Appraisal Projects Web-based Database
16 2007 LAMAS Customer Service Application Web-based Database
17 2007 BID Review System Web-based Database
18 2007 Proctor and Test Site Tracking System Web-based Database
19 2008 Master Pattern Web-based Database
20 2008 Housing Application Tracking System Web-based Database
21 2008 EZBay Stand-alone Analysis Tool
22 2008 AAA Petal Pushers Remote R&D Web-based Database
23 2008 Online Peer Review System for Writing Program Web-based Database
24 2008 The Virtual Assistant Living and Education Program Stand-alone Database
25 2008 Theatre Script Online Database Web-based Database
4.2 Method
Figure 15: Data collection process
1. Define mapping with Cockburn metaphor
2. Identify relevant artifacts
3. Retrieve requirements data from artifacts
4. Normalize requirements data
5. Calculate elaboration factors
48
Figure 15 shows the process followed in collecting data for this empirical study.
Step one involved defining a concrete mapping between the various levels of the
Cockburn metaphor (see Figure 3) and the requirements levels of these e-services
projects. This mapping is shown in Table 7. Each subsequent requirements level builds
on the previous by adding more detail. Capability goals are high-level functional goals of
a project. A typical capability goal taken from one of these 25 projects states: “Data
Analysis: The system will analyze the subsets of data as requested by the user to calculate
the required statistics.” Capability requirements, on the other hand, are more precise
statements about the functional requirements of a project. A typical capability
requirement specifies the pre-conditions, post-conditions, actors, inputs, outputs, sources,
and destinations in addition to a specific textual description. The description of one of the
capability requirements corresponding to the above-mentioned capability goal states:
“The system shall count the number of times each journal appears in the imported
dataset”. Use cases represent behavioral processes which are usually specified in the
UML Use Case Diagram [Booch, Rumbaugh, and Jacobson, 1999] of a system. Use case
steps include “Actor Action” and “System Response” steps in the main scenario as well
as the alternative scenarios of a use case. These do not correspond to messages
exchanged in a UML Sequence Diagram [Booch, Rumbaugh, and Jacobson, 1999].
Table 7: Mapping
Cockburn Metaphor Requirements Level
Cloud Capability goals
Kite Capability requirements
Sea Level Use cases
Fish Use case steps
Clam SLOC
49
The next step was identification of relevant artifacts that contained data for each
requirements level. Table 8 contains the list of artifacts [B. Boehm et al., 2004; B. Boehm
et al., 2005; Instructional ICM-Sw, 2008] examined for each e-services project.
Information about a project’s high-level capability goals was present in the Operational
Concept Description (OCD) document while its capability requirements were
documented in the System and Software Requirements Definition (SSRD) document. The
System and Software Architecture Description (SSAD) document contained information
on use cases as well as their component steps. SLOC information was available from a
project’s source code. In order to ensure consistency in the presence of multiple versions
of each artifact, it was necessary to get each artifact from the same anchor point
milestone [Boehm, 1996]. For this purpose, the Initial Operational Capability (IOC)
milestone was used since it corresponds to the end of the Construction phase [Kruchten,
2003]. At this point the product is ready to be transitioned to the client.
Step three required retrieving relevant data from these artifacts. Capability goals,
capability requirements, use cases, and use case steps were obtained from inspection of
relevant documents. A project’s SLOC were obtained by running a code counter on its
source code.
Table 8: Relevant artifacts
Requirements Level Artifact
Capability goals Operational Concept Description
Capability requirements System and Software Requirements Definition
Use cases System and Software Architecture Description
Use case steps System and Software Architecture Description
SLOC Source Code
50
In order to ensure consistency in the level of detail at each requirements level and
to improve the accuracy of analysis, the retrieved data was normalized in the next step.
The normalization of the capability goals of a project included, for instance, merging
related low-level capability goals into one high-level capability goal. As an example, one
of these 25 projects specified “Add an entry”, “Edit an entry”, and “Delete an entry” as
three separate capability goals. During the normalization process, these three capability
goals were merged into one “Manage entry” capability goal. The normalization of
capability requirements involved steps like splitting aggregate requirements into their
individual components and treating each component as a separate capability requirement.
One project, for instance, treated generating five different types of reports as one
capability requirement. During normalization, each of these five types of reports was
counted as a separate capability requirement.
Appendix A contains detailed guidelines for the normalization of high-level
requirements e.g. capability goals and capability requirements. A similar procedure was
followed in normalizing use cases and use case steps. SLOC were normalized by
ensuring that auto-generated code was not counted.
Once the requirements data had been normalized, the final step involved counting
the number of capability goals (CG), capability requirements (CR), use cases (UC), use
case steps (UCS), and SLOC and, thereafter, calculating the elaboration factor for each
pair of consecutive requirements levels. Table 9 displays the formulae used for
calculating the elaboration factors for these e-services projects. As is evident from these
formulae, each elaboration factor is a ratio of the number of requirements at two
consecutive requirements levels. The capability goals-to-capability requirements
51
elaboration factor, for instance, is the ratio of CR and CG. The value of this ratio
indicates the average number of capability requirements obtained as a result of the
elaboration of a single capability goal.
Table 9: Formulae for elaboration factors
Elaboration Stage
Cockburn Metaphor E-Services Projects
Elaboration Factor
Formula
Cloud-to-Kite Capability Goals-to-Capability Requirements
CG
CR
Kite-to-Sea Level Capability Requirements-to-Use Cases
CR
UC
Sea Level-to-Fish Use Cases-to-Use Case Steps
UC
UCS
Fish-to-Clam Use Case Steps-to-SLOC
UCS
SLOC
4.3 Results and Discussion
Table 10 lists the elaboration factor sets for each of the 25 e-services projects and
Figures 16 – 19 display distributions of the four elaboration factors. This data is
summarized in Table 11. On average, a capability goal is elaborated into about two or
three capability requirements, a capability requirement maps to a single use case, a use
case has about seven steps, and a use case step is implemented by about 67 SLOC.
52
Table 10: Elaboration factor sets for each project
S# Project Name
CG
CR
CR
UC
UC
UCS
UCS
SLOC
1 Online Bibliographies on Chinese Religions 3.00 1.00 7.89 64.75
2 Data Mining of Digital Library Usage Data 3.67 0.18 9.00 118.56
3 Data Mining from Report Files 3.00 0.43 6.00 40.72
4 Data Mining PubMed Results 3.50 0.29 7.00 5.89
5 USC Football Recruiting Database 1.83 0.91 8.90 26.80
6 Template-based Code Generator 2.50 0.40 3.50 278.57
7 Web-based XML Editing Tool 1.33 1.25 5.80 140.52
8 EBay Notification System 2.75 0.82 2.44 38.27
9 Rule-based Editor 2.00 0.75 4.83 32.17
10 CodeCount™ Product Line with XML and C++ 1.20 0.08 15.00 96.07
11 USC Diploma Order and Tracking System 1.60 1.22 3.45 31.63
12 Student's Academic Progress Application 1.60 0.89 3.63 15.76
13 USC CONIPMO 1.29 0.90 5.44 108.92
14 USC COINCOMO 2.80 0.38 6.67 199.15
15 BTI Appraisal Projects 3.20 1.00 5.75 23.74
16 LAMAS Customer Service Application 1.00 1.00 6.57 67.72
17 BID Review System 1.17 1.29 13.78 42.58
18 Proctor and Test Site Tracking System 1.90 0.84 8.38 74.46
19 Master Pattern 1.75 1.57 5.32 100.15
20 Housing Application Tracking System 3.00 2.88 8.63 16.84
21 EZBay 3.25 0.88 5.33 60.51
22 AAA Petal Pushers Remote R&D 4.17 1.00 6.48 4.29
23 Online Peer Review System for Writing Program 3.57 0.93 9.72 38.72
24 The Virtual Assistant Living and Education Program 3.57 0.88 9.68 16.49
25 Theatre Script Online Database 2.83 0.60 7.25 29.49
Capability Requirements/Capability Goals
0.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
4.00
4.50
16 17 10 13 7 11 12 19 5 18 9 6 8 14 25 1 3 20 15 21 4 23 24 2 22
Project Number
CR/CG
Figure 16:
CG
CR
distribution
53
Use Cases/Capability Requirements
0.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
10 2 4 14 6 3 25 9 8 18 24 21 12 13 5 23 1 15 16 22 11 7 17 19 20
Project Number
UC/CR
Figure 17:
CR
UC
distribution
Use Case Steps/Use Cases
0.00
2.00
4.00
6.00
8.00
10.00
12.00
14.00
16.00
8 11 6 12 9 19 21 13 15 7 3 22 16 14 4 25 1 18 20 5 2 24 23 17 10
Project Number
UCS/UC
Figure 18:
UC
UCS
distribution
54
SLOC/Use Case Steps
0.00
50.00
100.00
150.00
200.00
250.00
300.00
22 4 12 24 20 15 5 25 11 9 8 23 3 17 21 1 16 18 10 19 13 2 7 14 6
Project Number
SLOC/UCS
Figure 19:
UCS
SLOC
distribution
Table 11: Summary of elaboration results
Elaboration Factors
Statistic
CG
CR
CR
UC
UC
UCS
UCS
SLOC
Average 2.46 0.89 7.06 66.91
Median 2.75 0.89 6.57 40.72
Standard Deviation 0.94 0.55 2.97 64.46
The capability requirements-to-use cases elaboration factor -
CR
UC
- is almost one.
In other words, on average, use cases were expressed at almost the same level as
capability requirements. This discrepancy may be explained by the students’ desire to get
better grades. This desire motivated them to specify capability requirements at the same
level as use cases. This also identifies an opportunity to save valuable time during the
development of such projects. The absence of little or no value addition from the
capability requirements level to the use cases level signals that activities in one of these
55
levels are effectively redundant. These activities, therefore, may be omitted without a
significant impact on the project.
As shown by the relatively small standard deviation, the variation in the use
cases-to-use case steps elaboration factor -
UC
UCS
- is very little. This is confirmed by
Figure 20 which plots the number of use case steps against the number of use cases for all
25 projects.
Sea Level-to-Fish
R
2
= 0.8877
0
50
100
150
200
250
300
350
400
450
0 5 10 15 20 25 30 35 40 45 50
Use Cases
Use Case Steps
Figure 20: Elaboration of use cases to use case steps
The standard deviation of the use case steps-to-SLOC elaboration factor -
UCS
SLOC
- is disproportionately large. This may be due to the fact that some SLOC are devoted to
implementing level of service (LOS) requirements. Apart from SLOC, all other
requirements levels examined in this study deal only with capability or functional
requirements. Therefore, everything else being constant, a project with more LOS
requirements will have more SLOC. This will result in a larger use case step-to-SLOC
elaboration factor even though the number of use case steps remains unchanged.
56
The information summarized in Table 11 can be easily used to estimate the SLOC
of a similar new e-service project at the time of its inception. Once the high-level
capability goals of this project have been determined, the following formula can be used
to estimate the number of SLOC for this project:
Equation 1:
UCS
SLOC
UC
UCS
CR
UC
CG
CR
CG SLOC × × × × =
The first term on the right-hand side of Equation 1 is the number of capability goals and
the remaining four terms represent the elaboration factors defined in Table 9.
Consider, for instance, a new e-service project that has identified 5 high-level
capability goals at inception. The most likely SLOC for this project can be estimated by
using Equation 1 and plugging-in the value of CG (= 5) along with the average-values of
elaboration factors shown in Table 11.
Most Likely SLOC = 5 * 2.46 * 0.89 * 7.06 * 66.91 ≈ 5171
A one-standard deviation SLOC-range can also be calculated for this project using the
standard deviations shown in Table 11:
Minimum SLOC = 5 * (2.46 – 0.94) * (0.89 – 0.55) * (7.06 – 2.97) * (66.91 – 64.46)
≈ 26
Maximum SLOC = 5 * (2.46 + 0.94) * (0.89 + 0.55) * (7.06 + 2.97) * (66.91 + 64.46)
≈ 32, 256
4.4 Requirements Elaboration of Commercial Projects
This technique of analyzing a project’s multi-level requirements data to determine
its set of elaboration factors can be applied to large commercial projects as well. An
opportunity to conduct such an analysis was provided by ballpark data in [Hopkins and
57
Jenkins, 2008] on multiple requirements levels of a certain category of large IBM
projects. Table 12 summarizes this data.
Table 12: Multi-level requirements data of large IBM projects
Requirements Level Number of Requirements
Business events 50
Use cases 200
Main steps 1, 500
Detailed operations 20, 000
SLOC 1, 500, 000
Each requirements level shown in Table 12 can be mapped to an altitude level of
the Cockburn metaphor. Table 13 shows this mapping along with the set of elaboration
factors of these large IBM projects. On average, a business event is elaborated into four
use cases, a use case contains about seven or eight main steps, a main step is expressed
by about thirteen detailed operations, and a detailed operation is implemented by seventy-
five SLOC.
Table 13: Elaboration factors of large IBM projects
Elaboration Stage
Cockburn Metaphor Large IBM Projects
Elaboration Factor
Cloud-to-Kite Business Events-to-Use Cases 4.00
Kite-to-Sea Level Use Cases-to-Main Steps 7.50
Sea Level-to-Fish Main Steps-to-Detailed Operations 13.33
Fish-to-Clam Detailed Operations-to-SLOC 75.00
Elaboration factors obtained from this analysis can be helpful in early sizing and
cost estimation of similar future projects. Using these elaboration factors, an estimate of
the size of a new project can be obtained as early as the inception stage. Consider, for
instance, a similar large IBM project that identifies 60 business events at the time of
inception. Based on the elaboration factors in Table 13, a rough sizing of this project
would be about (60 * 4 * 7.5 * 13.33 * 75 ≈) 1, 800 KSLOC.
58
However, even within IBM, one would have to be careful about binding such an
estimate into a firm commitment. If the project is highly similar, much of its software
could be reused from previous projects at much less cost. If it is dissimilar, it is not clear
how to adjust the estimate. The strongest approach would be to obtain distributions of
elaboration factors such as the ones shown for e-services projects in Figures 16 – 19, and
to determine confidence intervals for SLOC estimates based on these distributions for
one’s own organization.
59
Chapter 5 Efficacy of COCOMO II Cost Drivers in Predicting
Elaboration Profiles
The first empirical study (see Chapter 3) identified project precedentedness as one
of the potential determinants of the variation in the first stage of requirements elaboration.
Coincidentally, precedentedness (PREC) is one of the cost drivers of COCOMO II
[Boehm et al., 2000]. Can PREC and other COCOMO II cost drivers be used to predict
the variations in the different stages of elaboration?
This chapter attempts to answer the above question. It reproduces, with minor
modifications, the third empirical study [Malik and Boehm, 2010] on requirements
elaboration. The empirical setting of this study is the same as the second study as it uses
the same set of 25 small e-services projects (see Table 6). The purpose of this study is to
determine the efficacy of COCOMO II cost drivers in predicting the elaboration profile
(EP) of a project. A project’s EP consists of the elaboration factors for all stages of
elaboration. Due to the pairing of consecutive requirements levels in calculating
elaboration factors, a project which expresses requirements at n different levels has n – 1
elaboration factors in its EP.
Section 5.1 describes the process for determining the COCOMO II cost driver
ratings. Data analysis results are reported in Section 5.2 along with a commentary on the
salient aspects of these results. Section 5.3 concludes this chapter with a discussion of the
possible reasons for these results.
60
5.1 Method
Table 14 displays the rating scale used for COCOMO II cost drivers. This linear
rating scale suffices for the purpose of determining the impact of the variations in cost
driver values on projects’ elaboration profiles. It displays the abbreviations of rating
levels along with the numeric value assigned to each of the six rating levels. Since
increments between rating levels are also possible, the final rating of a cost driver is
determined by the following equation:
Equation 1: % Increment Value Rating + =
If a cost driver is rated, for instance, at VLO with an increment of 50% then its numeric
rating will be 1 + 0.5 = 1.5. If there is no increment (i.e. Increment% = 0), which is most
often the case, Rating is simply equal to the numeric Value obtained using the mapping
given in Table 14.
Table 14: Cost driver rating scale
Rating Level Abbreviation Value
Very Low VLO 1
Low LO 2
Nominal NOM 3
High HI 4
Very High VHI 5
Extra High XHI 6
Information about the rating levels of COCOMO II cost drivers is obtained from
the final version of a project’s Life Cycle Plan (LCP). The final version of the LCP is
usually present in the last Initial Operational Capability (IOC) working set, as-built set, or
61
the final deliverables of the project. The rationale for choosing the final version of LCP is
two-fold. Firstly, the elaboration profiles were obtained using documents produced at the
IOC anchor point milestone [Boehm, 1996] which maps to the end of the construction
phase. Thus, in order to ensure consistency with the elaboration profiles, COCOMO II
cost driver ratings are also derived from the same milestone. Secondly, it is important to
use stabilized ratings of cost drivers. The final version of the LCP contains ratings that
have stabilized after evolution over the course of the project.
Finding the numeric ratings of a project’s five scale factors – PREC, FLEX,
RESL, TEAM, and PMAT – is a straight forward process. This is primarily because these
scale factors apply to the project as a whole. Once the rating levels of these scale factors
have been obtained from the LCP, all that needs to be done is to map the rating levels to
the numeric values using Table 14 and then use Equation 1 to get the final rating. Even
though the multiplicative SCED cost driver also applies to the project as a whole, it can
be easily omitted from this particular analysis. This is because all 25 projects examined in
this study use the SAIV process model and thus have the same value (i.e. NOM) for the
SCED cost driver.
Determining the numeric ratings of the multiplicative cost drivers (excluding
SCED) requires more effort. The reason for this is that these multiplicative cost drivers
apply to the individual modules of the project. In other words, each module of the project
has its own separate list of multiplicative cost driver ratings. In order to reconcile this
difference between the applicability of project-wide scale factors and module-wide
multiplicative cost drivers, module-wide cost drivers are weighted by module size to
come up with a project-wide rating. The following formula is used for this conversion:
62
Equation 2:
∑
∑
=
=
×
=
n
i
i
n
i
i i
ModuleSize
ModuleSize ng ModuleRati
g ojectRatin
1
1
Pr
In Equation 2, n represents the number of modules in the project. Modules that are
bigger in size have more impact on the ProjectRating vis-à-vis smaller modules.
Consider, for instance, a project that has three modules – M1, M2, and M3 – with sizes
100 KSLOC, 200 KSLOC, and 300 KSLOC respectively. If CPLX rating levels for M1,
M2, and M3 are LO, NOM, and HI respectively, then using Table 14 (and assuming
Increment% = 0) the overall project CPLX rating is given by:
33 . 3
600
2000
) 300 200 100 (
) 300 4 ( ) 200 3 ( ) 100 2 (
= =
+ +
× + × + ×
5.2 Results
Tables 15 through 19 summarize the COCOMO II cost driver ratings for each of
the 25 small real-client projects. These ratings have been calculated using the procedure
described in the previous section. For ease of reference, the first column – S# – in these
tables maps to the first column of Table 6.
As a first step towards determining the utility of COCOMO II cost drivers in
predicting the elaboration profile of a project, a simple regression analysis is carried out.
The individual correlation between each of the 4 elaboration factors (i.e.
CG
CR
,
CR
UC
,
UC
UCS
, and
UCS
SLOC
) and each of the 21 COCOMO II cost drivers (i.e. 5 scale factors and
16 multiplicative cost drivers) is determined. Needless to say, in all of these regression
63
analyses, the elaboration factor acts as the response variable while the cost driver acts as
the predictor. All in all, 4 x 21 = 84 correlations are calculated.
Table 15: COCOMO II scale factor ratings
Scale Factors
S# PREC FLEX RESL TEAM PMAT
1 3.00 5.00 5.00 3.00 3.00
2 3.00 3.00 4.00 5.00 3.00
3 3.00 4.00 5.00 4.00 3.00
4 3.00 2.00 4.00 4.00 3.00
5 3.00 4.00 4.00 4.00 3.00
6 3.00 2.00 3.00 4.00 2.00
7 3.00 3.00 4.00 3.00 3.00
8 3.00 3.00 4.00 3.00 3.00
9 4.00 3.00 4.00 3.00 4.00
10 2.00 2.00 3.00 5.00 1.00
11 3.00 3.00 4.00 3.00 3.00
12 4.00 2.00 4.00 4.00 3.00
13 6.00 2.00 4.00 2.00 3.00
14 2.00 5.00 4.00 4.00 3.00
15 3.25 4.00 3.00 3.00 3.00
16 2.00 3.00 3.00 4.00 3.00
17 2.00 3.00 3.00 4.00 3.00
18 3.00 3.00 4.00 4.00 3.00
19 3.00 4.00 3.00 4.00 3.00
20 3.00 3.00 3.00 1.00 4.00
21 2.00 3.00 3.00 4.00 3.00
22 4.00 4.00 4.00 4.00 3.00
23 3.00 4.00 4.00 4.00 3.00
24 4.00 3.00 3.00 3.00 4.00
25 3.00 4.00 4.00 3.00 3.00
64
Table 16: COCOMO II product factor ratings
Product Factors
S# RELY DATA CPLX RUSE DOCU
1 2.00 2.14 2.89 2.00 2.64
2 3.00 4.00 2.56 2.71 3.00
3 3.00 2.96 3.30 2.09 5.00
4 3.00 3.50 2.00 3.00 4.00
5 3.00 3.00 3.14 3.00 3.07
6 2.00 2.00 3.95 3.00 5.00
7 3.20 3.00 2.80 2.00 3.40
8 3.60 3.00 2.80 2.00 3.40
9 3.31 2.00 3.00 2.00 5.00
10 3.77 3.23 2.68 2.00 3.00
11 3.00 3.00 3.00 3.00 3.00
12 3.87 3.00 3.17 3.00 3.30
13 4.00 3.00 2.00 2.00 2.00
14 2.00 2.00 3.00 4.00 3.00
15 1.70 2.00 2.63 2.66 3.34
16 2.00 2.00 1.54 3.00 4.00
17 3.00 3.00 3.21 3.00 4.00
18 3.00 2.00 3.00 2.00 3.00
19 3.74 2.89 2.94 2.13 2.89
20 3.00 3.00 3.27 3.00 2.72
21 2.71 2.71 3.00 2.00 4.00
22 3.06 2.00 3.09 2.00 3.00
23 3.00 2.00 3.27 2.00 2.00
24 4.00 2.07 2.38 3.00 3.00
25 2.74 2.27 3.03 2.00 3.00
65
Table 17: COCOMO II platform factor ratings
Platform Factors
S# TIME STOR PVOL
1 3.00 3.00 2.00
2 3.00 3.33 4.00
3 2.00 2.00 2.00
4 3.33 3.00 3.00
5 3.86 3.93 2.14
6 3.45 2.26 2.00
7 3.00 3.00 3.00
8 3.00 3.00 3.00
9 3.00 3.00 2.00
10 3.00 3.00 3.00
11 3.00 3.00 2.00
12 3.00 3.00 3.00
13 3.00 3.00 2.00
14 3.00 3.00 3.00
15 3.00 3.00 2.00
16 3.00 3.00 3.00
17 3.00 3.00 2.00
18 3.00 3.00 2.00
19 3.00 3.00 2.00
20 3.00 3.00 2.52
21 3.29 3.00 2.00
22 3.00 3.00 2.00
23 3.00 3.00 2.00
24 3.00 3.00 2.00
25 3.00 2.30 1.81
66
Table 18: COCOMO II personnel factor ratings
Personnel Factors
S# ACAP PCAP PCON APEX PLEX LTEX
1 3.00 4.00 2.00 3.00 2.00 2.00
2 3.00 4.00 2.00 2.72 2.00 4.00
3 3.00 3.00 3.00 1.00 2.00 2.00
4 3.00 3.00 1.00 3.00 4.00 3.00
5 3.00 2.93 5.00 1.93 1.93 2.93
6 2.77 2.45 1.00 1.77 2.00 3.00
7 2.60 3.00 3.00 2.00 3.00 3.00
8 2.60 3.60 4.00 2.00 3.00 3.00
9 4.00 3.00 2.00 4.00 3.00 4.00
10 3.00 4.00 2.00 4.00 5.00 4.00
11 3.00 3.00 3.00 3.00 3.00 3.00
12 3.00 3.83 3.00 3.83 3.00 3.00
13 4.00 4.00 3.00 5.00 5.00 4.11
14 4.00 3.00 1.00 3.00 3.00 3.00
15 2.66 2.66 4.00 2.32 3.32 2.32
16 3.00 3.00 3.00 2.00 2.00 3.00
17 3.00 3.00 2.00 3.00 2.89 3.00
18 3.00 4.00 2.00 4.00 3.00 2.00
19 4.00 4.00 2.00 3.00 2.00 3.00
20 3.53 2.00 2.00 2.00 2.00 2.00
21 4.00 4.00 2.00 3.00 3.00 3.00
22 5.00 5.00 3.00 3.00 2.84 2.96
23 4.52 4.52 5.00 4.04 4.04 4.04
24 3.00 4.62 3.00 4.62 3.00 4.62
25 3.00 3.00 4.00 3.15 3.00 3.00
67
Table 19: COCOMO II project factor ratings
Project Factors
S# TOOL SITE
1 3.00 3.00
2 4.00 3.00
3 3.00 5.00
4 4.00 4.00
5 2.93 4.00
6 4.00 5.00
7 3.00 3.00
8 3.00 5.00
9 5.00 4.00
10 3.00 3.00
11 3.00 4.00
12 3.30 3.00
13 5.00 4.00
14 4.00 4.00
15 3.00 5.22
16 3.00 3.00
17 3.00 4.00
18 3.00 4.00
19 2.00 5.00
20 3.00 1.00
21 3.00 5.00
22 2.00 5.00
23 3.00 5.00
24 4.00 4.00
25 4.00 4.00
68
Tables 20 through 23 summarize the results of these simple regression analyses.
These tables have been sorted in descending order of the correlation strength. In other
words, COCOMO II drivers having a higher value of the coefficient of determination
(R
2
) appear above those with lower values. The first column of these tables – Rank –
indicates the rank of the cost driver with respect to its correlation strength. The column
labeled “+/-” specifies the direction of the relationship between the elaboration factor and
the cost driver as indicated by the sign of the slope coefficient of the fitted mean function
using ordinary least squares. A “+” indicates a positive relationship while a “-” signifies a
negative or inverse relationship. The last column – Type – displays the category of the
COCOMO II cost driver i.e. scale factor, product factor, platform factor, personnel factor,
or project factor.
69
Table 20: Correlation between
CG
CR
and COCOMO II cost drivers
Rank R
2
+/- COCOMO II Driver Type
1 0.1283 + FLEX Scale Factor
2 0.0877 + ACAP Personnel Factor
3 0.0793 + PMAT Scale Factor
4 0.0724 + SITE Project Factor
5 0.0712 + PCAP Personnel Factor
6 0.0455 - RELY Product Factor
7 0.0345 + RESL Scale Factor
8 0.0225 - DATA Product Factor
9 0.0214 + CPLX Product Factor
10 0.0174 - PLEX Personnel Factor
11 0.0165 - STOR Platform Factor
12 0.0073 - APEX Personnel Factor
13 0.0053 - TIME Platform Factor
14 0.0048 - DOCU Product Factor
15 0.0029 + PREC Scale Factor
16 0.0015 - PVOL Platform Factor
17 0.0009 - PCON Personnel Factor
18 0.0009 - RUSE Product Factor
19 0.0008 - LTEX Personnel Factor
20 0.0005 - TOOL Project Factor
21 9.00E-06 + TEAM Scale Factor
70
Table 21: Correlation between
CR
UC
and COCOMO II cost drivers
Rank R
2
+/- COCOMO II Driver Type
1 0.4707 - TEAM Scale Factor
2 0.2694 + PMAT Scale Factor
3 0.1531 - SITE Project Factor
4 0.1425 - TOOL Project Factor
5 0.1233 - LTEX Personnel Factor
6 0.0895 - PLEX Personnel Factor
7 0.0806 - RESL Scale Factor
8 0.0739 - DOCU Product Factor
9 0.0645 - PVOL Platform Factor
10 0.0593 - PCAP Personnel Factor
11 0.0313 + STOR Platform Factor
12 0.0235 + ACAP Personnel Factor
13 0.0193 + CPLX Product Factor
14 0.0188 - APEX Personnel Factor
15 0.0128 + PCON Personnel Factor
16 0.0119 + FLEX Scale Factor
17 0.0054 + PREC Scale Factor
18 0.0048 + RELY Product Factor
19 0.0013 + RUSE Product Factor
20 0.0011 - DATA Product Factor
21 0.0002 + TIME Platform Factor
71
Table 22: Correlation between
UC
UCS
and COCOMO II cost drivers
Rank R
2
+/- COCOMO II Driver Type
1 0.1148 - PREC Scale Factor
2 0.1016 - SITE Project Factor
3 0.082 + TEAM Scale Factor
4 0.0652 + APEX Personnel Factor
5 0.0635 - DOCU Product Factor
6 0.0633 - PMAT Scale Factor
7 0.057 + PLEX Personnel Factor
8 0.0558 + STOR Platform Factor
9 0.0551 - RESL Scale Factor
10 0.0467 + LTEX Personnel Factor
11 0.0306 + PCAP Personnel Factor
12 0.0192 + DATA Product Factor
13 0.0117 - TOOL Project Factor
14 0.0109 + RELY Product Factor
15 0.005 - CPLX Product Factor
16 0.0042 + PVOL Platform Factor
17 0.0018 - PCON Personnel Factor
18 0.0007 + FLEX Scale Factor
19 0.0007 + RUSE Product Factor
20 0.0006 + TIME Platform Factor
21 6.00E-05 - ACAP Personnel Factor
72
Table 23: Correlation between
UCS
SLOC
and COCOMO II cost drivers
Rank R
2
+/- COCOMO II Driver Type
1 0.2265 - PCON Personnel Factor
2 0.2058 - PMAT Scale Factor
3 0.0868 - RELY Product Factor
4 0.0579 + TOOL Project Factor
5 0.0526 - STOR Platform Factor
6 0.0514 + TEAM Scale Factor
7 0.0486 + CPLX Product Factor
8 0.0401 + RUSE Product Factor
9 0.0391 + PVOL Platform Factor
10 0.0318 - PCAP Personnel Factor
11 0.026 - PREC Scale Factor
12 0.0238 + DOCU Product Factor
13 0.0213 - APEX Personnel Factor
14 0.0201 + TIME Platform Factor
15 0.0184 - RESL Scale Factor
16 0.0086 - PLEX Personnel Factor
17 0.008 - DATA Product Factor
18 0.0071 - FLEX Scale Factor
19 0.0066 - ACAP Personnel Factor
20 0.0062 + LTEX Personnel Factor
21 0.0033 + SITE Project Factor
73
Table 20 shows the simple correlation between the first elaboration factor -
CG
CR
-
and each of the 21 cost drivers.
CG
CR
represents the elaboration of capability goals (CG)
into capability requirements (CR). While all correlations are weak,
CG
CR
and FLEX have
the strongest correlation i.e. 0.1283.
Correlations of cost drivers with
CR
UC
are shown in Table 21.
CR
UC
is the second
elaboration factor which measures the elaboration of capability requirements (CR) into
use cases (UC).
CR
UC
has the highest correlation with TEAM (0.4707) followed by PMAT
(0.2694), SITE (0.1531), TOOL (0.1425), and LTEX (0.1233). Correlations with the rest
of the cost drivers are weak.
The third elaboration factor -
UC
UCS
- quantifies the elaboration of use cases (UC)
into use case steps (UCS). Table 22 displays the correlations of cost drivers with
UC
UCS
.
All correlations are weak. However, correlations with PREC (0.1148) and SITE (0.1016)
are relatively stronger.
Table 23 presents the correlations of cost drivers with the last elaboration factor
i.e.
UCS
SLOC
.
UCS
SLOC
measures the elaboration of use case steps (UCS) into source lines of
code (SLOC). In this final stage of elaboration, PCON (0.2265) and PMAT (0.2058) are
the only cost drivers which have correlations worth mentioning.
74
In the second step, multiple regression analysis (which uses one response and
multiple predictors) is used to determine the utility of COCOMO II cost drivers in
predicting the elaboration profile of a project. This involves identifying the cost drivers
pertinent to each stage of elaboration. This list of relevant cost drivers is presented in
Table 24. In this table, each stage is assigned a number for later reference and is labeled
using the Cockburn altitude metaphor [Cockburn, 2001].
Table 24: COCOMO II cost drivers relevant at each elaboration stage
Elaboration Stage
(Cockburn Metaphor)
Relevant Cost Drivers
Stage 1: Capability Goals to Capability Requirements
(Cloud to Kite)
ACAP, APEX, DOCU, FLEX, PREC, RESL, SITE,
TEAM
Stage 2: Capability Requirements to Use Cases
(Kite to Sea Level)
ACAP, APEX, PCON, PREC
Stage 3: Use Cases to Use Case Steps
(Sea Level to Fish)
ACAP, APEX, CPLX, DOCU, PCON, PREC
Stage 4: Use Case Steps to SLOC
(Fish to Clam)
APEX, CPLX, LTEX, PCAP, PCON, PLEX,
PREC, PVOL, RELY, RUSE, STOR, TIME, TOOL
At each stage of elaboration, cost drivers are short-listed based on their perceived
applicability at that stage. Applications experience and precedentedness can influence
elaboration at each stage thus APEX and PREC are listed as potential predictors in all
four stages. Personnel continuity (PCON) is only relevant after the first stage of
elaboration. Thus, PCON appears in all stages except the first. Required software
reliability (RELY) deals with level-of-service (LOS) or non-functional requirements and
is, therefore, not considered at all. Process maturity (PMAT) is omitted from all four
stages since each of the 25 projects is done by teams of graduate students that are
approximately at the same level of process maturity. Similar reasoning is used to short-
75
list the other cost drivers. As a rule of thumb, scale factors are more relevant in earlier
stages of elaboration while product factors, platform factors, and project factors are more
relevant at later stages. The relevance of personnel factors varies from stage to stage.
Programmer capability (PCAP), for instance, is only relevant at the last stage of
elaboration which deals with SLOC. Analyst capability (ACAP), on the other hand, is
relevant in all stages except the last.
Table 25 summarizes the results of the multiple regression analyses conducted
using the short-listed predictors shown in Table 24. Appendix B contains the details of
this multiple regression analyses performed using the R statistical computing
environment [R Development Core Team, 2007]. The low values of the multiple
correlation coefficients (multiple R
2
) indicate very weak predictive power of the short-
listed cost drivers. Moreover, the low significance levels (high p-values) signify very
strong evidence in favor of the null hypothesis that the means of the elaboration factors
do not depend on any of their respective short-listed cost drivers.
Table 25: Results of multiple regression analysis
Elaboration Stage Multiple R
2
P-value
Stage 1: Capability Goals to Capability Requirements 0.223 0.784
Stage 2: Capability Requirements to Use Cases 0.092 0.731
Stage 3: Use Cases to Use Case Steps 0.373 0.159
Stage 4: Use Case Steps to SLOC 0.547 0.493
5.3 Discussion
Results reported in the previous section clearly imply that there is no magical
formula for predicting the elaboration profile of a project using only the information
contained in the COCOMO II cost drivers. Correlations obtained using the simple and
76
multiple regression analyses are weak indicating that the variance of cost drivers cannot
adequately explain the variance in elaboration factors. This weak predictive power of the
COCOMO II cost drivers may be due to a number of confounding factors.
First and foremost, the accuracy of data needs to be considered. [Malik,
Koolmanojwong, and Boehm, 2009] found that it was necessary to normalize multi-level
requirements data in order to obtain consistent elaboration profiles. Therefore, it may be
necessary to normalize COCOMO II cost driver ratings across these 25 projects. In fact,
concrete evidence already points in favor of this. While obtaining the cost driver ratings,
it was observed that different teams had assigned different rating levels for PCON even
though they had cited the same rationale. Similarly, even though all student teams were
approximately at the same level of process maturity, a number of different rating levels
were noticed for PMAT. Such occurrences clearly indicate the need for having a list of
guiding principles to assist student teams in selecting cost drivers’ rating levels. This
would help a great deal in obtaining consistent ratings of cost drivers across different
projects.
Another potential confounding factor is the students’ incentive structure. Unlike
the individuals involved in industry projects, team members of projects undertaken in
academia are motivated by the desire to get good grades in each deliverable. A natural
consequence of this is over-specification of information. For instance, teams may
document the capability goals in the Operational Concept Description document at the
level of detail of capability requirements. This practice easily corrupts the elaboration
data.
77
Last, but certainly not the least, the variation amongst the clients of these projects
may have played a significant role in the results obtained. As found out by interviewing
the teaching assistants responsible for grading these projects, not all clients wanted quick
feedback in the form of prototypes and screen shots. The demand for quick feedback may
also lead to an over-specification of information at higher levels of requirements. This, in
turn, spoils the elaboration data. The same interview also asked the teaching assistants to
rank the clients on the CRACKD – collaborative, representative, authorized, committed,
knowledgeable, and decisive – characteristics using a scale of 1 (least) to 5 (most).
CRACKD is a slightly augmented version of the CRACK customer characteristics
mentioned in [Boehm and Turner, 2004]. Decisiveness measures the ability of the client
to state requirements that are final and not subject to later modification. As expected,
each client had his/her own CRACKD profile. These client characteristics may also be
responsible for some of the variation in the elaboration profiles. A client that is more
representative and knowledgeable, for instance, may provide more information upfront
leading to lower elaboration factors at higher levels of requirements. On the other hand, a
project with a less decisive client may experience greater elaboration in the earlier stages.
78
Chapter 6 Comparative Analysis of Requirements Elaboration
This chapter reproduces, with minor modifications, the fourth and final empirical
study [Malik, Boehm, Ku, and Yang, 2010] on requirements elaboration. This study uses
a novel approach to determine the elaboration profiles of different versions of an
industrial product. To get further insights into the process of requirements elaboration,
these elaboration profiles are compared with the elaboration profiles obtained in the
second empirical study.
Section 6.1 presents the empirical setting of this study while Section 6.2 describes
the data collection method. The results of data analysis are shown in Section 6.3 which
also discusses the salient aspects of these results. Section 6.4 compares the results of this
study with the results of the second empirical study. Section 6.5 summarizes the major
findings and identifies the main threats to validity.
6.1 Empirical Setting
This empirical study focuses on analyzing the requirements elaboration of an
industrial software process management product called SoftPM [Wang and Li, 2005]
which was developed by a CMMI Maturity Level 4 [Chrissis, Konrad, and Shrum, 2006]
Chinese software company. This product has been in the market for over 7 years and
more than 300 Chinese commercial software organizations use this product to manage
their software processes. About 30 developers and testers have participated in the
iterative development of SoftPM.
79
SoftPM is a web-based Java EE [Jendrock et al., 2006] application with four main
architectural tiers i.e. presentation, control, business logic, and data persistence.
Currently, SoftPM contains more than 600 KSLOC. It has four main modules viz. system
management, project management, measurement and analysis, and process asset
management.
6.2 Data Collection
The first step in collecting the required data was to identify all versions of SoftPM
that had complete documentation including source code files. Complete documentation is
required to extract information about the number of requirements at each level of the
requirements hierarchy. Five versions satisfied this constraint.
Table 26: Requirements levels of SoftPM
S# Requirements Level Cockburn Metaphor
1 Capability Goals (CG) Cloud
2 Capability Requirements (CR) Kite
3 Use Cases (UC) Sea
4 Use Case Steps (UCS) Fish
5 Source Lines of Code (SLOC) Clam
Once the relevant versions had been shortlisted, the next step was to identify the
different levels at which requirements of SoftPM had been expressed in these versions.
These different levels are shown in Table 26. To facilitate visualization of the amount of
detail contained in these levels, a mapping of each requirements level to a level in the
Cockburn altitude metaphor [Cockburn, 2001] is also shown in Table 26. Capability
goals, for instance, contain the least amount of detail and are, therefore, mapped to the
80
cloud level of the Cockburn metaphor. SLOC, on the other hand, map to the lowest level
(i.e. clam) since they cannot be elaborated any further.
Determining the number of requirements at each of these five levels for each of
the five versions of SoftPM entails dealing with the fact that there is considerable overlap
amongst versions. Later versions may not only add brand new CG but may also elaborate
the CG added by previous versions. For example, consider the scenario shown in Figure
21. In this simplified hypothetical scenario, a product has only two versions i.e. V1 and
V2. The second version (V2) adds more functionality to the first (V1). V1 specified two
CG i.e. CG1 and CG2. V2 inherits these two CG and specifies one additional CG i.e.
CG3. Besides this, V2 also adds a new CR – CR4 – to CG1. These new additions in V2
have been shown in bold in Figure 21.
Figure 21: Example scenario depicting overlaps amongst versions
V1
CG1
CR1
CR2
CR3
CG2
CR1
CR2
V2
CG1
CR1
CR2
CR3
CG2
CR1
CR2
CG3
CR1
CR2
CR3
CR4
81
Figure 22: Example scenario after removing overlaps amongst versions
The addition of a completely new CG – CG3 – does not pose any problems for
measuring elaboration since the hierarchies of the incumbent CG remain unmodified.
Complications arise, however, when a change is made to the hierarchy of an overlapping
CG. This is exemplified by the addition of CR4 to the hierarchy of CG1 in V2. This
change to the hierarchy of an overlapping CG implies that this CG was not entirely
elaborated in the previous version i.e. V1 did not completely elaborate CG1.
This problem of incomplete elaboration due to overlaps amongst different
versions can be solved by focusing on the CG of each version. The last version
elaborating a CG at any level, irrespective of whether that CG originated in that version
or an earlier one, is assigned the entire hierarchy of that CG. As a result, each version is
left with the CG that are completely elaborated by that version only. This procedure
removes the overlaps amongst versions. In this way, each version is isolated and becomes,
for all practical purposes, an independent product. In the context of our example, CG1
and its entire hierarchy are removed from V1 and assigned solely to V2. This change is
depicted in Figure 22. V1 is now left with only one CG – CG2 – since this is the only CG
that is completely elaborated in V1. Each version now has a non-overlapping set of CG.
V1
CG2
CR1
CR2
V2
CG1
CR1
CR2
CR3
CG3
CR1
CR2
CR3
CR4
82
Obtaining gross values for the number of requirements at each level shown in
Table 26 is a relatively straightforward exercise. For levels 1 through 4, it requires
manual inspection of the appropriate documents. In case of level 5 i.e. SLOC, code
counters such as those made available by USC [Unified CodeCount, 2009] may be used.
Gathering net values (i.e. values obtained after discounting for overlaps) for the number
of requirements at each level, however, requires significantly more effort. The hierarchy
of each new CG has to be manually checked for modifications in all subsequent versions.
Though extremely tedious, obtaining net values for levels 1 through 4 is still
practical. What is impractical is obtaining the exact net value of level 5 i.e. SLOC. It
requires mapping each line of code to a particular UCS. Since many lines of code e.g.
compiler directives, data declarations, utility functions etc. are shared, the only feasible
alternative is to estimate the net SLOC of each version. The estimation formula employed
for this purpose is given by
Equation 1: NetSLOC = (GrossSLOC/GrossUCS) x NetUCS,
where GrossUCS and GrossSLOC represent the number of gross UCS and gross SLOC,
respectively, and NetSLOC and NetUCS stand for the number of net SLOC and net UCS,
respectively. The estimation formula used in Equation 1 ensures that the ratio of net
SLOC and net UCS is the same as the ratio of gross SLOC and gross UCS thus
preserving the elaboration factor between UCS and SLOC levels.
The final step in data collection was normalization. It was found that not all CR
were expressed at the same level of detail. A few CR were specified at the higher level of
CG. In order to make the data consistent and to improve the accuracy of analysis, such
higher-level CR were normalized by splitting them into multiple CR each of which
83
contained the right amount of detail. CG, UC, UCS, and SLOC did not require any
normalization since the data at these levels was fairly consistent.
6.3 Results
Table 27 summarizes the multi-level requirements data for each of the five
versions of SoftPM. Version numbers given in the first column do not represent real
version numbers. Real version numbers have been masked to maintain the confidentiality
of the data. The chronological order of the versions, however, has been kept the same. In
other words, higher version numbers correspond to later releases. Numerical values
shown in Table 27 represent the final net values for each requirements level i.e. values
obtained after discounting for overlaps between different versions and then normalizing
the results if required. For example, V4 has 5 net CG, 13 normalized net CR, 73 net UC,
338 net UCS, and 99001 net SLOC.
Table 27: Multi-level requirements data of SoftPM
Requirements Levels
Version
CG CR UC UCS SLOC
V1
7 11 43 154 27146
V2
2 3 12 76 16267
V3
3 4 15 116 41950
V4
5 13 73 338 99001
V5
4 11 79 478 138511
The elaboration factor (EF) between any two consecutive requirements levels –
RL
i
and RL
i+1
– is calculated using the following formula:
Equation 2: EF(RL
i
, RL
i+1
) = NetReq(RL
i+1
)/NetReq(RL
i
),
84
where NetReq(RL
i
) represents the number of net requirements at the i
th
requirements level.
For instance, using Equation 2, EF(CG, CR) for V4 is 13/5 or 2.60.
Information contained in Table 27 can be used to determine the elaboration
profile of each version. The elaboration profile comprises the set of different elaboration
factors. Since SoftPM versions have 5 (= n) different requirements levels, each
elaboration profile will contain 4 (= n – 1) elaboration factors. Table 28 contains the
complete elaboration profile of each version. Each elaboration profile – represented by a
row in this table – contains four elaboration factors. The distributions of these four
elaboration factors are shown in Figures 23 through 26. As is evident from these
distributions, different versions have different values for each elaboration factor.
Table 28: Elaboration profiles
Elaboration Factors
Version
(CG, CR) (CR, UC) (UC, UCS) (UCS, SLOC)
V1
1.57 3.91 3.58 176.27
V2
1.50 4.00 6.33 214.04
V3
1.33 3.75 7.73 361.64
V4
2.60 5.62 4.63 292.90
V5
2.75 7.18 6.05 289.77
The variation in the distribution of different elaboration factors could be due to
different reasons. For instance, the variation in the distribution of EF(UC, UCS) could be
due to the variation in the proportion of steps in alternative scenarios of use cases. On the
other hand, the variation in the distribution of EF(UCS, SLOC) could be due to the
variation in the amount of code reused from libraries.
85
0.00
0.50
1.00
1.50
2.00
2.50
3.00
V1 V2 V3 V4 V5
Versions
EF(CG, CR)
Figure 23: Distribution of CG to CR elaboration factor
0.00
2.00
4.00
6.00
8.00
V1 V2 V3 V4 V5
Versions
EF(CR, UC)
Figure 24: Distribution of CR to UC elaboration factor
0.00
2.00
4.00
6.00
8.00
10.00
V1 V2 V3 V4 V5
Versions
EF(UC, UCS)
Figure 25: Distribution of UC to UCS elaboration factor
86
0.00
100.00
200.00
300.00
400.00
V1 V2 V3 V4 V5
Versions
EF(UCS, SLOC)
Figure 26: Distribution of UCS to SLOC elaboration factor
Table 29 displays the average and standard deviation values for each elaboration
factor. The average values shown in the first row indicate that, on average, 1 CG of these
versions is elaborated into about 2 CR, 1 CR maps to about 5 UC, 1 UC contains about 6
steps, and 1 UCS is implemented by about 267 SLOC. Using the procedure outlined in
Section 4.3, these average values can be used to produce a rough point estimate for the
size of a new SoftPM version at the time of its inception just by using the information
about its CG. Moreover, these average values can be used in conjunction with the
standard deviation values to produce a range estimate for the size of the new version.
Table 29: Summary statistics of elaboration factors
Elaboration Factors
Version
(CG, CR) (CR, UC) (UC, UCS) (UCS, SLOC)
Average (A)
1.95 4.89 5.67 266.93
Std. Dev. (SD)
0.67 1.49 1.60 72.77
SD/A
0.34 0.30 0.28 0.27
In order to facilitate the comparison between variations in distributions of
different elaboration factors, the ratio of standard deviation and average – SD/A – is also
shown in Table 29. A cursory look at the SD/A values reveals that the magnitude of the
variation in each elaboration factor is almost the same. A closer look at the SD/A values
87
reveals something even more subtle: the variation in these elaboration factors gradually
decreases from the first elaboration factor – EF(CG, CR) – to the last – EF(UCS, SLOC).
This gradual decline in the variation may be due to the fact that it is relatively easier to
express lower-level requirements (e.g. UCS, SLOC) at the same level of detail as
compared to higher-level ones (e.g. CG, CR).
6.4 Comparison with Second Empirical Study
The second empirical study (see Chapter 4) examined the elaboration profiles of
25 small e-services projects done by teams comprising 6 – 8 graduate students studying
software engineering at USC. Each of these projects had a real-client (e.g. USC-
neighborhood organizations, USC departments, etc.) and was completed within two
semesters or about 24 weeks. These projects belonged to different domains, were of
different types, and had different clients. In addition, these projects did not follow the
same development process. Projects initiated in 2004 followed MBASE [Boehm et al.,
2004], those initiated between 2005 and 2007 followed LeanMBASE [Boehm et al.,
2005], and those initiated in 2008 followed Instructional ICM-Sw [Instructional ICM-Sw,
2008]. Furthermore, these projects were implemented using different programming
languages e.g. C++, C#, Java, JSP, PHP, VB.Net, etc.
Table 30 lists the summary statistics of the elaboration factors obtained in this
study (S) of SoftPM versions alongside those obtained in the previous study (E) of e-
services projects. A comparison of these summary statistics reveals a couple of important
points.
88
Table 30: Comparison of summary statistics
Average (A) Std. Dev. (SD) SD/A
Elaboration Factors
S E S E S E
(CG, CR)
1.95 2.46 0.67 0.94 0.34 0.38
(CR, UC)
4.89 0.89 1.49 0.55 0.30 0.62
(UC, UCS)
5.67 7.06 1.60 2.97 0.28 0.42
(UCS, SLOC)
266.93 66.91 72.77 64.46 0.27 0.96
Firstly, the average values of the four elaboration factors are not the same in the
two empirical studies. EF(CG, CR) and EF(UC, UCS), however, have similar average
values. For both SoftPM versions and e-services projects, on average, each CG is
elaborated into about 2 CR. Similarly, each UC has an average of about 6 UCS in SoftPM
versions and about 7 UCS in e-services projects. The average values of the other two
elaboration factors – EF(CR, UC) and EF(UCS, SLOC) – are an order of magnitude
different from each other. On average, each CR of SoftPM versions produces about 5
times more UC and each UCS of SoftPM versions is implemented by about 4 times more
SLOC.
As a side note, it is interesting to observe that the average value of the ratio of
SLOC and CR (obtained by multiplying the last three elaboration factors) for SoftPM
versions and e-services projects is much higher than the average value of the same ratio
for the large-scale mission-critical projects reported in [Selby, 2009]. For the 14 large-
scale mission critical projects (see Figure 4) the average value is 81. If project number 14,
which is an outlier, is excluded the average value decreases to 46. For the 5 SoftPM
versions the average value is 7401 while for the 25 small-scale e-services projects the
average value is 420. This order of magnitude difference may be either due to the
difference in the nature of these projects or the level of detail of requirements. The
89
requirements for the large-scale mission-critical projects may have been obtained at a later
stage of the software development life-cycle (e.g. implementation, testing, etc.). Build-to
or test-to requirements are expressed at a much lower-level as compared to design-to
requirements.
The second thing to note is that the values of the SD/A ratios indicate that the
variation in the elaboration factors of SoftPM versions is less than the variation in the
elaboration factors of e-services projects. This makes intuitive sense since SoftPM
versions have a lot in common. The domain, architectural tiers, development process,
implementation language, etc. are the same for each version of SoftPM. This uniformity is
not present in the case of e-services projects. E-services projects have different domains,
architectural tiers, development processes, implementation languages, etc. This implies
that, in order to obtain a narrower range estimate for software size at the time of inception,
each organization should use the elaboration profiles of its own projects.
6.5 Conclusions
This empirical study has demonstrated the practical application of an approach
designed to quantitatively measure the requirements elaboration of an industrial product
with multiple versions. The essence of this approach lies in discounting overlaps amongst
versions so that each version can be isolated like an independent product. Focusing on the
CG helps in dealing with the problem of incomplete elaboration caused by overlaps. This
problem can be solved by assigning the CG to the version that is responsible for making
the last modification to any element in the hierarchy of that CG.
90
A comparative analysis of the requirements elaboration of SoftPM versions and e-
services projects lends substance to the intuition that projects with similar characteristics
have similar elaboration profiles. The variation in elaboration profiles results from
differences in factors such as domain, number of architectural tiers, and development
language.
The results obtained in this empirical study should be interpreted with slight
caution. This is primarily because the number of data points (i.e. versions) used to draw
the conclusions is not large. Besides this, the technique used for estimating the net SLOC
may not give accurate results especially when a significant percentage of SLOC is
devoted to implementing level-of-service requirements.
91
Chapter 7 Determinants of Elaboration
This chapter presents the factors determining the variations in the magnitude of
requirements elaboration. These factors are referred to as the determinants of elaboration.
Each stage of requirements elaboration has its own set of determinants. Some of these
determinants are qualitative in nature while others are quantitative. Similarly, some
determinants have a positive relationship with their respective elaboration factors while
others have a negative or inverse relationship.
The following sections describe the determinants of each of the four stages of
elaboration i.e. capability goals to capability requirements, capability requirements to use
cases, use cases to use case steps, use case steps to SLOC. While some of these
determinants are intuitively obvious, most are inferred from evidence obtained in the four
empirical studies reproduced in the previous chapters. This evidence is also cited in the
following sections.
7.1 Stage 1 Cloud to Kite
The first stage of elaboration refers to the elaboration of capability goals into
capability requirements. Using the terminology of the Cockburn metaphor [Cockburn,
2001], capability goals map to the cloud level while capability requirements map to the
kite level. The first empirical study (see Chapter 3) examined the first stage of
elaboration and identified three potential determinants of elaboration i.e. project
precedentedness, client familiarity, and architectural complexity. Project precedentedness
92
was specified due to its intuitive appeal while client familiarity and architectural
complexity were specified based on empirical evidence.
Project precedentedness refers to the novelty of the project at hand. If none of the
previous projects are similar to the current project, precedentedness is low. If, on the
other hand, the current project is similar to the previous projects, project precedentedness
is high. Needless to say, project precedentedness is a qualitative determinant of
elaboration. It has a negative relationship with the first elaboration factor EF(CG, CR) i.e.
given everything else is constant, if precedentedness is higher, EF(CG, CR) will be lower.
The third empirical study (see Chapter 5) examined the efficacy of COCOMO II
cost drivers in predicting the elaboration profiles of small e-services projects. It looked at
the correlation of the COCOMO II cost drivers with each of the four elaboration factors.
For the sake of completeness, a similar exercise was done for SoftPM versions as well.
Results of this analysis are reported in Appendix C. In the case of SoftPM versions,
results are less meaningful since these versions have a lot in common. This uniformity is
clearly manifested in the fact that each version has the same ratings for 12 out of a total
of 22 cost drivers. Moreover, even the remaining 10 cost drivers have only two distinct
ratings across the five versions of SoftPM.
According to the results of the third empirical study, the correlation between
COCOMO II scale factor PREC and EF(CG, CR) was found to be very low i.e. 0.0029.
Even though this weak correlation may be due to a number of reasons (see Section 5.3)
project precedentedness is not considered here as one of the determinants of elaboration.
One of the other determinants – client familiarity – captures some of the aspects of
precedentedness and is supported by concrete evidence from the first empirical study.
93
Client familiarity refers to the experience of the client in the project domain. This
qualitative determinant has a negative relationship with EF(CG, CR) i.e. given everything
else is constant, if client is more familiar with the project domain, EF(CG, CR) will be
less. Concrete evidence for this is reported in the first empirical study. One of the main
reasons for the abnormally low EF values of projects in the AEF group was high client
familiarity (see Section 3.4).
Architectural complexity is defined by the number of architectural tiers in the
application and is, therefore, easily quantifiable. The higher the number of architectural
tiers, the more is the architectural complexity. A typical web-based database, for instance,
has three architectural tiers i.e. presentation, business logic, and data persistence. Given
everything else is constant, if architectural complexity is higher then EF(CG, CR) will be
higher. In other words, this determinant has a positive relationship with the first
elaboration factor. The first empirical study finds evidence for this relationship. All
projects in the high elaboration factor group are web-based databases (see Section 3.4).
Web-based databases have more architectural tiers than their standalone counterparts.
Elaboration data examined in the fourth empirical study (see Chapter 6) reveal
another determinant of the first stage of elaboration i.e. proportion of atomic capability
goals to the total number of capability goals. Atomic capability goals are those capability
goals that are one of a kind and cannot be further elaborated. Each atomic capability goal
maps to a single capability requirement. “The system shall provide a database backup
feature.” and “The system shall allow the user to import usage data.” are examples of
atomic capability goals. The proportion of atomic capability goals can be easily
quantified and has a negative relationship with the first elaboration factor i.e. given
94
everything else is constant, if the proportion of atomic capability goals is higher then
EF(CG, CR) will be lower. Figure 27 shows this negative relationship between the
proportion of atomic capability goals (horizontal axis) and the first elaboration factor
(vertical axis) for the five versions of SoftPM (see Section 6.1).
y = -4.9903x + 4.5839
R
2
= 0.5439
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70
Atomic CG/CG
EF(CG, CR)
Figure 27: Proportion of atomic capability goals
7.2 Stage 2 Kite to Sea
The second stage of elaboration deals with the elaboration of capability
requirements into use cases. In terms of the Cockburn metaphor, capability requirements
represent kite-level requirements while use cases represent sea-level requirements. So far,
one determinant has been identified for this stage of elaboration.
Elaboration data of the five SoftPM versions examined in the fourth empirical
study reveal this determinant i.e. proportion of atomic capability requirements to the total
number of capability requirements. Like atomic capability goals, atomic capability
requirements are one of a kind e.g. “The system shall generate a configuration log.” Each
atomic capability requirement corresponds to a single use case. Needless to say, the
95
proportion of atomic capability requirements can be easily quantified. The relationship
between this determinant and the second elaboration factor is negative i.e. given
everything else is constant, if the proportion of atomic capability requirements is higher
then EF(CR, UC) will be lower. Figure 28 shows the evidence for this negative
relationship between the proportion of atomic capability requirements (horizontal axis)
and the second elaboration factor (vertical axis) using the elaboration data of the five
SoftPM versions.
y = -10.63x + 6.8748
R
2
= 0.5982
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35
Atomic CR/CR
EF(CR, UC)
Figure 28: Proportion of atomic capability requirements
7.3 Stage 3 Sea to Fish
The third stage of elaboration refers to the elaboration of use cases into
constituent use case steps. Use case steps contain steps for both the main and the
alternative scenarios. Use cases map to the sea level of the Cockburn metaphor while use
case steps map to the fish level.
Elaboration data collected by the fourth empirical study enables identifying the
single most important determinant of this stage of elaboration i.e. the proportion of
96
alternative use case steps to the main use case steps. This determinant is amenable to
quantification and has a positive relationship with the third elaboration factor i.e. given
everything else is constant, if the proportion of alternative use case steps is higher then
EF(UC, UCS) will be higher. This strong positive relationship is shown in Figure 29. The
horizontal axis in this figure represents the determinant (i.e. the proportion of alternative
use case steps to main use case steps) and the vertical axis represents the third elaboration
factor (i.e. EF(UC, UCS)).
y = 15.016x + 3.5058
R
2
= 0.9366
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0.00 0.05 0.10 0.15 0.20 0.25 0.30
Alternative UCS/Main UCS
EF(UC, UCS)
Figure 29: Proportion of alternative use case steps to main use case steps
7.4 Stage 4 Fish to Clam
The fourth stage of elaboration refers to the elaboration of use case steps into
SLOC. Using the terminology of the Cockburn metaphor, in this stage fish-level use case
steps are implemented by clam-level SLOC. Three intuitive determinants have been
identified for this last stage of elaboration i.e. number of LOS requirements, amount of
code reuse, and level of abstraction of the implementation language. The first two can be
measured quantitatively while the last one is qualitative in nature.
97
SLOC implement both capability as well as LOS requirements. Thus, given
everything else is constant, the higher the number of LOS requirements the more the
SLOC. In other words, the number of LOS requirements has a positive relationship with
the fourth elaboration factor i.e. EF(UCS, SLOC).
Code reuse in the form of standard or custom-built code libraries, for instance,
leads to fewer SLOC. This determinant, therefore, has a negative relationship with the
fourth elaboration factor i.e. given everything else is constant, if the amount of code reuse
is higher then EF(UCS, SLOC) will be lower.
The level of abstraction of the implementation language also influences the
amount of SLOC produced. For instance, usage of third generation languages such as
C++, Java, Visual Basic, etc. leads to fewer SLOC as compared to usage of second
generation assembly languages. Abstraction hides the details of the low-level CPU
operations from the programmer and enables him to accomplish the same task with fewer
instructions. This determinant, therefore, has a negative relationship with the fourth
elaboration factor i.e. given everything else is constant, if the level of abstraction is
higher then EF(UCS, SLOC) will be lower.
98
Chapter 8 Contributions and Next Steps
This research has provided quantitative and qualitative analyses of requirements
elaboration for early software size estimation. This chapter concludes this dissertation.
Section 8.1 summarizes the major contributions of this research while Section 8.2
highlights directions for future work.
8.1 Main Contributions
Each of the four empirical studies of requirements elaboration contributes
significantly to the overall understanding of this abstract process. The first empirical
study (see Chapter 3) introduces novel metrics to quantitatively measure the first stage of
elaboration. It looks at the elaboration of two different types of goals i.e. capability goals
and LOS goals. Elaboration results reveal a marked difference in the elaboration of these
two types of goals. LOS goals follow a uniform pattern of elaboration i.e. each LOS goal
maps to exactly one LOS requirement. There is no such one-size-fits-all formula for the
elaboration of capability goals.
The second empirical study (see Chapter 4) outlines a generic process for
quantifying all stages of requirements elaboration. This process is applied to obtain the
elaboration profiles of 25 small real-client e-services projects. This study illustrates how
summary statistics of these elaboration profiles can be used to produce a rough point and
range size estimate of a new similar project.
The third empirical study (see Chapter 5) determines the efficacy of COCOMO II
cost drivers in predicting the elaboration profile of a project. It introduces a novel
99
approach for obtaining project-wide ratings of module-wide multiplicative cost drivers
using a weighted sum approach wherein weights are proportional to module size. This
enables conducting simple and multiple linear regression analyses of the predictive power
of these cost drivers. This empirical study also identifies the cost drivers relevant for each
stage of elaboration. The weak strength of the relationships between COCOMO II cost
drivers and elaboration factors indicate that there is no simple formula for predicting the
elaboration profiles of projects just by using cost driver values.
The fourth empirical study (see Chapter 6) conducts a comparative analysis of
requirements elaboration. It compares and contrasts the summary statistics of the
elaboration profiles obtained from two different settings i.e. small real-client e-services
projects and multiple versions of an industrial software process management tool (i.e.
SoftPM). This study presents a novel technique for obtaining the elaboration data from
different versions of the same product by removing overlaps amongst versions. Results of
this study confirm the intuition that projects with similar characteristics have comparable
elaboration profiles. Therefore, each organization should use elaboration profiles of its
own projects for early size estimation.
Table 31: Determinants of elaboration
Cockburn Metaphor Elaboration Factor Determinant(s) Relationship
Client familiarity Negative
Architectural complexity Positive
Cloud to Kite
EF(CG, CR)
Proportion of atomic CG Negative
Kite to Sea EF(CR, UC)
Proportion of atomic CR Negative
Sea to Fish EF(UC, UCS)
Proportion of Alternative UCS Positive
Number of LOS requirements Positive
Amount of code reuse Negative
Fish to Clam EF(UCS, SLOC)
Level of abstraction of
implementation language
Negative
100
Each of these four empirical studies is instrumental in identifying the
determinants of elaboration (see Chapter 7). Table 31 lists these determinants. The last
column indicates the direction of the relationship between these determinants and the
respective elaboration factors.
8.2 Future Work
This research has aimed at providing a solid foundation for analyzing the abstract
process of requirements elaboration to improve early size estimation. This foundation can
be used to conduct further analyses of requirements elaboration. This section presents
some suggestions for future work in this area.
The level-of-detail hierarchy of requirements considered in this research consists
of five different types of requirements i.e. capability goals, capability requirements, use
cases, use case steps, and SLOC. Neither the number of levels nor the type of
requirements at these levels needs to be exactly the same in order to analyze the process
of requirements elaboration. Each organization can use its own custom level-of-detail
hierarchy. For instance, an organization may have a seven-level hierarchy which contains
classes and functions in addition to the five levels considered in this research. Studying
these different hierarchies of requirements may lead to a better understanding of the
process of requirements elaboration.
Another relevant but slightly different aspect worth exploring is the usage of
existing software functional size metrics such as those defined by COSMIC [COSMIC,
2009] and IFPUG [IFPUG, 2010] in the requirements hierarchy. These metrics can be
substituted in place of capability requirements. This substitution will enable us to benefit
101
from the standard counting rules defined for these popular functional size metrics thereby
reducing the subjectivity in counting and improving the accuracy of analysis.
The fourth empirical study (see Chapter 6) introduced and demonstrated the
application of a generic approach to determine the elaboration profiles of multiple
versions of an industrial product. This resulted in identifying a number of important
determinants of elaboration (see Chapter 7). The primary benefit of analyzing the
elaboration data of a multi-version commercial product is that it allows controlling the
effect of simultaneous changes in a lot of variables each of which may be a potential
determinant of elaboration. The same benefit can be achieved by analyzing the
elaboration profiles of a group of similar products e.g. word processors, database
management systems, etc. Collecting and analyzing the elaboration data of such similar
products may not only help in indentifying more determinants for each stage of
elaboration but also in determining the relative importance of these determinants.
The third empirical study (see Chapter 5) was conducted to determine the efficacy
of COCOMO II cost drivers in determining a project’s elaboration profile. While none of
the relationships between COCOMO II cost drivers and elaboration factors appeared
strong, a number of confounding factors could be responsible for this (see Section 5.3).
One of these confounding factors is the accuracy of cost driver ratings. Collecting
COCOMO II driver ratings along with the elaboration data of industrial projects may be a
worthwhile exercise in determining the true efficacy of these cost drivers.
The primary focus of this work has been the analysis of the elaboration of
capability goals. Some attention has also been given to studying the elaboration of LOS
goals (see Chapter 3). The elaboration of a project’s environmental constraints, however,
102
has not been examined yet. According to Hopkins and Jenkins [Hopkins and Jenkins,
2008], for large IT projects, these environmental constraints far outnumber the capability
requirements and LOS requirements put together. Therefore, studying the elaboration of
these environmental constraints may prove useful in early size estimation of large IT
projects.
103
Bibliography
A. Albrecht, Measuring Application Development Productivity, Proc. Joint SHARE,
GUIDE, and IBM Application Development Symposium, 1979.
A. Antón, Goal-Based Requirements Analysis, Proc. 2
nd
IEEE International Conference
on Requirements Engineering, ICRE’96, 1996, pp. 136–144.
R. Banker, R. Kauffman, and R. Kumar, An Empirical Study of Object-Based Output
Metrics in a Computer Aided Software Engineering (CASE) Environment, Journal of
Management Information Systems 8, 3 (1992) 127–150.
B. Boehm, Anchoring the Software Process, IEEE Software 13, 4 (1996) 73–82.
B. Boehm et al., Guidelines for Lean Model-Based (System) Architecting and Software
Engineering (LeanMBASE) Version 1.4, USC-CSE, 2005.
B. Boehm et al., Guidelines for Model-Based (System) Architecting and Software
Engineering (MBASE) Version 2.4.1, USC-CSE, 2004.
B. Boehm, C. Abts, A. Brown, S. Chulani, B. Clark, E. Horowitz, R. Madachy, D. Reifer,
and B. Steece, Software Cost Estimation with COCOMO II, Prentice Hall, Upper Saddle
River, NJ, 2000.
B. Boehm and J. Lane, A Process Decision Table for Integrated Systems and Software
Engineering, Proc. Conference on Systems Engineering Research, CSER '02, 2008.
B. Boehm and R. Turner, Balancing Agility and Discipline: A Guide for the Perplexed,
Addison-Wesley, 2004.
G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide,
Addison-Wesley, 1999.
S. Chidamber and C. Kemerer, A Metrics Suite for Object-Oriented Design, IEEE
Transactions on Software Engineering 20, 6 (1994) 476–493.
M. Chrissis, M. Konrad, and S. Shrum, CMMI: Guidelines for Process Integration and
Product Improvement, 2
nd
Edition, Addison-Wesley, 2006.
A. Cockburn, Writing Effective Use Cases, Addison-Wesley, 2001.
M. Cohn, Agile Estimating and Planning, Prentice Hall, 2005.
104
COSMIC, COSMIC Measurement Manual Version 3.0.1, Common Software
Measurement International Consortium, 2009.
R. Darimont and A. van Lamsweerde, Formal Refinement Patterns for Goal-Driven
Requirements Elaboration, Proc. 4
th
ACM Symposium on Foundations of Software
Engineering, FSE4, 1996, pp. 179–190.
N. Fenton and S. Pfleeger, Software Metrics: A Rigorous & Practical Approach,
International Thomson Computer Press, 1997.
F. Freiman and R. Park, PRICE Software Model–Version 3: An Overview, Proc. IEEE-
PINY Workshop on Quantitative Software Models, 1979, pp. 32-41.
R. Hopkins and K. Jenkins, Eating the IT Elephant: Moving from Greenfield
Development to Brownfield, IBM Press, Upper Saddle River, NJ, 2008.
IFPUG, Function Point Counting Practices Manual Version 4.3.1, International Function
Point Users Group, 2010.
IEEE, Standard for Software Productivity Metrics (IEEE Std 1045 1992), The Institute of
Electrical and Electronics Engineers, Inc., 1993.
Instructional ICM-Sw, Electronic Process Guidelines (EPG), 2008,
http://greenbay.usc.edu/IICMSw/index.htm
E. Jendrock et al., The Java EE 5 Tutorial, 3
rd
ed., Addison-Wesley, 2006.
C. Jones, Applied Software Measurement: Assuring Productivity and Quality, McGraw-
Hill, 1996.
G. Karner, Resource Estimation for Objectory Projects, Objective Systems SF AB, 1993.
P. Kruchten, The Rational Unified Process: An Introduction, Addison-Wesley, 2003.
L. Laird and M. Brennan, Software Measurement and Estimation: A Practical Approach,
John Wiley and Sons, 2006.
C. Lee et al., JavaNCSS Version 32.53, 2010,
http://www.kclee.de/clemens/java/javancss/
E. Letier and A. van Lamsweerde, Agent-Based Tactics for Goal-Oriented Requirements
Elaboration, Proc. 24
th
IEEE International Conference on Software Engineering,
ICSE’02, 2002, pp. 83–93.
T. Littlefair, CCCC Version 3.1.4, 2006, http://cccc.sourceforge.net/
105
S. MacDonell, Software Source Code Sizing Using Fuzzy Logic Modeling, Information
and Software Technology 45, 7 (2003) 389–404.
A. Malik and B. Boehm, An Empirical Study of Requirements Elaboration, Proc. 22
nd
Brazilian Symposium on Software Engineering, SBES’08, 2008, pp. 113–123.
A. Malik and B. Boehm, Quantifying Requirements Elaboration to Improve Early
Software Cost Estimation, Information Sciences,
http://dx.doi.org/10.1016/j.ins.2009.12.002
A. Malik and B. Boehm, An Empirical Study of the Efficacy of COCOMO II Cost
Drivers in Predicting a Project’s Elaboration Profile, USC CSSE Technical Report, USC-
CSSE-2010-503, 2010.
A. Malik, B. Boehm, Y. Ku, and Y. Yang, Comparative Analysis of Requirements
Elaboration of an Industrial Product, Submitted to 2
nd
International Conference on
Software Technology and Engineering, ICSTE 2010, 2010.
A. Malik, S. Koolmanojwong, and B. Boehm, An Empirical Study of Requirements-to-
Code Elaboration Factors, 24
th
International Forum on COCOMO and Systems/Software
Cost Modeling, 2009.
A. Minkiewicz, Measuring Object-Oriented Software with Predictive Object Points, Proc.
8
th
International Conference on Applications of Software Measurement, ASM’97, 1997.
NESMA, Definitions and Counting Guidelines for the Application of Function Point
Analysis Version 2.1, Netherlands Software Metrics Association, 2004.
NESMA, Early Function Point Counting, Netherlands Software Metrics Association,
2010, http://www.nesma.nl/section/fpa/earlyfpa.htm
V. Nguyen, S. Deeds-Rubin, T. Tan, and B. Boehm, A SLOC Counting Standard, 22
nd
International Forum on COCOMO and Systems/Software Cost Modeling, 2007.
R. Park, Software Size Measurement: A Framework for Counting Source Statements,
CMU SEI Technical Report, CMU/SEI-92-TR-020, 1992.
S. Pfleeger, F. Wu, and R. Lewis, Software Cost Estimation and Sizing Methods: Issues
and Guidelines, Rand, 2005.
L. Putnam, A General Empirical Solution to the Macro Software Sizing and Estimating
Problem, IEEE Transactions on Software Engineering 4, 4 (1978) 345–361.
L. Putnam and A. Fitzsimmons, Estimating Software Costs, Datamation, 1979.
106
L. Putnam and W. Myers, Measures for Excellence: Reliable Software On Time, Within
Budget, Prentice-Hall, 1992.
QSM, Function Point Languages Table Version 4.0, Quantitative Software Management,
2009, http://www.qsm.com/resources/function-point-languages-table/index.html
R Development Core Team, R: A Language and Environment for Statistical Computing,
R Foundation for Statistical Computing, Vienna, Austria, ISBN 3-900051-07-0, 2007,
http://www.R-project.org.
D. Seaver, Fast Function Points, 15
th
International Forum on COCOMO and Software
Cost Estimation, 2000.
R. Selby, Analytics-Driven Dashboards Enable Leading Indicators for Requirements and
Designs of Large-Scale Systems, IEEE Software 26, 1 (2009) 41–49.
SPR, What Are Feature Points?, Software Productivity Research, 1986, http://www.spr-
global.com/products/feature.shtm
R. Stutzke, Estimating Software-Intensive Systems, Addison-Wesley, 2005.
C. Symons, Software Sizing and Estimating: Mk II FPA (Function Point Analysis), John
Wiley and Sons, 1991.
UKSMA, Mk II Function Point Analysis Counting Practices Manual Version 1.3.1,
United Kingdom Software Metrics Association, 1998.
Unified CodeCount, USC CSSE CodeCount Toolset – Release 2009.10, 2009,
http://sunset.usc.edu/research/CODECOUNT/
USC SE I, Previous Semesters of Software Engineering I (CSCI 577A) Course at USC,
2010, http://sunset.usc.edu/csse/courseroot/course_list.html#577a
USC SE II, Previous Semesters of Software Engineering II (CSCI 577B) Course at USC,
2010, http://sunset.usc.edu/csse/courseroot/course_list.html#577b
R. Valerdi, The Constructive Systems Engineering Cost Model (COSYSMO), Ph. D.
Dissertation, USC, 2005.
C. Walston and C. Felix, A Method of Programming Measurement and Estimation, IBM
Systems Journal 16, 1 (1977) 54–73.
107
Q. Wang and M. Li, Measuring and Improving Software Process in China, Proc. 4
th
International Symposium on Empirical Software Engineering, ISESE 2005, 2005, pp.
183–192.
D. Wheeler, SLOCCount Version 2.26, 2004,
http://www.dwheeler.com/sloccount/sloccount.html
108
Appendix A Specification and Normalization of High-Level
Requirements
This appendix presents a list of guiding principles that can help in the
specification and normalization of high-level requirements e.g. capability goals and
capability requirements. In terms of the Cockburn metaphor [Cockburn, 2001], these
high-level requirements map to the first two altitude levels i.e. cloud and kite,
respectively.
These principles offer value to both business analysts and software cost
estimation personnel. Business analysts can use these principles to achieve consistency in
the specification of high-level requirements. Personnel involved in system and software
size and cost estimation activities can utilize these principles to consistently count the
number of requirements at cloud and kite levels. Moreover, these principles can be
utilized in normalizing the high-level size measures of past projects used for model
calibration.
The following sections present these principles. Each section contains the
description of a single principle. This description is followed by examples that illustrate
the application of this principle. These examples have been adapted, with slight
modification, from real projects analyzed in this research.
A.1 Category vs. Instance
Cloud-level requirements state a general category while kite-level requirements
specify instances of this category.
109
Example 1
Category: “The system shall allow the user to generate reports.”
Instance 1: “The system shall allow the user to generate a report of failed transactions.”
Instance 2: “The system shall allow the user to generate a report of monthly profits.”
Instance 3: “The system shall allow the user to generate a report of overdue payments.”
Instance 4: “The system shall allow the user to generate a report of regular customers.”
Example 2
Category: “The system shall provide a data extraction feature.”
Instance 1: “The system shall allow data extraction from text (.doc, .txt, etc.) files.”
Instance 2: “The system shall allow data extraction from spreadsheet (.xls, .csv, etc.)
files.”
Example 3
Category: “The system shall enable the user to search records of early medieval East
Asian tombs.”
Instance 1: “The system shall enable the user to search records of early medieval East
Asian tombs in English.”
Instance 2: “The system shall enable the user to search records of early medieval East
Asian tombs in Romanized Chinese.”
110
Example 4
Category: “The system shall allow the user to analyze data.”
Instance 1: “The system shall allow the user to analyze project data.”
Instance 2: “The system shall allow the user to analyze quality data.”
A.2 Aggregate vs. Component
A cloud-level requirement may be an aggregation of a number of components.
Each of these components corresponds to a kite-level requirement.
Example 1
Aggregate: “The system shall allow the administrator to manage user profiles.”
Component 1: “The system shall allow the administrator to add a new user.”
Component 2: “The system shall allow the administrator to delete an existing user.”
Component 3: “The system shall allow the administrator to modify the profile of an
existing user.”
Example 2
Aggregate: “The system shall allow the user to analyze a player’s performance.”
Component 1: “The system shall display graphs of a player’s batting, bowling, and
fielding records.”
111
Component 2: “The system shall display tables containing a player’s summary statistics
e.g. highest score, best bowling spell, batting average, number of appearances, etc.”
Example 3
Aggregate: “The tool shall maintain the integrity of use cases.”
Component 1: “The tool shall ensure uniqueness of all named use case-related elements.”
Component 2: “The tool shall detect and report deletion of UML elements that may cause
harmful side-effects.”
Example 4
Aggregate: “The product shall enable an organization to manage its processes.”
Component 1: “The product shall enable an organization to define its processes.”
Component 2: “The product shall enable an organization to maintain its processes.”
A.3 One-to-One
The exact same requirement appears in both the cloud and the kite levels when it
is one-of-a-kind and atomic i.e. it cannot be broken-down further.
Example 1
One (cloud): “The system shall provide a database backup feature.”
One (kite): “The system shall provide a database backup feature.”
112
Example 2
One (cloud): “The system shall generate a printable soft-copy of the database contents.”
One (kite): “The system shall generate a printable soft-copy of the database contents.”
Example 3
One (cloud): “The system shall allow the user to import usage data.”
One (kite): “The system shall allow the user to import usage data.”
Example 4
One (cloud): “The product shall generate a configuration log.”
One (kite): “The product shall generate a configuration log.”
A.4 Main Concept and Related Minor Concept
The main concept appears at both the cloud and the kite levels provided that it is
atomic. However, the minor concept (related to the main concept) appears only at the kite
level. The related minor concept may represent an off-nominal requirement.
Example 1
Main concept (cloud): “The system shall allow the user to shortlist products.”
113
Main concept (kite): “The system shall allow the user to shortlist products.”
Related minor concept (kite): “The system shall allow the user to print shortlisted
products.”
Example 2
Main concept (cloud): “The system shall provide automated verification of submitted
bibliographies.”
Main concept (kite): “The system shall provide automated verification of submitted
bibliographies.”
Related minor concept (kite): “The system shall enable the administrator to generate
notifications to authors of unverifiable bibliographies.”
Example 3
Main concept (cloud): “The system shall allow the user to merge multiple versions of a
document.”
Main concept (kite): “The system shall allow the user to merge multiple versions of a
document.”
Related minor concept (kite): “The system shall produce a log of the warnings and error
generated during the merging process.”
Example 4
114
Main concept (cloud): “The product shall enable configuration management.”
Main concept (kite): “The product shall enable configuration management.”
Related minor concept (kite): “The product shall enable configuration of user accounts.”
115
Appendix B Multiple Regression Results for Small E-
Services Projects
This appendix contains the detailed results of the multiple regression analyses
performed to determine the efficacy of COCOMO II cost drivers in predicting the
variations in the elaboration profiles of 25 small real-client e-services projects. These
results were obtained using the R statistical computing environment [R Development
Core Team, 2007]. They reveal the strength of the relationship between each of the four
elaboration factors and their respective shortlisted COCOMO II cost drivers.
B.1 First Stage of Elaboration
Call:
lm(formula = CRCG ~ FLEX + ACAP + SITE + RESL + APEX + DOCU
+ PREC + TEAM)
Residuals:
Min 1Q Median 3Q Max
-1.22931 -0.74821 -0.03708 0.53829 1.52192
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.097001 2.680987 0.036 0.972
FLEX 0.208798 0.375066 0.557 0.585
ACAP 0.346732 0.403812 0.859 0.403
SITE 0.166337 0.270587 0.615 0.547
RESL 0.100330 0.443944 0.226 0.824
APEX -0.179745 0.311294 -0.577 0.572
DOCU -0.073768 0.351183 -0.210 0.836
PREC 0.091382 0.421529 0.217 0.831
TEAM 0.001448 0.336591 0.004 0.997
Residual standard error: 1.016 on 16 degrees of freedom
Multiple R-Squared: 0.2233, Adjusted R-squared: -0.1651
F-statistic: 0.575 on 8 and 16 DF, p-value: 0.7838
116
B.2 Second Stage of Elaboration
Call:
lm(formula = UCCR ~ ACAP + APEX + PCON + PREC)
Residuals:
Min 1Q Median 3Q Max
-0.7228 -0.3121 -0.0637 0.2032 1.8200
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.35636 0.72046 0.495 0.626
ACAP 0.19694 0.19878 0.991 0.334
APEX -0.15881 0.14428 -1.101 0.284
PCON 0.03840 0.10955 0.351 0.730
PREC 0.08306 0.15929 0.521 0.608
Residual standard error: 0.5722 on 20 degrees of freedom
Multiple R-Squared: 0.09219, Adjusted R-squared: -
0.08937
F-statistic: 0.5078 on 4 and 20 DF, p-value: 0.7306
B.3 Third Stage of Elaboration
Call:
lm(formula = UCSUC ~ PREC + APEX + DOCU + CPLX + PCON +
ACAP)
Residuals:
Min 1Q Median 3Q Max
-4.261 -0.916 -0.281 1.714 4.831
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 12.58494 6.57235 1.915 0.0715 .
PREC -2.05296 0.75996 -2.701 0.0146 *
APEX 1.46310 0.78030 1.875 0.0771 .
DOCU -0.73514 0.87393 -0.841 0.4113
CPLX 0.05745 1.20435 0.048 0.9625
PCON 0.09134 0.57579 0.159 0.8757
ACAP -0.44847 0.98144 -0.457 0.6532
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1
‘ ’ 1
117
Residual standard error: 2.716 on 18 degrees of freedom
Multiple R-Squared: 0.3731, Adjusted R-squared: 0.1642
F-statistic: 1.786 on 6 and 18 DF, p-value: 0.1588
B.4 Fourth Stage of Elaboration
Call:
lm(formula = SLOCUCS ~ PCON + RELY + TOOL + STOR + CPLX +
RUSE +
PVOL + PCAP + PREC + APEX + TIME + PLEX + LTEX)
Residuals:
Min 1Q Median 3Q Max
-90.399 -23.625 -6.197 24.204 77.780
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -40.869 288.911 -0.141 0.890
PCON -26.296 15.727 -1.672 0.123
RELY -44.250 33.202 -1.333 0.210
TOOL -8.786 39.836 -0.221 0.829
STOR -46.764 68.664 -0.681 0.510
CPLX 41.530 33.508 1.239 0.241
RUSE -9.677 32.651 -0.296 0.772
PVOL 32.162 37.510 0.857 0.409
PCAP -1.233 39.301 -0.031 0.976
PREC 17.333 25.015 0.693 0.503
APEX -12.769 35.863 -0.356 0.729
TIME 48.018 67.716 0.709 0.493
PLEX 4.945 24.337 0.203 0.843
LTEX 43.817 36.198 1.210 0.251
Residual standard error: 64.11 on 11 degrees of freedom
Multiple R-Squared: 0.5467, Adjusted R-squared: 0.01092
F-statistic: 1.02 on 13 and 11 DF, p-value: 0.4929
118
Appendix C COCOMO II Cost Drivers and Elaboration
Profiles of SoftPM Versions
This appendix reports the relationship between COCOMO II cost drivers and each
of the four elaboration factors for the five SoftPM [Wang and Li, 2005] versions. These
relationships are obtained using simple linear regression. Unlike the case of 25 small e-
services projects (see Appendix B), multiple regression analyses using shortlisted
COCOMO II cost drivers cannot be performed here due to the limited number of data
points i.e. n = 5.
Section C.1 reports the COCOMO II cost driver ratings for each version of
SoftPM. These ratings have been obtained using the procedure outlined in the third
empirical study (see Chapter 5). Ratings are presented in five groups i.e. scale factors,
product factors, platform factors, personnel factors, and project factors. Section C.2
reports the results of the simple regression analyses.
C.1 COCOMO II Cost Driver Ratings
Table 32: Scale factor ratings
Scale Factors
Version PREC FLEX RESL TEAM PMAT
V1 4 3 4 4 4
V2 5 4 3 5 5
V3 5 4 3 5 5
V4 5 4 3 5 5
V5 5 4 3 5 5
119
Table 33: Product factor ratings
Product Factors
Version RELY DATA CPLX RUSE DOCU
V1 3 3 3 3 3
V2 3 3 3 3 3
V3 3 3 3 3 3
V4 3 3 3 3 3
V5 3 3 3 3 3
Table 34: Platform factor ratings
Platform Factors
Version TIME STOR PVOL
V1 3 3 3
V2 4 3 3
V3 4 3 3
V4 3 3 3
V5 3 3 3
Table 35: Personnel factor ratings
Personnel Factors
Version ACAP PCAP PCON APEX PLEX LTEX
V1 4 4 4 4 4 4
V2 3 3 2 3 4 4
V3 3 3 2 3 4 4
V4 4 3 2 3 4 4
V5 4 3 2 3 4 4
Table 36: Project factor ratings
Project Factors
Version TOOL SITE SCED
V1 4 6 3
V2 4 6 3
V3 4 6 3
V4 4 6 3
V5 4 6 3
120
C.2 Results of Simple Regression Analyses
As evident from the cost driver ratings shown in the previous section, the
following 12 cost drivers have the same rating across all 5 versions of SoftPM:
1. RELY
2. DATA
3. CPLX
4. RUSE
5. DOCU
6. STOR
7. PVOL
8. PLEX
9. LTEX
10. TOOL
11. SITE
12. SCED
These cost drivers are, therefore, not considered for simple regression analyses. However,
the relationship of the remaining 10 cost drivers with the four elaboration factors is
determined using simple linear regression. These relationships are shown in the following
figures.
121
Figures 30 – 39 depict the relationship between COCOMO II cost drivers and the
first elaboration factor i.e. EF(CG, CR).
y = 0.4744x - 0.3262
R
2
= 0.1007
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5 6
PREC
EF(CG, CR)
Figure 30: EF(CG, CR) vs. PREC
y = 0.4744x + 0.1482
R
2
= 0.1007
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5
FLEX
EF(CG, CR)
Figure 31: EF(CG, CR) vs. FLEX
122
y = -0.4744x + 3.469
R
2
= 0.1007
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5
RESL
EF(CG, CR)
Figure 32: EF(CG, CR) vs. RESL
y = 0.4744x - 0.3262
R
2
= 0.1007
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5 6
TEAM
EF(CG, CR)
Figure 33: EF(CG, CR) vs. TEAM
123
y = 0.4744x - 0.3262
R
2
= 0.1007
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5 6
PMAT
EF(CG, CR)
Figure 34: EF(CG, CR) vs. PMAT
y = -0.8905x + 4.9786
R
2
= 0.532
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5
TIME
EF(CG, CR)
Figure 35: EF(CG, CR) vs. TIME
124
y = 0.8905x - 1.2548
R
2
= 0.532
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5
ACAP
EF(CG, CR)
Figure 36: EF(CG, CR) vs. ACAP
y = -0.4744x + 3.469
R
2
= 0.1007
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5
PCAP
EF(CG, CR)
Figure 37: EF(CG, CR) vs. PCAP
125
y = -0.2372x + 2.5202
R
2
= 0.1007
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5
PCON
EF(CG, CR)
Figure 38: EF(CG, CR) vs. PCON
y = -0.4744x + 3.469
R
2
= 0.1007
0.00
0.50
1.00
1.50
2.00
2.50
3.00
0 1 2 3 4 5
APEX
EF(CG, CR)
Figure 39: EF(CG, CR) vs. APEX
126
Figures 40 – 49 depict the relationship between COCOMO II cost drivers and the
second elaboration factor i.e. EF(CR, UC).
y = 1.2277x - 1.0017
R
2
= 0.1365
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5 6
PREC
EF(CR, UC)
Figure 40: EF (CR, UC) vs. PREC
y = 1.2277x + 0.226
R
2
= 0.1365
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5
FLEX
EF(CR, UC)
Figure 41: EF (CR, UC) vs. FLEX
127
y = -1.2277x + 8.8199
R
2
= 0.1365
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5
RESL
EF(CR, UC)
Figure 42: EF (CR, UC) vs. RESL
y = 1.2277x - 1.0017
R
2
= 0.1365
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5 6
TEAM
EF(CR, UC)
Figure 43: EF (CR, UC) vs. TEAM
128
y = 1.2277x - 1.0017
R
2
= 0.1365
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5 6
PMAT
EF(CR, UC)
Figure 44: EF (CR, UC) vs. PMAT
y = -1.6938x + 10.65
R
2
= 0.3898
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5
TIME
EF(CR, UC)
Figure 45: EF (CR, UC) vs. TIME
129
y = 1.6938x - 1.2063
R
2
= 0.3898
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5
ACAP
EF(CR, UC)
Figure 46: EF (CR, UC) vs. ACAP
y = -1.2277x + 8.8199
R
2
= 0.1365
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5
PCAP
EF(CR, UC)
Figure 47: EF (CR, UC) vs. PCAP
130
y = -0.6139x + 6.3645
R
2
= 0.1365
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5
PCON
EF(CR, UC)
Figure 48: EF (CR, UC) vs. PCON
y = -1.2277x + 8.8199
R
2
= 0.1365
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
0 1 2 3 4 5
APEX
EF(CR, UC)
Figure 49: EF (CR, UC) vs. APEX
131
Figures 50 – 59 depict the relationship between COCOMO II cost drivers and the
third elaboration factor i.e. EF(UC, UCS).
y = 2.6055x - 6.8405
R
2
= 0.528
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5 6
PREC
EF(UC, UCS)
Figure 50: EF(UC, UCS) vs. PREC
y = 2.6055x - 4.235
R
2
= 0.528
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5
FLEX
EF(UC, UCS)
Figure 51: EF(UC, UCS) vs. FLEX
132
y = -2.6055x + 14.003
R
2
= 0.528
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5
RESL
EF(UC, UCS)
Figure 52: EF(UC, UCS) vs. RESL
y = 2.6055x - 6.8405
R
2
= 0.528
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5 6
TEAM
EF(UC, UCS)
Figure 53: EF(UC, UCS) vs. TEAM
133
y = 2.6055x - 6.8405
R
2
= 0.528
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5 6
PMAT
EF(UC, UCS)
Figure 54: EF(UC, UCS) vs. PMAT
y = 2.2793x - 2.0838
R
2
= 0.6061
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5
TIME
EF(UC, UCS)
Figure 55: EF(UC, UCS) vs. TIME
134
y = -2.2793x + 13.871
R
2
= 0.6061
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5
ACAP
EF(UC, UCS)
Figure 56: EF(UC, UCS) vs. ACAP
y = -2.6055x + 14.003
R
2
= 0.528
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5
PCAP
EF(UC, UCS)
Figure 57: EF(UC, UCS) vs. PCAP
135
y = -1.3027x + 8.7923
R
2
= 0.528
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5
PCON
EF(UC, UCS)
Figure 58: EF(UC, UCS) vs. PCON
y = -2.6055x + 14.003
R
2
= 0.528
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
0 1 2 3 4 5
APEX
EF(UC, UCS)
Figure 59: EF(UC, UCS) vs. APEX
136
Figures 60 – 69 depict the relationship between COCOMO II cost drivers and the
fourth elaboration factor i.e. EF(UCS, SLOC).
y = 113.32x - 276.99
R
2
= 0.485
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5 6
PREC
EF(UCS, SLOC)
Figure 60: EF(UCS, SLOC) vs. PREC
y = 113.32x - 163.68
R
2
= 0.485
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5
FLEX
EF(UCS, SLOC)
Figure 61: EF(UCS, SLOC) vs. FLEX
137
y = -113.32x + 629.54
R
2
= 0.485
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5
RESL
EF(UCS, SLOC)
Figure 62: EF(UCS, SLOC) vs. RESL
y = 113.32x - 276.99
R
2
= 0.485
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5 6
TEAM
EF(UCS, SLOC)
Figure 63: EF(UCS, SLOC) vs. TEAM
138
y = 113.32x - 276.99
R
2
= 0.485
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5 6
PMAT
EF(UCS, SLOC)
Figure 64: EF(UCS, SLOC) vs. PMAT
y = 34.859x + 148.41
R
2
= 0.0688
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5
TIME
EF(UCS, SLOC)
Figure 65: EF(UCS, SLOC) vs. TIME
139
y = -34.859x + 392.42
R
2
= 0.0688
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5
ACAP
EF(UCS, SLOC)
Figure 66: EF(UCS, SLOC) vs. ACAP
y = -113.32x + 629.54
R
2
= 0.485
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5
PCAP
EF(UCS, SLOC)
Figure 67: EF(UCS, SLOC) vs. PCAP
140
y = -56.658x + 402.91
R
2
= 0.485
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5
PCON
EF(UCS, SLOC)
Figure 68: EF(UCS, SLOC) vs. PCON
y = -113.32x + 629.54
R
2
= 0.485
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
0 1 2 3 4 5
APEX
EF(UCS, SLOC)
Figure 69: EF(UCS, SLOC) vs. APEX
As is clear from the above figures, each COCOMO II cost driver has only two
distinct values. This makes intuitive sense since each data point is a version of the same
product and, therefore, has a lot in common with the other data points. This coupled with
the fact that there are only five data points implies that no certain conclusions can be
drawn about the relationships between the four elaboration factors and the COCOMO II
cost drivers in case of SoftPM versions.
Abstract (if available)
Abstract
Software size is one of the most influential inputs of a software cost estimation model. Improving the accuracy of size estimates is, therefore, instrumental in improving the accuracy of cost estimates. Moreover, software size and cost estimates have the highest utility at the time of inception. This is the time when most important decisions e.g. budget allocation, personnel allocation, etc. are taken. The dilemma, however, is that only high-level requirements for a project are available at this stage. Leveraging this high-level information to produce an accurate estimate of software size is an extremely challenging task.
Linked assets
University of Southern California Dissertations and Theses
Conceptually similar
PDF
Improved size and effort estimation models for software maintenance
PDF
Domain-based effort distribution model for software cost estimation
PDF
Using metrics of scattering to assess software quality
PDF
Security functional requirements analysis for developing secure software
PDF
Value-based, dependency-aware inspection and test prioritization
PDF
A user-centric approach for improving a distributed software system's deployment architecture
PDF
The effects of required security on software development effort
PDF
Calibrating COCOMO® II for functional size metrics
PDF
A model for estimating cross-project multitasking overhead in software development projects
PDF
Architecture and application of an autonomous robotic software engineering technology testbed (SETT)
PDF
Experimental and analytical comparison between pair development and software development with Fagan's inspection
PDF
Shrinking the cone of uncertainty with continuous assessment for software team dynamics in design and development
PDF
Software connectors for highly distributed and voluminous data-intensive systems
PDF
Design-time software quality modeling and analysis of distributed software-intensive systems
PDF
Estimating systems engineering reuse with the constructive systems engineering cost model (COSYSMO 2.0)
PDF
Architectural evolution and decay in software systems
PDF
The incremental commitment spiral model process patterns for rapid-fielding projects
PDF
Calculating architectural reliability via modeling and analysis
PDF
Constraint-based program analysis for concurrent software
PDF
Automated synthesis of domain-specific model interpreters
Asset Metadata
Creator
Malik, Ali Afzal (author)
Core Title
Quantitative and qualitative analyses of requirements elaboration for early software size estimation
School
Andrew and Erna Viterbi School of Engineering
Degree
Doctor of Philosophy
Degree Program
Computer Science
Publication Date
06/25/2010
Defense Date
06/07/2010
Publisher
University of Southern California
(original),
University of Southern California. Libraries
(digital)
Tag
determinants of elaboration,elaboration factor,elaboration profile,OAI-PMH Harvest,requirements elaboration,software cost estimation,software sizing
Language
English
Contributor
Electronically uploaded by the author
(provenance)
Advisor
Boehm, Barry W. (
committee chair
), Medvidović, Nenad (
committee member
), Steece, Bert M. (
committee member
)
Creator Email
aliafzalmalik@gmail.com,alimalik@usc.edu
Permanent Link (DOI)
https://doi.org/10.25549/usctheses-m3158
Unique identifier
UC1154573
Identifier
etd-Malik-3878 (filename),usctheses-m40 (legacy collection record id),usctheses-c127-353137 (legacy record id),usctheses-m3158 (legacy record id)
Legacy Identifier
etd-Malik-3878.pdf
Dmrecord
353137
Document Type
Dissertation
Rights
Malik, Ali Afzal
Type
texts
Source
University of Southern California
(contributing entity),
University of Southern California Dissertations and Theses
(collection)
Repository Name
Libraries, University of Southern California
Repository Location
Los Angeles, California
Repository Email
cisadmin@lib.usc.edu
Tags
determinants of elaboration
elaboration factor
elaboration profile
requirements elaboration
software cost estimation
software sizing