software process improvements based on capability maturity model (cmm) 任 中 浩 博 士

84
Software Process Improvements Based on Capability Maturity Model (CMM) 任 任 任 任 任

Upload: eugene-poole

Post on 12-Jan-2016

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Software Process Improvements Based on Capability Maturity Model (CMM)

任 中 浩 博 士

Page 2: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

CONTENTS Introduction to Software Engineering Fundamentals of Process Improvement Overview of CMMI Models

Page 3: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 4: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

User Requirement

Design

Coding

Testing

Deployment

Maintenance

Customer, Market

Page 5: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Requirements engineering processes Feasibility studies. Requirements elicitation and analysis. Requirements validation. Requirements management.

Page 6: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Software requirements Functional and non-functional requirement

s. User requirements. System requirements. The software requirements document. Formal Specification

Page 7: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

System Models Context models. Behavioural models. Data models. Object models.

Page 8: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Software prototyping Prototyping in the software process. Rapid prototyping techniques. User interface prototyping.

Page 9: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Formal Specification Formal specification in the software proces

s. Interface specification. Behavioural specification.

Page 10: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

DESIGN Structured Programming Modularity Functional Decomposition Data Structure Design Data Flow Design Object-Oriented Design User Interface Design Formal Development

Page 11: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

DESIGN Architectural design. Distributed systems design Object-oriented design Real-time software design Design with Reuse User interface design

Page 12: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

PROGRAMMING PARADIGMS The Programming Language Object-Oriented Programming (OOP) Concurrent Programming

Page 13: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

VERIFICATION AND VALIDATION Verification and validation planning Software inspections Automated static analysis Cleanroom software development

Page 14: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Software testing Defect testing. Integration testing. Object-oriented testing

Page 15: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Critical systems validation Formal methods and critical systems. Reliability validation. Safety assurance. Security assessment.

Page 16: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 17: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 18: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Software re-engineering Source code translation. Reverse engineering. Program structure improvement. Program modularisation. Data re-engineering.

Page 19: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Configuration management Configuration management planning. Change management. Version and release management. System building. CASE tools for configuration management.

Page 20: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Software change Program evolution dynamics. Software maintenance. Architectural evolution.

Page 21: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Process Models Process iteration. Software Specification. Software design and implementation. Software validation. Software evolution. Automated process support.

Page 22: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Project management Management activities. Project planning. Project scheduling. Risk management.

Page 23: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.”

Page 24: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 25: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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)

Page 26: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 27: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 28: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 29: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Ideal Case Applying new software methodologies and

technologies. Develop and deliver reliable, usable

software within budget and schedule commitments

High Productivity High Quality

Page 30: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 31: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Quality Leverage Points Major determinants of product cost,

schedule, and quality

People

Process Technology

Page 32: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 33: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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"

Page 34: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 35: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 36: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 37: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Why Focus on Process Project Management Targets

Cost Development Time Productivity Quality

Benefits Predictability Control Effectiveness

Page 38: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 39: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Fuzziness of Software Process General Criteria Not the complete framework I can’t tell you precisely, but I know it

when I see it

Page 40: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

The Bottom Line-1 Process improvement should be done to

help the business – not for its own sake

Page 41: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 42: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Measurable Benefits The available data is taken from software

process improvement efforts. Results: Boeing Effort estimation

variance is between –20% to +20%

Page 43: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 44: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 45: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

CMMI Models to the Rescue CMMI models were created to help realize

the benefits of process improvement

Page 46: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 47: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 48: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 49: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Two important concepts Process capability

Pertains to an individual process Organizational maturity

Pertains to a set of processes

Page 50: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 51: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 52: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

High Capability Process A disciplined approach for development

and management Defined and continuously improving Supported by management and others Well controlled & measured Institutionalized

Page 53: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 54: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 55: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Low Organizational Maturity Highly dependent on current practitioners Improvised by practitioners & management Not rigorously followed Results not predictable

Page 56: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 57: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 58: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 59: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Continuous Representation provides maximum flexibility for

organizations to choose which processes to emphasize for improvement

Page 60: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Staged Representation Provides a pre-defined roadmap for

organizational improvement based on proven grouping and ordering of processes and associated organizational relationships.

Page 61: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 62: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 63: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 64: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 65: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 66: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 67: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Process Notation Schemes - 3 Other notation scheme attributes

flexibility simplicity ease of training and understanding availability of tool support

Page 68: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

Some Common Process Notations Data flow diagrams Flowcharts Decision trees or tables Check lists etc.

Page 69: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 70: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 71: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 72: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

IDEAL Model - 3 Learning phase

document and analyze lessons revise organizational approach

Page 73: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 74: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 75: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 76: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 77: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 78: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 79: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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.

Page 80: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 81: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 82: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 83: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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

Page 84: Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

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