Title: Learning Objectives
1Learning 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
2ISM 5316
- Software Process Models and the CMM
3Software 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
4Problems 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
5Code-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
6Stagewise/Waterfall Models
Feasibility
Functional Specifications
Analysis
Detailed Design Specs
Design
Construction
Implementation
Evaluation/ maintenance
7Difficulties with Waterfall
- Document-driven
- Formal specs may be too much, inaccurate
- Doesnt accommodate
- Parallel or incremental development
- Changing requirements
- Interactive software
- 4GL tools
8Evolutionary and Transform Models
I cant tell you what I want, but Ill know it
when I see it
- Prototyping
- Iterative development
- Expanding operational software incrementally
- Too much like CodeFix
- Lack of planning
- Lack of structure
- Transform Model
- more structured
Client
9Spiral 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
10Steps in Each Cycle of Spiral Model
- Objectives
- Constraints
- Alternatives
- Risk identification
- Risk resolution and results
- Plan for next phase
- (Re)commitment
11Object-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
12Object-Oriented Process
Analysis
Conceptualization
Design
Maintenance
Evolution
13Current Life-cycle Phases
- Engineering
- Inception (idea)
- Elaboration (architecture)
- Production
- Construction (iterations - beta releases)
- Transition (products)
14Capability Maturity Model (CMM)
- Helps organizations improve software processes
- Based on results of assessments of contractors,
industry and govt feedback - Software process assessment
- assess current capabilities
- highlight high-priority areas for improvement
- gain organizational support for improvement
- Based on Jurans Trilogy of quality improvement
- quality planning, control, improvement
- 5 maturity levels
15Software 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
16CMM 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
17CMM 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
18CMM 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
19CMM 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 dont 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
20CMM 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
21CMM 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
22Strengths and Limitations
- Descriptive, normative model of behavior
- Doesnt constrain unique organizational process
needs - Needs to be interpreted, implemented to fit the
context - organizations 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 provides the foundation for the next one
23Difficulties 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
24Benefits 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