Introducing Control and Structure in Software Prototyping - Rahim, Md. Mahbubur (1992)
Software prototyping is emerging as an attractive software development paradigm in which a series of executable prototypes are constructed and users are encouraged to exercise with such prototypes in a live environment in order to solicit their overall requirements. In spite of these benefits, prototyping is not free from pitfalls. A major problem of software prototyping is the lack of explicit guidelines to control prototype iterations which tend to continue infinitely in a volatile environment. The problem is further aggravated by the unavailability of a suitable framework, within which to develop prototype systems in a manageable and flexible manner. Therefore, current practice of prototyping lacks in discipline. This study is directed to address these critical issues of prototyping. The primary goal is to develop a strategy to control and to suggest a framework to manage software prototyping. A scheme called 'User satisfaction Method' which relates the degree of user satisfaction with the prototype's capability in clarifying user requirements is developed that provides rationale guidelines in deciding when to cease prototype iterations. To complement this scheme, a framework for structured prototyping, which is called 'State-Structured Transition' model is also developed. The framework considers each prototype 'version' as a 'state' and suggests that the transitions from one state to another need to be performed using structured principles. In order to verify the applicability of such a framework and scheme, a case study has been undertaken. The results obtained confirm that 'User Satisfaction Scheme' can be adopted as a surrogate to control prototyping process. The research findings further establish that the framework of structured prototyping ensures smooth transition from one prototype version to another. Therefore, the 'User Satisfaction Scheme' should be adopted in conjunction with the framework of 'Structured Prototyping' in order to successfully control and manage software prototyping.