Tuesday, November 15, 2005

SDLC Model: Prototyping Model

Prototyping has been discussed in the literature as an important approach to early requirements validation. A prototype is an enactable mock-up or model of a software system that enables evaluation of features or functions through user and developer interaction with operational scenarios. Prototyping exposes functional and behavioral aspects of the system as well as implementation considerations, thereby increasing the accuracy of requirements and helping to control their volatility during development.

The requirements of a system or a class of systems are gathered in an evolutionary fashion. Requirements knowledge is never complete, but rather evolves over time as new requirements are identified, existing requirements are expanded, and obsolete requirements are discarded.

There are really two broad categories of prototyping approaches: those that involve the creation of a series of fielded prototypes, and those intent on exploring ideas without resorting to field deployment. The former are most commonly referred to as field or evolutionary prototypes, while the latter go by many names, including rapid, concept, throw- away, experimental, and exploratory prototypes. For convenience, we will refer to these broad categories as evolutionary and concept prototypes respectively.

Concept prototyping is a mechanism for achieving validation prior to commitment. Concept prototyping may be used to validate requirements prior to commitment to specific designs. Similarly, concept prototyping may be used to validate potential designs prior to commitment to specific implementations. In this sense, prototyping as a software development paradigm can be seen as tacit acceptance that requirements are not fully known or understood prior to design and implementation. Concept prototyping can be used as a means to explore new requirements and thus assist in the ongoing evolution of requirements.

Viewed from a different perspective, the entire lifecycle of a product can be seen as a series of increasingly detailed evolutionary prototypes. The evolutionary view of the software lifecycle considers the first delivery to be an initial fielded prototype. Subsequent modifications and enhancements result in delivery of further, more mature prototypes. This process continues until eventual product retirement. Adoption of this view eliminates the arbitrary distinction between developers and maintainers resulting in an important shift in mindset affecting strategies for cost estimation, development approach, and product acquisition.

0 Comments:

Post a Comment

<< Home