- Software Sizing
Software sizing is an important activity in
software engineering that is used to estimate the size of a software application orcomponent in order to be able to implement othersoftware project management activities (such as estimating ortracking ). Size is an inherent characteristic of a software in just likeweight is an inherent characteristic of any tangible material.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.
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.
oftware 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 asObject Oriented Function Points, or OOFP.Additional Information
Several
software quality standards mandate the use of a valid sizing method as part of the organization's standardsoftware 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.ee also
*
Software development effort estimation
*Software Engineering
*Software project management
*Function point analysis
Wikimedia Foundation. 2010.