Department of Electrical and Computer Engineering



MOLHADO: Object-oriented Software Configuration Management

In an integrated development environment (IDE), the ability to manage the evolution of a software system in terms of logical abstractions, compositions, and their interrelations is crucial to successful software development. Molhado is an object-oriented SCM infrastructure, upon which to build object-oriented SCM services in a development environment.

A variety of software development methodologies and frameworks have been introduced to provide developers with systematic approaches for producing high-quality software. These development methods often introduce abstractions and impose different logical structures among them, permitting one to concentrate on problems at some level of generalization without regard to irrelevant low-level details. Also, re-engineering methods often work at the logical level of a software system.

Software development is a dynamic process where engineers constantly modify and refine their systems. As a consequence, everything evolves. Unlike source code, for which the use of a software configuration management (SCM) system is the predominant approach to capturing evolution, approaches to managing evolution of high-level abstractions span a wide range of disconnected alternatives. Many existing SCM systems are file-oriented, which treat a software system as a ``set of files'' in directories on a file system, and stable configurations are defined implicitly as sets of file versions with a certain label ortag. Following a development method, developers usually think and reason in terms of high-level abstractions, compositions and their interrelations. This creates an impedance mismatch between the design and implementation domain (logical level) and the configuration management domain (file level). Developers have to map the versions of high-level logical entities into versions of files in a file system. SCM systems, whose concepts are heavily based on physical structure can become burdensome for ordinary developers partly because design/implementation methods and SCM infrastructures require different mental models.

To bridge that mental gap between software development methods and SCM, it is necessary to have SCM systems that allow users to manage the evolution of a software system in terms of logical abstractions and relationships without worrying about the concrete level of actual file storing and versioning. These systems are referred to as object-oriented SCM systems, in contrast to file-oriented SCM systems. MOLHADO is an SCM infrastructure that was specifically designed to support the development of object-oriented SCM systems.