Major Software Development Methods and Strategies
(Covered in this course)
Model Driven Development:
Basic Description
Models of the software are created at different levels of abstraction
Greater emphasis on architectural models,
with a separation between abstract implementation, independent models, and implementation-specific models
Common Development Issues:
Types of Change
and the problems that they can introduce
All types of change lead to rework, including reanalyzing requirements.
Rework adds extra time and cost to implement new functionality
Common Development Issues:
Reducing the Cost of Rework:
Two Approaches
Change Avoidance(or Anticipation)
Software process includes activities that can anticipate possible changes BEFORE significant rework is required.
Example: Identifying problems early with prototyping
Change Tolerance
Process is designed to be able to change at low cost. Normally involves incremental development.
Prototyping:
What is a Prototype?
Prototype
An initial version of a system, used to demonstrate concepts and try out design options.
Can be used in:
Prototyping:
Two Types of Prototyping
Evolutionary Prototyping
Throw-Away Prototyping
Prototyping:
Evolutionary Prototyping
(summary)
Evolutionary Prototyping
An initial prototype is produced and refined through a number of stages to the final system
Prototyping:
Throw-Away Prototyping
(summary)
Throw-Away Prototyping
A prototype is produced to help discover requirements problems, then discarded.
The actual system is developed using another process.
Prototyping:
Benefits
Prototyping:
Prototype Development Process
Steps and Deliverables
Incremental Delivery:
Pipeline Steps (9)
Initial Steps
Increment Steps (Repeat for each increment)
Deploy Final System
Incremental Delivery:
Advantages
Incremental Delivery:
Problems/Disadvantages