of software cost models can be abstracted into a function of basic five
The size of the end
product, which is typically quantified in terms of the number of source
instructions or the number of function points required to developed the
The process to produces
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 personal 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 tool and techniques available to support efficient software
development and to automate the process.
quality of product.
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 = (Personal)(Environment)(Quality)(SizeProcess)
important aspect of software economics is that the relationship between effort
and size exhibits a diseconomy of scale and is the result of the process
exponent being greater than 1.0.
to most manufacturing process, the more software you build, the more expensive
it is per unit item.
are three generations of basic technology advancement in tools, components, and
processes are available.
1. Conventional 1960
and 1970, craftsmanship. Organizations used custom tools, custom processes, and
virtually all custom components built in primitive languages. Project
performance was highly predictable.
1980 and 1990, software engineering. Organizations used more-repeatable
processes and off-the-shelf tools, and mostly (>70%) custom components built
in higher level languages.
Some of the components (