Software Development Process Model - Part 1
Bài đăng này đã không được cập nhật trong 3 năm
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*
All rights reserved