Software Engineering Methodologies
Software Engineering Methodologies
Software Engineering Methodologies
II, Seer
niques.
Software estimation techniques vary between complexity, basis in historical data, major input, and flexibility. This paper defines four common types of software estimation techniques
and then compares them.
3.1
SLIM
The SLIM software cost estimation technique, created in 1976, consists of measuring the cost
of software based on the number of lines of code as its major input and includes the expertise obtained from Lawrence Putnam in his pioneering paper that compared 2600 different
software projects from data obtained from the U.S. Army Computer Systems Command[2].
SLIM stands for Software Lifecycle Management and was created by Putnam at his company
Quantitative Software Management, Inc.
3.1.1
Calculation
The SLIM technique uses a Productivity Index, which is the measure of efficiency and complexity, of the various software projects that have been completed from the persons company.
There exists a broad range of indexes depending on the type of software being developed,
such as Business, Scientific, System, etc, that can be used if the company has no prior experience developing software. This productivity index is calculated by a combination of SLOC,
Effort, and Time. (LOC = PI * Effort ^ (1/3) * time ^(4/3). This productivity index is
then coupled with the Rayleigh distribution equation (which is project personnel vs time)to
display a close cost estimation. This number is a combination of real world software projects
and the companies personal experience developing software.
3.2
SEER-SEM
The SEER-SEM uses the size, personnel, environment, complexity, and constraints to estimate the effort, cost, schedule, risk, and maintenance of a software project. It was developed
by Dan Galorath. Galorath Inc currently owns the SEER-SEM trademark. SEER stands for
System Evaluation and Estimation of Resources and the SEM stands for Software Estimation
Model.
3.3
COCOMO II
COCOMO was originally developed by Barray Boehm in 1981 and is short for COnstructive
COst MOdel. Its metrics are based on the number of lines of code and uses adjustment
factors based on historical data. COCOMO II is the updated model which allows for more
types of software engineering techniques, including Object Oriented design, reuse driven
approaches, rapid-development processes, and other factors. COCOMO II still uses the
number of lines of code as its base estimation factor. COCOMO II has three different
models: Application Composition Model, which is good for rapid application development,
Early Design Model, which is good for rough estimates, and the Post-Architecture Model,
which is used after the architecture has been completed for the software. Each model has
different cost drivers, rules, and equations. COCOMO II is an improvement over COCOMO
as it doesnt have to use SLOC. It can use object points or functional points to defined the
size of the project. Additionally, COCOMOII EAF equation includes seventeen cost drivers
that are more refined for modern software, as opposed to COCOMO original fifteen EAF
cost drivers. COCOMO is the most popular method of software cost estimation.
3.3.1
Calculation
PROBE is a technique to estimate program size and effort. Probe stands for Proxy based
estimation and uses proxy of objects. The project is divided into conceptual parts and then
these parts are compared to existing parts. This will help you judge the size of the project
2
at a high level. Proxies can be different things, such as files, objects, or procedures. These
parts can be compared and then summed to estimate the number of lines of code. This
type of estimation technique can be difficult if parts are hard to compare. Additionally
implementation differences can skew numbers.
3.4
3.4.1
Comparison
License
The license usage for these models are all different. The SEER-SEM and SLIM are both
proprietary commercial models. COCOMO II is considered public domain.
3.4.2
Types of Models
Both SLIM and COCOMO II is considered composite models, which are a combination of
analytic techniques. Both SLIM and COOCMO II both take the number of lines of code
as its major input. The advantage of this approach is that accuracy can be improved by
modeling more similar enviornments.
3.4.3
Calculation Complexity
Considering the number of factors for each type of software estimation technique, SLIM
offers the fewest parameters to create an estimation. However, it is more heavily dependent
on historical data of the community and ones own engineering past. COCOMO II requires
a large number of factors to estimate it cost.
3.5
Conclusion
Overall, when estimating cost for software, one should use multiple approaches. Most software estimation models depend on the size of the software that is being developed [1].
References
[1] C. Jones. Applied Software Measurement: Assuring Productivity and Quality. McGrawHill Software Engineering Series. McGraw-Hill, 1991.
[2] L. H. Putnam. A general empirical solution to the macro software sizing and estimating
problem. IEEE Trans. Softw. Eng., 4(4):345361, July 1978.