Software Sizing
From Wikipedia, the free encyclopedia
Software sizing is an important activity in software engineering that is used to estimate the size of a software application or component in order to be able to implement other software project management activities (such as estimating or tracking). Size is an inherent characteristic of a software in just like weight is an inherent characteristic of any tangible material.
Contents |
[edit] Background
It is essential to differentiate between software sizing and software effort estimation. Measuring the size of a piece of software is different from measuring the effort needed to build it. We need to measure the size of software in order to be able to measure productivity.
[edit] Example
For example, if a software engineer has built a small web-based calculator application, we can say that the project effort size was 280 man-hours. However, this does not give any information about the size of the software product itself. Conversely, we can say that the application size is 5,000 LOCs (Lines Of Code),ff or 30 FPs.
[edit] Software Sizing Methods
Historically, the most common software sizing methodology was counting the lines of code written in the application source. Although this method is easy and straightforward, it is no longer practical due to the great advancements in software engineering and modern programming languages. Another famous sizing method is the Function point analysis. FP analysis has proven successful and accurate for more than thirty years. However, its accuracy and effectiveness has lately become highly controversial. Reasons behind the criticism of FP analysis include lack of sensitivity towards algorithmic complexity and its relative difficulty.
New trends of software sizing have recently emerged. For example, Use Case based software sizing relies on counting the number and characteristics of Use Cases found in a piece of software. Also, different variations of Function Points have emerged over the years, such as Object Oriented Function Points, or OOFP.
[edit] Additional Information
Several software quality standards mandate the use of a valid sizing method as part of the organization's standard software engineering life cycle. For instance, Capability Maturity Model Integration (CMMI) poses such requirement. An organization cannot be certified as CMMI level 2 or level 3 unless software sizing is adequately used.