In this chapter, the design and the development of the code generating tools based on the technologies (described in Chapter XI) are presented. In detail, the chapter describes the development of the tools that manages P-IDM design as a Web application input model (the design does not take care the presence of the process level); also, it describes the tool that considers as input model the P-IDM process design. It is clear that the two designs will be represented using the ontological language OWL (W3C, 2004). In the description of the tool that uses the P-IDM model as input, the main focus is on the page composition (based on the framework tiles) (http://www.apache.org) and thus, the focus is on the final graphical aspect of the generated application. In the description of the tool that uses the P-IDM process, the main focus is on the aspect related to navigational aspect; the navigation is driven by the process and so the tool description is mainly oriented to show the process flow configuration.
Code Generator For Idm Methodology-Overview
The IDM methodology (Bolchini & Paolini, 2006), besides being a conceptual type, allows the designer to specify the model at two levels of detail: the Conceptual IDM (which also serves to describe general aspects in an informal way) and the Logical IDM (which allows the addition of the detailed information to the model).
It is clear that, the more complete and detailed the design, the more accurate the final Web application obtained through code generator will be. In order to understand the behavior of the system in the case where the model of the application to be generated is not at a detailed enough level, it is appropriate to introduce Engelberg’s (Engelberg & Seffah, 2002) classification. This states that, using the level of fidelity (Isensee & Rudd, 1996; Jung & Winter, 1998), the tools and methods of prototyping are divided into three levels:
The tools and methods appropriate for the initial design are found in the low-fidelity level. These tools are very powerful in conducting the initial analysis of the requirement and in helping to conceptualize and to conceive the high-level interfaces. These tools often support raw drafts of the interface either with manual drawings or with graphic tools.
The prototyping tools used after the initial design are found in the average fidelity level. These allow the creation of a more detailed design for verifying the usability of the application. In fact, they enable the definition of detailed information on the navigation, functionality, contents and layout.
In the high-fidelity level the prototyping tools, which enable the creation of a realistic simulation before the final version is produced, are found. Such tools are oriented to the developers, and they are often created for general-purpose development. Due to the effort required, these tools are not usually “rapid” even if the expression RAD (rapid application development) is broadly used in the field.
The code generation environment cannot be strictly classified in any of the levels above since the quality of the produced application is dependent on the quality and the completeness of the design. In fact, it is possible to also produce a prototype when the design is not complete. The developed system presented in the following sections, if during the generation of the prototype finds information missing in the model (for instance the dialogue act of a topic), actives a mechanism of “fall-back” that sets a label to the information place not specified.
The basic idea assumes that if the information is not important in the phase of design, it is not even in the phase of publishing. Typically, to generate a code it is important that the greatest part of the P-IDM design extended with layout design is present, but it is possible to skip the definition of all the details in the L-IDM design. Thanks to the “fall-back,” it is possible to also get a prototype of the Web application during the first phases of the design providing an excellent starting point for discussing the specifications of the application with the buyer.