Rapid Prototyping using ISETL
18 November 1993
Abstract ISETL is a very high level language in which functions can be implemented quickly and expressively. We used the language ISETL to rapidly build a prototype for an electronic mail system. This prototype is a fully functional version of the mail system. However it lacks the ability to handle many users efficiently. After our prototype was complete, prospective users of the fully implemented version of the mail system used the prototype to request changes and additions to the specification of the final version.
In the software development process one of the most difficult steps is requirements analysis. The systems analyst may not be able to accurately define the requirements of the system just by talking to the users. Conversely the users may not be able to express the requirements, because they are not able to predict all the implications of an automated system or visualize how the system will behave. However, users can usually determine if the systems does what they want, when they see the system. If the users see the system for the first time when it is delivered, it is unlikely the system will meet all the users' requirements. (Yet at this point in the software life cycle, it is most expensive to redesign and modify the system.)
Therefore the systems analyst needs to present a prototype of the system to the users before the system leaves the requirements analysis phase. The prototype is a version of the system capable of performing all the functions on a smaller data set in a manner less user friendly and less optimized than the fully implemented version. Presenting a prototype requires a fully functional version of the system to be constructed quickly and economically. To construct these prototypes, high-level languages such as LISP, PROLOG, and ISETL can be used . They are designed to be expressive and flexible rather than efficient. Expressiveness and flexibility make the prototypes written in these languages easier to construct, modify, and analyze.
In this project, we determined the feasibility of using ISETL as a prototyping language. The first phase of this study determined if prototypes could be constructed quickly enough to be practical with ISETL. We noted the time to learn the language, the time to define a problem in a manner that lends itself to coding in ISETL, and the time to code the prototype in ISETL. The second phase determined if a prototype built using ISETL could be used to enable the users and the analyst to gain further insight into a problem