Most software cost models can be abstracted into a function of five basic parameters: size, process, personnel, environment, and required quality.
1. The size of the end product (in human-generated components), which is typically quantified in terms of the number of source instructions or the number of function points required to develop the required functionality
2. The process used to produce the end product, in particular the ability of the process to avoid non-value-adding activities (rework, bureaucratic delays, communications overhead)
The capabilities of software engineering personnel, and particularly their experience with the computer science issues and the applications domain issues of the project
The environment, which is made up of the tools and techniques available to support efficient software development and to automate the process
The required quality of the product, including its features, performance, reliability, and adaptability
The relationships among these parameters and the estimated cost can be written as follows:
Effort = (Personnel) (Environment) (Quality)(SizeProcess)
Several parametric models have been developed to estimate software costs; all of them can be generally abstracted into this form. One important aspect of software economics (as represented within today's software cost models) is that the relationship between effort and size exhibits a diseconomy of scale. The diseconomy of scale of software development is a result of the process exponent being greater than 1.0. Contrary to most manufacturing processes, the more software you build, the more expensive it is per unit item.
For example, for a given application, a 10,000-line software solution will cost less per line than a 100,000-line software solution. How much less? Assume that a 100,000-line system requires 900 staff-months for development, or about 111 lines per staff-month, or 1.37 hours per line. If this same system were only 10,000 lines, and all other parameters were held constant, this project would be estimated at 62 staff-months, or about 175 lines per staff-month, or 0.87 hour per line. (Figure B-l in Appendix B provides a more detailed description of this example using the COCOMO cost estimation model.) The per-line cost for the smaller application is much less than for the larger application. The reason is primarily the complexity of managing interpersonal communications as the number of team members (and corresponding objectives, win conditions, technical biases) scales up. This diseconomy of scale is characteristic of any research project in which the product is a one-of-a-kind instance of intellectual property.
Figure 2-1 shows three generations of basic technology advancement in tools, components, and processes. The required levels of quality and personnel are assumed to be constant. The ordinate of the graph refers to software unit costs (pick your favorite: per SLOC, per function point, per component) realized by an organization.
Was this article helpful?
What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.