Software Size

Software size is the main input parameter to cost estimation models.  However, there is no single measurement for software size, unlike other industries (eg. weight – in the food industry or metres squared – for building).  Each sizing method has its advantages and disadvantages and advice should be sought before choosing the method that suits your application.

Consistency

The most important aspect of using a size measure of an application or project is that the same rules are used consistently across all projects.  This enables comparisons to be made from one project to the next and also against other groups of projects.

Knowledge

Knowing your own internal company sizing and productivity measures are valuable information.  This enables your data to be used for forecasting and estimating.

Tips for Sizing

Independent certified measurers should calculate the same size for an application.  The size should be measurable at any stage of the project.  The size can be used in contacts as a basis for costing and payment

IFPUG

IFPUG function points is the most commonly used sizing method.  It is better suited to applications that contain user interface, reports and databases.

With IFPUG, function points are assigned to a screen/report (depending on the number of data elements on the screen/report) and the number of database tables that are referenced.  Function points are also assigned to tables depending on their size.

The total is the unadjusted function point count (UFP).  There is then an adjustment to cater for the other attributes that need to be considered when developing an application.  Currently there are 14 attributes to assess.  For details on function point counting the go to IFPUG.

Not every size method is ISO certified.  IFPUG, FiSMA, Mark II, Cosmic and NESMA are ISO/IEC certified standard for functional size measurement.

ISBSG has additional methods for sizing software

  • COSMIC – useful for complex real-time applications.
  • FiSMA – used by Finland Software Metrics Association.
  • Nesma – used by Nederlands Software Metrics Association.

IFPUG, Nesma and COSMIC all use Functional User Requirements as the basis for size measurement. This is important so that the size can be measured early on in the project.

There are also 2 different size measures to consider: function points developed and function points delivered. The difference is the adjustments for change requests and data conversion programs.