MECASP - An Environment for Software Maintenance and Adaptation
by Elaine Isnard, Enrique Perez and Alexandra Galatescu
MECASP is a development environment dedicated to the maintenance, adaptation and follow-up of upgrades for heterogeneous software and data structures (built with Java, relational database management systems, tools for building graphical interfaces, etc). It can further integrate and manage other types of applications and structures, including C++, VB, CORBA, EJB, .NET etc. It enables these composite applications to be diffused more easily in ASP mode, but its use is not limited to the ASP market.
MECASP (Maintenance and improvement of component-based applications diffused in ASP mode) resulted from an IST European project, which was completed in December 2003. The IST consortium that developed MECASP was composed of Prologue Software (Paris, France), Virtual Desk (Madrid, Spain) and the National Institute for R&D in Informatics (Bucharest, Romania). MECASP relies on an open meta-model and uses new technologies (XML). It is a portable environment (fully written in Java) with a client-server architecture, relying on a free open-source infrastructure (composed of Apache server, MySQL, Castor, Slide, XML:DB API, Xalan etc). The client interface is through a specific browser.
MECASP overcomes the limits of the existing tools for the integration and maintenance of software/data structures, ie version management tools like CVS. The most important limits of these tools are:
- they deal with the versioning of text files only
- they rely only on a diff-like comparison of the source-file versions
- they have a primitive mechanism for tracking and merging the changes.
A database, for instance, is treated as a binary file, without dealing with its schema and the changes on it from one database version to another.
Three features of MECASP differentiate it from existing tools for software maintenance:
- configuration and maintenance of heterogeneous software, based on the XML modelling of the software and data structures
- (semi)-automatic and semantic merging of versions for heterogeneous non-text objects and applications, relying on rule-based decisions to solve conflicts and inconsistencies
- installation of new versions of the software by installing the changes only.
Instead of merging the versions of the physical application (as other tools do), MECASP implements an algorithm for merging the XML models that define these versions. This algorithm relies on the XML customised definitions of the changed actions, existing in each version of the application. These change actions include both standard actions (like 'create', 'delete', 'update' and 'move' objects or properties) and non-standard actions (like 'compile' or 'search and replace').
The MECASP merger overcomes the limits of the existing tools, by the semantic interpretation of change actions. In the delta-like files of the existing version managers (files that contain the differences between two versions of the same application), any change is tracked by a combination of 'delete' and/or 'append' operations. In the case a populated database, these two operations are not appropriate to switch two columns, for example, because the existing data will be lost during 'delete'. In MECASP, a 'move' operation is implemented and semantically interpreted.
Using a (semi)-automatic rule-based decision mechanism for conflict resolution, the list of change actions is simplified and the change operations of several users are chronologically interleaved. Special types of change operations (eg compile, search and replace etc), also tracked in deltas, are treated by specific merge rules.
The (semi)-automatic decision on the merge result (including fully automatic merge, merge after user decision, refused merge, recommended merge) relies on predefined rules that depend on the type of change actions, the type of objects they act upon and the role of the version in the merge operation (donor or receptor).
With MECASP, every time a merge is performed, further merges become easier. During the merge process, the user sees not a rough diff-like text comparison, but rather the real changes with their semantics explained.
MECASP addresses the needs of software development companies, providing them with new maintenance and upgrade facilities in order to increase productivity, reduce costs and improve distribution and installation of new software version.
A first MECASP demo has been set up for a CRM application (SellWin) on the SourceForge site. It includes Java source code (Netbeans), database schema (MySQL) and graphical forms (Swing/Netbeans).
Starting in 2004, MECASP will be distributed in open source from http://mecasp.free.fr and the SourceForge site.
Alexandra Galatescu, National Institute
for R&D in Informatics, Romania
Elaine Isnard, Prologue Software, France