Unit 4 - Software Metrics and Project Estimations
Unit 4 - Software Metrics and Project Estimations
1. Planning
2. Organizing
3. Controlling
4. Improving
Characteristics of Software Metrics
1. Quantitative: Metrics must possess a quantitative nature. It means metrics can
be expressed in numerical values.
2. Understandable: Metric computation should be easily understood, and the
method of computing metrics should be clearly defined.
3. Applicability: Metrics should be applicable in the initial phases of the
development of the software.
4. Repeatable: When measured repeatedly, the metric values should be the same
and consistent.
5. Economical: The computation of metrics should be economical.
6. Language Independent: Metrics should not depend on any programming
language.
Types of Software Metrics
1. Product Metrics: Product metrics are used to evaluate the state of the product, tracing
risks and undercover prospective problem areas. The ability of the team to control
quality is evaluated. Examples include lines of code, cyclomatic complexity, code
coverage, defect density, and code maintainability index.
2. Process Metrics: Process metrics pay particular attention to enhancing the long-term
process of the team or organization. These metrics are used to optimize the development
process and maintenance activities of software. Examples include effort variance,
schedule variance, defect injection rate, and lead time.
3. Project Metrics: The project metrics describes the characteristic and execution of a
project. Examples include effort estimation accuracy, schedule deviation, cost variance,
and productivity. Usually measures-
○ Number of software developer
○ Staffing patterns over the life cycle of software
○ Cost and schedule
○ Productivity
Advantages of Software Metrics
1. Reduction in cost or budget.
2. It helps to identify the particular area for improvising.
3. It helps to increase the product quality.
4. Managing the workloads and teams.
5. Reduction in overall time to produce the product,.
6. It helps to determine the complexity of the code and to test the code with
resources.
7. It helps in providing effective planning, controlling and managing of the entire
product.
Disadvantages of Software Metrics
1. It is expensive and difficult to implement the metrics in some cases.
2. Performance of the entire team or an individual from the team can’t be
determined. Only the performance of the product is determined.
3. Sometimes the quality of the product is not met with the expectation.
4. It leads to measure the unwanted data which is wastage of time.
5. Measuring the incorrect data leads to make wrong decision making.
Software Quality
1. Software Quality refers to the degree to which a software product meets the
specified requirements, fulfills its intended purpose, and satisfies user
expectations.
2. It encompasses both the functional and non-functional aspects of the software,
ensuring that the product is reliable, efficient, maintainable, and user-friendly.
3. Although many quality measures can be collected, the primary thrust at the
project level is to measure errors and defects.
4. Metrics derived from these measures provide an indication of the effectiveness
of individual and group software quality assurance and control activities.
Software Quality Metrics
Although there are many measures of software quality, correctness,
maintainability, integrity, and usability provide useful indicators for the project
team.
CORRECTNESS
1. Correctness is the degree to which the software performs its required function.
2. Defects (lack of correctness) are those problems reported by a user of the
program after the program has been released for general use.
3. For quality assessment purposes, defects are counted over a standard period of
time, typically one year.
4. The most common measure for correctness is defects per KLOC, where a defect
is defined as a verified lack of conformance to requirements.
Software Quality Metrics
MAINTAINABILITY
1. Maintainability is the ease with which a program can be corrected if an error is
encountered, adapted if its environment changes, or enhanced if the customer
desires a change in requirements.
2. There is no way to measure maintainability directly; therefore, we must use
indirect measures.
3. A simple time-oriented metric is mean time to change (MTTC), the time it takes
to analyze the change request, design an appropriate modification, implement
the change, test it, and distribute the change to all users.
Software Quality Metrics
INTEGRITY
1. This attribute measures a system's ability to withstand attacks (both accidental and
intentional) to its security.
2. To measure integrity, two additional attributes must be defined: threat and security.
3. Threat is the probability (which can be estimated or derived from empirical evidence)
that an attack of a specific type will occur within a given time.
4. Security is the probability (which can be estimated or derived from empirical evidence)
that the attack of a specific type will be repelled.
5. The integrity of a system can then be defined as:
Software Quality Metrics
USABILITY
1. Usability refers to the ease with which users can interact with a software
system to achieve their goals.
2. It encompasses various factors, including the intuitiveness of the user interface,
the efficiency of task completion, the effectiveness of error handling, and overall
user satisfaction.
Defect Removal Efficiency [DRE]
● A quality metric that provides benefit at both the project and process level is defect
removal efficiency (DRE).
● In essence, DRE is a measure of the filtering ability of quality assurance and control
actions as they are applied throughout all process framework activities.
● When considered for a project as a whole. DRE is defined in the following manner:
where E is the number of errors found before delivery of the software to the end user and D
is the number of defects found after delivery.
Defect Removal Efficiency [DRE]
● The ideal value for DRE is 1. That is, no defects are found in the software.
● Realistically, D will be greater than 0, but the value of DRE can still approach
1.
● As E increases (for a given value of D), the overall value of DRE begins to
approach 1.
● In fact, as E increases, it is likely that the final value of D will decrease (errors
are filtered out before they become defects).
● If used as a metric that provides an indicator of the filtering ability of quality
control and assurance activities, DRE encourages a software project team to
institute techniques for finding as many errors as possible before delivery.
● DRE can also be used within the project to assess a team's ability to find errors
before they are passed to the next framework activity or software engineering
task.
Defect Removal Efficiency [DRE]
FP based Estimation, Software Sizing
Remark: Please refer class notes for the same.
Project Scheduling
● Project scheduling is a fundamental aspect of software engineering, ensuring
that projects are completed on time, within scope, and within budget.
● Effective scheduling facilitates
○ the coordination of tasks,
○ allocation of resources, and
○ management of dependencies