The SiDiff Project

Today it is hard to imagine industrial workflows without technical documents, particularly in the planning phases of software-intensive systems. Examples of technical documents are CAD documents, VLSI documents, or numerous variants of software specification documents, e.g. UML specifications, Matlab/Simulink documents or domain-specific documents.

Complex technical documents are developed by teams in projects over long periods of time and are collected in repositories. Documents exist in multiple versions, which may be revisions or variants. This leads to several practical problems:

All the above practical problems require tools which are able to compare documents of document parts. Difference tools such as the GNU diff work properly on textual documents and source code, but they fail to work correctly with technical documents which are conceptually a graph and which typically have a graphical representation.

The SiDiff project aims at building difference and analysis tools for technical documents that have a graphical representation. This goal poses several challenges regarding technical problems as well as research issues.

We have investigated the problem of computing differences of documents in serveral application domains, including

All document types mentioned above can be considered as graphs, but their structure differs in many obvious or subtle details. Nonetheless, they are similiar enough to make a generic approach reasonable: we have developed a generic, highly configurable algorithm which calculates differences of two models given in a certain file format.

The generic algorithm must be configured for each type of technical document. A configuration consists of a transformations from the original document into an internal structure, the definition of the similarity of elements, a specification of the output, and further details.

More details about the features of currently available configurations, and a small collection of examples can be found on separate pages:

 

We are cooperating with several external partners which use SiDiff technologies to solve problems in different application domains:

Lehrstuhl für Simulationstechnik, Fachbereich 11, Universität Siegen
Project "Metabolic Engineering" (Bio-Informatics)
Institut für Softwaretechnik (Prof. Dr. Jürgen Ebert), Universitaet Koblenz-Landau
Projekt Requirements-Driven Software Development System (ReDSeeDS)
Fachgebiet Echtzeitsysteme (Prof. Dr. Andy Schürr), TU Darmstadt
Projekt MATE