The History of SiDiffA first prototype of ageneric differencing tool was developed in 2004. While this prototype still had its focus on the comparison of UML class and activity diagrams, the underlying data model was designed in a way that additional types of UML diagrams and models complying with meta models from different domains could be easily supported as well. The main ideas of the SiDiff framework were published in A Generic Difference Algorithm for UML Models in 2005.
SiDiff was initially designed to cover all typical types of software models, notably the whole family of UML diagram types. However, it soon became obvious that SiDiff is flexible enough to be applied to further model types which are used in other application domains. One such example are MATLAB/Simulink diagrams (see StDGKSZ2007Dagst or Sc2007VVUM). MATLAB/Simulink is a tool for modeling and simulation of dynamic systems that is used by engineers in fields like signal processing, image processing and control design. Another example is the ASCET Software family, a toolbox used for model-driven development of embedded software in automotive systems. Further cooperations explored additional applications, e.g. finding similarities between sentences of a constraint language or the comparison of molecular graphs (Gr2008DA) in the field of bio-informatics.
Another main focus of research was to improve and speed up the comparison of very large models. Several approaches have been investigated and implemented (TrBWK2007ESEC, Pi2008DA).
Another important field of research was the analysis of complete model histories, i.a. how models change over time and how to trace model elements through many revisions of a model (WeHK2007SM ), as well as visualization aspects of model comparison, e.g. with the help of polymetric views (We2008CVSM) or 3D visualization of software metrics.
The experiences with this large set of applications formed the background for a complete redesign of SiDiff ("SiDiff 2.0") which was initiated in 2009. The new SiDiff framework offers several improvements: It is technially more flexible because the whole kernel is now implemented as a set of OSGi bundles. This facilitates the exchange of the different components, should this be necessary in a given application context. The former proprietary internal data format used for representing models has been replaced by EMF/Ecore. Representations of the models are now based on EMF/Ecore and SiDiff can more easily be integrated in environments which use EMF/Ecore for model management. EMF/Ecore emerged as a de facto standard in the modeling community and is being used in many modeling related applications.