by Michele Missikoff
The Mosaico environment has been conceived to support the design, conceptual modeling, and rapid prototyping of data intensive applications based on Object-Oriented Databases (OODBs). Mosaico supports the designer in four main activities related to the exploratory prototyping of complex OODB applications:
OODB Application Specification
In this area Mosaico supports the designer in the process of analysing the requirements and constructing the specifications of an application, using the specification language TQL++. An application is specified by defining a set of types and a set of associated actions. Types can be defined from scratch or imported (and possibly adjusted) from type libraries. New types can be inserted in type libraries for future reuse. Type and action definitions form the conceptual model of the Object-Oriented application.
OODB Application Verification
The formal nature of TQL++ permits the semantic verificaton of the specification of an application. Mosaico processes the specification in order to identify incorrect descriptions, such as incomplete, inconsistent, or unsafe assertions. For this purpose, the specification is first translated into an internal (logical) format and theorem proving techniques are then employed.
When the application has been specified and statically verified, the corresponding conceptual model is transformed into executable code that implements a prototype of the application. To actually run the prototype, a few objects must generally be loaded. Mosaico thus supplies a language, Lobster, for the definition of the objects and for the initial load of a test database.
Query processing tool
In addition to predefined transactions, coded into the application, the object database can be queried interactively. One key feature of Mosaico is that the query functions are performed by using the same language as that employed for the Data Definition: TQL++. In essence, querying is performed by defining new query-types, the system then constructs the class of all the objects that satisfy the query-type, *i.e. the answer class.
The main innovative aspects of Mosaico are represented by the Object-Oriented conceptual language TQL++ and by the set of functionalities that the system offers to support the design of an Object-Oriented database application. The language is characterized by all the main features of Object-Oriented technology (such as typing, inheritance, object identity, message passing), but avoids all the technical details required by existing development languages. The system combines two advanced features of environments for supporting the design activity: formal specification and rapid prototyping.
The Architecture of Mosaico
A first prototype of the environment has been developed on a SUN workstation, using BIM-Prolog. Mosaico has been already tested in a complex application for raiway traffic management. A version of the software is available for academic use.