Software Process Models
Software Process Models β A software process model is a structured framework that defines the sequence of activities involved in software development, from requirement analysis to maintenance.
Why Process Models are Needed
- Provide disciplined development approach
- Improve project planning and control
- Reduce risk and cost
- Ensure quality and timely delivery
Major Activities in Any Process Model β
- Requirement Analysis
- System Design
- Implementation (Coding)
- Testing
- Deployment
- Maintenance
GFG Software Developments Life Cycle Models (SLDC)
Types of Software Process Models β
1. Waterfall Model β
Requirement βDesign βImplementation βTesting βDeployment βMaintenance- linear and sequential model
- Each phase must be completed before next starts
- Phases : Requirement β Design β Implementation β Testing β Deployment β Maintenance
- Advantages
- Simple and easy to manage
- Clear documentation
- Disadvantages
- No flexibility
- Late testing
- Not suitable for changing requirements
2. Iterative Waterfall Model β
Requirement β° β | Design | β |Implementation β Testing β Deployment- Enhanced waterfall with feedback paths
- Allows returning to previous phase
- Advantages :
- Error correction possible
- Better than classical waterfall
- Disadvantages :
- Still rigid
- Late delivery of working software
3. Incremental Model
Req β Design β Code β Test β Release (Inc 1)Req β Design β Code β Test β Release (Inc 2)Req β Design β Code β Test β Release (Inc 3)- Software developed in small increments
- Each increment adds functionality
- Advantages
- Early delivery
- Reduced risk
- Customer feedback possible
- Disadvantages
- Requires good planning
- Integration issues
4. Spiral Model
Planning β Evaluation β β Risk Analysis β Engineering β (Next Spiral Loop)- Risk-driven model
- Combines waterfall and prototyping
- Each Loop: Planning β Risk Analysis β Engineering β Evaluation
- Advantages
- Strong risk management
- Suitable for large systems
- Disadvantages
- Complex
- High cost
5. V-Model
Requirement Acceptance Testing β βSystem Design System Testing β βArchitecture Integration Testing β βModule Design Unit Testing βCoding- Verification and Validation focused
- Each development phase has corresponding test phase
- Advantages
- Early test planning
- High reliability
- Disadvantages
- Inflexible
- No early prototype
6. Prototyping Model
Requirement βQuick Design βPrototype βUser Evaluation βRefined Requirement βFinal System- Prototype built to understand requirements
- Types
- Throwaway Prototype
- Evolutionary Prototype
- Advantages
- Clarifies requirements
- User involvement
- Disadvantages
- Poor documentation risk
- Prototype mistaken as final product
7. Agile Model
Plan β Design β Develop β Test β Deploy β β βββββββββββ Feedback ββββββββββββ- Iterative and incremental
- Focus on customer collaboration
- Principles
- Working software over documentation
- Responding to change
- Advantages
- High adaptability
- Continuous feedback
- Disadvantages
- Less documentation
- Needs experienced team
8. RAD (Rapid Application Development)
Requirements Planning βUser Design β Prototyping βConstruction βCutover (Deployment)- Fast development using reusable components
- Advantages
- Short development time
- High productivity
- Disadvantages
- Not suitable for large systems
- Requires skilled developers
9. Big Bang Model
Requirements + Design + Code + Test β Product- No planning
- All resources applied at once
- Advantages
- Simple
- Suitable for small projects
- Disadvantages
- High risk
- Not scalable
Comparison (Exam)
- Waterfall: rigid, document-heavy
- Iterative Waterfall: feedback paths
- Spiral: risk-driven
- Agile: change-driven
- V-Model: testing-centric
One-Line Exam Definitions
Section titled βOne-Line Exam Definitionsβ- Waterfall: Linear sequential model
- Spiral: Risk-based iterative model
- Agile: Flexible, customer-driven model
- Incremental: Functionality delivered in parts