Email:
Password: [?] 
  Register with the DACS
Site Search: Advanced Search Search: Bibliographic Database(SEBD)     Lifecycle Database(SLED)    DoD Acronyms 
DACS Home Advertising Submitting Articles Archives About Us Suggest A Link
Rate this page's content:
  poor
excellent

Tech Views

by Dan Ferens, DACS Analyst, ITT Corporation

Software estimation appears to be rather uncomplicated. A general equation for estimating software effort is simply:

Effort = f (Size, Productivity)

Where effort is in person-months (or similar), size is in lines of code, function points, or other size measure, and productivity is in size units per unit of time, such as function points per person-month (or, sometimes, time required per size unit, like person-hours per function point). Some early (1970s) models estimated effort using an equation such as

Effort = A x (Size)B

Where A and B are constants, often obtained from historical data. (Note that if B not equal to 1, productivity varies with program size.)

Software schedule has often been computed as a function of effort using an equation such as:

Schedule = C x (Effort)D

Where schedule is in time units such as months, C and D are constants that, like A and B, are often obtained from historical data, and effort is computed from the equation above.

In reality, however, software estimation is quite complex. In fact, Dr. Barry Boehm said that basic models for effort are only accurate to “within a factor of two, 60% of the time [Boehm 81, p. 114]. Productivity is quite difficult to assess; the averages used in models like those above have considerable variation. Factors such as operating environment, personnel capabilities, use of modern practices, hardware constraints, time and person-power limitations, development method, system integration requirements, and security requirements will greatly affect productivity for any given project or program. Schedule can be even more difficult to assess since not only effort must be known, but also other factors which cause variation in the C and D constants for specific programs.

Size is often difficult to estimate, especially early in a program. Lines of code vary by language and by counting practices. Function points, although well-researched, are also sometimes hard to count or estimate, and have not been shown to be appropriate in some situations. Other measures, such as object points and use case points, are also not applicable in some situations and are not as well researched as lines of code and function points.

One other limitation of most basic effort equations is that they usually address only software development costs. Software maintenance (or support) costs usually exceed software development costs, but some models have not addressed them at all, or only in a cursory manner.

During the late 1970s and during the 1980s, some sophisticated software estimating models were developed such as Dr. Boehm’s Constructive Cost Model (COCOMO), PRICE-S (now True S), SLIM, SEER-SEM, and SPQR/20 (now Knowledge Plan). During the mid 1980s, some sophisticated software size estimating techniques, sometimes included in cost models, came into being. Function points became a measure of size that could be used in addition to (or instead of) lines of code. Most cost models now included some maintenance estimation capabilities.

Since the late 1980s, the existing models have been improved (such as COCOMO 2.0 in 2000), and new ones have arisen. Models have also been adapted for newer languages, such as Java, and newer development methods such as object-oriented development. Additional size measures such as object points and use case points have been advanced. However, the status of software estimating is not utopian, and there is still room for improvement and for new ideas. For example, an award-winning study by Ferens and Christensen [Ferens 98], using the results of ten Master’s Thesis efforts at the Air Force Institute of Technology, showed that none of the popular cost models were shown to be accurate for two department of defense (DoD) databases. This may have reflected problems with the databases instead of the models, but the end result was that development cost and schedule estimation could not be shown to be accurate. A later study by Brummert and Mischler [Brummert, 1998] showed the problems were even worse for software support, or maintenance estimating. The models varied widely on their estimates, what constitutes support, and how people were allocated during the support period. Size estimating models and methods have been shown accurate, but only for selected types of software applications.

This issue of the Software Tech News, “New Directions in Software Estimation”, describes the migration/evolution that is occurring in software estimating in response to the continuing and emerging challenges of developing and maintaining complex software systems. The first article by Jo Ann Lane and Barry Boehm addresses the emerging interest area of estimating Software-Intensive System of Systems (SISOS) The next article by Don Scott Lucero and Christopher Miller addresses challenges associated with software estimating in the U.S. Department of Defense. The next article by Arlene Minkiewicz addresses the issues associated with software size estimation with suggestions for using sizing methods. Dan Galorath’s article addresses current issues in software maintenance and how we may resolve them. Finally, Capers Jones addresses risk in software estimates, an area that is of great importance but not usually addressed adequately in software estimates.

While the articles in this issue do not constitute a panacea for the challenges associated with software estimating, they will provide the reader with new insights and new ideas in this area. DACS welcomes your comments on this issue or anything related to software engineering and management.

About the Author

Dan Ferens works for ITT AES as an analyst for the DACS and as an instructor for a 12-part series in software affordability which has been taught mainly to Air Force Research Laboratory (AFRL) scientists, engineers, and managers in Rome, NY. Dan retired from AFRL in early 2007 after more than 35 years of service to the Air Force as a military and civilian employee. Dan has been involved in software estimating since he became a civilian in 1978, both as an AFRL analyst and program manager, and as a Professor at Air Force Institute of Technology where he taught classes on software estimation and other software engineering and management topics for 13 years. He is currently an Adjunct Instructor at SUNY Institute of Technology in Utica, New York where he teaches a class in information technology project management. He is a life member of the International Society of Parametric Analysts (ISPA), where, in 1999, he received the prestigious Freiman award for lifetime achievements in parametric estimating. Mr. Ferens has a Masters degree in Electrical Engineering from Rensselaer Polytechnic Institute, and a Masters Degree in Business Administration from the University of Northern Colorado. He and his wife, Marcie, currently reside in Fulton, New York.

Author Contact Information

Dan Ferens: Daniel.ferens@itt.com

References:

[Boehm 1981] Boehm, Barry W., Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NJ, 1981.

[Ferens 1998] Ferens, Daniel V. and David S Christensen, “Calibrating Software Cost Models to Department of Defense Databases – A review of Ten Studies”, ISPA Journal of Parametrics, Volume XVIII, Number 2, November, 1998, pp. 55-74.

[Brummert 1998] Brummert, Kevin L., and Philip Mischler, Jr., “Software Support Cost Estimating Models: A Comparative Study of Model Content and Parameter Sensitivity” (AFIT Master’s Thesis), Air Force Institute of Technology, Dayton, OH, September, 1998.

October 2008
Vol. 11, Number 3

New Directions in Software Estimation
 

Articles in this issue:
Tech Views
Modern Tools to Support DoD Software Intensive System of Systems Cost Estimation
Using Parametric Software Estimates during Program Support Reviews
The Evolution of Software Size: A Search for Value
Including Risk Analysis in Software Cost Estimates
Software Total Ownership Costs: Development Is Only Job One

Download this issue (PDF)

Get Acrobat

Receive the Software Tech News
 
Click here to submit
an article or to check out future themes of the Software Tech News

STN Issues

2010

2009

2008

2007

2006

2005

2004

2003

2002

2001

2000

1999

1998

1997

1996

1995

1994

1993


About the Software Tech News
 
  Advertising Opportunities
 
  Article Reprints
   DACS Gold Practice Initiative  ROI Dashboard
 
Acquisition Process Improvement
Architecture-First Approach
Assess Reuse Risks and Costs
Binary Quality Gates at the Inch-Pebble Level
Capture artifacts in rigorous, model-based notation
Commercial Specifications and Standards/Open Systems
Defect Tracking Against Quality Targets
Develop and Maintain a Life-cycle Business Case
Ensure Interoperability
Formal Inspections
Formal Risk Management
Goal-Question-Metric Approach
Integrated Product and Process Development
Manage Requirements
Metrics-based Scheduling
Model Based Testing
Plan for Technology Insertion
Requirements Trade-Off/Negotiation
Statistical Process Control
Track Earned Value
  Access benefit data from software technical and management improvements including SEI CMMI, PSP/TSP, Cleanroom, Inspections, and Agile Development.

View the ROI Dashboard
Copyright © 2010, ITT Corporation    Privacy Policy
webmaster@thedacs.com
775 Daedalian Drive Rome, NY 13441
(800) 214-7921 Fax: 315-838-7130
This site is best viewed in Firefox 1.0+ or IE 6.0+
XHTML