Commit 59ab32eb authored by Bernhard Rumpe's avatar Bernhard Rumpe
Browse files

BR

parent b8ffeb69
declare featurebase {
f1_webservice;
f2_webservice;
f3_core;
f4_core;
f5_core;
f6_persistency;
f7_persistency;
f8_helper;
}
//In this example, the names of the plugins induce
//to which feature a plugin belongs to
declare pluginbase {
p1_f1_webservice;
p2_f1_webservice;
p1_f2_webservice;
p2_f2_webservice;
p1_f3_core;
p2_f3_core;
p1_f4_core;
p2_f4_core;
p1_f5_core;
p2_f5_core;
p1_f6_persistency;
p2_f6_persistency;
p1_f7_persistency;
p2_f7_persistency;
p1_f8_helper;
}
declare featuregroup webservice {
*_webservice;
}
declare featuregroup core {
*_core;
}
declare featuregroup persistency {
*_persistency;
}
declare featuregroup ALL {
*;
}
featuregroup ALL {
//by means of the following constraint
//by default all dependencies are forbidden.
//hence, all dependencies which should be
//allowed need to be defined explicitly
forbid dependency to featuregroup ALL;
allow dependency to feature f8_helper;
}
featuregroup webservice {
//due to the constraint for feature group ALL
//dependencies within webservice would be forbidden
//without the following allow
allow dependency to featuregroup webservice;
allow dependency to featuregroup core;
}
featuregroup core {
//due to the constraint for feature group ALL
//dependencies within core would be forbidden
//without the following allow
allow dependency to featuregroup core;
allow dependency to featuregroup persistency;
}
featuregroup persistency {
//due to the constraint for feature group ALL
//dependencies within persistency would be forbidden
//without the following allow
allow dependency to featuregroup persistency;
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<site>
<description name="ADDiff">
Prototype plugin. See https://sselab.de/lab2/public/wiki/SemDiff/
</description>
<feature url="features/ADDiffPluginFeature_1.0.0.201106071510.jar" id="ADDiffPluginFeature" version="1.0.0.201106071510">
<category name="addiff"/>
</feature>
<category-def name="addiff" label="ADDiff Plugin">
<description>
Prototype plugin. See https://sselab.de/lab2/public/wiki/SemDiff/
</description>
</category-def>
</site>
<h2>Semantic Differencing Operators for Model Comparisons</h2>
O. Kautz, S. Maoz, J.O. Ringert, and B. Rumpe
<p>
Model-driven engineering promotes the use of models throughout a software system's lifecycle. Due to iterative development methodologies, changing requirements, and bug fixes, these models continuously evolve during system's design, development, and maintenance phases. Fundamental building blocks for an analysis of their evolution are differencing operators one can use to compare two versions of a model.
</p>
<p>
Existing approaches to model differencing concentrate on heuristics matching between model elements and on finding and presenting differences at a concrete or abstract syntactic level. While showing
some success, these approaches are also limited: models that are syntactically very similar may induce very different semantics (in the sense of `meaning'), and vice versa, models that semantically describe
the same system may have rather different syntactic representations. Thus, a list of syntactic differences, although accurate and complete, may not be able to reveal the real implications these differences may have on the correctness and potential use of the models involved. In other words, such a list, although easy to follow, understand, and manipulate (e.g., for merging), may not be able to expose and represent the semantic differences between two versions of a model, in terms of the bugs that were fixed or the features (and new bugs...) that were added.
</p>
<p>
We present our vision and recent results on developing semantic diff operators for model comparisons: operators whose input consists of two models and whose output is a set of diff witnesses, instances of one model that are not instances of the other. Diff witnesses serve as concrete proofs for the real change between one version and another and its effect on the meaning of the models involved.
</p>
<!--
<p>
We demonstrate our vision using two concrete diff operators, CDDiff for class diagrams and ADDiff for activity diagrams. CDDiff accepts two class diagrams as input and outputs a set of diff witnesses, each
of which is an object model that is an instance of the first class diagram and not of the second. ADDiff accepts two activity diagrams as input and outputs a set of diff traces, each of which is an execution trace possible in the first activity diagram and not possible in the second. CDDiff and ADDiff are presented with motivating examples, formal definitions, algorithms, prototype implementations, and initial evaluations.
</p>
-->
<p>
For more information please contact: <a href="http://www.se-rwth.de/~kautz/" target="_new">Oliver Kautz</a> and <a href="http://www.se-rwth.de/~maoz/" target="_new">Shahar Maoz</a> and <a href="http://www.se-rwth.de/~ringert/" target="_new">Jan O. Ringert</a>.
</p>
<h3>Publications</h3>
<ul>
<li>[KR18] O. Kautz, B. Rumpe:<br>
A Simple Translation from Activity Diagrams to Finite Automata for Semantic Differencing.</a><br>
To appear, 2018.
<ul>
<li>
<a href="addiff/ActivityDiagramSemanticDiff.zip">Prototype implementation and examples.</a>
</li>
</ul>
</li>
<br>
<li>[KMRR17] O. Kautz, S. Maoz, J. O. Ringert, B. Rumpe:<br>
<a href="../../publications/CD2Alloy-A-Translation-of-Class-Diagrams-to-Alloy.pdf" target="_blank">
CD2Alloy: A Translation of Class Diagrams to Alloy.</a><br>
RWTH Aachen University, Technical Report. AIB-2017-06. July 2017.
</li>
<br>
<li>[BKRW17] A. Butting, O. Kautz, B. Rumpe, A. Wortmann:<br>
<a href="../../publications/Semantic-Differencing-for-Message-Driven-Component-and-Connector-Architectures.pdf" target="_blank">
Semantic Differencing for Message-Driven Component & Connector Architectures.</a><br>
In: International Conference on Software Architecture (ICSA'17), Gothenburg, pg. 145-154. IEEE, April 2017.
</li>
<br>
<li>
S. Maoz, J.O. Ringert, and B. Rumpe. <strong>A Manifesto for Semantic Model Differencing</strong>, presented at the Models and Evolution Workshop (ME'10), affiliated with the MoDELS'10 conference, October 2010. MoDELS Workshops, LNCS vol. 6627, Springer, pp. 194-203.
<ul><li>
<a href="../../publications/MRR10.pdf">Paper</a> and <a href="MRR10-Manifesto-slides.pdf">slides</a>.
</li>
</ul>
</li>
<br>
<li>S. Maoz, J.O. Ringert, and B. Rumpe. <strong>CDDiff: Semantic Differencing for Class Diagrams</strong>. In Proc. 25th Euro. Conf. on Object Oriented Programming (ECOOP'11). LNCS vol. 6813, Springer.
<ul>
<li>
<a href="http://www.se-rwth.de/~maoz/papers/diff-cd-ecoop11.pdf">Paper</a> available, slides coming soon...
</li>
<li><a href="cddiff/cddiff-plugin.zip">CDDiff Plug-in</a> prototype implementation (download as plug-in for Eclipse 3.6)
</li>
<li><a href="cddiff/CDDiffPluginReadme.pdf">CDDiff Plug-in readme</a> and installation instructions
</li>
<li><a href="cddiff/cddiff-examples.zip">Examples</a>
</li>
</ul>
</li>
<br>
<li>S. Maoz, J.O. Ringert, and B. Rumpe. <strong>ADDiff: Semantic Differencing for Activity Diagrams</strong>. In Proc. Euro. Soft Eng. Conf. / Foundations of Software Engineering (ESEC/FSE'11). ACM.
<ul><li>
<a href="http://www.se-rwth.de/~maoz/papers/diff-ad-fse11.pdf">Paper</a> available, slides coming soon...
</li>
<li><a href="addiff/addiff-plugin-updatesite.zip">ADDiff Plug-in</a> prototype implementation (download as local update site for Eclipse 3.5)
</li>
<li><a href="addiff/ADDiffPluginReadme.pdf">ADDIff Plug-in readme</a> and installation instructions
</li>
<li><a href="addiff/addiff-examplesproject.zip">Evaluation project</a> (including examples)
</li>
<li><a href="addiff/ADDiffEval.pdf">Additional evaluation material</a>
</li>
<li>S. Maoz, J.O. Ringert, and B. Rumpe. <a href="../../publications/SM_JOR_BR_AD2SMV_TechReport_11.pdf"><strong>An Operational Semantics for Activity Diagrams using SMV</strong></a>. Technical Report AIB-2011-07, RWTH Aachen University.
</li>
</ul>
</li>
<br>
<li>[MRR11] S. Maoz, J. O. Ringert, B. Rumpe:<br>
<a href="../../publications/Summarizing-Semantic-Model-Differences.pdf" target="_blank">
Summarizing Semantic Model Differences.</a><br>
In: ME 2011 - Models and Evolution, Wellington, New Zealand.
Ed: B. Sch&auml;tz, D. Deridder, A. Pierantonio, J. Sprinkle, D. Tamzalit, Wellington, New Zealand, Okt. 2011.
</li>
</ul>
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment