Upload
eugene-poole
View
222
Download
0
Tags:
Embed Size (px)
Citation preview
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 define
d process understand the rationale for process improv
ement comprehend the CMMI model identify ways of applying the CMMI model
to achieve process improvement
User Requirement
Design
Coding
Testing
Deployment
Maintenance
Customer, Market
Requirements engineering processes Feasibility studies. Requirements elicitation and analysis. Requirements validation. Requirements management.
Software requirements Functional and non-functional requirement
s. 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. Rapid prototyping techniques. User interface prototyping.
Formal Specification Formal specification in the software proces
s. 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 Real-time software design Design with Reuse User interface design
PROGRAMMING PARADIGMS The Programming Language Object-Oriented Programming (OOP) Concurrent Programming
VERIFICATION AND VALIDATION Verification 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. Reliability 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. Reverse engineering. Program structure improvement. Program modularisation. Data re-engineering.
Configuration management Configuration management planning. Change management. Version 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. Risk management.
Software Trends (1)
Demands for software-intensive systems has been growing consistently and steadily More and more, software costs dominate these syste
ms 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 Am
erica - from $8B in 1998 to $22B in 2002. IDC
IT outsourcing – reach $56B in 2000 and $100B by 2005.
Forrester Research 64% of all IT outsourcing goes through U.S. based com
panies 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 e
stablished with similar systems Lack of documented processes make repeatab
ility difficult Development efforts for unprecedented or sig
nificantly 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 trained to be
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. Results: Boeing Effort estimation
variance is between –20% to +20%
Other Observed Benefits of Process ImprovementCited by Hughes, Tinker AFB, Schlumberger, Rayt
heon improved working conditions improved employee morale less turnover fewer overtime hours better and increased communication decreased risk increased customer satisfaction
A Measurable Return Process improvement provides measurable r
eturn on investment – when measured Return on software improvement investment
reported between 5:1 and 8:1 Additional benefit is intangible and cannot b
e easily quantified CMMI is a useful tool for guiding improve
ment
CMMI Models to the Rescue CMMI models were created to help realize
the benefits of process improvement
CMMI-Based Improvement Improve organizational practice to allow pe
ople to use technology better Use a model of successful practices for imp
roving development, maintenance and sustainment, and management
CMMI models fill this niche based on widely-accepted models with a prov
en 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 Results 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 Represented 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 Results 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
Relating 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 Representations 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 representation process capability approach – continuous
representation organizational maturity approach – staged
representation
Continuous Representation provides maximum flexibility for
organizations to choose which processes to emphasize for improvement
Staged Representation Provides a pre-defined roadmap for
organizational improvement based on proven grouping and ordering of processes and associated organizational relationships.
Comparing the Different Representations 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 yo
u what to do, not how to do it You must define the process for your organ
ization that will likely incorporate other aspects of process
Process Representation - 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 Representation - 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 pha
se 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 r
epresentation know the overall structure of the CMMI sta
ged representation
CMMs The first CMM (CMM V1.0) was developed for s
oftware. 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 model
s 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) V2.0 Draft C EIA 731 (systems engineering) IPD CMM (IPD) V0.9a
The CMMIProduct 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
Reference 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) Representations
Staged Continuous