CSS Prepare

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).