gregation rules. For example, a composite operation,
that creates an attribute, contains atomic operations
such as create attribute, set name, set type, set lower
bound, set upper bound, and other modifier operations
related to the same attribute.
5 CONCLUSION AND FUTURE
WORK
This article has presented a framework to recover
refactoring operations from canonized operations or
deltas. This framework is flexible enough to allow
users to guide the result based on her/his preferences.
Users can remove parts of composite operations de-
tected by the analysis engine as long as the validity
of the composite operations are preserved. The anal-
ysis rule can add/remove rationale of modifications
to/from composite operations based on the user con-
firmation. It also analyzes dependencies among com-
posite changes and orders them. Users can add their
own composite operation patterns in defining their
own Jess rules.
In the future work, we will study the analysis en-
gine of RuCORD and integrate it with the DiCoMEF
framework (Koshima and Englebert, 2014). Besides,
we will encode different composite operations speci-
fied in (Herrmannsdoerfer,2009) and evaluate the Ru-
CORD framework.
REFERENCES
Altmanninger, K., Seidl, M., and Wimmer, M. (2009). A
Survey on Model Versioning Approaches. Technical
report, Johannes Kepler University Linz.
B´ezivin, J. (2005). On the unification power of models.
Software and System Modeling, 4(2):171–188.
Booch, G., Brown, A. W., Iyengar, S., Rumbaugh, J., and
Selic, B. (2004). An MDA Manifesto.
Demeyer, S., Ducasse, S., and Nierstrasz, O. (2000). Find-
ing refactorings via change metrics. SIGPLAN Not.,
35(10):166–177.
Dig, D., Comertoglu, C., Marinov, D., and Johnson,
R. (2006). Automated detection of refactorings in
evolving components. In Proceedings of the 20th
European Conference on Object-Oriented Program-
ming, ECOOP’06, pages 404–428, Berlin, Heidel-
berg. Springer-Verlag.
Foundation, T. E. (2014). JET (java emitter templates).
http://www.eclipse.org/modeling/m2t/?project=jet.
Gonzalez-Perez, C. and Henderson-Sellers, B. (2008).
Metamodelling for Software Engineering. John Wi-
ley, New York.
Herrmannsdoerfer, M. (2009). Operation-based versioning
of metamodels with COPE. In Proceedings of the
2009 ICSE Workshop on Comparison and Versioning
of Software Models, CVSM ’09, pages 49–54, Wash-
ington, DC, USA. IEEE Computer Society.
Hill, E. F. (2003). Jess in Action: Java Rule-Based Systems.
Manning Publications Co., Greenwich, CT, USA.
Kelly, S. and Tolvanen, J.-P. (2008). Domain-Specific Mod-
eling. Enabling full code generation. Wiley-IEEE
Computer Society Pr.
Koshima, A. and Englebert, V. (2014). Collaborative edit-
ing of emf/ecore metamodels and models: Conflict
detection, reconciliation, and merging in dicomef. In
Proc. of the MODELSWARD 2014, Lisbon, Portugal.
Koshima, A., Englebert, V., and Thiran, P. (2013). A recon-
ciliation framework to support cooperative work with
dsm. In Reinhartz-Berger, I., Sturm, A., Clark, T., Co-
hen, S., and Bettin, J., editors, Domain Engineering,
pages 239–259. Springer Berlin Heidelberg.
K¨uhne, T. (2006). Matters of (meta-)modeling. Software
and System Modeling, 5(4):369–385.
Langer, P., Wimmer, M., Brosch, P., Herrmannsd¨orfer, M.,
Seidl, M., Wieland, K., and Kappel, G. (2013). A pos-
teriori operation detection in evolving software mod-
els. J. Syst. Softw., 86(2):551–566.
Mens, T. (2002). A state-of-the-art survey on software
merging. IEEE Trans. Softw. Eng., 28:449–462.
Mens, T. and Taentzer, G. (2007). Model-driven software
refactoring. In Dig, D., editor, 1st Workshop on Refac-
toring Tools, WRT 2007, in conjunction with 21st Eu-
ropean Conference on Object-Oriented Programming,
July 30 - August 03, 2007, Berlin, Proceedings, pages
25–27.
Meyers, B. and Vangheluwe, H. (2011). A framework for
evolution of modelling languages. Sci. Comput. Pro-
gram., 76(12):1223–1246.
Object Management Group (OMG) (2002).
Meta Object Facility(MOF) Specification.
http://www.omg.org/spec/MOF/1.4/PDF.
Prete, K., Rachatasumrit, N., Sudan, N., and Kim, M.
(2010). Template-based reconstruction of complex
refactorings. In Proceedings of the 2010 IEEE Inter-
national Conference on Software Maintenance, ICSM
’10, pages 1–10, Washington, DC, USA. IEEE Com-
puter Society.
Steinberg, D., Budinsky, F., Paternostro, M., and Merks,
E. (2009). EMF: Eclipse Modeling Framework 2.0.
Addison-Wesley Professional, 2nd edition.
Vermolen, S. D., Wachsmuth, G., and Visser, E. (2012).
Reconstructing complex metamodel evolution. In
Proceedings of the 4th International Conference on
Software Language Engineering, SLE’11, pages 201–
221, Berlin, Heidelberg. Springer-Verlag.
Xing, Z. and Stroulia, E. (2005). UMLDiff: An algorithm
for object-oriented design differencing. In Proceed-
ings of the 20th IEEE/ACM International Conference
on Automated Software Engineering, ASE ’05, pages
54–65, New York, NY, USA. ACM.
Xing, Z. and Stroulia, E. (2006). Refactoring detection
based on UMLDiff change-facts queries. In Proceed-
ings of the 13th Working Conference on Reverse En-
gineering, WCRE ’06, pages 263–274, Washington,
DC, USA. IEEE Computer Society.
RuCORD:Rule-basedCompositeOperationRecoveringandDetection
toSupportCooperativeEditionof(Meta)Models
589