SlideShare a Scribd company logo
1 of 63
Software Engineering
(CSI 321)
Metrics for Process and Projects
1
Measurement
“You can’t control what you can’t measure”
[Tom
DeMarco]
2
Measurement
• To control a software project effectively, it is
imperative to measure the activities and processes
that comprise the project.
• By measuring processes, you can easily evaluate and
improve them and produce quality work products.
• Measurement is fundamental to any engineering
discipline.
3
Measurement
• Measurement can be applied to the software
process with the intent of improving it on a
continuous basis.
• Measurement can be used throughout a software
project to assist in estimation, quality control,
productivity assessment, and project control.
• Measurement can be used by software engineers to
help assess the quality of work products and to assist
in tactical decision-making as a project proceeds.
4
5
A Good Manager Measures …
measurementmeasurement
What do weWhat do we
use as ause as a
basis?basis?
•• size?size?
•• function?function?
project metricsproject metrics
process metricsprocess metrics
processprocess
productproduct
product metricsproduct metrics
Why Do We Measure?
• To characterize in an effort to gain an understanding “of
processes, products, resources, and environments, and to
establish baselines for comparisons with future assessments”
• To evaluate “to determine status with respect to plans”
• To predict by “gaining understandings of relationships among
processes and products and building models of these
relationships”
• To improve by “identifying roadblocks, root causes,
inefficiencies, and other opportunities for improving product
quality and process performance”
6
Why do we measure?
• If you don’t measure, there is no real way of
determining whether you are improving. And if
you’re not improving, you’re lost.
• Measurement provides benefits at
– Strategic level
– Project level
– Technical level
7
Why do we measure?
• By evaluating productivity and quality measures,
senior management can establish meaningful goals
for improvement of the processes.
• If the process can be improved, a direct impact on
the bottom line can result. But to establish goals for
improvement, the current status of software
development must be understood.
• Measurement is used to establish a process baseline
from which improvements can be assessed.
8
Why do we measure?
• By using measurement to establish a project
baseline, many issues( e.g. estimates, schedule,
quality) become more manageable.
• The collection of quality metrics enables an
organization to “Tune” its software engineering
process to remove the “Vital few” causes of defects
that have the greatest impact on software
development.
9
Where can we use the information that we
get from Measurement?
• Information from measurement can be used for:
– Continuous improvement of a process
– Estimation
– Quality control
– Productivity assessment
10
Reflective Practice
“Those who ignore the past are doomed to
repeat it...”
– Flaws in a product or process will be a source of
continual productivity loss.
– Good engineers rarely make the same mistake
twice.
– Measurement is a key enabler for CMMI process
evolution.
11
Process Metrics & Project Metrics
 Process Metrics:
– Collected across all projects and over long periods
of time
– Intent is to provide a set of process indicators that
lead to long-term software process improvements
– Have long-term impact
12
Process Metrics & Project Metrics
 Project Metrics
• Often contribute to the development of process
metrics.
• Enable a software project manager to –
– Assess the status of an ongoing project
– Track potential risks
– Uncover problem areas before they go “critical”
– Adjust workflow or tasks
– Evaluate the project team’s ability to control quality of software
13
Note: Many of the same metrics are used in both the process and the
project
Process Metrics &
Software Process Improvement
• The only rational way to improve any process is to –
– Measure specific attributes of the process
– Develop a set of meaningful metrics based on
these attributes
– Use the metrics to provide indicators that will lead
to a strategy for improvement
14
Process Metrics &
Software Process Improvement
 What are the determinants/factors for software
quality and organizational performance?
• The following factors have profound influence on software
quality and organizational performance:
1) Process
2) Product
3) People
4) Technology
5) Environmental Conditions
15
Process Metrics &
Software Process Improvement
1) Process
– Process is only one of a number of “controllable factors
in improving software quality & organizational
performance”
1) Product
– Complexity of the product can have a substantial impact
on quality and team performance
3) People
– The skill and motivation of the software people doing
the work are the most important factors that influence
software quality.
16
Process Metrics &
Software Process Improvement
4) Technology
– Software engineering methods and tools
5) Environmental conditions
– Development environment, business condition,
customer characteristics
17
Process Measurement
 How do we measure the efficiency of a software process?
• We measure the efficiency of a software process indirectly.
– We derive a set of metrics based on the outcomes that can be
derived from the process. Outcomes include –
• Measures of errors uncovered before release of the
software
• Defects delivered to and reported by end-users
• Work products delivered (productivity)
• Human effort expended
• Calendar time expended
• Schedule conformance
• Other measures
• We also derive process metrics by measuring the characteristics of
specific software engineering tasks.
18
Process Metrics Guidelines
 What guidelines should be applied when we collect
software metrics?
– Use common sense and organizational sensitivity
when interpreting metrics data.
– Provide regular feedback to the individuals and
teams who collect measures and metrics.
– Don’t use metrics to appraise individuals(i.e.,
Metrics should not be used to evaluate the
performance of individuals)
– Work with practitioners and teams to set clear
goals and metrics that will be used to achieve
them.
19
Process Metrics Guidelines
• What guidelines should be applied when we collect
software metrics? (Cont.)
– Never use metrics to threaten individuals or
teams.
– Metrics data that indicate a problem area should
not be considered “negative.” These data are
merely an indicator for process improvement.
– Don’t obsess on a single metric to the exclusion of
other important metrics.
20
Process metrics : Private vs. Public
• Private process metrics
– Metrics that are known only to the individual or team
concerned (e.g. defect rates by individual, defect
rates by s/w component, errors found during
development).
• Public process metrics
– Enable organizations to make strategic changes to
improve the software process ( e.g., project level
defect rates, effort, calendar times).
• Software process metrics can provide significant benefit
as an organization works to improve its overall level of
process maturity.
21
Process metrics
• Quality-related
– Focus on quality of work products and deliverables
• Productivity-related
– Production of work-products related to effort expended
• Statistical SQA data
– Error categorization & analysis
• Defect removal efficiency
– Propagation of errors from process activity to activity
• Reuse data
– The number of components produced and their degree of
reusability
22
Statistical Software Process Improvement (SSPI)
• SSPI helps an organization to discover its strengths and
weaknesses.
• SSPI uses software failure analysis to collect information
about all errors and defects encountered as a software
product is developed and used.
– Categorize errors by origin (specification, logic, etc.)
– Estimate cost to correct
– Sort according to frequency
– Estimate cost of each error type
– Find highest-cost problems
– Prioritize debugging efforts
23
24
Software Process Improvement
SPI
Process model
Improvement goals
Process metrics
Process improvement
recommendations
Project Metrics
• Can be consolidated to create process metrics that are public
to the software organization as a whole.
• Used to minimize the development schedule by making the
adjustments necessary to avoid delays and mitigate potential
problems and risks.
• Used to assess product quality on an ongoing basis and, when
necessary, modify the technical approach to improve quality.
• Every project should measure:
 inputs—measures of the resources (e.g., people, tools) required to do
the work.
 outputs—measures of the deliverables or work products created
during the software engineering process.
 results—measures that indicate the effectiveness of the deliverables.
25
Software Measurement
 Why a software is measured?
1) To indicate the quality of the product
2) To assess the productivity of the people who
produces the product
3) To assess the benefits derived from new software
engineering methods and tools
4) To form a baseline for estimation
5) To help justify requests for new tools or additional
training
26
Software Measurement
 Software Measurement can be categorized in two
ways-
1) Direct measures –Focus on attributes that can be
measured directly by examining the process, the
product, or the resources applied
2) Indirect measures –Are determined by establishing
an empirical relationship between the measure
desired and other countable attributes of the entity
27
Direct Measures
• Direct Measures of the software process & product:
– Cost
– Effort applied
– LOC (lines of code)
– Execution speed
– Defects reported over some set period of time
28
Indirect Measures
• Indirect Measures of the product include:
– Functionality
– Quality
– Complexity
– Efficiency
– Reliability
– Maintainability
29
Measurement : What to consider first?
 Going to the bottom line, what are some of the things that we
should measure when we first start?
• Your first attempt at measurement will probably focus on a
relatively small set of direct measures.
• For the process, these include cost and effort expended
throughout a project and the calendar time required to
complete a project.
• For the product, lines of code(LOC) or function points (FP)
produced, pages of documentation written, program
execution speed, defects reported over some set period of
time.
30
Metrics Categorization
1. Size-oriented metrics –are used to normalize direct
measures of output and quality
2. Function-oriented metrics –provide indirect
measures of the functionality delivered by a
computer program
3. Human-oriented metrics –collect information about
the manner in which people develop software and
human perceptions about the effectiveness of tools
and methods
31
Metrics Categorization (cont.)
4. Productivity metrics –focus on output of the
software engineering process
5. Quality metrics –provide an indication of how closely
software conforms to implicit and explicit customer
requirements
6. Technical metrics –focus on character of the
software(e.g. logical complexity) rather than
process through which the software was developed
32
Size-Oriented Metrics
 How do we use size in the context of software
measurement?
• Size-oriented software metrics are computed using
direct measures of the process, the product, and the
resources applied.
• These data are normalized by computing ratios that
are determined by dividing each direct measure by
the size of the software, measured in lines of code.
33
Size-Oriented Metrics
34
Size-Oriented Metrics
• Errors per KLOC
• Defects per KLOC
• $ per KLOC
• Documentation pages per KLOC
• Errors per person-month
• LOC per person-month
• $ per page of documentation
35
Is LOC a Good Measure?
• Lines of code are easily counted, but…
– LOC not necessarily related to quality
– Programming languages differ widely in LOC per
functional requirement
– Difficult to estimate LOC
– There is more to SE than writing code!
36
What LOC Can’t Measure...
• People factors (team size, skill)
• Problem factors (complexity, change)
• Process factors (techniques, tools)
• Product factors (reliability, performance)
• Resource factors (people, tools)
37
Function-Oriented Metrics
• Function-oriented metrics are computed using direct
measures of the process and the product, but then
normalizing these measures with an indirect value
that indicates program “functionality”.
• The most widely used function-oriented metric is the
function-point (FP).
• Computation of Function Point (FP) is based on
characteristics of the software’s information domain
and complexity.
38
Computing Function Point (FP)
1) Function Points are computed by completing the
table in which five information domain
characteristics are determined and counts are
provided in the appropriate table location.
2) Complexity Adjustment Values (CAV) are
determined.
3) A formula with some empirical constants is used.
39
Computing Function Point (FP)
• The function point (FP) metric analyzes the
information domain and software complexity:
– Number of inputs
– Number of outputs
– Number of user queries
– Number of files
– Number of external interfaces
40
Weighting Factors
41
Complexity Adjustment Values
• Set of 14 questions, answered on a scale from 0 to 10. ( 0=No
influence, 10=Essential )
– “Does the system require reliable backup and recovery?”
– “Is the code designed to be reusable?”
– “Is performance critical?”
– “Are the inputs, outputs, files, or inquiries complex?”
– “Is the application designed to facilitate change and ease
of use by the user?”
– …
42
Complexity Adjustment Values
• Value adjustment factors are used to provide
an indication of complexity.
• Size is sometimes (but not always) an indicator
of design complexity and is almost always an
indicator of increased coding, integration, and
testing effort.
43
Computing Function Points
FP = WF x [0.65 + 0.01 x CAV]
44
Weighting Factor
Count Total
Constants
(Empirically
Determined)
Complexity
Adjustment
Value Total
Computing Function Points
• An abstract, relative measure (not concrete or
absolute!)
• PROS: Useful way to compare the estimated effort
on two different systems, or for projects over time.
• CONS: Must be tuned for each organization, domain.
45
Measures with Function Points
• Errors per FP
• Defects per FP
• $ per FP
• Pages of documentation per FP
46
LOC and FP : The Relationship
 Is there an empirical relationship between LOC (lines
of code) and FP (function point)?
• The relationship between LOC and FP depends upon
the programming language that is used to implement
the software and the quality of the design.
47
Lines of Code Per Function Point
48
Metrics for Software Quality
• Factors assessing software quality come from three
distinct points of view
– product operation
– product revision
– product modification
• Defect removal efficiency (DRE) is a measure of the
filtering ability of the quality assurance and control
activities as they are applied throughout the process
framework.
49
Metrics for Software Quality
• Software is only as good as the quality of...
– the requirements description
– the design of the solution
– the code / program produced
– the tests used to find errors
• QA = life-cycle task, not just a “finishing” activity
• QA must address process, too!
50
Measuring Quality
• There are many measures of software quality..
– Correctness
– Maintainability
– Integrity
– Usability
51
Measuring Quality
52
 Correctness:
• A program must operate correctly or it provides little
value to its users.
• Correctness is the degree to which the software
performs its required function
• The most common measure for correctness is the
defects per KLOC
Measuring Quality
 Maintainability:
– Software maintenance accounts for more effort than any other
SE activity
– 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.
– There is no way to measure maintainability directly
– A simple time-oriented metric is mean-time-to-change (MTTC).
• On average, programs that are maintainable will have lower
MTTC than programs that are not maintainable.
53
Measuring Quality
 Integrity:
– Assess threats, security of software.
– Measures a system’s ability to withstand attacks
to its security.
– To measure integrity, two additional attributes must be
defined: Threat & Security
• Threat = probability of attack (that causes failure)
• Security = probability that attack is repelled
• Integrity = Σ [1 - threat X (1 - security)]
54
Measuring Quality
• Usability:
• Usability is an attempt to quantify ease-of-use
– easy to learn (time)
– easy to use (time)
– productivity increase (quantity)
55
Defect Removal Efficiency
• Defect Removal Efficiency(DRE):
• DRE is a quality metric that provides benefits at both the
project and process level
• DRE is a measure of the filtering ability of quality assurance &
control activities
• 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/SE task
DRE = E / (E + D)
E = # of errors found before delivery of the software to the
end-user
D = # of defects found after delivery
56
What things can go wrong?
 What are some of the problems associated with metrics
collection in an industry setting?
1.Inadequate and/or out-of-date data
2.Faulty data
3.Improper analysis
4.Inappropriate presentation
5.Time lag
To overcome these problems, you must use a strategy for
metrics collection and evaluation that is both systematic and
realistic.
57
Software Metrics Collection Process
58
Integrating
Metrics in
the Process
Establishing A Software Metrics Program
1) Identify business goal
2) Identify what you want to know
3) Identify sub-goals
4) Identify sub-goal entities and attributes
5) Formalize measurement goals
6) Identify quantifiable questions and indicators
related to sub-goals
59
Establishing A Software Metrics Program
7) Identify data elements needed to be collected to
construct the indicators
8) Define measures to be used and create operational
definitions for them
9) Identify actions needed to implement the measures
10) Prepare a plan to implement the measures
60
Summary
• Measurement enables managers and practitioners to
– Improve the software process
– Assist in the planning, tracking and control of a software
project
– Assess the quality of the product(software) that is
produced
• Measures of specific attributes of the process,
project and product are used to compute software
metrics
61
Summary
• Process metrics enable an organization to take a
strategic view by providing insight into the
effectiveness of a software process.
• Project metrics are tactical. They enable a project
manager to adapt project workflow and a technical
approach in a real-time manner.
• Both size-oriented & function-oriented metrics are
used throughout the industry.
62
Summary
• Software quality metrics focus on the process, the project and
the product. By developing and analyzing a metrics baseline
for quality, an organization can correct those areas of the
software process that are the cause of software defects.
• Data collection, metrics computation, and metrics analysis are
the three steps that must be implemented to begin a metrics
program.
• Individual methods must be adjusted and tuned for a given
software domain . In general, goal-driven approach helps an
organization focus on the right metrics for its business.
63

More Related Content

What's hot

Risk management(software engineering)
Risk management(software engineering)Risk management(software engineering)
Risk management(software engineering)Priya Tomar
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Software quality
Software qualitySoftware quality
Software qualityjagadeesan
 
Software Metrics
Software MetricsSoftware Metrics
Software Metricsswatisinghal
 
verification and validation
verification and validationverification and validation
verification and validationDinesh Pasi
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategiesSHREEHARI WADAWADAGI
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design Saqib Raza
 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)ShudipPal
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)ShudipPal
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimationNur Islam
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSaqib Raza
 
Spm unit2
Spm unit2Spm unit2
Spm unit2sweetyammu
 
Pressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsPressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsSeema Kamble
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile processDelowar hossain
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and typesConfiz
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
 
Software quality
Software qualitySoftware quality
Software qualitySara Mehmood
 
software quality
software qualitysoftware quality
software qualitypreetikapri1
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 

What's hot (20)

Risk management(software engineering)
Risk management(software engineering)Risk management(software engineering)
Risk management(software engineering)
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Software quality
Software qualitySoftware quality
Software quality
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
verification and validation
verification and validationverification and validation
verification and validation
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design
 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimation
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Spm unit2
Spm unit2Spm unit2
Spm unit2
 
Pressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsPressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metrics
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 
Software quality
Software qualitySoftware quality
Software quality
 
software quality
software qualitysoftware quality
software quality
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 

Similar to Software Engineering (Metrics for Process and Projects)

software metrics(process,project,product)
software metrics(process,project,product)software metrics(process,project,product)
software metrics(process,project,product)Amisha Narsingani
 
Bca 5th sem seminar(software measurements)
Bca 5th sem seminar(software measurements)Bca 5th sem seminar(software measurements)
Bca 5th sem seminar(software measurements)MuskanSony
 
Software matrics and measurement
Software matrics and measurementSoftware matrics and measurement
Software matrics and measurementGurpreet Saini
 
22317-DIPLOMA_SEM4_software_engg-chap-06.ppt
22317-DIPLOMA_SEM4_software_engg-chap-06.ppt22317-DIPLOMA_SEM4_software_engg-chap-06.ppt
22317-DIPLOMA_SEM4_software_engg-chap-06.pptDeepgaichor1
 
Project Matrix and Measuring S/W
Project Matrix and Measuring S/WProject Matrix and Measuring S/W
Project Matrix and Measuring S/WAkash Maheshwari
 
Jurnal an example of using key performance indicators for software development
Jurnal   an example of using key performance indicators for software developmentJurnal   an example of using key performance indicators for software development
Jurnal an example of using key performance indicators for software developmentRatzman III
 
Practical Software Measurement
Practical Software MeasurementPractical Software Measurement
Practical Software Measurementaliraza786
 
Software engineering 11 software quality assurance plans
Software engineering 11 software quality assurance plansSoftware engineering 11 software quality assurance plans
Software engineering 11 software quality assurance plansVaibhav Khanna
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metricsPiyush Sohaney
 
Process and Project Metrics-1
Process and Project Metrics-1Process and Project Metrics-1
Process and Project Metrics-1Saqib Raza
 
Chapter 11 Metrics for process and projects.ppt
Chapter 11  Metrics for process and projects.pptChapter 11  Metrics for process and projects.ppt
Chapter 11 Metrics for process and projects.pptssuser3f82c9
 
Quality in software industry
Quality in software industryQuality in software industry
Quality in software industryRicha Goel
 
Unit2 - Metrics.pptx
Unit2 - Metrics.pptxUnit2 - Metrics.pptx
Unit2 - Metrics.pptxrituah
 
eUnit 2 software process model
eUnit 2  software process modeleUnit 2  software process model
eUnit 2 software process modelPreeti Mishra
 
Software metrics
Software metricsSoftware metrics
Software metricsAadarsh Sharma
 
Software process improvement.ppt
Software process improvement.pptSoftware process improvement.ppt
Software process improvement.pptImXaib
 
Day 2 meet shilpa - measuring software quality-are you up-to-date on what an...
Day 2 meet shilpa  - measuring software quality-are you up-to-date on what an...Day 2 meet shilpa  - measuring software quality-are you up-to-date on what an...
Day 2 meet shilpa - measuring software quality-are you up-to-date on what an...XBOSoft
 

Similar to Software Engineering (Metrics for Process and Projects) (20)

software metrics(process,project,product)
software metrics(process,project,product)software metrics(process,project,product)
software metrics(process,project,product)
 
Bca 5th sem seminar(software measurements)
Bca 5th sem seminar(software measurements)Bca 5th sem seminar(software measurements)
Bca 5th sem seminar(software measurements)
 
Software matrics and measurement
Software matrics and measurementSoftware matrics and measurement
Software matrics and measurement
 
22317-DIPLOMA_SEM4_software_engg-chap-06.ppt
22317-DIPLOMA_SEM4_software_engg-chap-06.ppt22317-DIPLOMA_SEM4_software_engg-chap-06.ppt
22317-DIPLOMA_SEM4_software_engg-chap-06.ppt
 
Project Matrix and Measuring S/W
Project Matrix and Measuring S/WProject Matrix and Measuring S/W
Project Matrix and Measuring S/W
 
Jurnal an example of using key performance indicators for software development
Jurnal   an example of using key performance indicators for software developmentJurnal   an example of using key performance indicators for software development
Jurnal an example of using key performance indicators for software development
 
Practical Software Measurement
Practical Software MeasurementPractical Software Measurement
Practical Software Measurement
 
Software engineering 11 software quality assurance plans
Software engineering 11 software quality assurance plansSoftware engineering 11 software quality assurance plans
Software engineering 11 software quality assurance plans
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metrics
 
Process and Project Metrics-1
Process and Project Metrics-1Process and Project Metrics-1
Process and Project Metrics-1
 
Chapter 11 Metrics for process and projects.ppt
Chapter 11  Metrics for process and projects.pptChapter 11  Metrics for process and projects.ppt
Chapter 11 Metrics for process and projects.ppt
 
Quality in software industry
Quality in software industryQuality in software industry
Quality in software industry
 
Qa
QaQa
Qa
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Unit2 - Metrics.pptx
Unit2 - Metrics.pptxUnit2 - Metrics.pptx
Unit2 - Metrics.pptx
 
eUnit 2 software process model
eUnit 2  software process modeleUnit 2  software process model
eUnit 2 software process model
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software process improvement.ppt
Software process improvement.pptSoftware process improvement.ppt
Software process improvement.ppt
 
Day 2 meet shilpa - measuring software quality-are you up-to-date on what an...
Day 2 meet shilpa  - measuring software quality-are you up-to-date on what an...Day 2 meet shilpa  - measuring software quality-are you up-to-date on what an...
Day 2 meet shilpa - measuring software quality-are you up-to-date on what an...
 
Qa
QaQa
Qa
 

More from ShudipPal

Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)ShudipPal
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)ShudipPal
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)ShudipPal
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)ShudipPal
 
Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)ShudipPal
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...ShudipPal
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)ShudipPal
 
Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)ShudipPal
 
Software Engineering (Risk Management)
Software Engineering (Risk Management)Software Engineering (Risk Management)
Software Engineering (Risk Management)ShudipPal
 
Software Engineering (Project Management )
Software Engineering (Project  Management )Software Engineering (Project  Management )
Software Engineering (Project Management )ShudipPal
 
Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)ShudipPal
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)ShudipPal
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)ShudipPal
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)ShudipPal
 
Software Engineering (Introduction)
Software Engineering (Introduction)Software Engineering (Introduction)
Software Engineering (Introduction)ShudipPal
 

More from ShudipPal (15)

Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)
 
Software Engineering (Risk Management)
Software Engineering (Risk Management)Software Engineering (Risk Management)
Software Engineering (Risk Management)
 
Software Engineering (Project Management )
Software Engineering (Project  Management )Software Engineering (Project  Management )
Software Engineering (Project Management )
 
Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Software Engineering (Introduction)
Software Engineering (Introduction)Software Engineering (Introduction)
Software Engineering (Introduction)
 

Recently uploaded

Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfUjwalaBharambe
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Planning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptxPlanning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptxLigayaBacuel1
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........LeaCamillePacle
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxsqpmdrvczh
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 

Recently uploaded (20)

Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Planning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptxPlanning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptx
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 

Software Engineering (Metrics for Process and Projects)

  • 1. Software Engineering (CSI 321) Metrics for Process and Projects 1
  • 2. Measurement “You can’t control what you can’t measure” [Tom DeMarco] 2
  • 3. Measurement • To control a software project effectively, it is imperative to measure the activities and processes that comprise the project. • By measuring processes, you can easily evaluate and improve them and produce quality work products. • Measurement is fundamental to any engineering discipline. 3
  • 4. Measurement • Measurement can be applied to the software process with the intent of improving it on a continuous basis. • Measurement can be used throughout a software project to assist in estimation, quality control, productivity assessment, and project control. • Measurement can be used by software engineers to help assess the quality of work products and to assist in tactical decision-making as a project proceeds. 4
  • 5. 5 A Good Manager Measures … measurementmeasurement What do weWhat do we use as ause as a basis?basis? •• size?size? •• function?function? project metricsproject metrics process metricsprocess metrics processprocess productproduct product metricsproduct metrics
  • 6. Why Do We Measure? • To characterize in an effort to gain an understanding “of processes, products, resources, and environments, and to establish baselines for comparisons with future assessments” • To evaluate “to determine status with respect to plans” • To predict by “gaining understandings of relationships among processes and products and building models of these relationships” • To improve by “identifying roadblocks, root causes, inefficiencies, and other opportunities for improving product quality and process performance” 6
  • 7. Why do we measure? • If you don’t measure, there is no real way of determining whether you are improving. And if you’re not improving, you’re lost. • Measurement provides benefits at – Strategic level – Project level – Technical level 7
  • 8. Why do we measure? • By evaluating productivity and quality measures, senior management can establish meaningful goals for improvement of the processes. • If the process can be improved, a direct impact on the bottom line can result. But to establish goals for improvement, the current status of software development must be understood. • Measurement is used to establish a process baseline from which improvements can be assessed. 8
  • 9. Why do we measure? • By using measurement to establish a project baseline, many issues( e.g. estimates, schedule, quality) become more manageable. • The collection of quality metrics enables an organization to “Tune” its software engineering process to remove the “Vital few” causes of defects that have the greatest impact on software development. 9
  • 10. Where can we use the information that we get from Measurement? • Information from measurement can be used for: – Continuous improvement of a process – Estimation – Quality control – Productivity assessment 10
  • 11. Reflective Practice “Those who ignore the past are doomed to repeat it...” – Flaws in a product or process will be a source of continual productivity loss. – Good engineers rarely make the same mistake twice. – Measurement is a key enabler for CMMI process evolution. 11
  • 12. Process Metrics & Project Metrics  Process Metrics: – Collected across all projects and over long periods of time – Intent is to provide a set of process indicators that lead to long-term software process improvements – Have long-term impact 12
  • 13. Process Metrics & Project Metrics  Project Metrics • Often contribute to the development of process metrics. • Enable a software project manager to – – Assess the status of an ongoing project – Track potential risks – Uncover problem areas before they go “critical” – Adjust workflow or tasks – Evaluate the project team’s ability to control quality of software 13 Note: Many of the same metrics are used in both the process and the project
  • 14. Process Metrics & Software Process Improvement • The only rational way to improve any process is to – – Measure specific attributes of the process – Develop a set of meaningful metrics based on these attributes – Use the metrics to provide indicators that will lead to a strategy for improvement 14
  • 15. Process Metrics & Software Process Improvement  What are the determinants/factors for software quality and organizational performance? • The following factors have profound influence on software quality and organizational performance: 1) Process 2) Product 3) People 4) Technology 5) Environmental Conditions 15
  • 16. Process Metrics & Software Process Improvement 1) Process – Process is only one of a number of “controllable factors in improving software quality & organizational performance” 1) Product – Complexity of the product can have a substantial impact on quality and team performance 3) People – The skill and motivation of the software people doing the work are the most important factors that influence software quality. 16
  • 17. Process Metrics & Software Process Improvement 4) Technology – Software engineering methods and tools 5) Environmental conditions – Development environment, business condition, customer characteristics 17
  • 18. Process Measurement  How do we measure the efficiency of a software process? • We measure the efficiency of a software process indirectly. – We derive a set of metrics based on the outcomes that can be derived from the process. Outcomes include – • Measures of errors uncovered before release of the software • Defects delivered to and reported by end-users • Work products delivered (productivity) • Human effort expended • Calendar time expended • Schedule conformance • Other measures • We also derive process metrics by measuring the characteristics of specific software engineering tasks. 18
  • 19. Process Metrics Guidelines  What guidelines should be applied when we collect software metrics? – Use common sense and organizational sensitivity when interpreting metrics data. – Provide regular feedback to the individuals and teams who collect measures and metrics. – Don’t use metrics to appraise individuals(i.e., Metrics should not be used to evaluate the performance of individuals) – Work with practitioners and teams to set clear goals and metrics that will be used to achieve them. 19
  • 20. Process Metrics Guidelines • What guidelines should be applied when we collect software metrics? (Cont.) – Never use metrics to threaten individuals or teams. – Metrics data that indicate a problem area should not be considered “negative.” These data are merely an indicator for process improvement. – Don’t obsess on a single metric to the exclusion of other important metrics. 20
  • 21. Process metrics : Private vs. Public • Private process metrics – Metrics that are known only to the individual or team concerned (e.g. defect rates by individual, defect rates by s/w component, errors found during development). • Public process metrics – Enable organizations to make strategic changes to improve the software process ( e.g., project level defect rates, effort, calendar times). • Software process metrics can provide significant benefit as an organization works to improve its overall level of process maturity. 21
  • 22. Process metrics • Quality-related – Focus on quality of work products and deliverables • Productivity-related – Production of work-products related to effort expended • Statistical SQA data – Error categorization & analysis • Defect removal efficiency – Propagation of errors from process activity to activity • Reuse data – The number of components produced and their degree of reusability 22
  • 23. Statistical Software Process Improvement (SSPI) • SSPI helps an organization to discover its strengths and weaknesses. • SSPI uses software failure analysis to collect information about all errors and defects encountered as a software product is developed and used. – Categorize errors by origin (specification, logic, etc.) – Estimate cost to correct – Sort according to frequency – Estimate cost of each error type – Find highest-cost problems – Prioritize debugging efforts 23
  • 24. 24 Software Process Improvement SPI Process model Improvement goals Process metrics Process improvement recommendations
  • 25. Project Metrics • Can be consolidated to create process metrics that are public to the software organization as a whole. • Used to minimize the development schedule by making the adjustments necessary to avoid delays and mitigate potential problems and risks. • Used to assess product quality on an ongoing basis and, when necessary, modify the technical approach to improve quality. • Every project should measure:  inputs—measures of the resources (e.g., people, tools) required to do the work.  outputs—measures of the deliverables or work products created during the software engineering process.  results—measures that indicate the effectiveness of the deliverables. 25
  • 26. Software Measurement  Why a software is measured? 1) To indicate the quality of the product 2) To assess the productivity of the people who produces the product 3) To assess the benefits derived from new software engineering methods and tools 4) To form a baseline for estimation 5) To help justify requests for new tools or additional training 26
  • 27. Software Measurement  Software Measurement can be categorized in two ways- 1) Direct measures –Focus on attributes that can be measured directly by examining the process, the product, or the resources applied 2) Indirect measures –Are determined by establishing an empirical relationship between the measure desired and other countable attributes of the entity 27
  • 28. Direct Measures • Direct Measures of the software process & product: – Cost – Effort applied – LOC (lines of code) – Execution speed – Defects reported over some set period of time 28
  • 29. Indirect Measures • Indirect Measures of the product include: – Functionality – Quality – Complexity – Efficiency – Reliability – Maintainability 29
  • 30. Measurement : What to consider first?  Going to the bottom line, what are some of the things that we should measure when we first start? • Your first attempt at measurement will probably focus on a relatively small set of direct measures. • For the process, these include cost and effort expended throughout a project and the calendar time required to complete a project. • For the product, lines of code(LOC) or function points (FP) produced, pages of documentation written, program execution speed, defects reported over some set period of time. 30
  • 31. Metrics Categorization 1. Size-oriented metrics –are used to normalize direct measures of output and quality 2. Function-oriented metrics –provide indirect measures of the functionality delivered by a computer program 3. Human-oriented metrics –collect information about the manner in which people develop software and human perceptions about the effectiveness of tools and methods 31
  • 32. Metrics Categorization (cont.) 4. Productivity metrics –focus on output of the software engineering process 5. Quality metrics –provide an indication of how closely software conforms to implicit and explicit customer requirements 6. Technical metrics –focus on character of the software(e.g. logical complexity) rather than process through which the software was developed 32
  • 33. Size-Oriented Metrics  How do we use size in the context of software measurement? • Size-oriented software metrics are computed using direct measures of the process, the product, and the resources applied. • These data are normalized by computing ratios that are determined by dividing each direct measure by the size of the software, measured in lines of code. 33
  • 35. Size-Oriented Metrics • Errors per KLOC • Defects per KLOC • $ per KLOC • Documentation pages per KLOC • Errors per person-month • LOC per person-month • $ per page of documentation 35
  • 36. Is LOC a Good Measure? • Lines of code are easily counted, but… – LOC not necessarily related to quality – Programming languages differ widely in LOC per functional requirement – Difficult to estimate LOC – There is more to SE than writing code! 36
  • 37. What LOC Can’t Measure... • People factors (team size, skill) • Problem factors (complexity, change) • Process factors (techniques, tools) • Product factors (reliability, performance) • Resource factors (people, tools) 37
  • 38. Function-Oriented Metrics • Function-oriented metrics are computed using direct measures of the process and the product, but then normalizing these measures with an indirect value that indicates program “functionality”. • The most widely used function-oriented metric is the function-point (FP). • Computation of Function Point (FP) is based on characteristics of the software’s information domain and complexity. 38
  • 39. Computing Function Point (FP) 1) Function Points are computed by completing the table in which five information domain characteristics are determined and counts are provided in the appropriate table location. 2) Complexity Adjustment Values (CAV) are determined. 3) A formula with some empirical constants is used. 39
  • 40. Computing Function Point (FP) • The function point (FP) metric analyzes the information domain and software complexity: – Number of inputs – Number of outputs – Number of user queries – Number of files – Number of external interfaces 40
  • 42. Complexity Adjustment Values • Set of 14 questions, answered on a scale from 0 to 10. ( 0=No influence, 10=Essential ) – “Does the system require reliable backup and recovery?” – “Is the code designed to be reusable?” – “Is performance critical?” – “Are the inputs, outputs, files, or inquiries complex?” – “Is the application designed to facilitate change and ease of use by the user?” – … 42
  • 43. Complexity Adjustment Values • Value adjustment factors are used to provide an indication of complexity. • Size is sometimes (but not always) an indicator of design complexity and is almost always an indicator of increased coding, integration, and testing effort. 43
  • 44. Computing Function Points FP = WF x [0.65 + 0.01 x CAV] 44 Weighting Factor Count Total Constants (Empirically Determined) Complexity Adjustment Value Total
  • 45. Computing Function Points • An abstract, relative measure (not concrete or absolute!) • PROS: Useful way to compare the estimated effort on two different systems, or for projects over time. • CONS: Must be tuned for each organization, domain. 45
  • 46. Measures with Function Points • Errors per FP • Defects per FP • $ per FP • Pages of documentation per FP 46
  • 47. LOC and FP : The Relationship  Is there an empirical relationship between LOC (lines of code) and FP (function point)? • The relationship between LOC and FP depends upon the programming language that is used to implement the software and the quality of the design. 47
  • 48. Lines of Code Per Function Point 48
  • 49. Metrics for Software Quality • Factors assessing software quality come from three distinct points of view – product operation – product revision – product modification • Defect removal efficiency (DRE) is a measure of the filtering ability of the quality assurance and control activities as they are applied throughout the process framework. 49
  • 50. Metrics for Software Quality • Software is only as good as the quality of... – the requirements description – the design of the solution – the code / program produced – the tests used to find errors • QA = life-cycle task, not just a “finishing” activity • QA must address process, too! 50
  • 51. Measuring Quality • There are many measures of software quality.. – Correctness – Maintainability – Integrity – Usability 51
  • 52. Measuring Quality 52  Correctness: • A program must operate correctly or it provides little value to its users. • Correctness is the degree to which the software performs its required function • The most common measure for correctness is the defects per KLOC
  • 53. Measuring Quality  Maintainability: – Software maintenance accounts for more effort than any other SE activity – 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. – There is no way to measure maintainability directly – A simple time-oriented metric is mean-time-to-change (MTTC). • On average, programs that are maintainable will have lower MTTC than programs that are not maintainable. 53
  • 54. Measuring Quality  Integrity: – Assess threats, security of software. – Measures a system’s ability to withstand attacks to its security. – To measure integrity, two additional attributes must be defined: Threat & Security • Threat = probability of attack (that causes failure) • Security = probability that attack is repelled • Integrity = ÎŁ [1 - threat X (1 - security)] 54
  • 55. Measuring Quality • Usability: • Usability is an attempt to quantify ease-of-use – easy to learn (time) – easy to use (time) – productivity increase (quantity) 55
  • 56. Defect Removal Efficiency • Defect Removal Efficiency(DRE): • DRE is a quality metric that provides benefits at both the project and process level • DRE is a measure of the filtering ability of quality assurance & control activities • 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/SE task DRE = E / (E + D) E = # of errors found before delivery of the software to the end-user D = # of defects found after delivery 56
  • 57. What things can go wrong?  What are some of the problems associated with metrics collection in an industry setting? 1.Inadequate and/or out-of-date data 2.Faulty data 3.Improper analysis 4.Inappropriate presentation 5.Time lag To overcome these problems, you must use a strategy for metrics collection and evaluation that is both systematic and realistic. 57
  • 58. Software Metrics Collection Process 58 Integrating Metrics in the Process
  • 59. Establishing A Software Metrics Program 1) Identify business goal 2) Identify what you want to know 3) Identify sub-goals 4) Identify sub-goal entities and attributes 5) Formalize measurement goals 6) Identify quantifiable questions and indicators related to sub-goals 59
  • 60. Establishing A Software Metrics Program 7) Identify data elements needed to be collected to construct the indicators 8) Define measures to be used and create operational definitions for them 9) Identify actions needed to implement the measures 10) Prepare a plan to implement the measures 60
  • 61. Summary • Measurement enables managers and practitioners to – Improve the software process – Assist in the planning, tracking and control of a software project – Assess the quality of the product(software) that is produced • Measures of specific attributes of the process, project and product are used to compute software metrics 61
  • 62. Summary • Process metrics enable an organization to take a strategic view by providing insight into the effectiveness of a software process. • Project metrics are tactical. They enable a project manager to adapt project workflow and a technical approach in a real-time manner. • Both size-oriented & function-oriented metrics are used throughout the industry. 62
  • 63. Summary • Software quality metrics focus on the process, the project and the product. By developing and analyzing a metrics baseline for quality, an organization can correct those areas of the software process that are the cause of software defects. • Data collection, metrics computation, and metrics analysis are the three steps that must be implemented to begin a metrics program. • Individual methods must be adjusted and tuned for a given software domain . In general, goal-driven approach helps an organization focus on the right metrics for its business. 63