Software Sizing
Encyclopedia
Software sizing is an 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 piece of software just like weight
is an inherent characteristic of a tangible material.
. Sizing estimates the probable size of a piece of software while effort estimation predicts the effort
needed to build it. The relationship between the size of software and the effort required to produce it is productivity.
For example, if a software engineer has built a small web-based calculator application, we can say that the project effort 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), or 30 FPs (Function Points) without identifying the project effort required to produce it.
written in the application source. Another sizing method is the IFPUG method called Function point analysis. The IFPUG FPA functional sizing method (FSM) has been used successfully, despite being less accurate estimating complex algorithms and is relatively more difficult to use than estimating lines of code.
Variations of Function Points include MK II
Function Point, NESMA Function Points, Object Oriented Function Points, OOFP, and newer variants as Weighted Micro Function Points
which factor algorithmic and control flow
complexity. For more information about the similarities and differences between these ISO FSM methods see IFPUG and COSMIC - Similarities and Differences. The best Functional Sizing Method depends on a number of factors, including the functional domain of the applications, the process maturity of the developing organization and the extent of use of the FSM Method. There are many uses and benefits of function points beyond measuring project productivity and estimating planned projects, these include monitoring project progress and evaluating the requirements coverage of COTS (Commercial off the shelf) packages.
Other software sizing methods include Use Case based software sizing, which relies on counting the number and characteristics of Use Cases found in a piece of software and COSMIC which addresses sizing software that has a very limited amount of stored data such as 'process control' and 'real time' systems.
Both the IFPUG Method and the COSMIC Method are ISO/IEC standards.
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 appraised (certified) as CMMI level 2 or level 3 unless software sizing is adequately used.
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
that is used to estimate the size of a software application
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
or component in order to be able to implement other software project management
Software project management
Software project management is the art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, monitored and controlled.-History:...
activities (such as estimating
Estimation
Estimation is the calculated approximation of a result which is usable even if input data may be incomplete or uncertain.In statistics,*estimation theory and estimator, for topics involving inferences about probability distributions...
or tracking
Tracking
Tracking can refer to:*Tracking , separating children into different classes according to their academic ability*Tracking, in computer graphics, a vital part of match moving...
). Size is an inherent characteristic of a piece of software just like weight
Weight
In science and engineering, the weight of an object is the force on the object due to gravity. Its magnitude , often denoted by an italic letter W, is the product of the mass m of the object and the magnitude of the local gravitational acceleration g; thus:...
is an inherent characteristic of a tangible material.
Background
Software sizing is different from software effort estimationSoftware development effort estimation
Software development efforts estimation is the process of predicting the most realistic use of effort required to develop or maintain software based on incomplete, uncertain and/or noisy input...
. Sizing estimates the probable size of a piece of software while effort estimation predicts the effort
Work (project management)
Work or Work Package in project management is the amount of effort applied to produce a deliverable or to accomplish a task or a group of related tasks defined at the same level in the WBS....
needed to build it. The relationship between the size of software and the effort required to produce it is productivity.
For example, if a software engineer has built a small web-based calculator application, we can say that the project effort 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), or 30 FPs (Function Points) without identifying the project effort required to produce it.
Software Sizing Methods
Historically, the most common software sizing methodology has been counting the lines of codeSource lines of code
Source lines of code is a software metric used to measure the size of a software program by counting the number of lines in the text of the program's source code...
written in the application source. Another sizing method is the IFPUG method called Function point analysis. The IFPUG FPA functional sizing method (FSM) has been used successfully, despite being less accurate estimating complex algorithms and is relatively more difficult to use than estimating lines of code.
Variations of Function Points include MK II
MK II FPA
The MK II Method is one of the software sizing methods in functional point group of measurements. This is a method for analysis and measurement of information processing applications based on end user functional view of the system...
Function Point, NESMA Function Points, Object Oriented Function Points, OOFP, and newer variants as Weighted Micro Function Points
Weighted Micro Function Points
Weighted Micro Function Points is a modern software sizing algorithm invented by Logical Solutions in 2009 which is a successor to solid ancestor scientific methods as COCOMO, COSYSMO, maintainability index, cyclomatic complexity, function points, and Halstead complexity...
which factor algorithmic and control flow
Control flow graph
A control flow graph in computer science is a representation, using graph notation, of all paths that might be traversed through a program during its execution.- Overview :...
complexity. For more information about the similarities and differences between these ISO FSM methods see IFPUG and COSMIC - Similarities and Differences. The best Functional Sizing Method depends on a number of factors, including the functional domain of the applications, the process maturity of the developing organization and the extent of use of the FSM Method. There are many uses and benefits of function points beyond measuring project productivity and estimating planned projects, these include monitoring project progress and evaluating the requirements coverage of COTS (Commercial off the shelf) packages.
Other software sizing methods include Use Case based software sizing, which relies on counting the number and characteristics of Use Cases found in a piece of software and COSMIC which addresses sizing software that has a very limited amount of stored data such as 'process control' and 'real time' systems.
Both the IFPUG Method and the COSMIC Method are ISO/IEC standards.
Additional Information
Several software qualitySoftware quality
In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context:...
standards mandate the use of a valid sizing method as part of the organization's standard software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
life cycle. For instance, Capability Maturity Model Integration
Capability Maturity Model Integration
Capability Maturity Model Integration is a process improvement approach whose goal is to help organizations improve their performance. CMMI can be used to guide process improvement across a project, a division, or an entire organization...
(CMMI) poses such requirement. An organization cannot be appraised (certified) as CMMI level 2 or level 3 unless software sizing is adequately used.
See also
- Software development effort estimationSoftware development effort estimationSoftware development efforts estimation is the process of predicting the most realistic use of effort required to develop or maintain software based on incomplete, uncertain and/or noisy input...
- Software EngineeringSoftware engineeringSoftware Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
- Software project managementSoftware project managementSoftware project management is the art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, monitored and controlled.-History:...
- Function point analysis
- SEER-SEMSEER-SEMSEER for Software is an algorithmic project management software application designed specifically to estimate, plan and monitor the effort and resources required for any type of software development and/or maintenance project...
- PRICE SystemsPRICE SystemsPRICE Systems was founded in 1975 as a business within the RCA Corporation. It is generally acknowledged as the earliest developer of parametric cost estimation software....
- Comparison of development estimation softwareComparison of development estimation softwareA comparison of notable Software development effort estimation software.-See also:* Software Sizing* Software metric* Software development effort estimation* Software parametric models* Cost estimation models...
- Enhanced Object Points