optional · CSS study notes
Evolutionary Model (2017)
CSS CS Optional — Paper-I, Section-B, Topic V.
🔑 Definition
- Repeated cycles → successively refined, more complete versions each pass.
- Combines prototyping + iterative development.
📌 Two Variants
- Exploratory programming — explore requirements directly with customer, deliver final system. Good for small/manageable requirement sets.
- Throwaway prototyping — build prototype to validate requirements → discard → build real system from scratch.
📌 Advantages
- Early working versions → early feedback
- Well suited to poorly-understood/evolving requirements
📌 Disadvantages
- Process not visible (no fixed intermediate deliverables)
- System often ends up poorly structured
- Needs specialized skills/languages for rapid change
⚠️ MCQ Trap
- Evolutionary = refines the SAME evolving version (one system, repeatedly improved).
- Incremental (see own page) = delivers separate, complete, usable slices added together.
📜 Past-Paper Questions & MCQs (CSS 2016–2026)
2017 · Paper-I · Q4(a) · 8 marks
Q. What factors should be considered when choosing between evolutionary and incremental models? Elucidate the characteristics of Rapid Application Development, Joint Application Development and Agile Software Engineering.
Ans.
- Evolutionary model: a rough version is built and refined through repeated feedback until it becomes the final system. Incremental model: the requirements are known up front, and the system is built and delivered in planned parts (increments).
- Factors for choosing:
- Clarity of requirements: unclear or changing requirements favour evolutionary. Well-understood ones favour incremental.
- Need for early delivery: incremental gives working parts early on a fixed plan.
- Risk and uncertainty: high technical or user-interface risk favours evolutionary prototypes.
- System size and architecture: large, stable architectures suit incremental.
- Customer availability for feedback, team experience, and budget and schedule control (incremental is easier to plan).
- RAD: very short cycles (60–90 days), prototyping, reusable components, a small team working in parallel, and heavy user involvement.
- JAD: structured workshops where users, analysts and developers jointly define requirements and design, led by a facilitator, which reduces misunderstanding.
- Agile: short iterations (sprints), working software delivered frequently, customer collaboration, welcoming change, small self-organising teams, and minimal documentation (Agile Manifesto).