0% found this document useful (0 votes)
63 views

Unit 4 - Software Metrics and Project Estimations

Uploaded by

dotel49126
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views

Unit 4 - Software Metrics and Project Estimations

Uploaded by

dotel49126
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Unit 4

Software Metrics and Project Estimations


Measures, Measurement and Metrics
Measures: Quantitative indication of amount, dimension, capacity, or size of product
and process attributes. It is a number or a quantity that records a directly observable
value or performance.

Measurement: The process of determining the measure.

Metrics: Quantitative measures that allow software engineers to identify the


efficiency and improve the quality of software process, project, and product
Software Measurement
1. A measurement is a manifestation of the size, quantity, amount, or dimension of
a particular attribute of a product or process.
2. The software measurement process is defined and governed by ISO Standard.
Software Measurement Principles
The software measurement process can be characterized by five activities-
1. Formulation: The derivation of software measures and metrics appropriate for
the representation of the software that is being considered.
2. Collection: The mechanism used to accumulate data required to derive the
formulated metrics.
3. Analysis: The computation of metrics and the application of mathematical tools.
4. Interpretation: The evaluation of metrics results in insight into the quality of
the representation.
5. Feedback: Recommendation derived from the interpretation of product metrics
transmitted to the software team.
Need for Software Measurement
● Create the quality of the current product or process.
● Anticipate future qualities of the product or process.
● Enhance the quality of a product or process.
● Regulate the state of the project concerning budget and schedule.
● Enable data-driven decision-making in project planning and control.
● Identify bottlenecks and areas for improvement to drive process improvement
activities.
● Ensure that industry standards and regulations are followed.
● Give software products and processes a quantitative basis for evaluation.
● Enable the ongoing improvement of software development practices.
Classification of Software Measurement
● Direct Measurement: In direct measurement, the product, process, or thing is
measured directly using a standard scale.
● Indirect Measurement: In indirect measurement, the quantity or quality to be
measured is measured using related parameters i.e. by use of reference.
Software Metrics
A metric is a measurement of the level at which any impute/ attribute belongs to a
system product or process.

Software metrics are a quantifiable or countable assessment of the attributes of a


software product. There are 4 functions related to software metrics:

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

ultimately contributing to the successful delivery of software projects.


Timeline chart (or Gantt Chart)
● A timeline chart is a graphical representation that displays events in
chronological order along a linear scale, typically marked by time intervals such
as days, weeks, months, or years.
● In software engineering, timeline charts help visualize project phases, task
sequences, dependencies, milestones, and deadlines, enabling better planning
and monitoring.

You might also like