Molhado Software Configuration Management Infrastructure

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.

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
via
built-in modules, Molhado can minimize developers' effort in building
versioning and SCM services for objects in these environments.

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.

Application of the approach

Based on the system model, we have built a library of commonly used
object types and associated editors
including Java classes, Java programs with embedded multimedia documentation,
documentation in XML, HTML, Scalable Vector Graphics (SVG). Editors
are modified from the SC environment.
Image, audio, and object files are considered to have no internal
structure for the versioning purpose. Facilities are provided to import
and export components (stored in our binary format) from and to corresponding
external formats at any version.

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: