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

Post on 12-Jan-2016

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related