Thursday, December 31, 2009

Spiral Model Questions

A few years ago, Sun Microsystems decided to develop and market StarOffice, a set of desktop tools that would be comparable to Microsoft’s Office suite of tools but would be targeted for UNIX rather than Windows. At that time, no other major UNIX vendor had developed or was planning to develop such a product.
What process model would you use? What team organization would you use? Briefly justify your answers.


Answer: Given the well-defined requirements and lack of constraints, the Spiral model would be the best choice. You could argue for the waterfall model, although the project is very large and an evolutionary model is probably needed. The incremental model is not needed since there is plenty of time, personnel, and money for the project.
A controlled team organization would be appropriate. The project is quite large and does not require innovation, since Microsoft has already done most of that, so a democratic team organization is not suitable. In contrast, a controlled team organization is probably necessary given the scale of the project.

What are the Strengths of Spiral model?

Spiral model provides early indication of insurmountable risks, without much cost.
Users see the system early because of rapid prototyping tools.
Critical high-risk functions are developed first.
The design does not have to be perfect.
Users can be closely tied to all lifecycle steps.
Early and frequent feedback from users.
Cumulative costs assessed frequently.

What are the weaknesses of Spiral model?

Time spent for evaluating risks too large for small or low-risk projects.
Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive.
The model is complex.
Risk assessment expertise is required.
Spiral may continue indefinitely.
Developers must be reassigned during non-development phase activities.
May be hard to define objective, verifiable milestones that indicate readiness to proceed through the next iteration.

When to use Spiral model?

When creation of a prototype is appropriate.
When costs and risk evaluation is important.
For medium to high-risk projects.
Long-term project commitment unwise because of potential changes to economic priorities.
Users are unsure of their needs.
Requirements are complex.
New product line .
Significant changes are expected (research and exploration).

What major shortcoming of the Waterfall Model does the Spiral Model address?

The Waterfall model provides no means for risk assessment and management during the life cycle.

How does the Spiral Model address the need of accurately determining the software requirements?

The Spiral Model addresses the problem of requirements engineering through the development of prototypes.

How does the Spiral Model handle the need for risk management?

The Spiral Model addresses the need for risk management by performing risk analysis and risk resolution during each spiral of the life cycle.

What are the eight management elements of the Spiral Model?

Objectives, constraints, alternatives, risks, risk resolution, results, plans, and commitment.

How many spirals does the Spiral Model contain?

The exact number of spirals necessary for a given project is flexible and depends on the number of prototypes needed to reach a satisfactory design.

How does the Spiral Model represent maintenance?

Maintenance simply becomes another spiral or phase in the life cycle of the software. Like the previous phase, the maintenance efforts undergo risk assessment to evaluate whether changes are feasible.

Explain how both the waterfall model and the prototyping model can be accommodated in the Spiral process model.

The waterfall model is accommodated where there is a low specification risk and no need for prototyping etc. for risk resolution. The activities in the 2nd quadrant of the spiral model are skipped. The prototyping model is accommodated when the specification phase is limited and the prototyping (risk resolution) phase predominates. The activities in the 3rd quadrant of the spiral model are skipped or reduced in scope.

Which software process model best supports development of applications with successful user interfaces, and why?

Several do. The Spiral Model and any incremental model do. They work because the process allows users to state their initial goals and requirements, all the developers to work ahead a bit (do an initial UI design, e.g.), and then give the users the opportunity to review and rethink what they want.

Describe three ways in which the Spiral process model is superior to the Waterfall model.

Explicit provision for risk analysis and mitigation; explicit provision for replanning of the process, in mid-stream; explicit consideration at all stages of alternative approaches; supports exploratory prototyping. Other answers are also possible.

Also See:
Explain Spiral Model

References:
http://www.cse.scu.edu/~atkinson
http://www.scribd.com/doc/19233546/Software-Development-Life-Cycle
http://courses.cs.vt.edu/csonline/SE/Questions/Spiral
http://www-users.cs.umn.edu/~heimdahl/
http://www.ics.uci.edu/~taylor