Clarification on Spiral Model Steps

development-processiterative-developmentmodel

Here's the representation of commonly seen Spiral Model:

enter image description here

From what it has been written in book and articles that I have read that in every iteration, the four steps are carried out in a loop:

  • Determine objectives/ Plan
  • Risk Analysis
  • Development / Code
  • Evaluation for next phase

But what are the sub-steps in each spiral? Almost no article gives me any information on them.

So, suppose starting from the first spiral.

  • Reviewing is done.
  • Risk Analysis is done and prototype is produced
  • Now in the third phase where coding is supposed to be done it says "Concept of Operation" (WTH?).

Only the last spiral (fourth one) has the design, code, test part. I thought coding is done in every spiral i.e. development and testing. This is so confusing me.

Does anyone know what this spiral model is about?

Best Answer

The spiral software development process model is similar in structure to the waterfall model in that it follows a general flow:

Requirements -> Design -> Implementation -> Verification

That's pretty much what you see in the bottom right quadrant of the spiral diagram above. The difference is the spiral has a focus on risk and it also prescribes review and planning at each iteration of the spiral.

Concept of Operations is a pre-requirements document. It's pretty much a description of the software product before requirements are elicited. "S/W Requirements" refers to a formal specification of software requirements like a software requirements specification (SRS). Requirement validation is essentially testing for your requirements document to make sure that requirements are complete, unambiguous, verifiable, etc. "Product design" is architecture and high level design of the system. "Design V&V" is validation and verification of the product design.

Only the last spiral (fourth one) has the design, code, test part. I thought coding is done in every spiral i.e. development and testing. This is so confusing me.

Coding (or "prototyping") is done in each iteration of the sprial on the prototype (see the top right quadrant). In the fourth iteration when production coding begins, the prototype may be thrown out. The production code is written in the fourth iteration. It's not clear to me if the model addresses maintenance releases after the fourth iteration.

Although the sprial has "iterations" it's completely different from an iterative or incremental model where design, development, and testing is done in a cycle until the product is finished.

Related Topic