|Department of Electrical and Computer Engineering|
MOLHADO is an SCM infrastructure that was specifically designed to support the development of object-oriented SCM systems. The key point of Molhado is its object-oriented approach to SCM in which all system objects are versioned and persistent.
New object types are defined based on a representation model in which a version model is built into a primitive data model. This approach facilitates versioning for logical objects since their internal properties and logical structures are visible to the version model.
An extensible, logical, and object-oriented system model provides a framework for developers to model a software system (according to any particular development paradigm), in terms of logical objects and their relations at different levels of abstraction and granularity. With the Molhado editor, developers can define new types of objects as normal Java classes inherited from basic entities in Molhado's system model, and code to handle versioning and storing for objects will be automatically inserted.
To support versioning for structured objects, a structure versioning infrastructure including fine-grained versioning algorithms for trees and directed graphs has been developed on top of the representation model.
Since working with logical objects, each of them requires the use
of specialized tools such as editors for those objects. To address
this problem, Molhado also provides a simple pluggable architecture
that enables the integration of a resulting SCM system and specialized
tools. The result of this integration is an SCM-centered development
environment, where the SCM system is the heart of the environment
and every changes to logical objects and structures during the development
process will be recorded. By maximizing the reuse of SCM infrastructures
In the Molhado product versioning approach, a version is global across entire project, rather than being a particular state of an artifact. That is, all system objects are persistent and versioned in a global version space of a software project. This product versioning choice enables an infrastructure for managing configurations among any objects of new types with a minimum requirement of code from developers. Molhado's transaction supports are all GUI-based.
The system model is also enhanced by a versioned hypermedia infrastructure, which manages the evolution of fine-grained links among objects separately from object contents.
Application of the approach
Based on the system model, we have built a library of commonly used
object types and associated editors
All components in Molhado are versioned at both coarse- and fine-grained manners.
Structural comparison tools have been developed.
To produce a SCM-centered environment, all developers need to do is to implement new object types and associated tools, while reusing all other Molhado's modules described above. To demonstrate the use of Molhado, we have built four prototypes of object-oriented SCM systems and associated SCM-centered development environments, accommodating different development frameworks. Although none of these systems are fully functional as real-world development environments, they have advantages and illustrate the key benefit of Molhado: the reduction in developers' effort. These four environments share Molhado's infrastructure and the library of common object types and associated editors. Each of them has some specialized object types and associated editors. For example, MolhadoArch has architectural objects and the architecture editor. The prototypes are: