Software Engineering - Module 1 Revision Sheet
SOFTWARE PROCESS MODELS
1. Waterfall Model
- What: Linear, sequential model.
- When: Fixed, well-known requirements.
- Phases: Requirements -> Design -> Implementation -> Testing -> Deployment -> Maintenance.
2. V-Model
- What: Extension of Waterfall with Verification & Validation.
- When: Safety-critical projects.
- Phases: Requirements -> System Design -> Detailed Design -> Coding (Verification)
Unit Test -> Integration Test -> System Test -> Acceptance Test (Validation).
3. Incremental Model
- What: Build software in increments (pieces).
- When: Early delivery needed, requirements can be modularized.
- Phases: Each increment = Communication -> Planning -> Modeling -> Construction -> Deployment.
4. RAD (Rapid Application Development)
- What: Fast incremental model, heavy user involvement.
- When: Short deadlines, modular systems.
- Phases: Business Modeling -> Data Modeling -> Process Modeling -> Application Generation -> Testing.
5. Prototyping Model
- What: Quick prototype + feedback + refinement.
- When: Requirements unclear or evolving.
- Phases: Communication -> Quick Design -> Prototype -> Feedback -> Refinement (loop).
6. Spiral Model
- What: Iterative + risk-driven development.
- When: Large, high-risk projects (banking, defense).
- Phases: Objectives -> Risk Analysis -> Development/Prototype -> Planning (per loop).
7. Concurrent Development Model
- What: Activities run in parallel, different states.
- When: Projects with overlapping activities & dynamic changes.
- Phases: Activities cycle states -> Inactive -> Under Development -> Awaiting Changes -> Done.
8. Component-Based Development
- What: Build from pre-built components (COTS).
- When: Reusable components available.
- Phases: Identify -> Evaluate -> Architecture -> Integrate -> Test.
9. Formal Methods Model
- What: Mathematical specification & verification.
- When: Safety-critical, mission-critical systems.
- Phases: Specification -> Formal Verification -> Refinement -> Implementation.
10. Unified Process (UP)
- What: Iterative, incremental, object-oriented framework.
- When: Large OO projects with risks.
- Phases: Inception -> Elaboration -> Construction -> Transition.
11. PSP (Personal Software Process)
- What: Individual productivity discipline.
- When: Improving personal quality & productivity.
- Phases: Planning -> High-level Design -> Review -> Development -> Postmortem.
12. TSP (Team Software Process)
- What: Team discipline framework.
- When: Improving team predictability & productivity.
- Phases: Launch -> High-level Design -> Implementation -> Integration -> Postmortem.
AGILE MODELS
13. Extreme Programming (XP)
- What: Agile focused on technical practices.
- When: Small-medium teams, rapidly changing needs.
- Phases: Planning -> Design -> Coding -> Testing.
- Practices: Pair programming, TDD, CI, refactoring.
- Values: Communication, Simplicity, Feedback, Courage, Respect.
14. Scrum
- What: Agile framework for project management.
- When: Medium-large projects, structured delivery.
- Phases: Sprint Planning -> Daily Scrum -> Development -> Sprint Review -> Retrospective.
- Roles: Product Owner, Scrum Master, Development Team.
- Artifacts: Product Backlog, Sprint Backlog, Increment.
15. Kanban
- What: Agile method with visual boards.
- When: Continuous delivery projects.
- Phases: No fixed phases; tasks move To Do -> In Progress -> Done.
- Practices: Visualize workflow, limit WIP, manage flow, feedback loops.
16. Other Agile Frameworks
- ASD: Adaptive Software Development.
- DSDM: Dynamic Systems Development Method.
- FDD: Feature Driven Development.
- LSD: Lean Software Development.
XP vs Scrum
Aspect | XP | Scrum
-----------------------|--------------------------------------|----------------------------
Focus | Technical practices, code quality. | Project mgmt, teamwork.
Core Values | Comm, Simplicity, Feedback, Courage. | Transparency, Adaptation.
Process | Planning -> Design -> Coding -> Test | Sprint cycle (2-4 weeks).
Iterations | Very short (1-2 weeks). | 2-4 weeks.
Customer Role | Always present, part of team. | Represented by Product Owner.
Team Structure | Programmers + customer, less formal. | Scrum Master, PO, Dev Team.
Practices | Pair prog, TDD, CI, refactoring. | Standups, backlog mgmt.
Docs | Minimal, code/tests are artifacts. | Minimal, uses Scrum artifacts.
Emphasis | Technical excellence, rapid change. | Team process & delivery.
Best For | Small-medium teams. | Medium-large teams.