2. Software Quality Assurance
– Software Development (Product Engineering)
and Process Management be so managed
that ultimate Product is of high quality and has
been developed within time and budget
constraints
– Both Product Engineering and Process
management processes are to be refined and
matured so that all products produced are of
high quality
– SQA processes for Software development
ensure that this objective is attained, different
organizations, ISO, SEI, ISO/IEC have
approved standards that can provide desired
Quality.
3. ISO 9000 & CMM
– Are the two widely used standards by the
industry
– ISO 9000 is a series of standards applicable
for the certification of industrial processes,
ISO 9000-3 refers to software specifically
– CMM is exclusively for Software Industry and
is to evaluate and improve the Process,
initiated to evaluate US DoD vendors and
ensure their processes are mature to yield
quality products
– CMM is becoming a de-facto standard for
measuring the capability and maturity of
software companies
5. Mature and Immature Organization
• Immature Organizations
– reactionary
– often busy in fire fighting
– always late & over budget
– unrealistic estimates
– product functionality and
quality are often
compromised to meet the
schedule
– no basis for
• judging product quality
• solving product or process
problems
• Mature Organizations
– organization-wide
managed software
processes
– the software process is
accurately communicated
to both existing staff and
new employees
– work activities are carried
out according to the
planned process
– objective & quantitative
basis
• for judging product quality
• for analyzing problems
with the product and
process
6. • CMM
– Capability Maturity Model
– Initiated by Software
Engineering Institute and in
turn funded by US DoD
– Initially to identify which of
the US DoD Sw vendors
have best „mature‟ Sw
process
– Process improvement
emphasized through FIVE
Maturity levels
– US Centered and getting
international de-facto
standard
• ISO 9000
– Compendium of 4
standards, applicable to
wide variety of Industrial
systems having stages
• Design
• Development
• Production
• Installation and
• Servicing
– Initiated by International
Standards Organization
– Document driven – text and
Graphical documents
maintained to achieve
comprehensibility
– Europe centered
ISO 9000 & CMM
11. Process, Capability & Maturity
– As process matures, it becomes better defined and
more consistently implemented
– Software process capability
• the range of expected results that can be achieved by
following a software process
• means of predicting the most likely outcomes to be expected
from the next software project
– Software process performance
• actual results achieved by following a software process.
– Software process maturity
• extent to which a specific process is explicitly defined,
managed, measured, controlled, and effective
12. Process Capability & Maturity
– Maturity
• a potential for growth in capability
• indicates both the richness of an organization's software
process and the consistency with which it is applied in
projects throughout the organization
• the software process is well understood
– through documentation and training
– continually being monitored and improved
• capability of a mature software process is known
• productivity and quality resulting can be improved over time
through consistent gains in the discipline achieved by using
its software process
13. Process Capability & Maturity
– A Mature software organization
• institutionalizes its software processes via
– policies
– standards
– and organizational structures
– Institutionalization
• building an infrastructure and a corporate culture that
supports the methods, practices, and procedures of the
business so that they endure after those who originally
defined them have gone
14. Objectives for Software CMM®
• Provide a model that is
– based on actual practices
– reflects the best of the state of the practice
– reflects the needs of individuals performing software
process improvement, software process
assessments, or software capability evaluations
– Documented and publicly available from
www.sei.cmu.edu
15. CMMI – CMM Integrated
• Is the integration of Capability Maturity
Model into the process, and CMMI is now
international standard
16. Use of SW-CMM®
• To understand the activities necessary to plan
and implement a software process improvement
program
• To define and improve the software process
• To identify strengths and weaknesses in the
organization
• To identify the risks of selecting among different
contractors for awarding business and to
monitor contracts
17. Software Process Maturity
(SPM)
– Continuous process improvement is based on many
small, evolutionary steps rather than revolutionary
innovations
– The CMM provides a framework for organizing these
evolutionary steps into five maturity levels that lay
successive foundations for continuous process
improvement
– These five maturity levels define an ordinal scale for
measuring the maturity of an organization's software
process and for evaluating its software process
capability
18. Maturity Level
– A well-defined evolutionary plateau toward achieving
a mature software process
– Each maturity level provides a layer in the foundation
for continuous process improvement
– Each level comprises a set of process goals that,
when satisfied, stabilized an important component of
the software process
– Achieving each level of the maturity framework
establishes a different component in the software
process, resulting in an increase in the process
capability of the organization.
19. Five Levels of SPM
Initial
(1)
Disciplined
Process
Repeatable
(2)
Standard
Consistent
Process
Defined
(3)
Predictable
Process
Managed
(4)
Continuously
Improving
Process
Optimizing
(5)
Unpredictable
Disciplined
Consistent
Predictable
Continuously
improving
20. Five Levels of CMM
Initial Level - Level 1
• The software process is characterized as
– ad hoc, and occasionally even chaotic
– few processes are defined
– success depends on individual effort
– Every software house starts as a Level-1
CMM company
21. CMM Levels (cont.)
Repeatable Level - Level 2
• Basic project management processes are
established to track
– cost
– schedule
– and functionality
• The necessary process discipline is in place to
repeat earlier successes on projects with similar
applications
22. CMM Levels (cont.)
Defined Level - Level 3
• The software process for both management and
engineering activities is
– documented
– standardized
– and integrated into a standard software process
• All projects use an approved version of the
organization's standard software process for
developing and maintaining software
23. CMM Levels (cont.)
Managed Level - Level 4
• Detailed measures/metrics are collected and
controlled for
– software process
– product quality
• Both the software process and products are
quantitatively / statistically controlled and
understood by using these detailed measures
24. CMM Levels (cont.)
Optimizing Level - Level 5
• Continuous process improvement is enabled by
– quantitative feedback from the process
– piloting innovative ideas and
– technologies
Most of the processes are automated. Change in
Process and Technology is managed and Errors
prevented
26. Key Process Areas (KPAs)
– The areas an organization should focus on to improve
its software process
– Key process areas identify the issues that must be
addressed to achieve a maturity level
– Each KPA identifies a cluster of related activities that,
when performed collectively, achieve a set of goals
considered important for enhancing process capability
– When the goals of a key process area are
accomplished on a continuing basis across projects,
the organization can be said to have institutionalised
the process capability characterized by the key
process area
– 18 KPAs have been defined for different levles and
these are additive
27. Key Process Areas
Initial (1)
Repeatable (2)
Software Configuration Management
Software Quality Assurance
Software Subcontract Management
Software Project Tracking & Oversight
Software Project Planning
Requirement Management
Defined (3)
Peer Reviews
Inter-group Coordination
Software Product Engineering
Integrated Software Management
Training Program
Organization Definition
Organization Process Focus
Managed (4)
Software Quality Management
Quantitative Process Management
Optimizing (5)
Process Change Management
Technology Change Management
Defect Prevention
28. Common Features
– The key process areas are organized by common
features
– The common features are attributes that indicate
whether the implementation and institutionalization of
a key process area is effective, repeatable, and
lasting
– The five common features are listed below
• Commitment to perform
• Ability to perform
• Activities performed
• Measurement & Analysis
• Verifying Implementation
29. Key Practices
– Each key process area is described in terms
of the key practices that contribute to
satisfying its goals
– The key practices describe the infrastructure
and activities that contribute most to the
effective implementation and
institutionalization of the key process area.
30. Building the CMM® Structure
Disciplined
Process
Indicates
Goal 1:
Software estimates are documented
for use in planning & tracking the
software project
Achieve
Implementation
Addresses
Level 2: Repeatable
Maturity Level:
Contains
Software Project Planning
Key Process Area:
Organized by
Activities Performed
Common Feature:
Contains
Activity 9: Estimates for the size of
software work products (or changes
to the size of software work products)
are derived according to a documented
procedure.
Key Practice:
Activity
Describes
31. Key Process Challenges
Level Characteristics Key Problem Areas Productivity &
Quality
5 – Optimizing
Improvement fed back
to process
Automation
4 – Managed
(Quantitative)
Measured Process
Changing technology
Problem analysis
Problem prevention
3 – Defined
(Qualitative)
Process defined &
institutionalized
Process measurement
Process analysis
Quantitative quality plans
2 – Repeatable
(Intuitive)
Process dependent
on individuals
Training
Technical Practices
* reviews, testing
Process focus
*standards, process groups
1 – Initial
(Ad-hoc / Chaotic) Project management
Project planning
Configuration management
Software quality assurance
32. Visibility into Software Process
In Out
5
In Out
4
In Out
3
In Out
2
In Out
1
33. CMM® Based Appraisals
“CMM® Based Appraisals” (CBA) use the
CMM® as the basis for appraising software
processes
They are multi-phased, team-based, site-visit
focused appraisal processes
34. Examples of Appraisal Families
Internal Process Improvement (IPI)
• Self improvement
Acquisition
• Selecting supplier
Teaming or Joint Improvement
• Customer & supplier together
Third Party
• Certification
35. Appraisal Process Key Points
• Planning the appraisal is based on sponsors business
goals & appraisal objectives
• Preparing for the appraisal includes training
• Collecting the data is focused on the model
• Validating the implementation of process is essential
• Reporting is done for each process area investigated
36. Reading Assignment
1. Jalote Pankaje (1997); An Integrated Approach to SE, 2nd
Ed, Narosa Publishing House, New Delhi; Ch – 1 Introduction
2. Douglas Bell (2005); Software Engineering for Students; Pearson
Education Limited; Ch-1 Problems and Prospects, pp 3-22
3. Rajib Mall (2005); Fundamentals of Software Engineering, 2nd
Ed, Printice-Hall of India, New Delhi; Ch – 11 Software Reliability
and Quality Management
4. Stephen Schach (2007); software Engineering, 7th Ed, Tata
McGraw-Hill Publishing Company, New Delhi; Ch – 4 The
Software Process