Process and Project
Metrics
Process and Project Metrics
 Software process and project metrics are quantitative
measures that enable you to gain insight into the value
of the software process and the projects that are
conducted using the process as a framework.
 Basic quality and productivity data are collected. These
data are then analyzed and assessed to determine
whether quality and productivity improvements have
occurred.
 Metrics are also used to pinpoint problem areas so that
remedies can be developed and the software process
can be improved.
Process and Project Metrics
 With measurement, trends (either good or bad) can
be spotted, better estimates can be made, and true
improvement can be accomplished over time.
 Measurement is a management tool. If conducted
properly, it provides a project manager with insight.
And as a result, it assists the project manager and the
software team in making decisions that will lead to a
successful project.
Process and Project Metrics
The reasons that we measure:
(1) To characterize in an effort to gain an understanding
“of processes, products, resources, and environments,
and to establish baselines for comparisons with future
assessments”;
(2) To evaluate “to determine status with respect to plans”;
(3) To predict by “gaining understandings of relationships
among processes and products and building models of
these relationships”;
(4) To improve by “identify[ing] roadblocks, root causes,
inefficiencies, and other opportunities for improving
product quality and process performance.”
Process and Project Metrics
Metrics in the process and the project domain
 Process metrics are collected across all projects and
over long periods of time. Their intent is to provide a
set of process indicators that lead to long-term
software process improvement.
 Project 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 work flow or tasks, and
 evaluate the project team’s ability to control
quality of software work products.
Process and Project Metrics
Process Metrics and 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, and then use the metrics to
provide indicators that will lead to a strategy for
improvement
 It is important to note that process is only one of a number of
“controllable factors in improving software quality and
organizational performance” .
 Process sits at the center of a triangle connecting three factors
that have a profound influence on software quality and
organizational performance.
Process and Project Metrics
Process and Project Metrics
 The skill and motivation of people has been the
single most influential factor in quality and
performance. The complexity of the product can
have a substantial impact on quality and team
performance.
 The technology (i.e., the software engineering
methods and tools) that populates the process also
has an impact.
 In addition, the process triangle exists within a circle
of environmental conditions that include the
development environment (e.g., integrated software
tools), business conditions (e.g., deadlines, business
rules), and customer characteristics (e.g., ease of
Process and Project Metrics
 You can only measure the efficacy of a software
process indirectly. That is, you 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 reported by
end users, work products delivered (productivity),
human effort expended, calendar time expended and
other measures.
 You can also derive process metrics by measuring the
characteristics of specific software engineering tasks.
For example, you might measure the effort and time
spent performing the generic software engineering
Process and Project Metrics
 There are “private and public” uses for different
types of process data. Because it is natural that
individual software engineers might be sensitive to
the use of metrics collected on an individual basis,
these data should be private to the individual and
serve as an indicator for the individual only.
 Examples of private metrics include defect rates (by
individual), defect rates (by component), and errors
found during development.
 Some process metrics are private to the software
project team but public to all team members.
Examples include defects reported for major
software functions, errors found during technical
reviews, and lines of code or function points per
Process and Project Metrics
Grady suggests a “software metrics etiquette” that is
appropriate for both managers and practitioners as
they institute a process metrics program:
1) Use common sense and organizational sensitivity
when interpreting metrics data.
2) Provide regular feedback to the individuals and
teams who collect measures and metrics.
3) Don’t use metrics to appraise individuals.
4) Work with practitioners and teams to set clear goals
and metrics that will be used to achieve them.
Process and Project Metrics
5) Never use metrics to threaten individuals or teams.
6) Metrics data that indicate a problem area should
not be considered “negative.” These data are merely
an indicator for process improvement.
7) Don’t obsess on a single metric to the exclusion of
other important metrics.
Process and Project Metrics
 As an organization becomes more comfortable with
the collection and use of process metrics, It gives way
to a more rigorous approach called statistical
software process improvement (SSPI).
 SSPI uses software failure analysis to collect
information about all errors and defects encountered
as an application, system, or product is developed
and used.
Process and Project Metrics
Project Metrics
 Project metrics and the indicators derived from
them are used by a project manager and a software
team to adapt project workflow and technical
activities.
 The first application of project metrics on most
software projects occurs during estimation.
 As a project proceeds, measures of effort and
calendar time expended are compared to original
estimates.
 The project manager uses these data to monitor and
control progress.
Process and Project Metrics
 As the software evolves from requirements into design,
technical metrics are collected to assess design quality
and to provide indicators that will influence the
approach taken to code generation and testing.
 The intent of project metrics is two fold.
 First, these metrics are used to minimize the
development schedule by making the adjustments
necessary to avoid delays and mitigate potential
problems and risks.
 Second, project metrics are used to assess product quality
on an ongoing basis and, when necessary, modify the
technical approach to improve quality.
Process and Project Metrics
 As quality improves, defects are minimized, and as the
defect count goes down, the amount of rework required
during the project is also reduced. This leads to a reduction
in overall project cost.
 Software metrics can be categorized as
 Direct measures of the software process include cost and
effort applied where as Direct measures of the product
include lines of code (LOC) produced, execution speed,
memory size, and defects reported over some set period of
time.
 Indirect measures of the product include functionality,
quality, complexity, efficiency, reliability and maintainability
Process and Project Metrics
 The cost and effort required to build software, the
number of lines of code produced, and other direct
measures are relatively easy to collect.
 The quality and functionality of software or its
efficiency or maintainability are more difficult to
assess and can be measured only indirectly.
Process and Project Metrics
 Product metrics that are private to an individual are
often combined to develop project metrics that are
public to a software team.
 Project metrics are then consolidated to create
process metrics that are public to the software
organization as a whole.
Process and Project Metrics
Size-Oriented Metrics
 Size-oriented software metrics are derived by
normalizing quality and/or productivity measures by
considering the size of the software that has been
produced.
 The table lists each software development that has
been completed over the past few years and
corresponding measures for that project.
 Referring to the table for project alpha: 12,100 lines
of code were developed at a cost of $168,000.
Process and Project Metrics
Process and Project Metrics
 It should be noted that the effort and cost recorded in
the table represent all software engineering activities
(analysis, design, code, and test), not just coding.
 Further information for project alpha indicates that
365 pages of documentation were developed, 134
errors were recorded before the software was
released, and 29 defects were encountered after
release to the customer within the first year of
operation.
 Three people worked on the development of
software for project alpha.
Process and Project Metrics
 A set of simple size-oriented metrics can be developed
for each project:
 Errors per KLOC (thousand lines of code)
 Defects per KLOC
 Cost per KLOC
 Pages of documentation per KLOC
 In addition, other interesting metrics can be computed:
 Errors per person-month
 KLOC per person-month
 Cost per page of documentation
Process and Project Metrics
Function-Oriented Metrics
 Function-oriented software metrics use a measure of the
functionality delivered by the application.
 The most widely used function-oriented metric is the
function point (FP).
 Computation of the function point is based on
characteristics of the software’s information domain and
complexity.
 FP is programming language independent, and that it is
based on data that are more likely to be known early in the
evolution of a project, making FP more attractive as an
estimation approach.
Process and Project Metrics
Object-Oriented Metrics
 Conventional software project metrics (LOC or FP)
can be used to estimate object oriented software
projects. However, these metrics do not provide
enough granularity for the schedule and effort
adjustments that are required.
 Lorenz and Kidd suggest the following set of metrics
for OO projects:
Process and Project Metrics
1) Number of scenario scripts:-
 A scenario script is a detailed sequence of steps that describe
the interaction between the user and the application. Each
script is organized into triplets of the form
{initiator, action, participant}
 Where initiator is the object that requests some service (that
initiates a message), action is the result of the request, and
participant is the server object that satisfies the request.
 The number of scenario scripts is directly correlated to the
size of the application and to the number of test cases that
must be developed to exercise the system once it is
constructed.
Process and Project Metrics
2) Number of key classes
 Key classes are the “highly independent components”
that are defined early in object-oriented analysis.
 Because key classes are central to the problem
domain, the number of such classes is an indication
of the amount of effort required to develop the
software and also an indication of the potential
amount of reuse to be applied during system
development.
Process and Project Metrics
3) Number of support classes
 Support classes are required to implement the system but
are not immediately related to the problem domain.
Examples might be user interface (GUI) classes, database
access and manipulation classes, and computation classes.
 Support classes can be developed for each of the key
classes.
 Support classes are defined iteratively throughout an
evolutionary process. The number of support classes is an
indication of the amount of effort required to develop the
software and also an indication of the potential amount of
reuse to be applied during system development
Process and Project Metrics
4) Average number of support classes per key class
 In general, key classes are known early in the project.
Support classes are defined throughout. If the average
number of support classes per key class were known
for a given problem domain, estimating (based on
total number of classes) would be greatly simplified.
 Lorenz and Kidd suggest that applications with a GUI
have between two and three times the number of
support classes as key classes.
 Non-GUI applications have between one and two
times the number of support classes as key classes.
Process and Project Metrics
5) Number of subsystems
 A subsystem is an aggregation of classes that support
a function that is visible to the end user of a system.
 Once subsystems are identified, it is easier to lay out
a reasonable schedule in which work on subsystems
is partitioned among project staff.
Process and Project Metrics
Use-Case–Oriented Metrics
 Use cases are used widely as a method for describing
customer-level or business domain requirements
that imply software features and functions.
 Use case is defined early in the software process,
allowing it to be used for estimation before
significant modeling and construction activities are
initiated.
 Use cases describe (indirectly, at least) user-visible
functions and features that are basic requirements
for a system. The use case is independent of
programming language.
Process and Project Metrics
 In addition, the number of use cases is directly
proportional to the size of the application in LOC and
to the number of test cases that will have to be
designed to fully exercise the application.
 Because use cases can be created at vastly different
levels of abstraction, there is no standard “size” for a
use case. Without a standard measure of what a use
case is, its application as a normalization measure
(e.g., effort expended per use case) is suspect.
Process and Project Metrics
 Researchers have suggested use-case points (UCPs) as
a mechanism for estimating project effort and other
characteristics.
 The UCP is a function of the number of actors and
transactions implied by the use-case models and is
analogous to the FP in some ways
Process and Project Metrics
WebApp Project Metrics
 The objective of all WebApp projects is to deliver a
combination of content and functionality to the end
user.
 Measures and metrics used for traditional software
engineering projects are difficult to translate directly
to WebApps. But it is possible to develop a database
that allows access to internal productivity and
quality measures derived over a number of projects.
 Among the measures that can be collected are:
Process and Project Metrics
1) Number of static Web pages
 Web pages with static content (i.e., the end user has
no control over the content displayed on the page)
are the most common of all WebApp features.
 This measure provides an indication of the overall
size of the application and the effort required to
develop it.
Process and Project Metrics
2) Number of dynamic Web pages
 Web pages with dynamic content (i.e., end-user actions
or other external factors result in customized content
displayed on the page) are essential in all e-commerce
applications, search engines, financial applications, and
many other WebApp categories.
 These pages represent higher relative complexity and
require more effort to construct than static pages.
 This measure provides an indication of the overall size
of the application and the effort required to develop it.
Process and Project Metrics
3) Number of internal page links.
 Internal page links are pointers that provide a
hyperlink to some other Web page within the
WebApp.
 This measure provides an indication of the degree of
architectural coupling within the WebApp.
 As the number of page links increases, the effort
expended on navigational design and construction
also increases.
Process and Project Metrics
4) Number of persistent data objects
 One or more persistent data objects (e.g., a database
or data file) may be accessed by a WebApp. As the
number of persistent data objects grows, the
complexity of the WebApp also grows and the effort
to implement it increases proportionally.
5) Number of external systems interfaced
 WebApps must often interface with “backroom”
business applications. As the requirement for
interfacing grows, system complexity and
development effort also increase.
Process and Project Metrics
6) Number of static content objects.
 Static content objects encompass static text-based,
graphical, video, animation, and audio information that
are incorporated within the WebApp. Multiple content
objects may appear on a single Web page.
7) Number of dynamic content objects.
 Dynamic content objects are generated based on end-
user actions and encompass internally generated
textbased, graphical, video, animation, and audio
information that are incorporated within the WebApp.
Multiple content objects may appear on a single Web
page.
Process and Project Metrics
8) Number of executable functions
 An executable function (e.g., a script or applet)
provides some computational service to the end user.
As the number of executable functions increases,
modeling and construction effort also increase.
Process and Project Metrics
 Each of the preceding measures can be determined
at a relatively early stage. For example, you can
define a metric that reflects the degree of end-user
customization that is required for the WebApp and
correlate it to the effort expended on the project
and/or the errors uncovered as reviews and testing
are conducted.
To accomplish this, you define
Nsp:- number of Static Web pages
Ndp:- number of Dynamic Web pages
 Then,
Process and Project Metrics
Customization index, C = Ndp___
Ndp + Nsp
 The value of C ranges from 0 to 1. As C grows larger,
the level of WebApp customization becomes a
significant technical issue.
Process and Project Metrics
METRICS FOR SOFTWARE QUALITY
 The overriding goal of software engineering is to
produce a high-quality system, application, or
product within a time frame that satisfies a market
need.
 To achieve this goal, you must apply effective
methods coupled with modern tools within the
context of a mature software process.
 In addition, a good software engineer must measure
if high quality is to be realized.
Process and Project Metrics
 A project manager must also evaluate quality as the
project progresses.
 Private metrics collected by individual software
engineers are combined to provide project level results.
 Although many quality measures can be collected, the
primary thrust at the project level is to measure errors
and defects.
 Metrics derived from these measures provide an
indication of the effectiveness of individual and group
software quality assurance and control activities.
Process and Project Metrics
 Metrics such as work product errors per function
point, errors uncovered per review hour, and errors
uncovered per testing hour provide insight into the
efficacy of each of the activities implied by the
metric.
 Error data can also be used to compute the defect
removal efficiency (DRE) for each process framework
activity.
Process and Project Metrics
Measuring Quality
 Although there are many measures of software quality,
correctness, maintainability, integrity, and usability
provide useful indicators for the project team. Gilb
suggests definitions and measures for each.
 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 defects per
KLOC, where a defect is defined as a verified lack of
conformance to requirements.
Process and Project Metrics
 When considering the overall quality of a software
product, defects are those problems reported by a
user of the program after the program has been
released for general use.
 For quality assessment purposes, defects are counted
over standard period of time, typically one year.
Process and Project Metrics
Maintainability
 Software maintenance and support accounts for more effort
than any other software engineering 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;
therefore, you must use indirect measures. 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.
 On average, programs that are maintainable will have a lower
MTTC than programs that are not maintainable.
Process and Project Metrics
Integrity
 Software integrity has become increasingly important in
the age of cyber terrorists and hackers. This attribute
measures a system’s ability to withstand attacks (both
accidental and intentional) to its security.
 Attacks can be made on all three components of software:
programs, data, and documentation.
 To measure integrity, two additional attributes must be
defined: threat and
 security. 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.
Process and Project Metrics
 Security is the probability (which can be estimated or
derived from empirical evidence) that the attack of a
specific type will be repelled.
 The integrity of a system can then be defined as:
Integrity = Ʃ [1 - (threat * (1 - security))]
 For example, if threat (the probability that an attack
will occur) is 0.25 and security (the likelihood of
repelling an attack) is 0.95, the integrity of the system
is 0.99
Process and Project Metrics
Usability
 If a program is not easy to use, it is often destined to
failure, even if the functions that it performs are
valuable.
Process and Project Metrics
Defect Removal Efficiency
 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:
DRE= E/(E+D)
 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.
Process and Project Metrics
 The ideal value for DRE is 1. That is, no defects are
found in the software. Realistically, D will be greater
than 0.
 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.
Process and Project Metrics
 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. For example,
requirements analysis produces a requirements
model that can be reviewed to find and correct
errors. Those errors that are not found during the
review of the requirements model are passed on to
design (where they may or may not be found). When
used in this context, we redefine DRE as
DREi= Ei/Ei + Ei+1
 Where Ei is the number of errors found during
software engineering action i and Ei+ 1 is the number
of errors found during software engineering action i
+ 1
Process and Project Metrics
 If you do not measure, there no real way of
determining whether you are improving.
 By requesting and evaluating productivity and
quality measures, a software team can establish
meaningful goals for improvement of the software
process.
 To establish goals for improvement, the current
status of software development must be understood.
Hence, measurement is used to establish a process
baseline from which improvements can be assessed.
Process and Project Metrics
Software project managers are concerned with more
ordinary issues:
 Developing meaningful project estimates, producing
higher-quality systems, getting product out the door
on time. By using measurement to establish a project
baseline, each of these issues becomes more
manageable.
 Additionally, the collection of quality metrics enables
an organization to “tune” its software process to
remove the “vital” causes of defects that have the
greatest impact on software development
Process and Project Metrics
Establishing a Baseline
 By establishing a metrics baseline, benefits can be
obtained at the process, project, and product levels.
 The same metrics can serve many masters. The
metrics baseline consists of data collected from past
software development projects.
Process and Project Metrics
Process and Project Metrics
 To be an effective aid in process improvement and/or cost
and effort estimation, baseline data must have the following
attributes:
 (1) data must be reasonably accurate—“guestimates”
about past projects are to be avoided
 (2) data should be collected for as many projects as
possible
 (3) measures must be consistent
 (4) applications should be similar to work that is to be
estimated—it makes little sense to use a baseline for
batch information systems work to estimate a real-
time, embedded application.
Process and Project Metrics
Metrics Collection, Computation, and Evaluation
 Data collection requires an historical investigation of past projects
to reconstruct required data.
 Once measures have been collected , metrics computation is
possible.
 Depending on the breadth of measures collected, metrics can span
a broad range of application-oriented metrics as well as other
quality- and project-oriented metrics.
 Finally, metrics must be evaluated and applied during estimation,
technical work, project control, and process improvement.
 Metrics evaluation focuses on the underlying reasons for the
results obtained and produces a set of indicators that guide the
project or process.
Process and Project Metrics
Metrics For Small Organizations
 The vast majority of software development organizations
have fewer than 20 software people. It is unreasonable, and
in most cases unrealistic, to expect that such organizations
will develop comprehensive software metrics programs.
 It is reasonable to suggest that software organizations of all
sizes measure and then use the resultant metrics to help
improve their local software process and the quality and
timeliness of the products they produce.
 Commonsense approach to the implementation of any
software process-related activity is: keep it simple, customize
to meet local needs, and be sure it adds value.
Process and Project Metrics
A small organization might select the following set of easily
collected measures:
 Time (hours or days) elapsed from the time a request is
made until evaluation is complete, tqueue.
 Effort (person-hours) to perform the evaluation, Weval.
 Time elapsed from completion of evaluation to assignment
of work to personnel, teval.
 Effort (person-hours) required to make the change, Wchange.
 Time required (hours or days) to make the change, tchange.
 Errors uncovered during work to make change, Echange.
 Defects uncovered after change is released to the customer
base, Dchange.
Process and Project Metrics
 The defect removal efficiency can be computed as
 DRE= Echange
Echange + Dchange
Process and Project Metrics
ESTABLISHING A SOFTWARE METRICS PROGRAM
 The Software Engineering Institute has developed a
comprehensive guidebook for establishing a “goal-driven”
software metrics program. The guidebook suggests the
following steps:
1. Identify your business goals.
2. Identify what you want to know or learn.
3. Identify your subgoals.
4. Identify the entities and attributes related to your
subgoals.
5. Formalize your measurement goals.
Process and Project Metrics
6. Identify quantifiable questions and the related indicators that
you will use to help you achieve your measurement goals.
7. Identify the data elements that you will collect to construct
the indicators that help answer your questions.
8. Define the measures to be used, and make these definitions
operational.
9. Identify the actions that you will take to implement the
measures.
10. Prepare a plan for implementing the measures.
Process and Project Metrics
Working as a team, software engineering and
business managers develop a list of prioritized
business goals:
1. Improve our customers’ satisfaction with our
products.
2. Make our products easier to use.
3. Reduce the time it takes us to get a new product to
market.
4. Make support for our products easier.
5. Improve our overall profitability.
Process and Project Metrics
 The software organization examines each business
goal and asks: “What activities do we manage, execute,
or support and what do we want to improve within
these activities?”
 To answer these questions the SEI recommends the
creation of an “entity-question list” in which all things
(entities) within the software process that are managed
or influenced by the software organization are noted.
 Consider the fourth goal: “Make support for our
products easier.” The following list of questions might
be derived for this goal
Process and Project Metrics
Consider the fourth goal: “Make support for our products
easier.” The following list of questions might be derived for
this goal.
• Do customer change requests contain the information we
require to adequately evaluate the change and then
implement it in a timely manner?
• How large is the change request backlog?
• Is our response time for fixing bugs acceptable based on
customer need?
• Is our change control process followed?
• Are high-priority changes implemented in a timely
manner?

Software Project Management Unit 2 chapters

  • 1.
  • 2.
    Process and ProjectMetrics  Software process and project metrics are quantitative measures that enable you to gain insight into the value of the software process and the projects that are conducted using the process as a framework.  Basic quality and productivity data are collected. These data are then analyzed and assessed to determine whether quality and productivity improvements have occurred.  Metrics are also used to pinpoint problem areas so that remedies can be developed and the software process can be improved.
  • 3.
    Process and ProjectMetrics  With measurement, trends (either good or bad) can be spotted, better estimates can be made, and true improvement can be accomplished over time.  Measurement is a management tool. If conducted properly, it provides a project manager with insight. And as a result, it assists the project manager and the software team in making decisions that will lead to a successful project.
  • 4.
    Process and ProjectMetrics The reasons that we measure: (1) To characterize in an effort to gain an understanding “of processes, products, resources, and environments, and to establish baselines for comparisons with future assessments”; (2) To evaluate “to determine status with respect to plans”; (3) To predict by “gaining understandings of relationships among processes and products and building models of these relationships”; (4) To improve by “identify[ing] roadblocks, root causes, inefficiencies, and other opportunities for improving product quality and process performance.”
  • 5.
    Process and ProjectMetrics Metrics in the process and the project domain  Process metrics are collected across all projects and over long periods of time. Their intent is to provide a set of process indicators that lead to long-term software process improvement.  Project 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 work flow or tasks, and  evaluate the project team’s ability to control quality of software work products.
  • 6.
    Process and ProjectMetrics Process Metrics and 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, and then use the metrics to provide indicators that will lead to a strategy for improvement  It is important to note that process is only one of a number of “controllable factors in improving software quality and organizational performance” .  Process sits at the center of a triangle connecting three factors that have a profound influence on software quality and organizational performance.
  • 7.
  • 8.
    Process and ProjectMetrics  The skill and motivation of people has been the single most influential factor in quality and performance. The complexity of the product can have a substantial impact on quality and team performance.  The technology (i.e., the software engineering methods and tools) that populates the process also has an impact.  In addition, the process triangle exists within a circle of environmental conditions that include the development environment (e.g., integrated software tools), business conditions (e.g., deadlines, business rules), and customer characteristics (e.g., ease of
  • 9.
    Process and ProjectMetrics  You can only measure the efficacy of a software process indirectly. That is, you 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 reported by end users, work products delivered (productivity), human effort expended, calendar time expended and other measures.  You can also derive process metrics by measuring the characteristics of specific software engineering tasks. For example, you might measure the effort and time spent performing the generic software engineering
  • 10.
    Process and ProjectMetrics  There are “private and public” uses for different types of process data. Because it is natural that individual software engineers might be sensitive to the use of metrics collected on an individual basis, these data should be private to the individual and serve as an indicator for the individual only.  Examples of private metrics include defect rates (by individual), defect rates (by component), and errors found during development.  Some process metrics are private to the software project team but public to all team members. Examples include defects reported for major software functions, errors found during technical reviews, and lines of code or function points per
  • 11.
    Process and ProjectMetrics Grady suggests a “software metrics etiquette” that is appropriate for both managers and practitioners as they institute a process metrics program: 1) Use common sense and organizational sensitivity when interpreting metrics data. 2) Provide regular feedback to the individuals and teams who collect measures and metrics. 3) Don’t use metrics to appraise individuals. 4) Work with practitioners and teams to set clear goals and metrics that will be used to achieve them.
  • 12.
    Process and ProjectMetrics 5) Never use metrics to threaten individuals or teams. 6) Metrics data that indicate a problem area should not be considered “negative.” These data are merely an indicator for process improvement. 7) Don’t obsess on a single metric to the exclusion of other important metrics.
  • 13.
    Process and ProjectMetrics  As an organization becomes more comfortable with the collection and use of process metrics, It gives way to a more rigorous approach called statistical software process improvement (SSPI).  SSPI uses software failure analysis to collect information about all errors and defects encountered as an application, system, or product is developed and used.
  • 14.
    Process and ProjectMetrics Project Metrics  Project metrics and the indicators derived from them are used by a project manager and a software team to adapt project workflow and technical activities.  The first application of project metrics on most software projects occurs during estimation.  As a project proceeds, measures of effort and calendar time expended are compared to original estimates.  The project manager uses these data to monitor and control progress.
  • 15.
    Process and ProjectMetrics  As the software evolves from requirements into design, technical metrics are collected to assess design quality and to provide indicators that will influence the approach taken to code generation and testing.  The intent of project metrics is two fold.  First, these metrics are used to minimize the development schedule by making the adjustments necessary to avoid delays and mitigate potential problems and risks.  Second, project metrics are used to assess product quality on an ongoing basis and, when necessary, modify the technical approach to improve quality.
  • 16.
    Process and ProjectMetrics  As quality improves, defects are minimized, and as the defect count goes down, the amount of rework required during the project is also reduced. This leads to a reduction in overall project cost.  Software metrics can be categorized as  Direct measures of the software process include cost and effort applied where as Direct measures of the product include lines of code (LOC) produced, execution speed, memory size, and defects reported over some set period of time.  Indirect measures of the product include functionality, quality, complexity, efficiency, reliability and maintainability
  • 17.
    Process and ProjectMetrics  The cost and effort required to build software, the number of lines of code produced, and other direct measures are relatively easy to collect.  The quality and functionality of software or its efficiency or maintainability are more difficult to assess and can be measured only indirectly.
  • 18.
    Process and ProjectMetrics  Product metrics that are private to an individual are often combined to develop project metrics that are public to a software team.  Project metrics are then consolidated to create process metrics that are public to the software organization as a whole.
  • 19.
    Process and ProjectMetrics Size-Oriented Metrics  Size-oriented software metrics are derived by normalizing quality and/or productivity measures by considering the size of the software that has been produced.  The table lists each software development that has been completed over the past few years and corresponding measures for that project.  Referring to the table for project alpha: 12,100 lines of code were developed at a cost of $168,000.
  • 20.
  • 21.
    Process and ProjectMetrics  It should be noted that the effort and cost recorded in the table represent all software engineering activities (analysis, design, code, and test), not just coding.  Further information for project alpha indicates that 365 pages of documentation were developed, 134 errors were recorded before the software was released, and 29 defects were encountered after release to the customer within the first year of operation.  Three people worked on the development of software for project alpha.
  • 22.
    Process and ProjectMetrics  A set of simple size-oriented metrics can be developed for each project:  Errors per KLOC (thousand lines of code)  Defects per KLOC  Cost per KLOC  Pages of documentation per KLOC  In addition, other interesting metrics can be computed:  Errors per person-month  KLOC per person-month  Cost per page of documentation
  • 23.
    Process and ProjectMetrics Function-Oriented Metrics  Function-oriented software metrics use a measure of the functionality delivered by the application.  The most widely used function-oriented metric is the function point (FP).  Computation of the function point is based on characteristics of the software’s information domain and complexity.  FP is programming language independent, and that it is based on data that are more likely to be known early in the evolution of a project, making FP more attractive as an estimation approach.
  • 24.
    Process and ProjectMetrics Object-Oriented Metrics  Conventional software project metrics (LOC or FP) can be used to estimate object oriented software projects. However, these metrics do not provide enough granularity for the schedule and effort adjustments that are required.  Lorenz and Kidd suggest the following set of metrics for OO projects:
  • 25.
    Process and ProjectMetrics 1) Number of scenario scripts:-  A scenario script is a detailed sequence of steps that describe the interaction between the user and the application. Each script is organized into triplets of the form {initiator, action, participant}  Where initiator is the object that requests some service (that initiates a message), action is the result of the request, and participant is the server object that satisfies the request.  The number of scenario scripts is directly correlated to the size of the application and to the number of test cases that must be developed to exercise the system once it is constructed.
  • 26.
    Process and ProjectMetrics 2) Number of key classes  Key classes are the “highly independent components” that are defined early in object-oriented analysis.  Because key classes are central to the problem domain, the number of such classes is an indication of the amount of effort required to develop the software and also an indication of the potential amount of reuse to be applied during system development.
  • 27.
    Process and ProjectMetrics 3) Number of support classes  Support classes are required to implement the system but are not immediately related to the problem domain. Examples might be user interface (GUI) classes, database access and manipulation classes, and computation classes.  Support classes can be developed for each of the key classes.  Support classes are defined iteratively throughout an evolutionary process. The number of support classes is an indication of the amount of effort required to develop the software and also an indication of the potential amount of reuse to be applied during system development
  • 28.
    Process and ProjectMetrics 4) Average number of support classes per key class  In general, key classes are known early in the project. Support classes are defined throughout. If the average number of support classes per key class were known for a given problem domain, estimating (based on total number of classes) would be greatly simplified.  Lorenz and Kidd suggest that applications with a GUI have between two and three times the number of support classes as key classes.  Non-GUI applications have between one and two times the number of support classes as key classes.
  • 29.
    Process and ProjectMetrics 5) Number of subsystems  A subsystem is an aggregation of classes that support a function that is visible to the end user of a system.  Once subsystems are identified, it is easier to lay out a reasonable schedule in which work on subsystems is partitioned among project staff.
  • 30.
    Process and ProjectMetrics Use-Case–Oriented Metrics  Use cases are used widely as a method for describing customer-level or business domain requirements that imply software features and functions.  Use case is defined early in the software process, allowing it to be used for estimation before significant modeling and construction activities are initiated.  Use cases describe (indirectly, at least) user-visible functions and features that are basic requirements for a system. The use case is independent of programming language.
  • 31.
    Process and ProjectMetrics  In addition, the number of use cases is directly proportional to the size of the application in LOC and to the number of test cases that will have to be designed to fully exercise the application.  Because use cases can be created at vastly different levels of abstraction, there is no standard “size” for a use case. Without a standard measure of what a use case is, its application as a normalization measure (e.g., effort expended per use case) is suspect.
  • 32.
    Process and ProjectMetrics  Researchers have suggested use-case points (UCPs) as a mechanism for estimating project effort and other characteristics.  The UCP is a function of the number of actors and transactions implied by the use-case models and is analogous to the FP in some ways
  • 33.
    Process and ProjectMetrics WebApp Project Metrics  The objective of all WebApp projects is to deliver a combination of content and functionality to the end user.  Measures and metrics used for traditional software engineering projects are difficult to translate directly to WebApps. But it is possible to develop a database that allows access to internal productivity and quality measures derived over a number of projects.  Among the measures that can be collected are:
  • 34.
    Process and ProjectMetrics 1) Number of static Web pages  Web pages with static content (i.e., the end user has no control over the content displayed on the page) are the most common of all WebApp features.  This measure provides an indication of the overall size of the application and the effort required to develop it.
  • 35.
    Process and ProjectMetrics 2) Number of dynamic Web pages  Web pages with dynamic content (i.e., end-user actions or other external factors result in customized content displayed on the page) are essential in all e-commerce applications, search engines, financial applications, and many other WebApp categories.  These pages represent higher relative complexity and require more effort to construct than static pages.  This measure provides an indication of the overall size of the application and the effort required to develop it.
  • 36.
    Process and ProjectMetrics 3) Number of internal page links.  Internal page links are pointers that provide a hyperlink to some other Web page within the WebApp.  This measure provides an indication of the degree of architectural coupling within the WebApp.  As the number of page links increases, the effort expended on navigational design and construction also increases.
  • 37.
    Process and ProjectMetrics 4) Number of persistent data objects  One or more persistent data objects (e.g., a database or data file) may be accessed by a WebApp. As the number of persistent data objects grows, the complexity of the WebApp also grows and the effort to implement it increases proportionally. 5) Number of external systems interfaced  WebApps must often interface with “backroom” business applications. As the requirement for interfacing grows, system complexity and development effort also increase.
  • 38.
    Process and ProjectMetrics 6) Number of static content objects.  Static content objects encompass static text-based, graphical, video, animation, and audio information that are incorporated within the WebApp. Multiple content objects may appear on a single Web page. 7) Number of dynamic content objects.  Dynamic content objects are generated based on end- user actions and encompass internally generated textbased, graphical, video, animation, and audio information that are incorporated within the WebApp. Multiple content objects may appear on a single Web page.
  • 39.
    Process and ProjectMetrics 8) Number of executable functions  An executable function (e.g., a script or applet) provides some computational service to the end user. As the number of executable functions increases, modeling and construction effort also increase.
  • 40.
    Process and ProjectMetrics  Each of the preceding measures can be determined at a relatively early stage. For example, you can define a metric that reflects the degree of end-user customization that is required for the WebApp and correlate it to the effort expended on the project and/or the errors uncovered as reviews and testing are conducted. To accomplish this, you define Nsp:- number of Static Web pages Ndp:- number of Dynamic Web pages  Then,
  • 41.
    Process and ProjectMetrics Customization index, C = Ndp___ Ndp + Nsp  The value of C ranges from 0 to 1. As C grows larger, the level of WebApp customization becomes a significant technical issue.
  • 42.
    Process and ProjectMetrics METRICS FOR SOFTWARE QUALITY  The overriding goal of software engineering is to produce a high-quality system, application, or product within a time frame that satisfies a market need.  To achieve this goal, you must apply effective methods coupled with modern tools within the context of a mature software process.  In addition, a good software engineer must measure if high quality is to be realized.
  • 43.
    Process and ProjectMetrics  A project manager must also evaluate quality as the project progresses.  Private metrics collected by individual software engineers are combined to provide project level results.  Although many quality measures can be collected, the primary thrust at the project level is to measure errors and defects.  Metrics derived from these measures provide an indication of the effectiveness of individual and group software quality assurance and control activities.
  • 44.
    Process and ProjectMetrics  Metrics such as work product errors per function point, errors uncovered per review hour, and errors uncovered per testing hour provide insight into the efficacy of each of the activities implied by the metric.  Error data can also be used to compute the defect removal efficiency (DRE) for each process framework activity.
  • 45.
    Process and ProjectMetrics Measuring Quality  Although there are many measures of software quality, correctness, maintainability, integrity, and usability provide useful indicators for the project team. Gilb suggests definitions and measures for each.  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 defects per KLOC, where a defect is defined as a verified lack of conformance to requirements.
  • 46.
    Process and ProjectMetrics  When considering the overall quality of a software product, defects are those problems reported by a user of the program after the program has been released for general use.  For quality assessment purposes, defects are counted over standard period of time, typically one year.
  • 47.
    Process and ProjectMetrics Maintainability  Software maintenance and support accounts for more effort than any other software engineering 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; therefore, you must use indirect measures. 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.  On average, programs that are maintainable will have a lower MTTC than programs that are not maintainable.
  • 48.
    Process and ProjectMetrics Integrity  Software integrity has become increasingly important in the age of cyber terrorists and hackers. This attribute measures a system’s ability to withstand attacks (both accidental and intentional) to its security.  Attacks can be made on all three components of software: programs, data, and documentation.  To measure integrity, two additional attributes must be defined: threat and  security. 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.
  • 49.
    Process and ProjectMetrics  Security is the probability (which can be estimated or derived from empirical evidence) that the attack of a specific type will be repelled.  The integrity of a system can then be defined as: Integrity = Ʃ [1 - (threat * (1 - security))]  For example, if threat (the probability that an attack will occur) is 0.25 and security (the likelihood of repelling an attack) is 0.95, the integrity of the system is 0.99
  • 50.
    Process and ProjectMetrics Usability  If a program is not easy to use, it is often destined to failure, even if the functions that it performs are valuable.
  • 51.
    Process and ProjectMetrics Defect Removal Efficiency  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: DRE= E/(E+D)  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.
  • 52.
    Process and ProjectMetrics  The ideal value for DRE is 1. That is, no defects are found in the software. Realistically, D will be greater than 0.  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.
  • 53.
    Process and ProjectMetrics  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. For example, requirements analysis produces a requirements model that can be reviewed to find and correct errors. Those errors that are not found during the review of the requirements model are passed on to design (where they may or may not be found). When used in this context, we redefine DRE as DREi= Ei/Ei + Ei+1  Where Ei is the number of errors found during software engineering action i and Ei+ 1 is the number of errors found during software engineering action i + 1
  • 54.
    Process and ProjectMetrics  If you do not measure, there no real way of determining whether you are improving.  By requesting and evaluating productivity and quality measures, a software team can establish meaningful goals for improvement of the software process.  To establish goals for improvement, the current status of software development must be understood. Hence, measurement is used to establish a process baseline from which improvements can be assessed.
  • 55.
    Process and ProjectMetrics Software project managers are concerned with more ordinary issues:  Developing meaningful project estimates, producing higher-quality systems, getting product out the door on time. By using measurement to establish a project baseline, each of these issues becomes more manageable.  Additionally, the collection of quality metrics enables an organization to “tune” its software process to remove the “vital” causes of defects that have the greatest impact on software development
  • 56.
    Process and ProjectMetrics Establishing a Baseline  By establishing a metrics baseline, benefits can be obtained at the process, project, and product levels.  The same metrics can serve many masters. The metrics baseline consists of data collected from past software development projects.
  • 57.
  • 58.
    Process and ProjectMetrics  To be an effective aid in process improvement and/or cost and effort estimation, baseline data must have the following attributes:  (1) data must be reasonably accurate—“guestimates” about past projects are to be avoided  (2) data should be collected for as many projects as possible  (3) measures must be consistent  (4) applications should be similar to work that is to be estimated—it makes little sense to use a baseline for batch information systems work to estimate a real- time, embedded application.
  • 59.
    Process and ProjectMetrics Metrics Collection, Computation, and Evaluation  Data collection requires an historical investigation of past projects to reconstruct required data.  Once measures have been collected , metrics computation is possible.  Depending on the breadth of measures collected, metrics can span a broad range of application-oriented metrics as well as other quality- and project-oriented metrics.  Finally, metrics must be evaluated and applied during estimation, technical work, project control, and process improvement.  Metrics evaluation focuses on the underlying reasons for the results obtained and produces a set of indicators that guide the project or process.
  • 60.
    Process and ProjectMetrics Metrics For Small Organizations  The vast majority of software development organizations have fewer than 20 software people. It is unreasonable, and in most cases unrealistic, to expect that such organizations will develop comprehensive software metrics programs.  It is reasonable to suggest that software organizations of all sizes measure and then use the resultant metrics to help improve their local software process and the quality and timeliness of the products they produce.  Commonsense approach to the implementation of any software process-related activity is: keep it simple, customize to meet local needs, and be sure it adds value.
  • 61.
    Process and ProjectMetrics A small organization might select the following set of easily collected measures:  Time (hours or days) elapsed from the time a request is made until evaluation is complete, tqueue.  Effort (person-hours) to perform the evaluation, Weval.  Time elapsed from completion of evaluation to assignment of work to personnel, teval.  Effort (person-hours) required to make the change, Wchange.  Time required (hours or days) to make the change, tchange.  Errors uncovered during work to make change, Echange.  Defects uncovered after change is released to the customer base, Dchange.
  • 62.
    Process and ProjectMetrics  The defect removal efficiency can be computed as  DRE= Echange Echange + Dchange
  • 63.
    Process and ProjectMetrics ESTABLISHING A SOFTWARE METRICS PROGRAM  The Software Engineering Institute has developed a comprehensive guidebook for establishing a “goal-driven” software metrics program. The guidebook suggests the following steps: 1. Identify your business goals. 2. Identify what you want to know or learn. 3. Identify your subgoals. 4. Identify the entities and attributes related to your subgoals. 5. Formalize your measurement goals.
  • 64.
    Process and ProjectMetrics 6. Identify quantifiable questions and the related indicators that you will use to help you achieve your measurement goals. 7. Identify the data elements that you will collect to construct the indicators that help answer your questions. 8. Define the measures to be used, and make these definitions operational. 9. Identify the actions that you will take to implement the measures. 10. Prepare a plan for implementing the measures.
  • 65.
    Process and ProjectMetrics Working as a team, software engineering and business managers develop a list of prioritized business goals: 1. Improve our customers’ satisfaction with our products. 2. Make our products easier to use. 3. Reduce the time it takes us to get a new product to market. 4. Make support for our products easier. 5. Improve our overall profitability.
  • 66.
    Process and ProjectMetrics  The software organization examines each business goal and asks: “What activities do we manage, execute, or support and what do we want to improve within these activities?”  To answer these questions the SEI recommends the creation of an “entity-question list” in which all things (entities) within the software process that are managed or influenced by the software organization are noted.  Consider the fourth goal: “Make support for our products easier.” The following list of questions might be derived for this goal
  • 67.
    Process and ProjectMetrics Consider the fourth goal: “Make support for our products easier.” The following list of questions might be derived for this goal. • Do customer change requests contain the information we require to adequately evaluate the change and then implement it in a timely manner? • How large is the change request backlog? • Is our response time for fixing bugs acceptable based on customer need? • Is our change control process followed? • Are high-priority changes implemented in a timely manner?