Software Processes Flashcards
Structured activities to develop software
- Specification
- Design
- Validation
- Evolution
Waterfall Phases
- Requirements analysis and design
- System and software design
- Implementation and Unit testing
- System testing and Integration
- Operation and Maintenance
Waterfall disadvantage
Little flexibility for change after process is underway.
When is Waterfall used
When requirements are understood and changes are limited.
Evolutionary Model Parts:
- Exploratory Development: work with customers to evolve a final system from requirements.
- Throw away prototyping: understand system requirements, start with poorly understood requirements to clarify needs.
Problems of Evolutionary
- Lack of progress visibility
- Systems often poorly structured
- Special skills may be required
Evolutionary Model Applicability
- For small or medium size interactive systems
- For parts of large systems
- For short lifetime systems
Component Based
Based on systematic reuse (reuse components from existing solutions).
Component Based Process Stages:
- Component analysis
- Requirements Modification
- System design with reuse
- Development and Integration
Process Iteration/Incremental
System requirements will always evolve through course of a project. Incremental delivery focuses on delivering increments (partial functionality) prioritizing user requirements.
Advantages of Incremental Delivery
- Customer value can be derived with each increment.
- Early increments act as prototype to help elicit requirements.
- Lower risk of project failure
- Highest priority system services tend to receive most testing
Extreme Programming
Based on development and delivery of very small increments under functionality. Relies on constant code improvement.
Spiral Development
Process is spiral rather than linear with backtracking. Each loop is a phase in the process. Risks explicitly assessed and resolved.
Spiral Development Sectors
- Objective setting
- Risk assessments and reductions
- Development and validation
- Planning
Software Specification
Process of establishing required services and constraints on system.