CMMI The SEI capability maturity model Initial Essentially
Document Sample


Software Engineering
Chapter 26 – Process
improvement
主講人:陳建源
研究室 :法401
Email: cychen07@nuk.edu.tw
日期:100/5/26
Outline
0. Introduction
1. The process improvement process
2. Process measurement
3. Process analysis
4. Process change
5. CMMI
0. Introduction
Process improvement
Many software companies have turned to software
process improvement as a way of enhancing 1the quality
of their software, 2reducing costs or 3accelerating their
development processes.
Process improvement means understanding existing
processes and changing these processes to increase
product quality and/or reduce costs and development
time.
3
0. Introduction
Approaches to improvement
The process maturity approach, which focuses on
1improving process and 2project management and
introducing 3good software engineering practice.
The level of process maturity reflects the extent to which good
technical and management practice has been adopted in
organizational software development processes.
The agile approach, which focuses on iterative
development and the reduction of overheads in the
software process.
The primary characteristics of agile methods are rapid delivery of
functionality and responsiveness to changing customer
4
requirements.
0. Introduction
Process and product quality
Process quality and product quality are closely
related and process improvement benefits arise because
the quality of the product depends on its development
process.
A good process is usually required to produce a good
product.
For manufactured goods, process is the principal quality
determinant.
For design-based activities, other factors are also
involved, especially the capabilities of the designers.
5
0. Introduction
Factors affecting software product quality
6
0. Introduction
Quality factors
For large projects with ‘average’ capabilities, the
development process determines product quality.
For small projects, the capabilities of the developers is
the main determinant.
The development technology is particularly significant for
small projects.
In all cases, if an unrealistic schedule is imposed then
product quality will suffer.
7
1. Process improvement process
There is no such thing as an ‘ideal’ or ‘standard’ software
process that is applicable in all organizations or for all
software products of a particular type.
You will rarely be successful in introducing process
improvements if you simply attempt to change the process to
one that is used elsewhere.
You must always consider the local environment and culture and
how this may be affected by process change proposals.
Each company has to develop its own process
depending on its size, the background and skills of its
staff, the type of software being developed, customer
and market requirements, and the company culture.
8
1. Process improvement process
Improvement attributes
You also have to consider what aspects of the
process that you want to improve.
Your goal might be to improve software quality and
so you may wish to introduce new process activities
that change the way software is developed and
tested.
You may be interested in improving some attribute of
the process itself (such as development time) and
you have to decide which process attributes are the
most important to your company.
9
1. Process improvement process
Process attributes
Process Key issues
characteristic
Understandability To what extent is the process explicitly defined and how easy is it to
understand the process definition?
Standardization To what extent is the process based on a standard generic process?
This may be important for some customers who require
conformance with a set of defined process standards. To what
extent is the same process used in all parts of a company?
Visibility Do the process activities culminate in clear results, so that the
progress of the process is externally visible?
Measurability Does the process include data collection or other activities that
allow process or product characteristics to be measured?
Supportability To what extent can software tools be used to support the process
activities?
10
1. Process improvement process
Process attributes
Process Key issues
characteristic
Acceptability Is the defined process acceptable to and usable by the engineers
responsible for producing the software product?
Reliability Is the process designed in such a way that process errors are
avoided or trapped before they result in product errors?
Robustness Can the process continue in spite of unexpected problems?
Maintainability Can the process evolve to reflect changing organizational
requirements or identified process improvements?
Rapidity How fast can the process of delivering a system from a given
specification be completed?
11
1. Process improvement process
Process improvement stages
Process measurement
Attributes of the current process are measured. These are a
baseline for assessing improvements.
Process analysis
The current process is assessed and bottlenecks and
weaknesses are identified.
Process change
Changes to the process that have been identified during the
analysis are introduced.
12
1. Process improvement process
The process improvement cycle
13
2. Process measurement
Wherever possible, quantitative process data
should be collected
However, where organisations do not have clearly defined
process standards this is very difficult as you don’t know
what to measure. A process may have to be defined before
any measurement is possible.
Process measurements should be used to
assess process improvements
But this does not mean that measurements should drive the
improvements. The improvement driver should be the
organizational objectives.
14
2. Process measurement
Process metrics
Time taken for process activities to be
completed
E.g. Calendar time or effort to complete an activity or
process.
Resources required for processes or activities
E.g. Total effort in person-days.
Number of occurrences of a particular event
E.g. Number of defects discovered.
15
2. Process measurement
Goal-Question-Metric Paradigm
Goals
What is the organisation trying to achieve? The objective of
process improvement is to satisfy these goals.
Questions
Questions about areas of uncertainty related to the goals.
You need process knowledge to derive these.
Metrics
Measurements to be collected to answer the questions.
16
2. Process measurement
GQM questions
The GQM paradigm is used in process improvement
to help answer three critical questions:
Why are we introducing process improvement?
What information do we need to help identify and assess
improvements?
What process and product measurements are required to
provide this information?
17
2. Process measurement
The GQM paradigm
18
3. Process analysis
The study of existing processes to understand the
relationships between parts of the process and to
compare them with other processes.
Process analysis and process measurement are
intertwined.
You need to carry out some analysis to know what to
measure, and, when making measurements, you
inevitably develop a deeper understanding of the
process being measured.
19
3. Process analysis
Process analysis objectives
To understand the activities involved in the process and
the relationships between these activities.
To understand the relationships between the process
activities and the measurements that have been made.
To relate the specific process or processes that you are
analyzing to comparable processes elsewhere in the
organization, or to idealized processes of the same type.
20
3. Process analysis
Process analysis techniques
Published process models and process
standards
It is always best to start process analysis with an existing
model. People then may extend and change this.
Questionnaires and interviews
Must be carefully designed. Participants may tell you what
they think you want to hear.
Ethnographic analysis
Involves assimilating process knowledge by observation.
Best for in-depth analysis of process fragments rather than
for whole-process understanding.
21
3. Process analysis
Aspects of process analysis
Process Questions
aspect
Adoption and Is the process documented and standardized across the
standardization organization? If not, does this mean that any measurements
made are specific only to a single process instance? If processes
are not standardized, then changes to one process may not be
transferable to comparable processes elsewhere in the company.
Software Are there known, good software engineering practices that are
engineering not included in the process? Why are they not included? Does the
practice lack of these practices affect product characteristics, such as the
number of defects in a delivered software system?
Organizational What are the organizational constraints that affect the process
constraints design and the ways that the process is performed? For example,
if the process involves dealing with classified material, there may
be activities in the process to check that classified information is
not included in any material due to be released to external
organizations. Organizational constraints may mean that possible
process changes cannot be made. 22
3. Process analysis
Aspects of process analysis
Process aspect Questions
Communications How are communications managed in the process? How do
communication issues relate to the process measurements that
have been made? Communication problems are a major issue in
many processes and communication bottlenecks are often the
reasons for project delays.
Introspection Is the process reflective (i.e., do the actors involved in the
process explicitly think about and discuss the process and how it
might be improved)? Are there mechanisms through which
process actors can propose process improvements?
Learning How do people joining a development team learn about the
software processes used? Does the company have process
manuals and process training programs?
Tool support What aspects of the process are and aren’t supported by software
tools? For unsupported areas, are there tools that could be
deployed cost-effectively to provide support? For supported areas,
are the tools effective and efficient? Are better tools available?
23
3. Process analysis
Process models
Process models are a good way of focusing attention
on the activities in a process and the information
transfer between these activities.
Process models do not have to be formal or
complete – their purpose is to provoke discussion
rather than document the process in detail.
Model-oriented questions can be used to help
understand the process e.g.
What activities take place in practice but are not shown in
the model?
Are there process activities, shown in the model, that you
(the process actor) think are inefficient? 24
3. Process analysis
Process exceptions
Software processes are complex and process models
cannot effectively represent how to handle
exceptions:
Several key people becoming ill just before a critical review;
A breach of security that means all external communications
are out of action for several days;
Organisational reorganisation;
A need to respond to an unanticipated request for new
proposals.
Under these circumstances, the model is suspended
and managers use their initiative to deal with the
exception.
25
4. Process change
Involves making modifications to existing processes.
This may involve:
Introducing new practices, methods or processes;
Changing the ordering of process activities;
Introducing or removing deliverables;
Introducing new roles or responsibilities.
Change should be driven by measurable goals.
26
4. Process change
The process change process
27
4. Process change
Process change stages
Improvement identification
This stage is concerned with using the results of the process
analysis to identify ways to tackle quality problems, schedule
bottlenecks or cost inefficiencies that have been identified
during process analysis.
Improvement prioritization
When many possible changes have been identified, it is
usually impossible to introduce them all at once, and you
must decide which are the most important.
Process change introduction
Process change introduction means putting new procedures,
methods and tools into place and integrating them with other
28
process activities.
4. Process change
Process change stages
Process change training
Without training, it is not possible to gain the full benefits of
process changes. The engineers involved need to
understand the changes that have been proposed and how
to perform the new and changed processes.
Change tuning
Proposed process changes will never be completely
effective as soon as they are introduced. You need a tuning
phase where minor problems can be discovered, and
modifications to the process can be proposed and
introduced.
29
4. Process change
Process change problems
Resistance to change
Team members or project managers may resist the
introduction of process changes and propose reasons why
changes will not work, or delay the introduction of changes.
They may, in some cases, deliberately obstruct process
changes and interpret data to show the ineffectiveness of
proposed process change.
Change persistence
While it may be possible to introduce process changes
initially, it is common for process innovations to be discarded
after a short time and for the processes to revert to their
previous state.
30
4. Process change
Resistance to change
Project managers often resist process change because
any innovation has unknown risks associated with it.
Project managers are judged according to whether or not their
project produces software on time and to budget. They may prefer
an inefficient but predictable process to an improved process that
has organizational benefits, but which has short-term risks
associated with it.
Engineers may resist the introduction of new processes
for similar reasons, or because they see these processes
as threatening their professionalism.
That is, they may feel that the new pre-defined process gives them
less discretion and does not recognize the value of their skills and
experience. 31
4. Process change
Change persistence
The problem of changes being introduced then
subsequently discarded is a common one.
Changes may be proposed by an ‘evangelist’ who believes
strongly that the changes will lead to improvement. He or
she may work hard to ensure the changes are effective and
the new process is accepted.
If the ‘evangelist’ leaves, then the people involved may
therefore simply revert to the previous ways of doing things.
Change institutionalization is important
This means that process change is not dependent on
individuals but that the changes become part of standard
practice in the company, with company-wide support and
training. 32
5. CMMI
軟體成熟度模式
美國國防部對於軟體的策略是希望外包(Outsourcing)的,
但為了掌握軟體產品的品質與進度,希望開發過程能
夠透明化,因此於1980 年時,提出對軟體承包商的軟
體開發能力進行評估的要求
美國國防部委託卡內基美隆大學軟體工程學院
(Software Engineering Institute, SEI) 進行的相關研究成
果。
SEI於1988年研究發佈了軟體開發程序成熟度框架
(CMM),提供了軟體開發程序評估和軟體能力評價兩
種評估方法
1991年,SEI將軟體開發程序成熟度框架提升為軟體能
力成熟度模型(Capability Maturity Model For Software,
SW-CMM),並發佈了最早的SW-CMM 1.0版
5. CMMI
2000年底SEI發表CMMI ,整合
軟體工程(Software Engineering, SW)
系統工程(Systems Engineering, SE)
產品與流程發展(Integrated Product and Process
Development, IPPD)
供應商來源(Supplier Sourcing, SS)管理
CMMI能夠評估及改善軟體組織之軟體開發流程,並
協助持續改善軟體流程能力與成熟度。
進而提昇軟體組織的軟體開發管理能力,縮短開發時
程、降低成本及確保品質。
5. CMMI
CMMI 表述
分為階段式和連續式兩種表述方式:
階段式表述
強調軟體流程改善是漸進式的,各層級的
完成都是下個層級的基礎。
連續式表述
強調企業可以依據自身的企業目標與願景
來 自由的選擇流程領域加以改善。
5. CMMI
5 最佳化層 評估且有規則地依序
導入革新性技術,以
CMMI 階段式表述 達持續性改善
4 量化管理層 組織收集詳細軟體程序及產品
量測資料
屬於管理和工程的活動均已定義且文
3 定義層 件化,完整整合成組織內的標準作業
程序
2 管理層 已建立基本管理程序,有能力重複使用
相類似的專案成功的案例與經驗
1 初始層 軟體程序漫無章法,程序未被定義
5. CMMI
CMMI模式的流程領域
是一組相關的執行方法,它們共同執行以達成目標
包含
工作項目(特定執行方法)
預期行為(特定目標)
5. CMMI
CMMI-Level 2的流程領域
需求管理:管理專案產品與產品組件之需求,界定專案計畫、
工作產品與需求這兩者之間是否有不一致情形
專案規劃:建立並維護定義專案活動的計畫
專案監控:提供對專案進度的瞭解,使得當專案績效明顯偏
離原先計畫時能採取適當的矯正措施
供應商協議管理:管理和專案有正式協議的供應商之產品與
服務的採購
度量與分析:發展並維護支援管理資訊所需的度量能力
流程與產品品質保證:提供員工和管理階層對於流程與相關
工作產品客觀的觀察
建構管理:建立並維護藉由建構識別、建構管制、建構狀態
紀錄及建構稽核,使工作產品具完整性
5. CMMI
Level 3的流程領域
需求發展:提供客戶、產品與產品組件的需求與分析
技術解決方案:用以發展、設計與實作對於需求的解
決方案。解決方案、設計與實作,適當地涵蓋產品、
產品組件以及產品相關單一或組合的流程
產品整合:將產品組件組合成產品,確保產品已經整
合、運作正常,並交付客戶
驗證:確保工作產品符合特定的需求
確認:證明產品或產品組件,於特定的環境下,確實
能發揮特定的功能
5. CMMI
Level 3的流程領域
組織流程專注:建立並維護組織流程與流程資產的瞭
解,並且界定、規劃及執行組織流程改善活動
組織流程定義:建立並維護可使用的組織流程資產
組織訓練:發展人員的技巧與知識
風險管理:界定風險發生前的潛在問題,使在達成目
標之前的生命週期期間,有需要時能規劃風險處理活
動,以降低不利的衝擊
決策分析與解決方案:決策時,使用結構化的方法,
依照已建立的準則,評估各備選方案
適於整合之組織環境:提供整合的專案管理之基礎環
境,並管理人員以利整合
5. CMMI
Level 4的流程領域
組織流程績效:建立及維護組織標準流程績效的量化
瞭解,並提供流程績效的資料、基準與模式,以數量
化管理組織的專案
數量化專案管理:調適流程,以達成該專案所建立的
品質與流程的績效目標
5. CMMI
Level 5的流程領域
組織創新與推展:選擇與推展漸進的、創新的改善活
動,可改善組織的流程與技術,支援由組織經營目標
所衍生的組織品質與流程績效目標
原因分析與解決方案:界定缺失的原因與其他的問題,
並採取預防措施,避免這些缺失在未來再發生
5. CMMI
CMMI V&V Validation and Verification)
An engineering process area at Maturity level 3
Validation (確認)– to demonstrate that a product or
product component fulfills its intended use when placed
in its intended environment
◎確認:做對的事(do the right thing)
◎確認:滿足預期用途及使用者的需要。
Verification (驗證)– to ensure that selected work
products meet their specified requirement
◎驗證:把事情做對(do the thing right)
◎驗證:符合(前一個階段所提出的)要求或條件。
5. CMMI
CMMI 表述比較 連續式
階段式
ML5
ML4
ML3
ML2
ML 1
PA PA PA
Organization Process
5. CMMI
The SEI capability maturity model
Initial
Essentially uncontrolled
Repeatable
Product management procedures defined and used
Defined
Process management procedures and strategies defined
and used
Managed
Quality management strategies defined and used
Optimising
46
Process improvement strategies defined and used
5. CMMI
Process capability assessment
Intended as a means to assess the extent to which
an organisation’s processes follow best practice.
By providing a means for assessment, it is possible
to identify areas of weakness for process
improvement.
There have been various process assessment and
improvement models but the SEI work has been most
influential.
47
5. CMMI
The CMMI model
An integrated capability model that includes software
and systems engineering capability assessment.
The model has two instantiations
Staged where the model is expressed in terms of capability
levels;
Continuous where a capability rating is computed.
48
5. CMMI
CMMI model components
Process areas
24 process areas that are relevant to process capability and
improvement are identified. These are organised into 4 groups.
Goals
Goals are descriptions of desirable organisational states. Each
process area has associated goals.
Practices
Practices are ways of achieving a goal - however, they are
advisory and other approaches to achieve the goal may be used.
49
5. CMMI
Process areas in the CMMI
Category Process area
Process management Organizational process definition (OPD)
Organizational process focus (OPF)
Organizational training (OT)
Organizational process performance (OPP)
Organizational innovation and deployment
(OID)
Project management Project planning (PP)
Project monitoring and control (PMC)
Supplier agreement management (SAM)
Integrated project management (IPM)
Risk management (RSKM)
50
Quantitative project management (QPM)
5. CMMI
Process areas in the CMMI
Category Process area
Engineering Requirements management (REQM)
Requirements development (RD)
Technical solution (TS)
Product integration (PI)
Verification (VER)
Validation (VAL)
Support Configuration management (CM)
Process and product quality management (PPQA)
Measurement and analysis (MA)
Decision analysis and resolution (DAR)
Causal analysis and resolution (CAR)
51
5. CMMI
Goals and associated practices in the CMMI
Goal
Associated practices
The requirements are analyzed and Analyze derived requirements systematically to ensure
validated, and a definition of the that they are necessary and sufficient.
required functionality is developed.
Validate requirements to ensure that the resulting product
will perform as intended in the user’s environment, using
multiple techniques as appropriate.
Root causes of defects and other Select the critical defects and other problems for analysis.
problems are systematically
determined.
Perform causal analysis of selected defects and other
problems and propose actions to address them.
The process is institutionalized as a Establish and maintain an organizational policy for
defined process. planning and performing the requirements development
process.
52
5. CMMI
Examples of goals in the CMMI
Goal Process area
Corrective actions are managed to closure Project monitoring and control (specific goal)
when the project’s performance or results
deviate significantly from the plan.
Actual performance and progress of the Project monitoring and control (specific goal)
project are monitored against the project
plan.
The requirements are analyzed and Requirements development (specific goal)
validated, and a definition of the required
functionality is developed.
Root causes of defects and other problems Causal analysis and resolution (specific
are systematically determined. goal)
The process is institutionalized as a defined Generic goal
process.
53
5. CMMI
CMMI assessment
Examines the processes used in an organisation and
assesses their maturity in each process area.
Based on a 6-point scale:
Not performed;
Performed;
Managed;
Defined;
Quantitatively managed;
Optimizing.
54
5. CMMI
The staged CMMI model
Comparable with the software CMM.
Each maturity level has process areas and goals. For
example, the process area associated with the
managed level include:
Requirements management;
Project planning;
Project monitoring and control;
Supplier agreement management;
Measurement and analysis;
Process and product quality assurance.
55
5. CMMI
The CMMI staged maturity model
56
5. CMMI
Institutional practices
Institutions operating at the managed level should
have institutionalised practices that are geared to
standardisation.
Establish and maintain policy for performing the project
management process;
Provide adequate resources for performing the project
management process;
Monitor and control the project planning process;
Review the activities, status and results of the project
planning process.
57
5. CMMI
The continuous CMMI model
This is a finer-grain model that considers individual or
groups of practices and assesses their use.
The maturity assessment is not a single value but is a
set of values showing the organisations maturity in
each area.
The CMMI rates each process area from levels 1 to 5.
The advantage of a continuous approach is that
organisations can pick and choose process areas to
improve according to their local needs.
58
5. CMMI
A process capability profile
59
Key points
The goals of process improvement are higher product quality,
reduced process costs and faster delivery of software.
The principal approaches to process improvement are agile
approaches, geared to reducing process overheads, and
maturity-based approaches based on better process
management and the use of good software engineering practice.
The process improvement cycle involves process measurement,
process analysis and modeling, and process change.
Measurement should be used to answer specific questions
about the software process used. These questions should be
based on organizational improvement goals.
Chapter 26 Process improvement 60
Key points
The CMMI process maturity model is an integrated
process improvement model that supports both
staged and continuous process improvement.
Process improvement in the CMMI model is based on
reaching a set of goals related to good software
engineering practice and describing, standardizing
and controlling the practices used to achieve these
goals.
The CMMI model includes recommended practices
that may be used, but these are not obligatory.
Chapter 26 Process improvement 61
Get documents about "