Software Processes Flashcards
(34 cards)
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.
Requirements Engineering Process:
- Feasibility Study
- Requirements elicitation and analysis
- Requirements Specification
- Requirements Validation
Software Design and Implementation
Process of converting system specs into executable system.
System design realizes specification and implementation translates it to executable.
Design Process
- Architectural Design
- Abstract Specification
- Interface Design
- Component Design
- Data Structure Design
- Algorithm Design
Structured Method
Systematic approach to developing a software design. Uses graphic models such as:
- Object Graph
- Sequence Model
- State Transition Model
- Structural Model
- Data Flow Model
Debugging
Translating design into program and removing errors. No generic process. Use testing.
Validation
Show that system conforms to specs and meets user requirements. Includes testing through test cases derived from real data.
Testing Stages:
- Component or Unit Testing
- System Testing
- Acceptance Testing
Component/Unit Testing
Individual Components tested, may be functions or objects.
System Testing
Testing of the system as a whole. Test emergent properties