learning objectives n.
Skip this Video
Download Presentation
Learning Objectives

Loading in 2 Seconds...

play fullscreen
1 / 24

Learning Objectives - PowerPoint PPT Presentation

  • Uploaded on

Learning Objectives. You should be able to: Describe the evolution of software process models Explain the features of each model, I.e., how each improves on the previous model Discuss the motivation for the CMM, e.g., its relationship to software engineering and quality improvement

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Learning Objectives' - yoko-moran

Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
learning objectives
Learning Objectives

You should be able to:

  • Describe the evolution of software process models
  • Explain the features of each model, I.e., how each improves on the previous model
  • Discuss the motivation for the CMM, e.g., its relationship to software engineering and quality improvement
  • Compare immature and mature software organizations
  • List and describe the 5 CMM maturity levels
  • Discuss benefits and difficulties in implementing the CMM
ism 5316

ISM 5316

Software Process Models and the CMM

software process models
Software Process Models
  • Purpose of software process models:
    • determine order of stages
      • What shall we do next?
    • establish transition criteria from one stage to the next
      • How long shall we continue to do it?
  • Model vs. method
  • Process vs. product
problems with software development processes
Problems with Software Development Processes
  • Late, over-budget, chaotic, undisciplined
  • Poor quality software products
  • Best results due to individual heroic efforts, not mature process
  • No consistent long-term productivity
  • Difficult to repeat best results
  • Larger, more complex projects need a shift from technical to management focus
  • $$ spent on software increases 12+% per year
  • Increasing demand for added functionality
code and fix model

Write some code

Fix problems in the code

Think about requirements, design, testing, and maintenance later



Increasingly poorly structured code

Increasingly expensive to change and fix

Poor match to users’ needs, thus increasing the need for changing and fixing

Code-and-Fix Model
stagewise waterfall models
Stagewise/Waterfall Models





Detailed Design Specs




Evaluation/ maintenance

difficulties with waterfall
Difficulties with Waterfall
  • Document-driven
    • Formal specs may be too much, inaccurate
  • Doesn’t accommodate:
    • Parallel or incremental development
    • Changing requirements
    • Interactive software
    • 4GL tools
evolutionary and transform models
Evolutionary and Transform Models
  • “I can’t tell you what I want, but I’ll know it when I see it”
  • Prototyping
    • Iterative development
    • Expanding operational software incrementally
    • Too much like Code&Fix
    • Lack of planning
    • Lack of structure
  • Transform Model
    • more structured


spiral model iterative

(versus document-driven or code-driven)

Evolutionary and flexible

Iterative enhancement

Prototyping = risk reduction

Specifications not uniform, exhaustive, or formal = less time

Focuses early attention on reuse

Incorporates software quality objectives

Spiral Model (Iterative)
steps in each cycle of spiral model
Steps in Each Cycle of Spiral Model
  • Objectives
  • Constraints
  • Alternatives
  • Risk identification
  • Risk resolution and results
  • Plan for next phase
  • (Re)commitment
object oriented process model
Object-Oriented Process Model
  • Establish core requirements: Conceptualization
    • Proof of concept (risk)
  • Develop a model of desired behavior: Analysis
    • develop common vocabulary
  • Create an architecture: Design
    • policies for implementation
  • Evolve the implementation: Evolution
    • refine architecture
  • Manage postdelivery evolution: Maintenance
    • continued evolution based on new requirements
object oriented process
Object-Oriented Process






current life cycle phases
Current Life-cycle Phases
  • Engineering
    • Inception (idea)
    • Elaboration (architecture)
  • Production
    • Construction (iterations - beta releases)
    • Transition (products)
capability maturity model cmm
Capability Maturity Model (CMM)
  • Helps organizations improve software processes
  • Based on results of assessments of contractors, industry and gov’t feedback
  • Software process assessment
    • assess current capabilities
    • highlight high-priority areas for improvement
    • gain organizational support for improvement
  • Based on Juran’s Trilogy of quality improvement
    • quality planning, control, improvement
  • 5 maturity levels
software organization maturity

processes improvised


unrealistic estimates

quality compromised to meet schedule

no objective basis for evaluation

inadequate review, testing, etc.


standard, documented processes

known, used, and learned

organization-wide ability to manage processes

continuous process improvement

clear roles and responsibilities

managers monitor product quality and customer satisfaction

realistic schedules and budgets based on historical data

Software Organization Maturity
cmm definitions
CMM Definitions
  • Software process
    • Activities, methods, practices, and transformations used by people to develop and maintain software products
  • Capability
    • Range of expected results achieved by a software process
  • Performance
    • Actual results achieved by a software process
  • Maturity
    • Extent to which a software process is explicitly defined, managed, controlled, effective, and consistent
cmm level 1 initial
CMM Level 1: Initial
  • Unstable, chaotic software processes
  • Poor planning undermines good software engineering practices
  • Process capability is unpredictable
  • Performance depends on individual capabilities, not repeatable
  • Procedures are abandoned in crises
  • Lack understanding of importance of planning, design, reviews, testing
cmm level 2 repeatable
CMM Level 2: Repeatable
  • Management vs. technical focus
  • PM policies and procedures are established, PM standards are defined and enforced
  • Planning is based on previous experiences
    • time, cost estimation
  • Effective processes are:
    • practiced, documented, enforced, trained, measured
  • Objective: Basic management controls
cmm level 3 defined
CMM Level 3: Defined
  • Software processes, both project management and software engineering, are standardized and documented
  • Organization-wide process definition and training
  • Projects can tailor processes to their unique needs
    • processes empower but don’t constrain
  • Well-defined, consistent processes, have:
    • readiness criteria, inputs, outputs
    • performance standards, completion criteria, verification
  • Software Engineering process group established
  • Common organizational understanding of process
    • activities, roles, responsibilities
cmm level 4 managed
CMM Level 4: Managed
  • Quantitative measures of quality
    • products and processes
  • Organization-wide process database for analysis and as basis for measurement
  • Narrow variation in process performance
  • Risk assessment and management
  • Predictable capability
cmm level 5 optimizing
CMM Level 5: Optimizing
  • Organization-wide focus on continuous improvement
    • incremental improvement
    • improvement by adoption & transfer of innovations
  • Goal is defect prevention
    • analyze defects to determine causes
  • Lessons learned transferred to future projects
  • Emulates statistical process control in manufacturing systems
strengths and limitations
Strengths and Limitations
  • Descriptive, normative model of behavior
  • Doesn’t constrain unique organizational process needs
  • Needs to be interpreted, implemented to fit the context
    • organization’s strategic objectives, culture, structure, systems
  • Assumes other organizational change processes in place
  • Takes 1+ years to move from one level to the next
  • Levels should not be skipped
    • each providesthefoundation for the next one
difficulties in improving software processes
Difficulties in Improving Software Processes
  • Lack of consensus between managers and developers about how to improve
  • Focus on management vs. engineering
    • management process harder to define
  • Requires time - no quick fix
  • Must be done one level at a time
  • Requires culture change
  • Requires organization-wide commitment
  • Scarcity of skilled personnel
benefits of cmm
Benefits of CMM
  • Visibility of software process to management
  • Predictable performance
    • time and cost estimation
    • decreases differences in targeted/actual results and variability of results
  • Better control over new technologies and applications
  • More efficient communication
    • concise, common, quantitative terms
  • Disciplined change as a way of life