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

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Prescriptive Process models
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
Software Life-Cycle Models
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Software Process Models
More CMM Part Two : Details.
1 Brief Descriptions of CMM KPAs CEN 6070 Summer 2004.
Chapter 2 The Software Process
Software Life Cycles ECE 417/617: Elements of Software Engineering
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Computer Engineering 203 R Smith Process/Plan Model 7/ Development Process Models Development Process Models are different ways to look at the processes.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Capability Maturity Model
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
N By: Md Rezaul Huda Reza n
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
J. R. Burns, Texas Tech University Capability Maturity Model -- CMM n Developed by the Software Engineering Institute (SEI) in 1989 –SEI is a spinoff.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 31 Slide 1 Process Improvement u Understanding, Modelling and Improving the Software Process.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Lecture 1 Introduction to Software Engineering
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Software Engineering Lecture # 17
Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Georgia Institute of Technology CS 4320 Fall 2003.
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
SWEN 5130 Requirements Engineering 1 Dr Jim Helm SWEN 5130 Requirements Engineering Requirements Management Under the CMM.
CMMI. 1.Initial - The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
SOFTWARE LIFE-CYCLE MODELS
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Page 1 The Capability Maturity Model (CMM) distinguishes between immature and mature software organizations. Immature software organizations are typically.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
COMP 6710 Course NotesSlide 3-0 Auburn University Computer Science and Software Engineering Course Notes Set 3: Software Process Maturity Computer Science.
Software Engineering Zhang Shuang
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Capability Maturity Model. CS460 - Senior Design Project I (AY2004)2 Immature Organisations Software processes are often rigorously followed. Organisation.
Systems Development Life Cycle
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Capability Maturity Model. What is CMM? n CMM: Capability Maturity Model n Developed by the Software Engineering Institute of the Carnegie Mellon University.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
CS4311 Spring 2011 Process Improvement Dr
Software Process Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Chapter 2 – Software Processes
Software Process Models
Software Engineering Lecture 16.
Software Engineering I
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

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 (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

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

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

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

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.

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

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)

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

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?

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

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

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

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

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

Comparison of Life-Cycle Models Figure 3.10