2. Software Size Estimation
The size of the software needs to be estimated to figure out the time needed
in terms of calendar and man months as well as the number and type of
resources required carrying out the job. The time and resources estimation
eventually plays a significant role in determining the cost of the project.
Most organizations use their previous experience to estimate the size and
hence the resource and time requirements for the project. If not quantified, this
estimate is subjective and is as good as the person who is conducting this
exercise.
3. At times this makes it highly contentious. It is therefore imperative for a government organization to
adopt an estimation mechanism that is:
1. Objective in nature.
2. It should be an acceptable standard with wide spread use and acceptance level.
3. It should serve as a single yardstick to measure and make comparisons.
4. Must be based upon a deliverable that is meaningful to the intended audience.
5. It should be independent of the tool and technology used for the developing the software.
4. A number of techniques and tools can be used in estimating the size of the software. These include:
1. Lines of code (LOC)
2. Number of objects
3. Number of GUIs
4. Number of document pages
5. Functional points (FP)
5. Comparison of LOC and FPA
Out of above the two most widely used metrics for the measurement of
software size are FP and LOC. LOC metric suffer from the following
shortcomings:
1. There are a number of questions regarding the definition for lines of code.
These include:
a. Whether to count physical line or logical lines?
b. What type of lines should be counted? For example,
should the comments, data definitions, and blank lines be counted or not?
2. LOC is heavily dependent upon the individual programming style.
6. 3. It is dependent upon the technology and hence it is difficult to compare
applications developed in two different languages. This is true for even
seemingly very close languages like in C++ and Java.
4. If a mixture of languages and tools is used then the comparison is even
more difficult. For example, it is not possible to compare a project that
delivers a 100,000-line mixture of Assembly, C++, SQL and Visual Basic to one
that delivers 100,000 lines of COBOL.
7. FP measures the size of the functionality provided by the software. The functionally is measured as
a function of the data and the operations performed on that data. The measure is independent of
the tool and technology used and hence provides a consistent measure for comparison between
various organizations and projects.
The biggest advantage of FP over LOC is that LOC can be counted only AFTER the code has been
developed while FP can be counted even at the requirement phase and hence can be used for
planning and estimation while the LOC cannot be used for this purpose.
8. Another major distinction between the FP and LOC is that the LOC measures the application
from a developer's perspective while the FP is a measure of the size of the functionality from
the user's perspective. The user's view, as defined by IFPUG, is as follows:
A user view is a description of the business functions and is approved by the user. It represents a
formal description of the user’s business needs in the user’s language. It can vary in physical
form (e.g., catalog of transactions, proposals, requirements document, external specifications,
detailed specifications, user handbook).
9. Developers translate the user information into information technology language in order to
provide a solution. Function point counts the application size from the user’s point of view. It is
accomplished using the information in a language that is common to both user(s) and develop
10. Usage of FP includes:
Effort Scope Estimation
Project Planning
Determine the impact of additional or changed requirements
Resource Planning/Allocation
Benchmarking and target setting
Contract Negotiations
11. Following is a list of some of the FP based metrics used for these purposes:
Size – Function Points
Defects – Per Function Point
Effort – Staff-Months
Productivity – Function Points per Staff-Month
Duration – Schedule (Calendar) Months