You are on page 1of 84

Software Process Improvements

Based on Capability Maturity


Model (CMM)

`  
CONTENTS
˜ Introduction to Software Engineering
˜ Fundamentals of Process Improvement
˜ Overview of CMMI Models
Course Objectives
˜ understand the importance of having
defined process
˜ understand the rationale for process
improvement
˜ comprehend the CMMI model
˜ identify ways of applying the CMMI model
to achieve process improvement

     

r      

 

  




    

  
  
=equirements engineering
processes
˜ Feasibility studies.
˜ =equirements elicitation and analysis.
˜ =equirements validation.
˜ =equirements management.
Software requirements
˜ Functional and non-functional
requirements.
˜ User requirements.
˜ System requirements.
˜ The software requirements document.
˜ Formal Specification
System Models
˜ Context models.
˜ Behavioural models.
˜ Data models.
˜ Object models.
Software prototyping
˜ Prototyping in the software process.
˜ =apid prototyping techniques.
˜ User interface prototyping.
Formal Specification
˜ Formal specification in the software
process.
˜ Interface specification.
˜ Behavioural specification.
DESIGN
˜ Structured Programming
˜ Modularity
˜ Functional Decomposition
˜ Data Structure Design
˜ Data Flow Design
˜ Object-Oriented Design
˜ User Interface Design
˜ Formal Development
DESIGN
˜ Architectural design.
˜ Distributed systems design
˜ Object-oriented design
˜ =eal-time software design
˜ Design with =euse
˜ User interface design
P=OG=AMMING
PA=ADIGMS
˜ The Programming Language
˜ Object-Oriented Programming (OOP)
˜ Concurrent Programming
4E=IFICATION AND
4ALIDATION
˜ 4erification and validation planning
˜ Software inspections
˜ Automated static analysis
˜ Cleanroom software development
Software testing
˜ Defect testing.
˜ Integration testing.
˜ Object-oriented testing
Critical systems validation
˜ Formal methods and critical systems.
˜ =eliability validation.
˜ Safety assurance.
˜ Security assessment.
MANAGEMENT
˜ Managing people
˜ Limits to thinking.
˜ Group working.
˜ Choosing and keeping people.
˜ The People Capability Maturity Model.
˜ Software cost estimation
˜ Productivity.
˜ Estimation techniques.
˜ Algorithmic cost modelling.
˜ Project duration and staffing
MANAGEMENT
˜ Quality management
˜ Quality assurance and standards.
˜ Quality planning.
˜ Quality control.
˜ Software measurement and metrics.
˜ Process Improvement.
˜ Process and product quality.
˜ Process analysis and modelling.
˜ Process measurement.
˜ The SEI Process Capability Maturity Model.
˜ Process classification
Software re-engineering
˜ Source code translation.
˜ =everse engineering.
˜ Program structure improvement.
˜ Program modularisation.
˜ Data re-engineering.
Configuration management
˜ Configuration management planning.
˜ Change management.
˜ 4ersion and release management.
˜ System building.
˜ CASE tools for configuration management.
Software change
˜ Program evolution dynamics.
˜ Software maintenance.
˜ Architectural evolution.
Process Models
˜ Process iteration.
˜ Software Specification.
˜ Software design and implementation.
˜ Software validation.
˜ Software evolution.
˜ Automated process support.
Project management
˜ Management activities.
˜ Project planning.
˜ Project scheduling.
˜ =isk management.
Software Trends (1)
˜ Demands for software-intensive systems has been
growing consistently and steadily
˜ More and more, software costs dominate these
systems
˜ 1995 DoD cost figures
˜ Software: $35.7B
˜ Hardware: $6.8B
˜ Increasingly, software products and services are
acquired instead of developed ³in-house.´
Software Outsourcing Trend (2)
˜ Gartner Group
˜ Worldwide IT outsourcing - reach $1T in 4 years.
˜ Outsourcing of retail financial services in the North
America - from $8B in 1998 to $22B in 2002.
˜ IDC
˜ IT outsourcing ± reach $56B in 2000 and $100B by
2005.
˜ Forrester =esearch
˜ 64% of all IT outsourcing goes through U.S. based
companies that have relationships with development
shops abroad.
The State of Software Development
˜ 2000 US Defense Science Board Study:
˜ 53% of projects were late and over budget, 16%
were on time, 31% were cancelled before
completion
˜ There is tremendous growth in software content
in both manned and unmanned systems
˜ Software requirements now amount to the bulk of
the overall specification requirements (65% for
the B-2 bomber, 80% for the F-22 fighter)
The State of Software Engineering
˜ Most successful projects rely on expertise
established with similar systems
˜ Lack of documented processes make
repeatability difficult
˜ Development efforts for unprecedented or
significantly different systems often
encounter problems.
What is the Problem? -1
˜ Systems are increasingly dependent on
software, yet the brief history of software
development has been filled with problems.
˜ Cost overruns
˜ Schedule slippage
˜ Failure to achieve performance objectives
˜ Can not realize benefits of new technologies
and tools
What is the Problem? -2
˜ Government, industry, and the marketplace
require software to be developed
˜ Better
˜ Faster
˜ Cheaper
˜ The workforce is already stressed out, and
throwing technology at the problem hasn't
worked
Ideal Case
˜ Applying new software methodologies and
technologies.
˜ Develop and deliver reliable, usable
software within budget and schedule
commitments
˜ High Productivity
˜ High Quality
What can be done
˜ Improved and align the processes and
practices of system engineers, software
engineers, and managers.
˜ Do this by using the CMM Integrated as a
basis for process improvement program
Quality Leverage Points
˜ Major determinants of product cost,
schedule, and quality
People

Process Technology
Definition of Process („ )
˜ Process:
˜ How we do our work
˜ A set of practices performed to achieve a
given purpose. May include tools, methods,
materials, and/or people
˜ While process is often described as a leg of
the process-people-technology triad, it may
also be considered the "glue" that unifies
the other aspects.
Why Focus on Process? - 1
˜ Everyone realizes the importance of having
a motivated, quality work force but...
˜ ... even our finest people can't perform at
their best when the process is not
understood or operating "at its best"
Why Focus on Process? - 2
˜ Process provides a constructive, high-
leverage focus...
˜ As opposed to a focus on people
˜ your work force, on the average, is as "good" as it
is ë  ë
˜ working harder is not the answer

˜ working smarter, through process, is the answer


Why Focus on Process? - 2
˜ As opposed to a focus on technology
˜ technology applied without a suitable roadmap
will not result in significant payoff
˜ technology provides most benefit in context of
appropriate process roadmap
Why Focus on Process? - 3
˜ The process management premise:
˜ The quality of a system is highly influenced by the
quality of the process used to acquire, develop, and
maintain it
˜ This premise implies focus on processes as
well as on product
˜ This is a long-established practice in manufacturing
˜ Belief in this premise is visible worldwide in quality
movements in manufacturing and service industries,
e.g., ISO standards.
Why Focus on Process
˜ Project Management Targets
˜ Cost
˜ Development Time
˜ Productivity
˜ Quality
˜ Benefits
˜ Predictability
˜ Control
˜ Effectiveness
Process Notation Schemes
˜ What activities are performed in the
process
˜ Who, Why, When, How
˜ What inputs must you have
˜ What outputs do you produce
˜ How do you measure performance
Fuzziness of Software Process
˜ General Criteria
˜ Not the complete framework
˜ I can¶t tell you precisely, but I know it
when I see it
The Bottom Line-1
˜ Process improvement should be done to
help the business ± not for its own sake
The Bottom Line-2
˜ Improvement means different things to
different organizations.
˜ what are your business goals?
˜ how do you measure process ?
˜ Improvement is a long-term, strategic
effort.
˜ what is the expected impact on the bottom
line?
˜ How will impact be measured
Measurable Benefits
˜ The available data is taken from software
process improvement efforts.
˜ =esults: Boeing Effort estimation
˜ variance is between ±20% to +20%
Other Observed Benefits of
Process Improvement
Cited by Hughes, Tinker AFB, Schlumberger,
=aytheon
˜ improved working conditions
˜ improved employee morale
˜ less turnover
˜ fewer overtime hours
˜ better and increased communication
˜ decreased risk
˜ increased customer satisfaction
A Measurable =eturn
˜ Process improvement provides measurable
return on investment ± when measured
˜ =eturn on software improvement
investment reported between 5:1 and 8:1
˜ Additional benefit is intangible and cannot
be easily quantified
˜ CMMI is a useful tool for guiding
improvement
CMMI Models to the =escue
˜ CMMI models were created to help realize
the benefits of process improvement
CMMI-Based Improvement
˜ Improve organizational practice to allow
people to use technology better
˜ Use a model of successful practices for
improving development, maintenance and
sustainment, and management
˜ CMMI models fill this niche
˜ based on widely-accepted models with a
proven history of benefits
What is a CMMI Model
˜ Framework that contains the key elements
of effective processes for the software
engineering
˜ The model is a structured collection of
elements of effective processes
˜ Processes included are those proven by
experience to be effective within their
respective environment
CMMI models
˜ A CMMI model provides an integrated
view of process improvement across
multiple disciplines (e.g. software
engineering and systems engineering)
˜ The CMMI can help
˜ set process improvement goals and priorities
˜ provide guidance for quality processes
˜ provide a yardstick for assessing current
practices
Two important concepts
˜ Process capability
˜ Pertains to an individual process
˜ Organizational maturity
˜ Pertains to a set of processes
Process Capability
˜ The range of expected results that can be
achieved by following a process. It can be a
predictor of future project outcome
upper control limit

lower control limit


Low Capability Process
˜ Highly dependent on current practitioners
˜ Improvised by practitioners & management
˜ Not rigorously followed
˜ =esults difficult to predict
˜ Low visibility into progress & quality
˜ Compromise of functionality & quality to meet
schedule
˜ Use of new technology is risky
High Capability Process
˜ A disciplined approach for development
and management
˜ Defined and continuously improving
˜ Supported by management and others
˜ Well controlled & measured
˜ Institutionalized
Capability vs Performance
˜ Process Capability ± the range of expected
results that can be achieved by following a
prcess. It can be a predictor of future
project outcomes.
˜ Process performance ± a measure of the
actual results achieved from following a
process on a particular project
Organizational Maturity
˜ =epresented by the combined capabilities
of a set of processes
˜ The particular processes in that set are
chosen (possibly from a pre-defined set) to
meet the process improvement needs of an
organization
Low Organizational Maturity
˜ Highly dependent on current practitioners
˜ Improvised by practitioners & management
˜ Not rigorously followed
˜ =esults not predictable
High Organizational Maturity
˜ The set of organizational processes, taken
as a whole, are of higher capability, i.e.,
˜ A disciplined approach for development and
management
˜ Defined and continuously improving
˜ Supported by management and others
˜ Process stays long after those who built it are
gone
=elating Capability and Maturity
˜ Being at a particular level of organizational
maturity has process capability
implications for multiple processes
˜ Knowing the process capabilities of a
collection of processes has implications for
organizational maturity
CMMI Model =epresentations
˜ An organization may choose to approach
process improvement from either the
˜ process capability approach, or the
˜ organizational maturity approach
˜ CMMI models support each approach with
a  
ëë
˜ process capability approach ± continuous
representation
˜ organizational maturity approach ± staged
representation
Continuous =epresentation
˜ provides maximum flexibility for
organizations to choose which processes to
emphasize for improvement
Staged =epresentation
˜ Provides a pre-defined roadmap for
organizational improvement based on
proven grouping and ordering of processes
and associated organizational relationships.
Comparing the Different
=epresentations
˜ Both representations provide ways of
implementing process improvement to
achieve business goals
˜ Both representations provides the same
essential content but are organized in
different ways.
Models in Perspective
˜ A model is not a prcess. The model tells
you what to do, not how to do it
˜ You must define the process for your
organization that will likely incorporate
other aspects of process
Process =epresentation - 1
˜ Mature processes are documented.
˜ Question:
˜ What does that documentation look like?
˜ Answer:
˜ It should depend on the audience
˜ Two general process representation forms
˜ formal process representation
˜ user-oriented process representation
Process =epresentation - 2
˜ Formal process representation
˜ audience is primarily process specialists
˜ detailed and formalized representation
˜ primarily used for process development,
tailoring improvement
˜ user-oriented process representation
˜ audience is primarily everyday process users
˜ clear and simple representation
˜ primarily used for performing the process
Process Notation Schemes - 1
˜ What activities are performed in the
process?
˜ Who does them
˜ Why are they done
˜ When are they done
˜ How are they done
˜ What inputs must you have
˜ What outputs do you produce
˜ How do you measure performance
Process Notation Schemes - 2
˜ Different notation schemes emphasize
different aspects of a process and, thus,
have different strengths and weaknesses.
˜ Different notations may or may not have
the ability to represent conveniently
˜ sequencing of activities
˜ timing of activities
˜ data flow among activities
˜ hierarchical detail
˜ entry and exit criteria
˜ narrative information
Process Notation Schemes - 3
˜ Other notation scheme attributes
˜ flexibility
˜ simplicity
˜ ease of training and understanding
˜ availability of tool support
Some Common Process Notations
˜ Data flow diagrams
˜ Flowcharts
˜ Decision trees or tables
˜ Check lists
˜ etc.
A Simple Improvement Process
˜ Get started.
˜ Determine where you are.
˜ Determine where you want to be.
˜ Make a plan.
˜ Execute the plan.
˜ Learn lessons and do it again.
IDEAL Model - 1
˜ Initiating phase
˜ Stimulus for improvement
˜ Set context and establish sponsorship
˜ Establish improvement infrastructure
˜ Diagnosing phase
˜ Appraise and characterize current practice
˜ Develop recommendations and document
phase results
IDEAL Model - 2
˜ Establishing phase
˜ set priorities and strategies
˜ plan actions
˜ establish process action team
˜ Acting phase
˜ plan, execute, and track installation
˜ plan and execute pilots
˜ define processes and measures
IDEAL Model - 3
˜ Learning phase
˜ document and analyze lessons
˜ revise organizational approach
Using CMMI Models with the
IDEAL Model - 1
˜ Initiating phase
˜ Knowledge of the CMMI models can provide a
positive stimulus for improvement and help an
organization to establish and sustain the improvement
context.
˜ Diagnosing phase
˜ The CMMI models provide a yardstick for evaluating
organizational maturity.
Using CMMI Models with the
IDEAL Model - 2
˜ Establishing phase
˜ The PAs imply a focus for the process
improvement teams.
˜ Acting phase
˜ CMMI models provide guidance for defining
or improving processes.
˜ Learning phase
˜ Lessons learned are documented and basis for
revision of organizational approach.
Summary
˜ Process is a key leverage point for improvement.
˜ Effective process representation is crucial to
process institutionalization.
˜ CMM-based improvement programs have
provided measurable benefits.
˜ The CMM Integrated can be a useful tool for
addressing current problems in systems and
software engineering.
A Few Words on Terminology
˜ There is a great deal of commonality among the
different CMMI models in different disciplines
(for example, systems and software engineering).
˜ This module describes characteristics shared by
all CMMI staged-representation models,
regardless of discipline.
Overview of CMMI Model
Objectives
˜ appreciate the context of CMMI models
˜ know key terms used in the CMMI staged
representation
˜ know the overall structure of the CMMI
staged representation
CMMs
˜ The first CMM (CMM 41.0) was developed for
software.
˜ Based on this success, CMMs were developed for
the disciplines
˜ Systems engineering
˜ People
˜ Integrated product development
˜ Software acquisition
˜ others
Eexperiences
˜ Many organizations found several of these
models to be useful.
˜ They also found
˜ Overlap
˜ Contradiction
˜ Lack of clean interfaces
˜ Lack of standardization
˜ Different levels of detail
˜ This resulted in additional expense to process
improvement programs.
Move to Integration - 1
˜ The CMM Integration Project was formed to
˜ Build an initial set of integrated models
˜ Software engineering
˜ Systems engineering
˜ Integrated product and process development (IPPD)
˜ Establish a framework to integrate future models
˜ Create an integrated set of associated assessment
and training products
Move to Integration - 2
˜ Source models serving as a basis
˜ CMM (software) 42.0 Draft C
˜ EIA 731 (systems engineering)
˜ IPD CMM (IPD) 40.9a
The CMMI
Product Development Team
˜ Membership from
˜ Industry
˜ U.S. government
˜ Software Engineering Institute
˜ Highly experienced
˜ Average of 21 years experience
˜ From organizations with solid process
improvement credentials
˜ Diverse backgrounds represented
The CMMI Product Suite
˜ A framework for generating Integrated products
˜ =eference models
˜ Training products
˜ Assessment methods
˜ to support product and process improvement
˜ These products share
˜ Common terminology
˜ Common components
CMMI Models
˜ Initial areas of focus (disciplines)
˜ Systems engineering
˜ Software engineering
˜ Systems + software engineering
˜ Systems + software engineering + integrated product
and process development (IPPD)
˜ =epresentations
˜ Staged
˜ Continuous