“Software Engineering” Chapters For Beginners
Waterfall model
- The waterfall model is a linear and sequential software development model in which each phase must be completed before the next phase begins.
- It is suitable for projects with well-defined requirements.
Waterfall model phases
- Requirement analysis
- System design
- Implementation
- Testing
- Deployment
- Maintenance
Waterfall model key characteristics
- No overlapping phases
- No going back easily
- Documentation-heavy
Waterfall model advantages
- Simple and easy to manage
- Clear milestones
- Good for fixed requirements
Waterfall model disadvantages
- Not flexible
- Late error detection
- Poor for dynamic projects
V-model (verification & validation model)
- The v-model is an extension of the waterfall model where each development phase is associated with a corresponding testing phase.
- Testing is planned in parallel with development.
V-model structure
- Left side → development
- Right side → testing
Left side of v (verification – development phases)
- These are planning and design stages
- Requirements analysis : gather and document user requirements.
- System design : high-level design of the overall system architecture.
- High-level design (hld) : defines modules and their interactions.
- Low-level design (lld) : detailed design of each module.
- Coding (implementation) : actual development of the software.
Right side of v (validation – testing phases)
- Each development phase has a matching test phase:
- Unit testing : low-level design tests individual modules.
- Integration testing : high-level design tests interaction between modules.
- System testing : system design tests the complete system.
- Acceptance testing : requirements analysis ensures system meets user requirements.
V-model advantages
- Early test planning
- Better defect detection
- Higher quality than waterfall
Spiral model
- The spiral model is a risk-driven, iterative software development model that combines elements of design and prototyping in stages.
- Developed by barry boehm.
Each spiral includes
- Planning
- Risk analysis
- Engineering
- Evaluation
Spiral model: Planning
- Identify objectives for that phase.
- Define requirements, alternatives, and constraints.
- Estimate cost, schedule, and resources.
- Basically: what are we going to build in this cycle?
Spiral model: Risk analysis
- Identify possible risks (technical, cost, schedule, performance).
- Analyze their impact.
- Develop strategies to reduce or eliminate risks (e.g., prototypes, simulations).
- This is the most important phase in the spiral model.
Spiral model: Engineering
- Design, develop, and test the product increment.
- Includes coding, integration, and verification.
- This is where the actual development happens.
Spiral model: Evaluation
- Customer reviews the work done.
- Feedback is collected.
- Decide whether to continue, modify, or stop the project.
- Ensures continuous customer involvement.
Spiral model key feature
- Focuses mainly on risk identification and reduction.
Spiral model advantages
- Strong risk management
- Flexible
- Suitable for large projects
Agile model
- The agile model is an iterative and incremental software development approach that focuses on customer collaboration, flexibility, and continuous improvement.
- Based on the agile manifesto (2001).
Core principles
- Customer collaboration
- Responding to change
- Working software over documentation
- Individuals & interactions over processes
Agile model: Scrum
- Scrum is an agile framework that divides development work into small time-boxed iterations called sprints.
Scrum key features
- Sprint: a short, fixed time period (usually 2–4 weeks) in which a working product increment is developed.
- Product backlog: a prioritized list of all features, requirements, and improvements needed in the product.
- Sprint backlog: a list of selected tasks from the product backlog that the team commits to completing during a sprint.
- Daily scrum (daily stand-up): a short 15-minute daily meeting where team members discuss what they did yesterday, what they will do today, and any obstacles.
- Sprint review: meeting held at the end of the sprint to demonstrate the completed work to stakeholders.
- Sprint retrospective: meeting where the team reflects on what went well and what can be improved in the next sprint.
- Increment: a working version of the product delivered at the end of each sprint.
Agile model: scrum roles
- Product owner: represents the customer. Manages and prioritizes the product backlog. Ensures the team works on the most valuable features.
- Scrum master: facilitates scrum practices. Removes obstacles for the team. Ensures the team follows scrum principles.
- Development team: cross-functional group of professionals (developers, testers, designers). Responsible for delivering the product increment. Self-organizing and collaborative.
Agile model: extreme programming (xp)
- Definition: extreme programming (xp) is an agile methodology that emphasizes coding quality, customer satisfaction, and frequent releases.
- Key practices:
- Pair programming: two programmers work together on the same code (one writes, one reviews).
- Test-driven development (tdd)
- Continuous integration
- Supports frequent releases and customer feedback