Abstract
Evolving models are often managed in file-based software configuration management systems. This causes the identification problem: if the model elements are not assigned with globally unique identifiers, we cannot identify them over time. However, if such identifiers would be given, they can be misleading because the elements to which they are assigned might change completely. As a consequence, evolution becomes incomprehensible, partial transformation is hampered, and sufficient management of inter-model relationships (e.g. traceability links) is impeded. This article presents an approach to identify model elements or even complete model fragments over time. It establishes a fine-grained history representation to describe model evolution. The representation contains identification links between the elements of different model revisions allowing us to identify elements of a given revision in other revisions or variants of the model. Due to the explicit expression of model evolution, it further enables the capturing of changes that have been applied to the fine-grained elements inside a model.
Similar content being viewed by others
Notes
Kelter and Schmidt [22] also defines a symmetric difference which denotes a set of unchanged elements and two inserting transformations. Here we only use the asymmetric definition of a difference.
This can be the case if a model element has been copied so that the descendant revision contains duplicates.
References
Aizenbud-Reshef, N., Nolan, B.T., Rubin, J., Shaham-Gafni, Y.: Model traceability. IBM Syst. J. 45(3), 515–525 (2006)
Alanen, M., Porres, I.: Difference and union of models. In: UML 2003—The Unified Modeling Language. Lecture Notes in Computer Science, vol. 2863, pp. 2–17. Springer, Berlin, October 2003
Amar, B., Leblanc, H., Coulettee, B.: A traceability engine dedicated to model transformation for software engineering. In: Proceedings of the ECMDA Traceability Workshop (ECMDA-TW) 2008 (2008)
Antoniol, G., Canfora, G., Casazza, G., De Lucia, A., Merlo, E.: Recovering traceability links between code and documentation. IEEE Trans. Softw. Eng. 28(10), 970–983 (2002)
Antoniol, G., Guéhéneuc, Y.-G., Merlo, E., Tonella, P.: Mining the Lexicon used by programmers during software evolution. In: Proceedings of the 23rd International Conference on Software Maintenance (ICSM’07), pp. 14–23, October 2007
Babich, W.A.: Software Configuration Management: Coordination for Team Productivity. Addison-Wesley (1986)
Bendix, L., Emanuelsson, P.: Diff and merge support for model based development. In: Proceedings of the 2008 International Workshop on Comparison and Versioning of Software Models (CVSM’08), pp. 31–34, May 2008
Bruegge, B., Dutoit, A.H., Wolf, T.: Sysiphus: enabling informal collaboration in global software development. In: Proceedings of the First International Conference on Global Software Engineering (ICGSE’06), October 2006
Cleland-Huang, J., Chang, C.K., Christensen, M.: Event-based traceability for managing evolutionary change. IEEE Trans. Softw. Eng. 29(9), 796–810 (2003)
Colombo, P., Del Bianco, V., Lavazza, L.: Fine-grained integrated management of software configurations and traceability relations. In: Proceedings of the 3rd International Conference on Software and Data Technologies (ICSOFT’08), pp. 159–164. INSTICC Press (2008)
De Lucia, A., Fasano, F., Oliveto, R., Tortora, G.: ADAMS re-trace: a traceability recovery tool. In: Proceedings of 9th European Conference on Software Maintenance and Reengineering (CSMR’05), pp. 32–41 (2005)
Eclipse Foundation: EMF Connected Data Objects (CDO). http://wiki.eclipse.org/index.php/CDO (2010)
Farail, P., Gaufillet, P., Canals, A., Le Camus, C., Sciamma, D., Michel, P., Cregut, X., Pantel, M.: The TOPCASED project: a Toolkit in Open source for Critical Aeronautic SystEms Design. In: Proceedings of the 3rd Embedded Real Time Software Conference (ERTS’06), January 2006
Fogel, K., Bar, M.: Open Source Development with CVS. Paraglyph Press (2003)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, New York (1999)
Girschick, M.: UMLDiff: Erkennung und Analyse von Unterschieden in Klassendiagrammen und Sequenzdiagrammen. Diploma Thesis (German), Technical University of Darmstadt (2002)
Godfrey, M.W., Tu, Q.: Tracking structural evolution using origin analysis. In: Proceedings of the International Workshop on Principles of Software Evolution (IWPSE’02), May 2002
Godfrey, M.W., Zou, L.: Using origin analysis to detect merging and splitting of source code entities. IEEE Trans. Softw. Eng. 31(2). February 2005
Gorek, G.-D.: Untersuchungen zum Abgleich vager Modelle in der Systemanalyse. Diploma Thesis (German), University of Siegen (2010)
Jouault, F.: Loosely coupled traceability for ATL. In: Proceedings of the ECMDA Traceability Workshop (ECMDA-TW) 2005, pp. 29–37 (2005)
Kehrer, T., Ihler, E.: Process-integrated refinement patterns in UML. In: Proceedings of the 21st International Conference on Software & Systems Engineering and their Applications (ICSSEA’08) (2008)
Kelter, U., Schmidt, M.: Comparing state machines. In: Proceedings of the 2008 International Workshop on Comparison and Versioning of Software Models (CVSM’08), May 2008
Kelter, U., Wehren, J., Niere, J.: A generic difference algorithm for UML models. In: Proceedings of Software Engineering, pp. 105–116, March 2005
Kögel, M.: Towards software configuration management for unified models. In: Proceedings of the 2008 International Workshop on Comparison and Versioning of Software Models (CVSM’08) (2008)
Kolovos, D.S., Paige, R.F., Polack, F.A.C.: Model comparison: a foundation for model composition and model transformation testing. In: Proceedings of the First International Workshop on Global Integrated Model Management Co-Located with ICSE (GAMMA’06), May 2006
Kolovos, D.S., Di Ruscio, D., Paige, R.F., Pierantonio, A.: Different models for model matching: an analysis of approaches to support model differencing. In: Proceedings of 2nd Workshop on Comparison and Versioning of Software Models (CVSM’09). IEEE Computer Society, May 2009
Könemann, P.: Model-independent differences. In: Proceedings of 2nd Workshop on Comparison and Versioning of Software Models (CVSM’09), pp. 37–42. IEEE Press, May 2009
Lin, Y., Gray, J., Jouault, F.: DSMDiff: a differentiation tool for domain-specific models. Eur. J. Inf. Syst. 16(4), 349–361 (2007)
Mäder, P., Gotel, O.C.Z., Philippow, I.: Enabling automated traceability maintenance by recognizing development activities applied to models. In: Proceedings of 23rd International Conference on Automated Software Engineering (ASE’08), September 2008
Maletic, J.I., Collard, M.L., Simoes, B.: An XML based approach to support the evolution of model-to-model traceability links. In: Proceedings of the 3rd ACM International Workshop on Traceability in Emerging Forms of Software Engineering (TEFSE’05), November 2005
Marcus, A., Maletic, J.I.: Recovering documentation-to-source-code traceability links using latent semantic indexing. In: Proceedings of the 27th International Conference on Software Engineering (ICSE’05), pp. 125–135 (2005)
Mehra, A., Grundy, J.C., Hosking, J.G.: A generic approach to supporting diagram differencing and merging for collaborative design. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005), pp. 204–213. ACM, New York, November 2005
Melnik, S., Garcia-Molina, H., Rahm, E.: Similarity flooding: a versatile graph matching algorithm and its application to schema matching. In: Proceedings of the 18th International Conference on Data Engineering (ICDE) (2002)
Murta, L.G.P., Chessman, C., Prudencio, J.G., Werner, C.M.L.: Towards Odyssey-VCS 2: improvements over a UML-based version control system. In: Proceedings of the 2008 International Workshop on Comparison and Versioning of Software Models (CVSM’08), May 2008
Murta, L.G.P., van der Hoek, A., Werner, C.M.L.: Continuous and automated evolution of architecture-to-implementation traceability links. Autom. Softw. Eng. 15(1), 75–107 (2008)
Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S., Zave, P.: Matching and merging of statecharts specifications. In: Proceedings of the 29th International Conference on Software Engineering (ICSE’07), pp. 54–64. IEEE Computer Society (2007)
Object Management Group: http://www.omg.org/spec/OCL/2.2/ (2010)
Ohst, D., Welle, M., Kelter, U.: Difference tools for analysis and design documents. In: Proceedings of the 19th International Conference on Software Maintenance (ICSM 2003), pp. 13–22. IEEE Computer Society, September 2003
Oliveira, H.L.R., Murta, L.G.P., Werner, C.M.L.: Odyssey-VCS: a flexible version control system for UML model elements. In: Proceedings of the 12th International Workshop on Software Configuration Management (SCM’05), pp. 1–16, September 2005
Pilato, C.M., Collins-Sussman, B., Fitzpatrick, B.W.: Version Control with Subversion. O’Reilly (2008)
Reddy, R., France, R., Ghosh, S., Fleurey, F., Baudry, B.: Model composition—a signature-based approach. In: Proceedings of Aspect Oriented Modeling (AOM) Workshop Associated to MoDELS’05, October 2005
Rho, J., Wu, C.: An efficient version model of software diagrams. In: Proceedings of the Fifth Asia Pacific Software Engineering Conference (APSEC’98), pp. 236–243, December 1998
Schmidt, M., Gloetzner, T.: Constructing difference tools for models using the SiDiff framework. In: Proceedings of the 30th International Conference on Software Engineering (ICSE’08), 947f, May 2008
Schneider, C.: CoObRA: Eine Plattform zur Verteilung und Replikation komplexer Objektstrukturen mit optimistischen Sperrkonzepten. PhD thesis (in German), University of Kassel, Germany, December 2007
Schwarz, H., Ebert, J., Winter, A.: Graph-based traceability: a comprehensive approach. Softw. Syst. Model. 9(4), 473–492 (2010)
Selonen, P., Kettunen, M.: Metamodel-based inference of inter-model correspondence. In: Proceedings of 11th European Conference on Software Maintenance and Reengineering (CSMR’07), pp. 71–80, March 2007
IEEE Computer Society: Mining Software Repositories—Working-Conference Series. http://msrconf.org
Spanoudakis, G., Zisman, A.: Software traceability: a Roadmap. In: Handbook of Software Engineering and Knowledge Engineering, vol. 3. Recent Advances, pp. 395–428. World Scientific, Singapore (2005)
Treude, C., Berlik, S., Wenzel, S., Kelter, U.: Difference computation of large models. In: Proceedings of 6th Joint Meeting of ESEC/FSE 2007, pp. 295–304, September 2007
Vanhooff, B., van Baelen, S., Joosen, W., Berbers, Y.: Traceability as input for model transformations. In: Proceedings of the ECMDA Traceability Workshop (ECMDA-TW) 2007, pp. 37–46 (2007)
von Knethen, A.: Change-oriented requirements traceability: support for evolution of embedded systems. In: Proceedings of the International Conference on Software Maintenance (ICSM’02), pp. 482–485 (2002)
Wenzel, S.: Scalable visualization of model differences. In: Proceedings of the 2008 International Workshop on Comparison and Versioning of Software Models (CVSM’08), pp. 41–46, May 2008
Wenzel, S., Hutter, H., Kelter, U.: Tracing model elements. In: Proceedings of the 23rd International Conference on Software Maintenance (ICSM’07), pp. 104–113. IEEE Computer Society, October 2007
Wenzel, S., Kelter, U.: Analyzing model evolution. In: Proceedings of the 30th International Conference on Software Engineering (ICSE’08), pp. 831–834 (2008)
Winkler, S., von Pilgrim, J.: A survey of traceability in requirements engineering and model driven development. Softw. Syst. Model. 9(4), 529–565 (2010)
Xing, Z., Stroulia, E.: Analyzing the evolutionary history of the logical design of object-oriented software. IEEE Trans. Softw. Eng. 31(10), 850–868 (2005)
Xing, Z., Stroulia, E.: UMLDiff: an algorithm for object-oriented design differencing. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE’05), pp. 54–65. ACM Press, November 2005
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr. D. Tamzalit, B. Schätz, D. Deridder and A. Pierantonio.
Rights and permissions
About this article
Cite this article
Wenzel, S. Unique identification of elements in evolving software models. Softw Syst Model 13, 679–711 (2014). https://doi.org/10.1007/s10270-012-0311-7
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-012-0311-7