The research activities of the new group are presently carried out mainly in two directions:
The whole environment is highly interactive and allows one to "draw" a lesson on a graphical workstation and have most of the implementation done automatically. Another important characteristic of the system is that part of the specification is in natural language. (More information is available)
We are convinced that the combination of a visual representation with natural language leads to a clearer description of software than strictly visual languages would allow. This combination helps in keeping the description at a high level of abstraction, making it more readable by other people. It also helps in saving the designers from having to specify too many details that pertain more to the implementation than to the specification or to the "problem level" design.
Past experience in the domain of visual programming shows that no single visual paradigm can suitably fit all kinds of applications, and that these visual paradigms were most useful when applied to a specific domain and combined with some textual primitives. It is commonly accepted that the expressive power of images is best used when applied to descriptions of a higher level of abstraction than most general purpose programming languages.
In this new project, we want to use our past experience in visual programming to explore the many different visual approaches to software description and development and try to build bridges between the most interesting ones to make them interoperable and complementary. We want to build a software development system that offers many different visual paradigms that can be combined to develop complex applications, each visual formalism taking over where the expressive power of the other one starts to be ineffective. The developers should thus be able to use, for each part of an application, the formalism/paradigm that best fits their needs for that part.
This combination of different formalisms is only possible if an integration mechanism has been put in place to make them interoperable. We are planning on integrating the following formalisms: variants of petri nets, hypertexts, hypermedia, conversational interface and flow of control descriptions (with the graphical scripting formalism we have developed for computer based learning software), conventional graphical user interfaces and visual representation of objects for object-oriented programming.
Papers describing our activities in Visual Programming of courseware are available upon request.
We have also collected General information on Visual Languages and Visual Programming.
During the initial period of research (since April 93), we have been working on the detailed specification of the system and on the requirements and design of a first prototype to be used in experimental activities.
The current version of the system consists basically of a classification system and a retrieval system. The classification system has a knowledge acquisition mechanism that automatically extracts lexical, syntactic and semantic information from software descriptions, and uses this knowledge to create a frame-like internal representation (the indexing unit for the component). User queries are also processed by the classification mechanism. The retrieval system looks for and scores reuse candidates, based on the closeness value among the frames associated to the query and software descriptions in the knowledge base.
We have defined a semantic formalism that establishes the rules to extract information from text and to construct the semantic structures used as indexing units. A language for modeling the semantic structures and a set of generic frames for the knowledge base according to that model have also been defined. Two mechanisms of retrieval are proposed: a major retrieval mechanism, based on similarities of semantic structures, and a complementary mechanism, based on the matching of noun phrases in the semantic structures. The main retrieval mechanism ensures precision while the secondary one increases recall values. Similarity measures have been defined to compute the closeness among single terms, noun phrases and semantic structures.
Initial comparative experiments show excellent retrieval performance, considerably superior to the one exhibited by current keyword retrieval systems.
Several activities are planned for the next period of funding. We plan to experiment with a prototype of the system to evaluate both retrieval effectiveness and correctness of the interpretation process. Further research will be done to increase the capabilities of the system (support for complex software descriptions, support for the customization process, etc.).
Papers describing our activities in software reuse are available upon request.