|M.Sc Student||Tadmor Sally|
|Subject||A Framework for Interactive Information Systems|
|Department||Department of Computer Science||Supervisors||Professor Eliezer Kantorowitz|
|Professor Roy Friedman|
One of the difficulties in software development regards verification, i.e., checking that the code implements the specification correctly. Verification involves considerable effort and costs. To alleviate this difficulty, we have developed a framework that enables a nearly direct development of code from the natural-language use-case specification. Such code facilitates verification, as the code resembles the natural-language use-case specification.
Current common frameworks provide building blocks for the components of the code. For example, the Java Swing GUI package provides classes for constructing buttons, text-boxes, etc. Such frameworks may therefore be denoted as component-oriented. We introduce a novel kind of framework, which we denote as a specification-oriented framework. Such a framework provides, instead of component building blocks, a set of high-level methods for implementation of the basic actions or tasks of a use-case specification. In our framework, each statement in the natural-language use-case specification usually translates into one or two method calls in the code.
Experimental evaluations of the framework suggest that the novel approach employed in our framework facilitates the code verification process. Furthermore, our framework facilitates the production of prototypes of the information system, such that its usability can be checked at an early stage of the program development process.
The user-interfaces available with the current version of the framework require, however, some improvements. Moreover, the experiments in this study involved some small interactive information systems. Further research should investigate the applicability of our method on large information systems. We expect that our approach of employing high-level specification oriented programming abstractions will also facilitate the more complex verification of large systems.