16
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management Five process maturity levels are defined Each maturity level has its associated key process areas (KPAs) Level 1: Initial Level Everything is done on an ad hoc basis; few processes are defined Unpredictable - success depends on individual effort Capability is a characteristic of the individuals, not of the organization. The majority of software organizations are Level 1 organization June 7, 1999

Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Embed Size (px)

Citation preview

Page 1: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Capability Maturity Models

• Software Engineering Institute (supported by DoD)

• The problems of software development are mainly caused by poor process management

• Five process maturity levels are defined

• Each maturity level has its associated key process areas (KPAs)

• Level 1: Initial Level

Everything is done on an ad hoc basis; few processes are defined

Unpredictable - success depends on individual effort

Capability is a characteristic of the individuals, not of the organization.

The majority of software organizations are Level 1 organization

June 7, 1999

Page 2: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Capability Maturity Models (2)

• Level 2: Repeatable

Basic project management processes are established to track cost and schedule (measurements)

The necessary process discipline is in place to repeat earlier success on similar projects

Processes may differ among projects in a Level 2 organization

KPAs

• Software configuration management

• Software quality assurance

• Software subcontract management

• Software project tracking and oversight

• Software project planning

• Requirements management

Page 3: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Capability Maturity Models (3)

• Level 3: Defined

The software process for both management and engineering activities is documented, standardized, and integrated into an organization-wide software process

Projects tailor the organization’s standard software process to develop their own defined software process, which accounts for the unique characteristics of the project. (Project Defined Software Process)

KPAs

• Peer review

• Intergroup coordination

• Software product engineering

• Integrated software management

• Training program

• Organization process definition

• Organization process focus

Page 4: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Capability Maturity Models (4)

• Level 4: Managed

The organization sets quantitative quality goals for both software products and processes.

Quality and productivity are continuously measured

An organization-wide software process database is used to collect and analyze the data available form the projects’ defined software process

Corrective actions are taken when there are unacceptable deviations from the goal

KPAs

• Software quality management

• Quantitative process management

Page 5: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Capability Maturity Models (5)

• Level 5: Optimizing

Focused on continuous process improvement

Cost/benefit analyses of new technologies and proposed changes to the organization’s software process.

Innovations that exploit the best software engineering practices are identified and transferred throughout the organization

KPAs

• Process change management

• Technology change management

• Defect prevention

Page 6: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Process Capability and the Prediction of Performance

•Figure 2.2 from the CMM handout

•Software process is the way we produce software. It incorporates the software life-cycle model, the tools we use and, most important of all, the individuals building the software.

Page 7: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Chapter 3: Software Life-Cycle Models

• The series of steps through which the product progresses is called the life-cycle model

• Build-and-fix model

• Waterfall model (most commonly used)

• Rapid prototyping model (most commonly used)

• Incremental model

• Synchronize-and-stabilize (or daily build) model (Microsoft)

• Spiral model (Boehm)

• Object-oriented Life-cycle models Fountain (Henderson-Sellers), Baseball (Coad), and others

Page 8: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Build-and-Fix Model

• Figure 3.1

• No specifications and design

• Build (implement) the product and rework the product as many times as necessary to satisfy the client

• Strength and Weakness

Work well on small programs

High rework cost

Maintenance is difficult (without specifications and design documents)

Page 9: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Waterfall Model

• Waterfall model (Royce, 1970) (Figure 3.2)

• A critical point regarding the waterfall model is that no phase is complete until the documentation for that phase has been completed.

• Strength

Enforced disciplined approach

• Documentation provided (documentation-driven model)

• The products of each phase being carefully checked by SQA

• Inherent in every phase of the waterfall model is testing

• Weakness

In general, specification documents are long, detailed, and hard to read

The first time that the client sees a working product is only after the entire product has been coded

Page 10: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Rapid Prototyping Model

• A rapid prototype is a working model that is functionally equivalent to a subset of the product

• Figure 3.3

• Build a rapid prototype and let the client or end-users interact with the rapid prototype and experiment with it; specification follows

• Strength

The feedback loops of the Waterfall model are less likely to be needed in the rapid prototyping model

• the prototype has been “validated” through interaction with the client

• Design teams can gain insights from the rapid prototype

• Weakness?

Page 11: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Incremental Model

• The product is designed, implemented, integrated, and tested as a series of incremental “builds”

• Each build consists of code pieces from various modules interacting together to provide a specific functionality capability

• Strength

Early delivery of “useful” and “usable” products to the client

Allow time for the client to learn and adjust to the new product

The client can stop the development of the product at any time

Requirements change can be incorporated in later builds (releases)

• Weakness

Each additional build has to be incorporated into the existing structure without destroying what has been built to date -- success relies on product has an “open architecture”

Project control becomes more difficult

Page 12: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Synchronize-and-Stabilize Model

• Prioritized features

• Specification

• Divide the set of features into three or four builds

• Each build is carried out by a number of small teams (six to eight people) working in parallel

• At the end of each day all the teams synchronize (put together the partially completed components and test the resulting product (daily build)

• Stabilization is performed at the end of each build (milestone); the contents of the build is frozen

Page 13: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Synchronize-and-Stabilize Model (2)

• Advantages

Repeated synchronization ensures that the various components always work together (I.e., always has something working to ship)

Early insight into the operation of the product help revise and refine requirements

Page 14: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Spiral Model

• Software development involves unavoidable risks

The delivered product does not satisfy client’s real needs

Key personnel resigns while the development is still in progress

Essential difference between small scale product and large scale product.

• Use “prototyping” as a risk reduction mechanism

• Figures 3.6, 3.7, and 3.8

• Strength and Weakness

The iterative framework realistically reflects the real world (software evolves)

Risk-driven: demands considerable risk assessment expertise

Suitable for large-scale software development

Project termination legal issues

Page 15: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Object-Oriented Life-Cycle Models

• Fountain Model (Figure 3.9)

• Undisciplined form of software development

• A better way to proceed is to have as an overall objective a linear process as well as appreciate the realities of the OO paradigm concerning the features as frequent iteration and refinements.

• “Iteration” is an intrinsic property of software production in general and the OO paradigm in particular

Page 16: Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management

Comparison of Life-Cycle Models

•Figure 3.10