SlideShare a Scribd company logo
1 of 78
Download to read offline
OBJECT-ORIENTED
SOFTWARE ENGINEERING
UNIT 08 : Software Quality Assurance
Ā© 2018, PRAMOD PARAJULI
Disclaimer
These slides are part of teaching materials for Object
Oriented Software Engineering (OOSE). These slides do not
cover all aspect of learning OOSE, nor are these be taken as
primary source of information. As the core textbooks and
reference books for learning the subject has already been
specified and provided to the students, students are
encouraged to learn from the original sources.
Contents in these slides are copyrighted to the instructor
and authors of original texts where applicable.
Quality Concepts
Reference: Chapter 14, Software Engineering: A Practitionerā€™s Approach, Roger S. Pressman, 7th
Edition
Software Quality
In 2005, ComputerWorld [Hil05] lamented that
ļ®ā€œbad software plagues nearly every organization that uses computers, causing lost
work hours during computer downtime, lost or corrupted data, missed sales
opportunities, high IT support and maintenance costs, and low customer satisfaction.
A year later, InfoWorld [Fos06] wrote about the
ļ®ā€œthe sorry state of software qualityā€ reporting that the quality problem had not gotten
any better.
Today, software quality remains an issue, but who is to blame?
ļ®Customers blame developers, arguing that sloppy practices lead to low-quality
software.
ļ®Developers blame customers (and other stakeholders), arguing that irrational delivery
dates and a continuing stream of changes force them to deliver software before it has
been fully validated.
Quality
For software, two kinds of quality may be encountered:
ļ®Quality of design encompasses requirements,
specifications, and the design of the system.
ļ®Quality of conformance is an issue focused primarily on
implementation.
ļ®User satisfaction = compliant product + good quality +
delivery within budget and schedule
Qualityā€”A Pragmatic View
ļ® The transcendental view argues (like Persig) that quality is something that
you immediately recognize, but cannot explicitly defne.
ļ® The user view sees quality in terms of an end-userā€™s specifc goals. If a
product meets those goals, it exhibits quality.
ļ® The manufacturerā€™s view defnes quality in terms of the original specifcation
of the product. If the product conforms to the spec, it exhibits quality.
ļ® The product view suggests that quality can be tied to inherent characteristics
(e.g., functions and features) of a product.
ļ® Finally, the value-based view measures quality based on how much a
customer is willing to pay for a product. In reality, quality encompasses all
of these views and more.
Software Quality
Software quality can be defned as:
ļ®An effective software process applied in a manner that creates
a useful product that provides measurable value for those who
produce it and those who use it.
This definition has been adapted from [Bes04] and replaces a
more manufacturing-oriented view presented in earlier editions of
this book.
Effective Software Process
ī€ŠAn effective software process establishes the infrastructure that supports
any effort at building a high quality software product.
ī€ŠThe management aspects of process create the checks and balances that
help avoid project chaosā€”a key contributor to poor quality.
ī€Š Software engineering practices allow the developer to analyze the
problem and design a solid solutionā€”both critical to building high
quality software.
ī€ŠFinally, umbrella activities such as change management and technical
reviews have as much to do with quality as any other part of software
engineering practice.
Useful Product
ī€ŠA useful product delivers the content, functions, and features
that the end-user desires
ī€ŠBut as important, it delivers these assets in a reliable, error
free way.
ī€ŠA useful product always satisfes those requirements that
have been explicitly stated by stakeholders.
ī€ŠIn addition, it satisfes a set of implicit requirements (e.g.,
ease of use) that are expected of all high quality software.
Quality Dimensions
ļ®Performance Quality. Does the software deliver all content, functions, and
features that are specifed as part of the requirements model in a way that
provides value to the end-user?
ļ®Feature quality. Does the software provide features that surprise and
delight frst-time end-users?
ļ®Reliability. Does the software deliver all features and capability without
failure? Is it available when it is needed? Does it deliver functionality that is
error free?
ļ®Conformance. Does the software conform to local and external software
standards that are relevant to the application? Does it conform to de facto
design and coding conventions? For example, does the user interface
conform to accepted design rules for menu selection or data input?
Quality Dimensions
ļ®Durability. Can the software be maintained (changed) or corrected
(debugged) without the inadvertent generation of unintended side effects?
Will changes cause the error rate or reliability to degrade with time?
ļ®Serviceability. Can the software be maintained (changed) or corrected
(debugged) in an acceptably short time period. Can support staff acquire all
information they need to make changes or correct defects?
ļ®Aesthetics. Most of us would agree that an aesthetic entity has a certain elegance,
a unique flow, and an obvious ā€œpresenceā€ that are hard to quantify but evident
nonetheless.
ļ®Perception. In some situations, you have a set of prejudices that will influence
your perception of quality.
The Software Quality Dilemma
ī€ŠIf you produce a software system that has terrible quality, you lose
because no one will want to buy it.
ī€ŠIf on the other hand you spend infnite time, extremely large effort, and
huge sums of money to build the absolutely perfect piece of software,
then it's going to take so long to complete and it will be so expensive to
produce that you'll be out of business anyway.
ī€ŠEither you missed the market window, or you simply exhausted all
your resources.
ā€œGood Enoughā€ Software
Good enough software delivers high quality functions and features that end-
users desire, but at the same time it delivers other more obscure or specialized
functions and features that contain known bugs.
Arguments against ā€œgood enough.ā€
ļ®It is true that ā€œgood enoughā€ may work in some application domains and for a few
major software companies. After all, if a company has a large marketing budget and
can convince enough people to buy version 1.0, it has succeeded in locking them in.
ļ®If you work for a small company be wary of this philosophy. If you deliver a ā€œgood
enoughā€ (buggy) product, you risk permanent damage to your companyā€™s reputation.
ļ®You may never get a chance to deliver version 2.0 because bad buzz may cause your
sales to plummet and your company to fold.
ļ®If you work in certain application domains (e.g., real time embedded software,
application software that is integrated with hardware can be negligent and open your
company to expensive litigation.
Cost of Quality
ļ® Prevention costs include
ļ® quality planning
ļ® formal technical reviews
ļ® test equipment
ļ® Training
ļ® Internal failure costs include
ļ® rework
ļ® repair
ļ® failure mode analysis
ļ® External failure costs are
ļ® complaint resolution
ļ® product return and replacement
ļ® help line support
ļ® warranty work
Cost
The relative costs to fnd and
repair an error or defect
increase dramatically as we go
from prevention to detection
to internal failure to external
failure costs.
Quality and Risk
ā€œPeople bet their jobs, their comforts, their safety, their entertainment, their
decisions, and their very lives on computer software. It better be right.ā€ SEPA,
Chapter 1
Example:
ļ®Throughout the month of November, 2000 at a hospital in Panama, 28 patients
received massive overdoses of gamma rays during treatment for a variety of cancers.
In the months that followed, fve of these patients died from radiation poisoning and
15 others developed serious complications. What caused this tragedy? A software
package, developed by a U.S. company, was modifed by hospital technicians to
compute modifed doses of radiation for each patient.
Negligence and Liability
ī€ŠThe story is all too common. A governmental or corporate entity hires a
major software developer or consulting company to analyze
requirements and then design and construct a software-based ā€œsystemā€
to support some major activity.
ī€ŠThe system might support a major corporate function (e.g., pension
management) or some governmental function (e.g., healthcare
administration or homeland security).
ī€ŠWork begins with the best of intentions on both sides, but by the time
the system is delivered, things have gone bad.
ī€ŠThe system is late, fails to deliver desired features and functions, is
error-prone, and does not meet with customer approval.
ī€ŠLitigation ensues.
Quality and Security
Gary McGraw comments [Wil05]:
ā€œSoftware security relates entirely and completely to quality. You must
think about security, reliability, availability, dependabilityā€”at the
beginning, in the design, architecture, test, and coding phases, all
through the software life cycle [process]. Even people aware of the
software security problem have focused on late life-cycle stuff. The
earlier you fnd the software problem, the better. And there are two
kinds of software problems. One is bugs, which are implementation
problems. The other is software fawsā€”architectural problems in the
design. People pay too much attention to bugs and not enough on
faws.ā€
Achieving Software Quality
Critical success factors:
ļ®Software Engineering Methods
ļ®Project Management Techniques
ļ®Quality Control
ļ®Quality Assurance
Software Quality Assurance
Reference: Chapter 16, Software Engineering: A Practitionerā€™s Approach, Roger S. Pressman, 7th
Edition
Elements of SQA
ļ® Standards
ļ® Reviews and Audits
ļ® Testing
ļ® Error/defect collection
and analysis
ļ® Change management
ļ® Education
ļ® Vendor management
ļ® Security management
ļ® Safety
ļ® Risk management
Role of the SQA Group-I
Prepares an SQA plan for a project.
ļ® The plan identifies
ā€¢ evaluations to be performed
ā€¢ audits and reviews to be performed
ā€¢ standards that are applicable to the project
ā€¢ procedures for error reporting and tracking
ā€¢ documents to be produced by the SQA group
ā€¢ amount of feedback provided to the software project team
Participates in the development of the projectā€™s software process
description.
ļ® The SQA group reviews the process description for compliance with organizational
policy, internal software standards, externally imposed standards (e.g., ISO-9001),
and other parts of the software project plan.
Role of the SQA Group-II
Reviews software engineering activities to verify compliance with the defned
software process.
ļ® identifies, documents, and tracks deviations from the process and verifies that corrections
have been made.
Audits designated software work products to verify compliance with those defned as
part of the software process.
ļ® reviews selected work products; identifies, documents, and tracks deviations; verifies that
corrections have been made
ļ® periodically reports the results of its work to the project manager.
Ensures that deviations in software work and work products are documented and
handled according to a documented procedure.
Records any noncompliance and reports to senior management.
ļ® Noncompliance items are tracked until they are resolved.
SQA Goals
ī€ŠRequirements quality. The correctness, completeness, and consistency
of the requirements model will have a strong infuence on the quality of
all work products that follow.
ī€ŠDesign quality. Every element of the design model should be assessed
by the software team to ensure that it exhibits high quality and that the
design itself conforms to requirements.
ī€ŠCode quality. Source code and related work products (e.g., other
descriptive information) must conform to local coding standards and
exhibit characteristics that will facilitate maintainability.
ī€ŠQuality control effectiveness. A software team should apply limited
resources in a way that has the highest likelihood of achieving a high
quality result.
Statistical SQA
ī€ŠInformation about software errors and defects is collected and
categorized.
ī€ŠAn attempt is made to trace each error and defect to its underlying
cause (e.g., non-conformance to specifcations, design error, violation of
standards, poor communication with the customer).
ī€ŠUsing the Pareto principle (80 percent of the defects can be traced to 20
percent of all possible causes), isolate the 20 percent (the vital few).
ī€ŠOnce the vital few causes have been identifed, move to correct the
problems that have caused the errors and defects.
Six-Sigma for Software Engineering
The term ā€œsix sigmaā€ is derived from six standard deviationsā€”3.4 instances
(defects) per million occurrencesā€”implying an extremely high quality standard.
The Six Sigma methodology defines three core steps:
ļ® Defne customer requirements and deliverables and project goals via well-defined
methods of customer communication
ļ® Measure the existing process and its output to determine current quality
performance (collect defect metrics)
ļ® Analyze defect metrics and determine the vital few causes.
ļ® Improve the process by eliminating the root causes of defects.
ļ® Control the process to ensure that future work does not reintroduce the causes of
defects.
Software Reliability
ī€ŠA simple measure of reliability is mean-time-between-failure
(MTBF), where
MTBF = MTTF + MTTR
ī€ŠThe acronyms MTTF and MTTR are mean-time-to-failure
and mean-time-to-repair, respectively.
ī€ŠSoftware availability is the probability that a program is
operating according to requirements at a given point in time
and is defined as
Availability = [MTTF/(MTTF + MTTR)] x 100%
Software Safety
ī€ŠSoftware safety is a software quality assurance activity that
focuses on the identification and assessment of potential
hazards that may affect software negatively and cause an
entire system to fail.
ī€ŠIf hazards can be identified early in the software process,
software design features can be specified that will either
eliminate or control potential hazards.
ISO 9001:2000 Standard
ī€ŠISO 9001:2000 is the quality assurance standard that applies to
software engineering.
ī€ŠThe standard contains 20 requirements that must be present for an
effective quality assurance system.
ī€ŠThe requirements delineated by ISO 9001:2000 address topics such as
ļ® management responsibility, quality system, contract review, design
control, document and data control, product identification and traceability,
process control, inspection and testing, corrective and preventive action,
control of quality records, internal quality audits, training, servicing, and
statistical techniques.
Review Techniques
Reference: Chapter 15, Software Engineering: A Practitionerā€™s Approach, Roger S. Pressman, 7th
Edition
What Are Reviews?
ī€Ša meeting conducted by technical people for technical
people
ī€Ša technical assessment of a work product created during
the software engineering process
ī€Ša software quality assurance mechanism
ī€Ša training ground
What Reviews Are Not
ī€ŠA project summary or progress assessment
ī€ŠA meeting intended solely to impart information
ī€ŠA mechanism for political or personal reprisal!
What Do We Look For?
ī€ŠErrors and defects
ī€ŠErrorā€”a quality problem found before the software is released to end users
ī€ŠDefectā€”a quality problem found only after the software has been released to end-
users
ī€ŠWe make this distinction because errors and defects have very different
economic, business, psychological, and human impact
ī€ŠHowever, the temporal distinction made between errors and defects in this
book is not mainstream thinking
Defect Amplification
Errors passed through
Amplified errors 1:x
Newly generated errors
Development step
Errors from
Previous step Errors passed
To next step
Defects Detection
Percent
Efficiency
A defect amplifcation model [IBM81] can be used to illustrate the generation
and detection of errors during the design and code generation actions of a
software process.
Defect Amplification
In the example provided in SEPA, Section 15.2,
ļ®a software process that does NOT include reviews,
ā€¢yields 94 errors at the beginning of testing and
ā€¢Releases 12 latent defects to the field
ļ®a software process that does include reviews,
ā€¢yields 24 errors at the beginning of testing and
ā€¢releases 3 latent defects to the field
ļ®A cost analysis indicates that the process with NO reviews costs
approximately 3 times more than the process with reviews, taking
the cost of correcting the latent defects into account
Metrics
The total review effort and the total number of errors
discovered are defned as:
ā€¢Ereview = Ep + Ea + Er
ā€¢Errtot = Errminor + Errmajor
Defect density represents the errors found per unit of work
product reviewed.
ā€¢Defect density = Errtot / WPS
where ā€¦
Metrics
Preparation effort, Epā€”the effort (in person-hours) required to review a work
product prior to the actual review meeting
Assessment effort, Eaā€” the effort (in person-hours) that is expending during the
actual review
Rework effort, Erā€” the effort (in person-hours) that is dedicated to the correction
of those errors uncovered during the review
Work product size, WPSā€”a measure of the size of the work product that has been
reviewed (e.g., the number of UML models, or the number of document pages,
or the number of lines of code)
Minor errors found, Errminorā€”the number of errors found that can be categorized as
minor (requiring less than some pre-specifed effort to correct)
Major errors found, Errmajorā€” the number of errors found that can be categorized as
major (requiring more than some pre-specifed effort to correct)
An Exampleā€”I
If past history indicates that
ļ®the average defect density for a requirements model is 0.6
errors per page, and a new requirement model is 32 pages
long,
ļ®a rough estimate suggests that your software team will fnd
about 19 or 20 errors during the review of the document.
ļ®If you fnd only 6 errors, youā€™ve done an extremely good job
in developing the requirements model or your review
approach was not thorough enough.
An Exampleā€”II
ī€ŠThe effort required to correct a minor model error (immediately after the review) was
found to require 4 person-hours.
ī€ŠThe effort required for a major requirement error was found to be 18 person-hours.
ī€ŠExamining the review data collected, you fnd that minor errors occur about 6 times more
frequently than major errors. Therefore, you can estimate that the average effort to fnd and
correct a requirements error during review is about 6 person-hours.
Requirements related errors uncovered during testing require an average of 45 person-
hours to fnd and correct. Using the averages noted, we get:
ī€ŠEffort saved per error = Etesting ā€“ Ereviews
45 ā€“ 6 = 30 person-hours/error
ī€ŠSince 22 errors were found during the review of the requirements model, a saving of about
660 person-hours of testing effort would be achieved. And thatā€™s just for requirements-
related errors.
Overall
with reviews
Effort expended with and without reviews
Reference Model
Informal Reviews
Informal reviews include:
ļ®a simple desk check of a software engineering work product with a
colleague
ļ®a casual meeting (involving more than 2 people) for the purpose of
reviewing a work product, or
ļ®the review-oriented aspects of pair programming
pair programming encourages continuous review as a work product (design or
code) is created.
ļ®The beneft is immediate discovery of errors and better work product
quality as a consequence.
Formal Technical Reviews
The objectives of an FTR are:
ļ®to uncover errors in function, logic, or implementation for any
representation of the software
ļ®to verify that the software under review meets its requirements
ļ®to ensure that the software has been represented according to
predefned standards
ļ®to achieve software that is developed in a uniform manner
ļ®to make projects more manageable
The FTR is actually a class of reviews that includes walkthroughs and
inspections.
The Review Meeting
ī€ŠBetween three and fve people (typically) should be
involved in the review.
ī€ŠAdvance preparation should occur but should require no
more than two hours of work for each person.
ī€ŠThe duration of the review meeting should be less than two
hours.
ī€ŠFocus is on a work product (e.g., a portion of a requirements
model, a detailed component design, source code for a component)
The Players
review
review
leader
leader
producer
producer
recorder
recorder reviewer
reviewer
standards bearer (SQA)
standards bearer (SQA)
maintenance
maintenance
oracle
oracle
user rep
user rep
The Players
ī€ŠProducerā€”the individual who has developed the work product
ī€Šinforms the project leader that the work product is complete and that a
review is required
ī€ŠReview leaderā€”evaluates the product for readiness, generates copies of
product materials, and distributes them to two or three reviewers for
advance preparation.
ī€ŠReviewer(s)ā€”expected to spend between one and two hours reviewing
the product, making notes, and otherwise becoming familiar with the
work.
ī€ŠRecorderā€”reviewer who records (in writing) all important issues raised during
the review.
Conducting the Review
ī€ŠReview the product, not the
producer.
ī€ŠSet an agenda and maintain it.
ī€ŠLimit debate and rebuttal.
ī€ŠEnunciate problem areas, but don't
attempt to solve every problem noted.
ī€ŠTake written notes.
ļ® Limit the number of participants
and insist upon advance
preparation.
ļ® Develop a checklist for each product
that is likely to be reviewed.
ļ® Allocate resources and schedule time
for FTRs.
ļ® Conduct meaningful training for all
reviewers.
ļ® Review your early reviews.
Review Options Matrix
trained leader
trained leader
agenda established
agenda established
reviewers prepare in advance
reviewers prepare in advance
producer presents product
producer presents product
ā€œ
ā€œreaderā€ presents product
readerā€ presents product
recorder takes notes
recorder takes notes
checklists used to fnd errors
checklists used to fnd errors
errors categorized as found
errors categorized as found
issues list created
issues list created
team must sign-off on result
team must sign-off on result
IPRā€”informal peer review WTā€”Walkthrough
IPRā€”informal peer review WTā€”Walkthrough
INā€”Inspection RRRā€”round robin review
INā€”Inspection RRRā€”round robin review
IPR
IPR WT
WT IN
IN RRR
RRR
no
no
maybe
maybe
maybe
maybe
maybe
maybe
no
no
maybe
maybe
no
no
no
no
no
no
no
no
yes
yes
yes
yes
yes
yes
yes
yes
no
no
yes
yes
no
no
no
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
no
no
no
yes
yes
no
no
no
no
yes
yes
maybe
maybe
*
*
*
Sample-Driven Reviews (SDRs)
ī€Š
SDRs attempt to quantify those work products that are primary targets for full
FTRs.
ī€Š
To accomplish this ā€¦
ī€ŠInspect a fraction ai of each software work product, i. Record the number of
faults, fi found within ai.
ī€Š
Develop a gross estimate of the number of faults within work product i by
multiplying fi by 1/ai.
ī€Š
Sort the work products in descending order according to the gross estimate of
the number of faults in each.
ī€Š
Focus available review resources on those work products that have the highest
estimated number of faults.
Metrics Derived from Reviews
ļ® inspection time per page of
documentation
ļ® inspection time per KLOC or FP
ļ® inspection effort per KLOC or FP
ļ® errors uncovered per reviewer
hour
ļ® errors uncovered per preparation
hour
ļ® errors uncovered per SE task (e.g.,
design)
ļ® number of minor errors (e.g.,
typos)
ļ® number of major errors (e.g.,
nonconformance to req.)
ļ® number of errors found during
preparation
Software Configuration Management
Reference: Chapter 22, Software Engineering: A Practitionerā€™s Approach, Roger S. Pressman, 7th
Edition
The ā€œFirst Lawā€
No matter where you are in the system life cycle, the
system will change, and the desire to change it will
persist throughout the life cycle.
Bersoff, et al, 1980
What Are These Changes?
data
data
other
other
documents
documents
code
code
Test
Test
Project
Project
Plan
Plan
changes in
technical requirements
changes in
business requirements
changes in
user requirements
software models
software models
The Software Configuration
programs
programs documents
documents
data
data
The pieces
The pieces
Baselines
The IEEE (IEEE Std. No. 610.12-1990) defines a baseline as:
ā€¢ A specification or product that has been formally
reviewed and agreed upon, that thereafter serves as the
basis for further development, and that can be changed
only through formal change control procedures.
a baseline is a milestone in the development of software that is
marked by the delivery of one or more software configuration
items and the approval of these SCIs that is obtained through a
formal technical review
Baselines
SCIs
SCIs
modified
Software
engineering
tasks
Formal
technical
reviews
SCIs
approved
SCIs
extracted
SCM
controls
SCIs
stored
Project database
System Specification
Software Requirements
Design Specification
Source Code
Test Plans/Procedures/Data
Operational System
BASELINES:
Software Configuration Objects
Design specification
data design
architectural design
module design
interface design
Component N
interface description
algorithm description
PDL
Data model
Test specification
test plan
test procedure
test cases
Source code
SCM Repository
The SCM repository is the set of mechanisms and data structures
that allow a software team to manage change in an effective
manner
The repository performs or precipitates the following functions:
ļ® Data integrity
ļ® Information sharing
ļ® Tool integration
ļ® Data integration
ļ® Methodology enforcement
ļ® Document standardization
Repository Content
B
usiness
Co
ntent
M
o
d
el
Co
ntent
V
&
V
Co
ntent
Pro
ject
Manag
em
ent
Co
ntent
Co
nstructio
n
Co
ntent
D
o
cum
ents
businessrules
businessfunc
tions
orga
niz
a
tionstruc
ture
inform
a
tiona
rc
hitec
ture
projec
testim
a
tes
projec
tsc
hedule
SC
Mrequirem
ents
c
ha
ngerequests
c
ha
ngereports
SQArequirem
ents
projec
treports/
a
uditreports
projec
tm
etric
s
Projec
tPla
n
SC
M
/
SQAPla
n
SystemSpec
Requirem
entsSpec
D
esignD
oc
um
ent
T
estPla
na
ndProc
edure
Supportdoc
um
ents
U
serm
a
nua
l
use-c
a
ses
a
na
lysism
odel
sc
ena
rio-ba
seddia
gra
m
s
flow
-orienteddia
gra
m
s
c
la
ss-ba
seddia
gra
m
s
beha
viora
ldia
gra
m
s
designm
odel
a
rc
hitec
tura
ldia
gra
m
s
interfa
c
edia
gra
m
s
c
om
ponent-leveldia
gra
m
s
tec
hnic
a
lm
etric
s
sourc
ec
ode
objec
tc
ode
systembuildinstruc
tions
testc
a
ses
testsc
ripts
testresults
qua
litym
etric
s
Repository Features
Versioning.
ļ® saves all of these versions to enable effective management of product releases and to permit
developers to go back to previous versions
Dependency tracking and change management.
ļ® The repository manages a wide variety of relationships among the data elements stored in it.
Requirements tracing.
ļ® Provides the ability to track all the design and construction components and deliverables that
result from a specific requirement specification
Confguration management.
ļ® Keeps track of a series of configurations representing specific project milestones or production
releases. Version management provides the needed versions, and link management keeps
track of interdependencies.
Audit trails.
ļ® establishes additional information about when, why, and by whom changes are made.
SCM Elements
ī€ŠComponent elementsā€”a set of tools coupled within a file management system
(e.g., a database) that enables access to and management of each software
configuration item.
ī€ŠProcess elementsā€”a collection of procedures and tasks that define an effective
approach to change management (and related activities) for all constituencies
involved in the management, engineering and use of computer software.
ī€ŠConstruction elementsā€”a set of tools that automate the construction of software
by ensuring that the proper set of validated components (i.e., the correct version)
have been assembled.
ī€ŠHuman elementsā€”to implement effective SCM, the software team uses a set of
tools and process features (encompassing other CM elements)
The SCM Process
Addresses the following questions ā€¦
ī€ŠHow does a software team identify the discrete elements of a software
configuration?
ī€ŠHow does an organization manage the many existing versions of a program
(and its documentation) in a manner that will enable change to be accommodated
efficiently?
ī€ŠHow does an organization control changes before and after software is released
to a customer?
ī€ŠWho has responsibility for approving and ranking changes?
ī€ŠHow can we ensure that changes have been made properly?
ī€ŠWhat mechanism is used to appraise others of changes that are made?
The SCM Process
identification
change control
version control
configuration auditing
reporting
SCIs
Software
Vm.n
Version Control
Version control combines procedures and tools to manage different versions of
configuration objects that are created during the software process
A version control system implements or is directly integrated with four major
capabilities:
ļ® a project database (repository) that stores all relevant configuration objects
ļ® a version management capability that stores all versions of a configuration object
(or enables any version to be constructed using differences from past versions);
ļ® a make facility that enables the software engineer to collect all relevant
configuration objects and construct a specific version of the software.
ļ® an issues tracking (also called bug tracking) capability that enables the team to
record and track the status of all outstanding issues associated with each
configuration object.
Change Control
STOP
STOP
Change Control Processā€”I
change request from user
change request from user
developer evaluates
developer evaluates
change report is generated
change report is generated
change control authority decides
change control authority decides
request is queued for action
request is queued for action
change request is denied
change request is denied
user is informed
user is informed
need for change is recognized
need for change is recognized
change control processā€”II
change control processā€”II
change control processā€”II
change control processā€”II
Change Control Process-II
assign people to SCIs
assign people to SCIs
check-out SCIs
check-out SCIs
make the change
make the change
review/audit the change
review/audit the change
establish a ā€œbaselineā€ for testing
establish a ā€œbaselineā€ for testing
change control processā€”III
change control processā€”III
change control processā€”III
change control processā€”III
Change Control Process-III
perform SQA and testing activities
perform SQA and testing activities
promote SCI for inclusion in next release
promote SCI for inclusion in next release
rebuild appropriate version
rebuild appropriate version
review/audit the change
review/audit the change
include all changes in release
include all changes in release
check-in the changed SCIs
check-in the changed SCIs
Auditing
SCIs
SCIs
Change
Change
Requests
Requests SQA
SQA
Plan
Plan
SCM Audit
SCM Audit
Status Accounting
SCIs
SCIs
Change
Change
Requests
Requests
Change
Change
Reports
Reports ECOs
ECOs
Status Accounting
Status Accounting
Reporting
Reporting
SCM for Web Engineering-I
Content.
ļ® A typical WebApp contains a vast array of contentā€”text, graphics,
applets, scripts, audio/video files, forms, active page elements, tables,
streaming data, and many others.
ļ® The challenge is to organize this sea of content into a rational set of
configuration objects (Section 27.1.4) and then establish appropriate
configuration control mechanisms for these objects.
People.
ļ® Because a significant percentage of WebApp development continues to
be conducted in an ad hoc manner, any person involved in the WebApp
can (and often does) create content.
SCM for Web Engineering-II
Scalability.
ļ® As size and complexity grow, small changes can have far-reaching and unintended
affects that can be problematic. Therefore, the rigor of configuration control
mechanisms should be directly proportional to application scale.
Politics.
ļ® Who ā€˜ownsā€™ a WebApp?
ļ® Who assumes responsibility for the accuracy of the information on the Web site?
ļ® Who assures that quality control processes have been followed before information
is published to the site?
ļ® Who is responsible for making changes?
ļ® Who assumes the cost of change?
Content Management-I
The collection subsystem encompasses all actions required to create and/or acquire
content, and the technical functions that are necessary to
ļ® convert content into a form that can be represented by a mark-up language (e.g., HTML, XML
ļ® organize content into packets that can be displayed effectively on the client-side.
The management subsystem implements a repository that encompasses the following
elements:
ļ® Content databaseā€”the information structure that has been established to store all content
objects
ļ® Database capabilitiesā€”functions that enable the CMS to search for specific content objects (or
categories of objects), store and retrieve objects, and manage the file structure that has been
established for the content
ļ® Confguration management functionsā€”the functional elements and associated workfow that
support content object identification, version control, change management, change auditing,
and reporting.
Content Management-II
The publishing subsystem extracts from the repository, converts it to a form
that is amenable to publication, and formats it so that it can be transmitted to
client-side browsers. The publishing subsystem accomplishes these tasks using
a series of templates.
Each template is a function that builds a publication using one of three different
components [BOI02]:
ļ® Static elementsā€”text, graphics, media, and scripts that require no further
processing are transmitted directly to the client-side
ļ® Publication servicesā€”function calls to specific retrieval and formatting services that
personalize content (using predefined rules), perform data conversion, and build
appropriate navigation links.
ļ® External servicesā€”provide access to external corporate information infrastructure
such as enterprise data or ā€œback-roomā€ applications.
Content Management
database
configuration objects
templates
Content
Management
System
HTML code
+ scripts
server-side
client-side browser
Change Management for WebApps-I
classify the
requested change
acquire related objects
assess im
pact of change
OK to m
ake
class 1change
class 2change
develop brief written
description of change
develop brief written
description of change
transm
it to all team
m
em
bers for review
changes
required
in related
objects
class 3change
further
evaluation
is required
class 4change
OK to m
ake
transm
it to allstake-
holders for review
further
evaluation
is required
Change Management for WebApps-II
check out object(s)
to be changed
make changes
design, construct, test
check in object(s)
that were changed
publish to WebApp
End of Unit 08 : Software Quality Assurance

More Related Content

What's hot

Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Neelamani Samal
Ā 
Software techniques
Software techniquesSoftware techniques
Software techniqueshome
Ā 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering noteNeelamani Samal
Ā 
Object Oriented Analysis
Object Oriented AnalysisObject Oriented Analysis
Object Oriented AnalysisAMITJain879
Ā 
Off the-shelf components (cots)
Off the-shelf components (cots)Off the-shelf components (cots)
Off the-shelf components (cots)Himanshu
Ā 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notesAmmar Shafiq
Ā 
Ian Sommerville, Software Engineering, 9th EditionCh 8
Ian Sommerville,  Software Engineering, 9th EditionCh 8Ian Sommerville,  Software Engineering, 9th EditionCh 8
Ian Sommerville, Software Engineering, 9th EditionCh 8Mohammed Romi
Ā 
Slides chapters 13-14
Slides chapters 13-14Slides chapters 13-14
Slides chapters 13-14Priyanka Shetty
Ā 
Software Engineering
Software Engineering Software Engineering
Software Engineering JayaKamal
Ā 
Software Engineering Large Practical coursework
Software Engineering Large Practical courseworkSoftware Engineering Large Practical coursework
Software Engineering Large Practical courseworkStephen Gilmore
Ā 
Context-Oriented Programming
Context-Oriented ProgrammingContext-Oriented Programming
Context-Oriented Programmingkim.mens
Ā 
Software Engineering
Software Engineering Software Engineering
Software Engineering JayaKamal
Ā 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
Ā 
Software Engineering
Software Engineering Software Engineering
Software Engineering JayaKamal
Ā 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering JayaKamal
Ā 
Software Patterns
Software PatternsSoftware Patterns
Software Patternskim.mens
Ā 
Software Prototyping in Software Engineering SE8
Software Prototyping in Software Engineering SE8Software Prototyping in Software Engineering SE8
Software Prototyping in Software Engineering SE8koolkampus
Ā 
Software Engineering
Software Engineering Software Engineering
Software Engineering JayaKamal
Ā 

What's hot (20)

Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012
Ā 
Software techniques
Software techniquesSoftware techniques
Software techniques
Ā 
Software engg unit 4
Software engg unit 4 Software engg unit 4
Software engg unit 4
Ā 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
Ā 
Object Oriented Analysis
Object Oriented AnalysisObject Oriented Analysis
Object Oriented Analysis
Ā 
Off the-shelf components (cots)
Off the-shelf components (cots)Off the-shelf components (cots)
Off the-shelf components (cots)
Ā 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
Ā 
Ian Sommerville, Software Engineering, 9th EditionCh 8
Ian Sommerville,  Software Engineering, 9th EditionCh 8Ian Sommerville,  Software Engineering, 9th EditionCh 8
Ian Sommerville, Software Engineering, 9th EditionCh 8
Ā 
Software testing
Software testingSoftware testing
Software testing
Ā 
Slides chapters 13-14
Slides chapters 13-14Slides chapters 13-14
Slides chapters 13-14
Ā 
Software Engineering
Software Engineering Software Engineering
Software Engineering
Ā 
Software Engineering Large Practical coursework
Software Engineering Large Practical courseworkSoftware Engineering Large Practical coursework
Software Engineering Large Practical coursework
Ā 
Context-Oriented Programming
Context-Oriented ProgrammingContext-Oriented Programming
Context-Oriented Programming
Ā 
Software Engineering
Software Engineering Software Engineering
Software Engineering
Ā 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
Ā 
Software Engineering
Software Engineering Software Engineering
Software Engineering
Ā 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
Ā 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
Ā 
Software Prototyping in Software Engineering SE8
Software Prototyping in Software Engineering SE8Software Prototyping in Software Engineering SE8
Software Prototyping in Software Engineering SE8
Ā 
Software Engineering
Software Engineering Software Engineering
Software Engineering
Ā 

Similar to Software Quality Assurance

Chapter 14
Chapter 14Chapter 14
Chapter 14Benjamin Yu
Ā 
New Microsoft Word Document.docx
New Microsoft Word Document.docxNew Microsoft Word Document.docx
New Microsoft Word Document.docxAbelAdisu
Ā 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1IIUI
Ā 
Why Software Testing is Crucial in Software Development_.pdf
Why Software Testing is Crucial in Software Development_.pdfWhy Software Testing is Crucial in Software Development_.pdf
Why Software Testing is Crucial in Software Development_.pdfXDuce Corporation
Ā 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testingAfridol Afridol
Ā 
Beginner guide-to-software-testing
Beginner guide-to-software-testingBeginner guide-to-software-testing
Beginner guide-to-software-testingbiswajit52
Ā 
Fundamentals of Testing - Andika Dwi Ary Candra
Fundamentals of Testing - Andika Dwi Ary CandraFundamentals of Testing - Andika Dwi Ary Candra
Fundamentals of Testing - Andika Dwi Ary CandraAnd11ka
Ā 
Chapter_14 sp1718.ppt
Chapter_14 sp1718.pptChapter_14 sp1718.ppt
Chapter_14 sp1718.pptahmedmagdy733949
Ā 
JUS 455 Final Project Milestone Two Guidelines and Rubric
 JUS 455 Final Project Milestone Two Guidelines and Rubric   JUS 455 Final Project Milestone Two Guidelines and Rubric
JUS 455 Final Project Milestone Two Guidelines and Rubric MoseStaton39
Ā 
Fundamental Of Testing (Dhea Frizky)
Fundamental Of Testing (Dhea Frizky)Fundamental Of Testing (Dhea Frizky)
Fundamental Of Testing (Dhea Frizky)Dhea Ffrizky
Ā 
Software Quality Measure
Software Quality MeasureSoftware Quality Measure
Software Quality MeasureEditor IJCATR
Ā 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxYaseenNazir3
Ā 
Requirement analysis with use case
Requirement analysis with use caseRequirement analysis with use case
Requirement analysis with use caseRapeepan Thawornwanchai
Ā 
CIS512_Topic1.pptx
CIS512_Topic1.pptxCIS512_Topic1.pptx
CIS512_Topic1.pptxZeyadAlquaimi1
Ā 
Uncover Hidden Issues: Thorough and Comprehensive Software Testing
Uncover Hidden Issues: Thorough and Comprehensive Software TestingUncover Hidden Issues: Thorough and Comprehensive Software Testing
Uncover Hidden Issues: Thorough and Comprehensive Software TestingUncodemy
Ā 

Similar to Software Quality Assurance (20)

Chapter 14
Chapter 14Chapter 14
Chapter 14
Ā 
New Microsoft Word Document.docx
New Microsoft Word Document.docxNew Microsoft Word Document.docx
New Microsoft Word Document.docx
Ā 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1
Ā 
Why Software Testing is Crucial in Software Development_.pdf
Why Software Testing is Crucial in Software Development_.pdfWhy Software Testing is Crucial in Software Development_.pdf
Why Software Testing is Crucial in Software Development_.pdf
Ā 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
Ā 
Quality concept
Quality concept Quality concept
Quality concept
Ā 
Beginner guide-to-software-testing
Beginner guide-to-software-testingBeginner guide-to-software-testing
Beginner guide-to-software-testing
Ā 
Fundamentals of Testing - Andika Dwi Ary Candra
Fundamentals of Testing - Andika Dwi Ary CandraFundamentals of Testing - Andika Dwi Ary Candra
Fundamentals of Testing - Andika Dwi Ary Candra
Ā 
Chapter_14 sp1718.ppt
Chapter_14 sp1718.pptChapter_14 sp1718.ppt
Chapter_14 sp1718.ppt
Ā 
JUS 455 Final Project Milestone Two Guidelines and Rubric
 JUS 455 Final Project Milestone Two Guidelines and Rubric   JUS 455 Final Project Milestone Two Guidelines and Rubric
JUS 455 Final Project Milestone Two Guidelines and Rubric
Ā 
Fundamental Of Testing (Dhea Frizky)
Fundamental Of Testing (Dhea Frizky)Fundamental Of Testing (Dhea Frizky)
Fundamental Of Testing (Dhea Frizky)
Ā 
Software Quality Measure
Software Quality MeasureSoftware Quality Measure
Software Quality Measure
Ā 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
Ā 
Intro
IntroIntro
Intro
Ā 
Software engineering in the agile manifesto
Software engineering in the agile manifestoSoftware engineering in the agile manifesto
Software engineering in the agile manifesto
Ā 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptx
Ā 
software testing
software testingsoftware testing
software testing
Ā 
Requirement analysis with use case
Requirement analysis with use caseRequirement analysis with use case
Requirement analysis with use case
Ā 
CIS512_Topic1.pptx
CIS512_Topic1.pptxCIS512_Topic1.pptx
CIS512_Topic1.pptx
Ā 
Uncover Hidden Issues: Thorough and Comprehensive Software Testing
Uncover Hidden Issues: Thorough and Comprehensive Software TestingUncover Hidden Issues: Thorough and Comprehensive Software Testing
Uncover Hidden Issues: Thorough and Comprehensive Software Testing
Ā 

Recently uploaded

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
Ā 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
Ā 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
Ā 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
Ā 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
Ā 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
Ā 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
Ā 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...gurkirankumar98700
Ā 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
Ā 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
Ā 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĆŗjo
Ā 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜RTylerCroy
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
Ā 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
Ā 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
Ā 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
Ā 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
Ā 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
Ā 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Ā 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Ā 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Ā 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Ā 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Ā 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Ā 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Ā 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Ā 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Ā 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Ā 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Ā 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Ā 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Ā 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Ā 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Ā 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Ā 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Ā 

Software Quality Assurance

  • 1. OBJECT-ORIENTED SOFTWARE ENGINEERING UNIT 08 : Software Quality Assurance Ā© 2018, PRAMOD PARAJULI
  • 2. Disclaimer These slides are part of teaching materials for Object Oriented Software Engineering (OOSE). These slides do not cover all aspect of learning OOSE, nor are these be taken as primary source of information. As the core textbooks and reference books for learning the subject has already been specified and provided to the students, students are encouraged to learn from the original sources. Contents in these slides are copyrighted to the instructor and authors of original texts where applicable.
  • 3. Quality Concepts Reference: Chapter 14, Software Engineering: A Practitionerā€™s Approach, Roger S. Pressman, 7th Edition
  • 4. Software Quality In 2005, ComputerWorld [Hil05] lamented that ļ®ā€œbad software plagues nearly every organization that uses computers, causing lost work hours during computer downtime, lost or corrupted data, missed sales opportunities, high IT support and maintenance costs, and low customer satisfaction. A year later, InfoWorld [Fos06] wrote about the ļ®ā€œthe sorry state of software qualityā€ reporting that the quality problem had not gotten any better. Today, software quality remains an issue, but who is to blame? ļ®Customers blame developers, arguing that sloppy practices lead to low-quality software. ļ®Developers blame customers (and other stakeholders), arguing that irrational delivery dates and a continuing stream of changes force them to deliver software before it has been fully validated.
  • 5. Quality For software, two kinds of quality may be encountered: ļ®Quality of design encompasses requirements, specifications, and the design of the system. ļ®Quality of conformance is an issue focused primarily on implementation. ļ®User satisfaction = compliant product + good quality + delivery within budget and schedule
  • 6. Qualityā€”A Pragmatic View ļ® The transcendental view argues (like Persig) that quality is something that you immediately recognize, but cannot explicitly defne. ļ® The user view sees quality in terms of an end-userā€™s specifc goals. If a product meets those goals, it exhibits quality. ļ® The manufacturerā€™s view defnes quality in terms of the original specifcation of the product. If the product conforms to the spec, it exhibits quality. ļ® The product view suggests that quality can be tied to inherent characteristics (e.g., functions and features) of a product. ļ® Finally, the value-based view measures quality based on how much a customer is willing to pay for a product. In reality, quality encompasses all of these views and more.
  • 7. Software Quality Software quality can be defned as: ļ®An effective software process applied in a manner that creates a useful product that provides measurable value for those who produce it and those who use it. This definition has been adapted from [Bes04] and replaces a more manufacturing-oriented view presented in earlier editions of this book.
  • 8. Effective Software Process ī€ŠAn effective software process establishes the infrastructure that supports any effort at building a high quality software product. ī€ŠThe management aspects of process create the checks and balances that help avoid project chaosā€”a key contributor to poor quality. ī€Š Software engineering practices allow the developer to analyze the problem and design a solid solutionā€”both critical to building high quality software. ī€ŠFinally, umbrella activities such as change management and technical reviews have as much to do with quality as any other part of software engineering practice.
  • 9. Useful Product ī€ŠA useful product delivers the content, functions, and features that the end-user desires ī€ŠBut as important, it delivers these assets in a reliable, error free way. ī€ŠA useful product always satisfes those requirements that have been explicitly stated by stakeholders. ī€ŠIn addition, it satisfes a set of implicit requirements (e.g., ease of use) that are expected of all high quality software.
  • 10. Quality Dimensions ļ®Performance Quality. Does the software deliver all content, functions, and features that are specifed as part of the requirements model in a way that provides value to the end-user? ļ®Feature quality. Does the software provide features that surprise and delight frst-time end-users? ļ®Reliability. Does the software deliver all features and capability without failure? Is it available when it is needed? Does it deliver functionality that is error free? ļ®Conformance. Does the software conform to local and external software standards that are relevant to the application? Does it conform to de facto design and coding conventions? For example, does the user interface conform to accepted design rules for menu selection or data input?
  • 11. Quality Dimensions ļ®Durability. Can the software be maintained (changed) or corrected (debugged) without the inadvertent generation of unintended side effects? Will changes cause the error rate or reliability to degrade with time? ļ®Serviceability. Can the software be maintained (changed) or corrected (debugged) in an acceptably short time period. Can support staff acquire all information they need to make changes or correct defects? ļ®Aesthetics. Most of us would agree that an aesthetic entity has a certain elegance, a unique flow, and an obvious ā€œpresenceā€ that are hard to quantify but evident nonetheless. ļ®Perception. In some situations, you have a set of prejudices that will influence your perception of quality.
  • 12. The Software Quality Dilemma ī€ŠIf you produce a software system that has terrible quality, you lose because no one will want to buy it. ī€ŠIf on the other hand you spend infnite time, extremely large effort, and huge sums of money to build the absolutely perfect piece of software, then it's going to take so long to complete and it will be so expensive to produce that you'll be out of business anyway. ī€ŠEither you missed the market window, or you simply exhausted all your resources.
  • 13. ā€œGood Enoughā€ Software Good enough software delivers high quality functions and features that end- users desire, but at the same time it delivers other more obscure or specialized functions and features that contain known bugs. Arguments against ā€œgood enough.ā€ ļ®It is true that ā€œgood enoughā€ may work in some application domains and for a few major software companies. After all, if a company has a large marketing budget and can convince enough people to buy version 1.0, it has succeeded in locking them in. ļ®If you work for a small company be wary of this philosophy. If you deliver a ā€œgood enoughā€ (buggy) product, you risk permanent damage to your companyā€™s reputation. ļ®You may never get a chance to deliver version 2.0 because bad buzz may cause your sales to plummet and your company to fold. ļ®If you work in certain application domains (e.g., real time embedded software, application software that is integrated with hardware can be negligent and open your company to expensive litigation.
  • 14. Cost of Quality ļ® Prevention costs include ļ® quality planning ļ® formal technical reviews ļ® test equipment ļ® Training ļ® Internal failure costs include ļ® rework ļ® repair ļ® failure mode analysis ļ® External failure costs are ļ® complaint resolution ļ® product return and replacement ļ® help line support ļ® warranty work
  • 15. Cost The relative costs to fnd and repair an error or defect increase dramatically as we go from prevention to detection to internal failure to external failure costs.
  • 16. Quality and Risk ā€œPeople bet their jobs, their comforts, their safety, their entertainment, their decisions, and their very lives on computer software. It better be right.ā€ SEPA, Chapter 1 Example: ļ®Throughout the month of November, 2000 at a hospital in Panama, 28 patients received massive overdoses of gamma rays during treatment for a variety of cancers. In the months that followed, fve of these patients died from radiation poisoning and 15 others developed serious complications. What caused this tragedy? A software package, developed by a U.S. company, was modifed by hospital technicians to compute modifed doses of radiation for each patient.
  • 17. Negligence and Liability ī€ŠThe story is all too common. A governmental or corporate entity hires a major software developer or consulting company to analyze requirements and then design and construct a software-based ā€œsystemā€ to support some major activity. ī€ŠThe system might support a major corporate function (e.g., pension management) or some governmental function (e.g., healthcare administration or homeland security). ī€ŠWork begins with the best of intentions on both sides, but by the time the system is delivered, things have gone bad. ī€ŠThe system is late, fails to deliver desired features and functions, is error-prone, and does not meet with customer approval. ī€ŠLitigation ensues.
  • 18. Quality and Security Gary McGraw comments [Wil05]: ā€œSoftware security relates entirely and completely to quality. You must think about security, reliability, availability, dependabilityā€”at the beginning, in the design, architecture, test, and coding phases, all through the software life cycle [process]. Even people aware of the software security problem have focused on late life-cycle stuff. The earlier you fnd the software problem, the better. And there are two kinds of software problems. One is bugs, which are implementation problems. The other is software fawsā€”architectural problems in the design. People pay too much attention to bugs and not enough on faws.ā€
  • 19. Achieving Software Quality Critical success factors: ļ®Software Engineering Methods ļ®Project Management Techniques ļ®Quality Control ļ®Quality Assurance
  • 20. Software Quality Assurance Reference: Chapter 16, Software Engineering: A Practitionerā€™s Approach, Roger S. Pressman, 7th Edition
  • 21. Elements of SQA ļ® Standards ļ® Reviews and Audits ļ® Testing ļ® Error/defect collection and analysis ļ® Change management ļ® Education ļ® Vendor management ļ® Security management ļ® Safety ļ® Risk management
  • 22. Role of the SQA Group-I Prepares an SQA plan for a project. ļ® The plan identifies ā€¢ evaluations to be performed ā€¢ audits and reviews to be performed ā€¢ standards that are applicable to the project ā€¢ procedures for error reporting and tracking ā€¢ documents to be produced by the SQA group ā€¢ amount of feedback provided to the software project team Participates in the development of the projectā€™s software process description. ļ® The SQA group reviews the process description for compliance with organizational policy, internal software standards, externally imposed standards (e.g., ISO-9001), and other parts of the software project plan.
  • 23. Role of the SQA Group-II Reviews software engineering activities to verify compliance with the defned software process. ļ® identifies, documents, and tracks deviations from the process and verifies that corrections have been made. Audits designated software work products to verify compliance with those defned as part of the software process. ļ® reviews selected work products; identifies, documents, and tracks deviations; verifies that corrections have been made ļ® periodically reports the results of its work to the project manager. Ensures that deviations in software work and work products are documented and handled according to a documented procedure. Records any noncompliance and reports to senior management. ļ® Noncompliance items are tracked until they are resolved.
  • 24. SQA Goals ī€ŠRequirements quality. The correctness, completeness, and consistency of the requirements model will have a strong infuence on the quality of all work products that follow. ī€ŠDesign quality. Every element of the design model should be assessed by the software team to ensure that it exhibits high quality and that the design itself conforms to requirements. ī€ŠCode quality. Source code and related work products (e.g., other descriptive information) must conform to local coding standards and exhibit characteristics that will facilitate maintainability. ī€ŠQuality control effectiveness. A software team should apply limited resources in a way that has the highest likelihood of achieving a high quality result.
  • 25. Statistical SQA ī€ŠInformation about software errors and defects is collected and categorized. ī€ŠAn attempt is made to trace each error and defect to its underlying cause (e.g., non-conformance to specifcations, design error, violation of standards, poor communication with the customer). ī€ŠUsing the Pareto principle (80 percent of the defects can be traced to 20 percent of all possible causes), isolate the 20 percent (the vital few). ī€ŠOnce the vital few causes have been identifed, move to correct the problems that have caused the errors and defects.
  • 26. Six-Sigma for Software Engineering The term ā€œsix sigmaā€ is derived from six standard deviationsā€”3.4 instances (defects) per million occurrencesā€”implying an extremely high quality standard. The Six Sigma methodology defines three core steps: ļ® Defne customer requirements and deliverables and project goals via well-defined methods of customer communication ļ® Measure the existing process and its output to determine current quality performance (collect defect metrics) ļ® Analyze defect metrics and determine the vital few causes. ļ® Improve the process by eliminating the root causes of defects. ļ® Control the process to ensure that future work does not reintroduce the causes of defects.
  • 27. Software Reliability ī€ŠA simple measure of reliability is mean-time-between-failure (MTBF), where MTBF = MTTF + MTTR ī€ŠThe acronyms MTTF and MTTR are mean-time-to-failure and mean-time-to-repair, respectively. ī€ŠSoftware availability is the probability that a program is operating according to requirements at a given point in time and is defined as Availability = [MTTF/(MTTF + MTTR)] x 100%
  • 28. Software Safety ī€ŠSoftware safety is a software quality assurance activity that focuses on the identification and assessment of potential hazards that may affect software negatively and cause an entire system to fail. ī€ŠIf hazards can be identified early in the software process, software design features can be specified that will either eliminate or control potential hazards.
  • 29. ISO 9001:2000 Standard ī€ŠISO 9001:2000 is the quality assurance standard that applies to software engineering. ī€ŠThe standard contains 20 requirements that must be present for an effective quality assurance system. ī€ŠThe requirements delineated by ISO 9001:2000 address topics such as ļ® management responsibility, quality system, contract review, design control, document and data control, product identification and traceability, process control, inspection and testing, corrective and preventive action, control of quality records, internal quality audits, training, servicing, and statistical techniques.
  • 30. Review Techniques Reference: Chapter 15, Software Engineering: A Practitionerā€™s Approach, Roger S. Pressman, 7th Edition
  • 31. What Are Reviews? ī€Ša meeting conducted by technical people for technical people ī€Ša technical assessment of a work product created during the software engineering process ī€Ša software quality assurance mechanism ī€Ša training ground
  • 32. What Reviews Are Not ī€ŠA project summary or progress assessment ī€ŠA meeting intended solely to impart information ī€ŠA mechanism for political or personal reprisal!
  • 33. What Do We Look For? ī€ŠErrors and defects ī€ŠErrorā€”a quality problem found before the software is released to end users ī€ŠDefectā€”a quality problem found only after the software has been released to end- users ī€ŠWe make this distinction because errors and defects have very different economic, business, psychological, and human impact ī€ŠHowever, the temporal distinction made between errors and defects in this book is not mainstream thinking
  • 34. Defect Amplification Errors passed through Amplified errors 1:x Newly generated errors Development step Errors from Previous step Errors passed To next step Defects Detection Percent Efficiency A defect amplifcation model [IBM81] can be used to illustrate the generation and detection of errors during the design and code generation actions of a software process.
  • 35. Defect Amplification In the example provided in SEPA, Section 15.2, ļ®a software process that does NOT include reviews, ā€¢yields 94 errors at the beginning of testing and ā€¢Releases 12 latent defects to the field ļ®a software process that does include reviews, ā€¢yields 24 errors at the beginning of testing and ā€¢releases 3 latent defects to the field ļ®A cost analysis indicates that the process with NO reviews costs approximately 3 times more than the process with reviews, taking the cost of correcting the latent defects into account
  • 36. Metrics The total review effort and the total number of errors discovered are defned as: ā€¢Ereview = Ep + Ea + Er ā€¢Errtot = Errminor + Errmajor Defect density represents the errors found per unit of work product reviewed. ā€¢Defect density = Errtot / WPS where ā€¦
  • 37. Metrics Preparation effort, Epā€”the effort (in person-hours) required to review a work product prior to the actual review meeting Assessment effort, Eaā€” the effort (in person-hours) that is expending during the actual review Rework effort, Erā€” the effort (in person-hours) that is dedicated to the correction of those errors uncovered during the review Work product size, WPSā€”a measure of the size of the work product that has been reviewed (e.g., the number of UML models, or the number of document pages, or the number of lines of code) Minor errors found, Errminorā€”the number of errors found that can be categorized as minor (requiring less than some pre-specifed effort to correct) Major errors found, Errmajorā€” the number of errors found that can be categorized as major (requiring more than some pre-specifed effort to correct)
  • 38. An Exampleā€”I If past history indicates that ļ®the average defect density for a requirements model is 0.6 errors per page, and a new requirement model is 32 pages long, ļ®a rough estimate suggests that your software team will fnd about 19 or 20 errors during the review of the document. ļ®If you fnd only 6 errors, youā€™ve done an extremely good job in developing the requirements model or your review approach was not thorough enough.
  • 39. An Exampleā€”II ī€ŠThe effort required to correct a minor model error (immediately after the review) was found to require 4 person-hours. ī€ŠThe effort required for a major requirement error was found to be 18 person-hours. ī€ŠExamining the review data collected, you fnd that minor errors occur about 6 times more frequently than major errors. Therefore, you can estimate that the average effort to fnd and correct a requirements error during review is about 6 person-hours. Requirements related errors uncovered during testing require an average of 45 person- hours to fnd and correct. Using the averages noted, we get: ī€ŠEffort saved per error = Etesting ā€“ Ereviews 45 ā€“ 6 = 30 person-hours/error ī€ŠSince 22 errors were found during the review of the requirements model, a saving of about 660 person-hours of testing effort would be achieved. And thatā€™s just for requirements- related errors.
  • 40. Overall with reviews Effort expended with and without reviews
  • 42. Informal Reviews Informal reviews include: ļ®a simple desk check of a software engineering work product with a colleague ļ®a casual meeting (involving more than 2 people) for the purpose of reviewing a work product, or ļ®the review-oriented aspects of pair programming pair programming encourages continuous review as a work product (design or code) is created. ļ®The beneft is immediate discovery of errors and better work product quality as a consequence.
  • 43. Formal Technical Reviews The objectives of an FTR are: ļ®to uncover errors in function, logic, or implementation for any representation of the software ļ®to verify that the software under review meets its requirements ļ®to ensure that the software has been represented according to predefned standards ļ®to achieve software that is developed in a uniform manner ļ®to make projects more manageable The FTR is actually a class of reviews that includes walkthroughs and inspections.
  • 44. The Review Meeting ī€ŠBetween three and fve people (typically) should be involved in the review. ī€ŠAdvance preparation should occur but should require no more than two hours of work for each person. ī€ŠThe duration of the review meeting should be less than two hours. ī€ŠFocus is on a work product (e.g., a portion of a requirements model, a detailed component design, source code for a component)
  • 45. The Players review review leader leader producer producer recorder recorder reviewer reviewer standards bearer (SQA) standards bearer (SQA) maintenance maintenance oracle oracle user rep user rep
  • 46. The Players ī€ŠProducerā€”the individual who has developed the work product ī€Šinforms the project leader that the work product is complete and that a review is required ī€ŠReview leaderā€”evaluates the product for readiness, generates copies of product materials, and distributes them to two or three reviewers for advance preparation. ī€ŠReviewer(s)ā€”expected to spend between one and two hours reviewing the product, making notes, and otherwise becoming familiar with the work. ī€ŠRecorderā€”reviewer who records (in writing) all important issues raised during the review.
  • 47. Conducting the Review ī€ŠReview the product, not the producer. ī€ŠSet an agenda and maintain it. ī€ŠLimit debate and rebuttal. ī€ŠEnunciate problem areas, but don't attempt to solve every problem noted. ī€ŠTake written notes. ļ® Limit the number of participants and insist upon advance preparation. ļ® Develop a checklist for each product that is likely to be reviewed. ļ® Allocate resources and schedule time for FTRs. ļ® Conduct meaningful training for all reviewers. ļ® Review your early reviews.
  • 48. Review Options Matrix trained leader trained leader agenda established agenda established reviewers prepare in advance reviewers prepare in advance producer presents product producer presents product ā€œ ā€œreaderā€ presents product readerā€ presents product recorder takes notes recorder takes notes checklists used to fnd errors checklists used to fnd errors errors categorized as found errors categorized as found issues list created issues list created team must sign-off on result team must sign-off on result IPRā€”informal peer review WTā€”Walkthrough IPRā€”informal peer review WTā€”Walkthrough INā€”Inspection RRRā€”round robin review INā€”Inspection RRRā€”round robin review IPR IPR WT WT IN IN RRR RRR no no maybe maybe maybe maybe maybe maybe no no maybe maybe no no no no no no no no yes yes yes yes yes yes yes yes no no yes yes no no no no yes yes yes yes yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no no no yes yes no no no no yes yes maybe maybe * * *
  • 49. Sample-Driven Reviews (SDRs) ī€Š SDRs attempt to quantify those work products that are primary targets for full FTRs. ī€Š To accomplish this ā€¦ ī€ŠInspect a fraction ai of each software work product, i. Record the number of faults, fi found within ai. ī€Š Develop a gross estimate of the number of faults within work product i by multiplying fi by 1/ai. ī€Š Sort the work products in descending order according to the gross estimate of the number of faults in each. ī€Š Focus available review resources on those work products that have the highest estimated number of faults.
  • 50. Metrics Derived from Reviews ļ® inspection time per page of documentation ļ® inspection time per KLOC or FP ļ® inspection effort per KLOC or FP ļ® errors uncovered per reviewer hour ļ® errors uncovered per preparation hour ļ® errors uncovered per SE task (e.g., design) ļ® number of minor errors (e.g., typos) ļ® number of major errors (e.g., nonconformance to req.) ļ® number of errors found during preparation
  • 51. Software Configuration Management Reference: Chapter 22, Software Engineering: A Practitionerā€™s Approach, Roger S. Pressman, 7th Edition
  • 52. The ā€œFirst Lawā€ No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle. Bersoff, et al, 1980
  • 53. What Are These Changes? data data other other documents documents code code Test Test Project Project Plan Plan changes in technical requirements changes in business requirements changes in user requirements software models software models
  • 54. The Software Configuration programs programs documents documents data data The pieces The pieces
  • 55. Baselines The IEEE (IEEE Std. No. 610.12-1990) defines a baseline as: ā€¢ A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures. a baseline is a milestone in the development of software that is marked by the delivery of one or more software configuration items and the approval of these SCIs that is obtained through a formal technical review
  • 57. Software Configuration Objects Design specification data design architectural design module design interface design Component N interface description algorithm description PDL Data model Test specification test plan test procedure test cases Source code
  • 58. SCM Repository The SCM repository is the set of mechanisms and data structures that allow a software team to manage change in an effective manner The repository performs or precipitates the following functions: ļ® Data integrity ļ® Information sharing ļ® Tool integration ļ® Data integration ļ® Methodology enforcement ļ® Document standardization
  • 59. Repository Content B usiness Co ntent M o d el Co ntent V & V Co ntent Pro ject Manag em ent Co ntent Co nstructio n Co ntent D o cum ents businessrules businessfunc tions orga niz a tionstruc ture inform a tiona rc hitec ture projec testim a tes projec tsc hedule SC Mrequirem ents c ha ngerequests c ha ngereports SQArequirem ents projec treports/ a uditreports projec tm etric s Projec tPla n SC M / SQAPla n SystemSpec Requirem entsSpec D esignD oc um ent T estPla na ndProc edure Supportdoc um ents U serm a nua l use-c a ses a na lysism odel sc ena rio-ba seddia gra m s flow -orienteddia gra m s c la ss-ba seddia gra m s beha viora ldia gra m s designm odel a rc hitec tura ldia gra m s interfa c edia gra m s c om ponent-leveldia gra m s tec hnic a lm etric s sourc ec ode objec tc ode systembuildinstruc tions testc a ses testsc ripts testresults qua litym etric s
  • 60. Repository Features Versioning. ļ® saves all of these versions to enable effective management of product releases and to permit developers to go back to previous versions Dependency tracking and change management. ļ® The repository manages a wide variety of relationships among the data elements stored in it. Requirements tracing. ļ® Provides the ability to track all the design and construction components and deliverables that result from a specific requirement specification Confguration management. ļ® Keeps track of a series of configurations representing specific project milestones or production releases. Version management provides the needed versions, and link management keeps track of interdependencies. Audit trails. ļ® establishes additional information about when, why, and by whom changes are made.
  • 61. SCM Elements ī€ŠComponent elementsā€”a set of tools coupled within a file management system (e.g., a database) that enables access to and management of each software configuration item. ī€ŠProcess elementsā€”a collection of procedures and tasks that define an effective approach to change management (and related activities) for all constituencies involved in the management, engineering and use of computer software. ī€ŠConstruction elementsā€”a set of tools that automate the construction of software by ensuring that the proper set of validated components (i.e., the correct version) have been assembled. ī€ŠHuman elementsā€”to implement effective SCM, the software team uses a set of tools and process features (encompassing other CM elements)
  • 62. The SCM Process Addresses the following questions ā€¦ ī€ŠHow does a software team identify the discrete elements of a software configuration? ī€ŠHow does an organization manage the many existing versions of a program (and its documentation) in a manner that will enable change to be accommodated efficiently? ī€ŠHow does an organization control changes before and after software is released to a customer? ī€ŠWho has responsibility for approving and ranking changes? ī€ŠHow can we ensure that changes have been made properly? ī€ŠWhat mechanism is used to appraise others of changes that are made?
  • 63. The SCM Process identification change control version control configuration auditing reporting SCIs Software Vm.n
  • 64. Version Control Version control combines procedures and tools to manage different versions of configuration objects that are created during the software process A version control system implements or is directly integrated with four major capabilities: ļ® a project database (repository) that stores all relevant configuration objects ļ® a version management capability that stores all versions of a configuration object (or enables any version to be constructed using differences from past versions); ļ® a make facility that enables the software engineer to collect all relevant configuration objects and construct a specific version of the software. ļ® an issues tracking (also called bug tracking) capability that enables the team to record and track the status of all outstanding issues associated with each configuration object.
  • 66. Change Control Processā€”I change request from user change request from user developer evaluates developer evaluates change report is generated change report is generated change control authority decides change control authority decides request is queued for action request is queued for action change request is denied change request is denied user is informed user is informed need for change is recognized need for change is recognized change control processā€”II change control processā€”II change control processā€”II change control processā€”II
  • 67. Change Control Process-II assign people to SCIs assign people to SCIs check-out SCIs check-out SCIs make the change make the change review/audit the change review/audit the change establish a ā€œbaselineā€ for testing establish a ā€œbaselineā€ for testing change control processā€”III change control processā€”III change control processā€”III change control processā€”III
  • 68. Change Control Process-III perform SQA and testing activities perform SQA and testing activities promote SCI for inclusion in next release promote SCI for inclusion in next release rebuild appropriate version rebuild appropriate version review/audit the change review/audit the change include all changes in release include all changes in release check-in the changed SCIs check-in the changed SCIs
  • 71. SCM for Web Engineering-I Content. ļ® A typical WebApp contains a vast array of contentā€”text, graphics, applets, scripts, audio/video files, forms, active page elements, tables, streaming data, and many others. ļ® The challenge is to organize this sea of content into a rational set of configuration objects (Section 27.1.4) and then establish appropriate configuration control mechanisms for these objects. People. ļ® Because a significant percentage of WebApp development continues to be conducted in an ad hoc manner, any person involved in the WebApp can (and often does) create content.
  • 72. SCM for Web Engineering-II Scalability. ļ® As size and complexity grow, small changes can have far-reaching and unintended affects that can be problematic. Therefore, the rigor of configuration control mechanisms should be directly proportional to application scale. Politics. ļ® Who ā€˜ownsā€™ a WebApp? ļ® Who assumes responsibility for the accuracy of the information on the Web site? ļ® Who assures that quality control processes have been followed before information is published to the site? ļ® Who is responsible for making changes? ļ® Who assumes the cost of change?
  • 73. Content Management-I The collection subsystem encompasses all actions required to create and/or acquire content, and the technical functions that are necessary to ļ® convert content into a form that can be represented by a mark-up language (e.g., HTML, XML ļ® organize content into packets that can be displayed effectively on the client-side. The management subsystem implements a repository that encompasses the following elements: ļ® Content databaseā€”the information structure that has been established to store all content objects ļ® Database capabilitiesā€”functions that enable the CMS to search for specific content objects (or categories of objects), store and retrieve objects, and manage the file structure that has been established for the content ļ® Confguration management functionsā€”the functional elements and associated workfow that support content object identification, version control, change management, change auditing, and reporting.
  • 74. Content Management-II The publishing subsystem extracts from the repository, converts it to a form that is amenable to publication, and formats it so that it can be transmitted to client-side browsers. The publishing subsystem accomplishes these tasks using a series of templates. Each template is a function that builds a publication using one of three different components [BOI02]: ļ® Static elementsā€”text, graphics, media, and scripts that require no further processing are transmitted directly to the client-side ļ® Publication servicesā€”function calls to specific retrieval and formatting services that personalize content (using predefined rules), perform data conversion, and build appropriate navigation links. ļ® External servicesā€”provide access to external corporate information infrastructure such as enterprise data or ā€œback-roomā€ applications.
  • 76. Change Management for WebApps-I classify the requested change acquire related objects assess im pact of change OK to m ake class 1change class 2change develop brief written description of change develop brief written description of change transm it to all team m em bers for review changes required in related objects class 3change further evaluation is required class 4change OK to m ake transm it to allstake- holders for review further evaluation is required
  • 77. Change Management for WebApps-II check out object(s) to be changed make changes design, construct, test check in object(s) that were changed publish to WebApp
  • 78. End of Unit 08 : Software Quality Assurance