2. WHAT ARE SOFTWARE MATRICS ?
Quantitative measure of degree to which a system, component or process
possesses a given attribute. “A handle or guess about a given attribute.”
e.g.: Number of errors found per person hours expended.
A software metric is a measure of software characteristics which are
quantifiable or countable. Software metrics are important for many reasons,
including measuring software performance, planning work items, measuring
productivity, and many other uses.
Within the software development process, there are many metrics that are all
related to each other. Software metrics are related to the four functions of
management: Planning, Organization, Control, or Improvement.
3. Areas of Use of Metrics
1) Cost and size estimation: The most created area of software metrics is cost and
size estimation techniques. There are many proprietary packages in the market that
provide estimates of software system size, cost to develop a system, and the period of
the development or enhancement of the project. These packages are based on
estimation models, like COCOM081, COCOMO-11, developed by Berry Boehm.
2) Controlling Software Development Projects: calculating software development
projects through measurement is an area that is generating a great deal of interest.
This has much more germane with the increase in fixed price contracts and the use of
price clause by customers who deal with software developers.
3) Prediction of Quality Levels: The forecast of quality levels for software, often in
terms of reliability, is another area where software metrics have an vital role to play.
4) Provide Quantitative Checks: The use of software metrics to present quantitative
checks on software design are also a well-establishes area.
5) Provide Management Information: Software metrics are also used to provide
management information. This include in information about productivity, quality and
process effectiveness. It is essential to realize that this should be seen as an ongoing
activity, Snapshots of the existing situation have their place, but the most valuable
information comes when we see trends in data.
4. Categories of Metrics
1) Product Metrics
i. Size Metrics
ii. Complexity Metrics
iii. Reliability Metrics
iv. Style Metrics
2) Process Metrics
3) Project Metrics
5. Product Metrics
These are metrics that pertain to product quality. They are used to measure
cost , quality and the product’s time to market.
Product metrics help the software engineers gain insight into the design and
construction of the software they build by focusing on specific and
measurable attributes of the work products.
These metrics examine the requirements model with the intent of predicting
the size and complexity of the resulting system.
6. PROCESS METRICS
Process metrics are used to measure the efficiency and effectiveness of
various processes.
Process metrics are collected across all projects and over long period of time.
Their intent is to provide a set of process indicators that lead to long-term
software process improvement.
The only way to improve any process is to measure specific attributes of the
process, develop a set of meaningful metrics based on the outcomes and then
use the metrics to provide indicators that will lead to strategic
improvements.
7. PROJECT METRICS
Unlike process metrics, software project metrics are used for tactical purposes.
Project metrics and the indicators derived from them enables a software project
manager to -
• assess the status of an ongoing project,
• track potential risks,
• uncover problem areas before they go “critical,”
• adjust work flow or tasks, and
• evaluate the project team’s ability to control quality of software work products.
The intent of these metrics is twofold –
1. It is used to minimize the development schedule by making the adjustments necessary
to avoid delays and mitigate potential problems and risks
2. 2. It is used to assess product quality on an ongoing basis and, when necessary, modify
the technical approach to improve quality. As the quality improves, defects are
minimized and the amount of rework required during the project is also reduced ,
which leads to the reduction in overall project cost.
8. ROLE OF SOFTWARE MATRICS
MONITOR REQUIREMENT.
PREDICT DEVELOPMENT RESOURCES.
TRACK DEVELOPMENT PROCESS.
UNDERSTANDABLE MAINTENANCE COST.
9. SOFTWARE MEASUREMENT
Software measurement is a quantitative indication of extent,amount,dimension,capacity,or
size of some attribute of a product or process.
e.g.: Number of errors.
Quantifiable measure of degree.
Prediction –
To predict complexity
To predict usage
Predictive analytics
Control –
Production hours, cost, security, quality
Assessment –
Usability
Web analytics
Return on Investment
10. Types of Software Measurements
Direct measures
Easy to collect
E.g. Cost, Effort, Lines of codes (LOC), Execution Speed, Memory size, Defects
etc.
Indirect measures
More difficult to assess & can be measured indirectly only.
Quality, Functionality, Complexity, Reliability, Efficiency, Maintainability etc.
11. ROLE OF MEASUREMENT
PROCESS IMPROVEMENT
MEANINGFUL GOAL
MONITOR QUALITY
MEASURE RELIABILITY
SOFTWARE PRODUCTIVITY