Technical Report MSC-2006-09

Title: Specification-Oriented Construction of Web Information Systems
Authors: Alexander Lyakas
Supervisors: Eliezer Kantorowitz
Abstract: In order to reduce the program development costs, frameworks of ready-made software modules are often employed. In the traditional object-oriented (OO) approach, these modules are designed as abstractions of the objects of the application domain. This study investigates the feasibility of the specification oriented (SO) approach for framework design. Following this approach, introduced by Kantorowitz and Tadmor, the modules of the framework are designed to enable a direct coding of a use-case specification. It is expected that the produced code will be “close” to the specification, which should facilitate verifying that the code implements the specification precisely. One of the goals of the SO approach is thus to facilitate code verification. Kantorowitz and Tadmor compared code of small, stand-alone information systems, produced utilizing a traditional OO framework to code produced using a framework developed by the SO approach. That early study suggested that the SO approach facilitates code verification, as was expected. In addition, the SO approach required significantly less code than the traditional OO approach. The goals of the current study were to attempt to achieve a higher level of similarity between the specifications and the code. For this purpose we developed an experimental framework called WebSI (Web Simple Interfacing). WebSI was designed to enable the manufacturing of Web-based, interactive, multi-user information systems. WebSI enables a direct manual translation of English language use-case specifications of such systems into Java code. In order to make the code similar to use-case specifications, we designed WebSI to implement some of the abstractions employed in the use-case specifications. It was assumed that the essence of these abstractions is that an information system is modelled solely by the flow and processing of data. The components of WebSI, therefore, attempt to hide code that is not directly related to the data flow and processing. WebSI hides the code for the construction of the user interface (UI), database access code and Web-related technicalities. The result of these high-level abstractions is thatWebSI services are declarative rather than operative. The WebSI programmer specifies what is the desired functionality, e.g., selecting a single item out of a set of items, rather than how this functionality should be implemented. The implementation of a declarative WebSI service is accomplished by a WebSI component, called the interaction style (IS). A particular IS may, for example, implement the item selection by a combo box, while another IS may implement it by a set of radio buttons. Exchanging the employed IS with an alternative one is fast and requires no recompilation of the use-case implementation code. The programmer may experiment with different IS’s and select the one that produces the most appropriate UI. WebSI IS’s are not application-dependent and, therefore, may be reused in different applications. Developing a new IS from scratch, may, however, be quite labor-intensive. WebSI comes with a repository of ready-made IS’s. Employing such a ready-made IS saves the UI development effort and shortens the time required to deliver an application. Students used WebSI for the development of eleven Web-based information systems. In one case, the students estimated that WebSI saved about 30% of the development effort, compared to the traditional OO approach. One of the systems was constructed to support the needs of a real Web community; this system was tested by real users. An unexpected result was that the UI’s produced by WebSI in these student projects seemed to have a satisfactory usability. This promising observation calls for a further research, in order to map the applications, in which our technology can produce acceptable UI’s. Students that employed WebSI observed that the structure of the produced code was easy to understand and that it was easy to trace the code related to each use case. We believe, therefore, that their code was relatively easy to verify. We believe also that the high-level WebSI abstractions enabled the students to better focus on the essence of their applications, rather than on technicalities, and helped producing quality systems.
CopyrightThe above paper is copyright by the Technion, Author(s), or others. Please contact the author(s) for more information

Remark: Any link to this technical report should be to this page (, rather than to the URL of the PDF files directly. The latter URLs may change without notice.

To the list of the MSC technical reports of 2006
To the main CS technical reports page

Computer science department, Technion