|
|
|
|
|
Survey of the state of the art in Versioning and Configuration
Management |
|
|
|
|
|
|
The integration of
a software built with heterogeneous development tools and
the management of its evolution are still increasingly more difficult tasks
nowadays in software engineering and maintenance field. Many
existing tools used for software
customization
and maintenance (e.g. version
managers like CVS) allow the
creation, integration and versioning of applications in a uniform environment,
and through hierarchical trees of versions (hiding in fact one main linear
evolution). Such tools are limited
especially because they deal with a too simple versioning mechanism of text
files and because they have a primitive mechanism for tracking and merging the
changes. Their basic approach is a simple comparison of edited files to memorize
changes, based on a diff-like comparison process.
None of them can
completely handle non-uniform solutions, proposed by different software
producers, and manage non-hierarchical trees of versions.
|
|
|
|
|
Mecasp brings something new under the sun |
|
|
|
|
|
|
This site presents a new product for the
integration, customization and
maintenance of heterogeneous resources (software,
documents, data…) that can manage non-hierarchical trees of versions (hiding
hierarchical trees of real variants). So, if standard tools are dedicated to the
integration/merge of day-per-day small changes, this new product can manage
merges of different complex variants of a system. The semantics of changes is no
more only a list of updates calculated afterwards, but can be a complete
description of changes or actions understood from the user point of view.
Connectors to existing editors allow a perfect synchronization. So, if merges
become more and more difficult to perform with standard tools when versions
evolve, on the contrary they become easier each time conflicts are resolved with
this new product, which can as well automate changes or propagate them through
numerous other variants. This product can manage any XML definitions (XML
superset), and its customization relies on models and meta-models (those are
vendor and platform independent).
This product is today an operational prototype
(Open Source, written in Java) that can be used for some developments where
vendors could add numerous specific tools, or as a platform for further
researches.
So, Mecasp generalizes the concepts of standard tools and offers more in the following ways:
- With Mecasp, you don't manage the evolution of versions of only one
software. You can manage a real hierarchy of variants of this
software. It means that if the original software evolves independently
towards completely different new softwares, you can manage them all
inside Mecasp (all these softwares, and all versions for each of them).
And you can merge when you want the functionnalities of any variant to
build again a new software.
- One main focus in Mecasp is the Merge process. If all
standard tools rely on a "diff" comparison of sources between
two versions to highlight changes, Mecasp do really more. Indeed, the
standard "diff" comparison is often too limited. It is a very
rough comparison, which can lead to very complex views of the changes.
Each time versions evolve, each time the merge process becomes harder.
On the contrary, with Mecasp, each time merges of versions are performed,
each time further merges become easier. And during the merge process
itself, the user doesn't see a rough diff / text comparison, he(r) can
see the real changes with their real semantics explained.
- And in fact, with Mecasp, one can not only manage version of source
code, but any kind of data: sources, database, graphical interface
definitions, xml definitions...
- And thanks to Mecasp specific triggers, one can customize enterily the
platform to fit its specific needs, to synchronize actions / changes...
- and a lot more...
|