It refers to the quantitative measures used to assess different aspects of software process.
Software Metrics
Software Measure - Direct and Indirect Measures
Direct -
PROCESS
- cost
- effort
PRODUCT
- LOC
- Execution speed
- Memory usage
Indirect -
-Function point
-Complexity
-Quality
-Efficiency
-Reliability
-Maintainability
The total number of lines in a software or system excluding system-generated files
Lines of Code
It is a unit of measure that represents the amount of effort that a person can complete in a period of time.
Human Effort
Units of estimation of human effort
Person-hours
Person-days
Person-months
Normalizing quality and productivity measures by considering the software size that has been produced.
This is not universally accepted as the best way to measure the process of software development
Size-Oriented Measure
It is typically derived using an empirical relationship based on countable measures of software’s information domain and assessments of software complexity
Function-Oriented measure
Major Components of Function-Oriented Measure
External Inputs
External Inquiries
External Outputs
Internal Logical Files
External Logical Files
Factors affecting estimation
Project Size
Project Complexity
Structural Uncertainty
It refers to the estimation based on the effort required to complete each task in a project
Project-based estimation
This refers to techniques to effectively estimate the required resources to successfully complete a project
Estimation Models
This refers to the structured method for calculating the external behavior and functionality of a software based on the user requirements
Function Point Analysis
E = (F_1 * P_1) + (F_2 * P_2) + … (F_n * P_n)
E is the estimation effort F is the function point and P is the productivity factor based on historical data
Other estimation tools
Constructive Cost Model (COCOMO)
Program Evaluation and Review Technique (PERT)
Regression Analysis
Machine Learning Models
This refers to the structured approach for estimating the effort, time, resources or risks required to develop a software project.
Constructive Cost Model - COCOMO
E = a * S^b * F where E is the estimation effort, a and b are constants based on historical data and S is the size of LOC/FP and F is the effort adjustment factor determined based on the project specific characteristics.
This refers to a parametric model that estimates effort based on the size of the project and other product attributes.
Program Evaluation and Review Technique - PERT
the formula is same as COCOMO except F is replaced by P where P is the product attributes
This refers to the statistical technique used to model and analyze the relationship between the variables within a software development project.
E = a + b_1x_1 + b_2x_2 + … b_nX_n
where E is the estimation effort, a and b are coefficients based on historical data and X is any relevant software development variable such as LOC or FP
Regression analysis