12/08/2018, 16:06
Software Development Process Model - Part 1
Software Life Cycle Phases Requirements, analysis, and design phase. System design phase. Program design phase. Program implementation phase. Unit testing phase. Integration testing phase. System testing phase. System delivery. Maintenance. The software process A structured ...
Software Life Cycle Phases
- Requirements, analysis, and design phase.
- System design phase.
- Program design phase.
- Program implementation phase.
- Unit testing phase.
- Integration testing phase.
- System testing phase.
- System delivery.
- Maintenance.
The software process
- A structured set of activities required to develop a software system.
- Specification
- Design
- Validation
- Evolution
- A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
Generic software process models
- The waterfall or linear sequential model
- Separate and distinct phases of specification and development
- Prototype model
- Requirements are not clear
- Rapid Application Development (RAD) model
- High speed adaptation of linear sequential model
Waterfall model
Phases:
- Requirements analysis and definition
- System and software design
- Implementation and unit testing
- Integration and system testing
- Operation and maintenance
- The drawback of the waterfall model is the difficulty of accommodating change after the process is underway
Problems
- Inflexible partitioning of the project into distinct stages
- This makes it difficult to respond to changing customer requirements
- Therefore, this model is only appropriate when the requirements are well-understood
Prototyping Model
Prototyping Model:
- Requirements are not clear
- Iteration occurs as the prototype is tuned to satisfy the needs of the customer
- Prototype serves as a mechanism for identifying software requirements
Evolutionary development
Evolutionary development:
- Exploratory development
- Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements
- Throw-away prototyping
- Objective is to understand the system requirements. Should start with poorly understood requirements
Problems:
- Lack of process visibility
- Systems are often poorly structured
- Special skills (e.g. in languages for rapid prototyping) may be required
Applicability:
- For small or medium-size interactive systems
- For parts of large systems (e.g. the user interface)
- For short-lifetime systems
Process iteration
- System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems.
- Iteration can be applied to any of the generic process models.
- Two (related) approaches
- Incremental development
- Spiral development
**Reference:** *Software Engineering A Practitioner's Approach (7th Ed.) ~ Roger S. Pressman*