Learning objectives
Download
1 / 24

Learning Objectives - PowerPoint PPT Presentation


  • 67 Views
  • 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

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

PowerPoint Slideshow about ' Learning Objectives' - yoko-moran


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

Steps

Write some code

Fix problems in the code

Think about requirements, design, testing, and maintenance later

Code-driven

Problems

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

Feasibility

Functional

Specifications

Analysis

Detailed Design Specs

Design

Construction

Implementation

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

Client


Spiral model iterative

Risk-driven

(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

Analysis

Conceptualization

Design

Maintenance

Evolution


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

Immature

processes improvised

reactionary

unrealistic estimates

quality compromised to meet schedule

no objective basis for evaluation

inadequate review, testing, etc.

Mature

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


ad