Skip to main content

Differencing UML Models: A Domain-Specific vs. a Domain-Agnostic Method

  • Chapter

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7680))

Abstract

Comparing software artifacts to identify their similarities and differences is a task ubiquitous in software engineering. Logical-design comparison is particularly interesting, since it can serve multiple purposes. When comparing the as-intended vs. the as-implemented designs, one can evaluate implementation-to-design conformance. When comparing newer code versions against earlier ones, one may better understand the development process of the system, recognize the refactorings it has gone through and the qualities motivating them, and infer high-order patterns in its history. Given its importance, design differencing has been the subject of much research and a variety of algorithms have been developed to compare different types of software artifacts, in support of a variety of different software-engineering activities. Our team has developed two different algorithms for differencing logical-design models of object-oriented software. Both algorithms adopt a similar conceptual model of UML logical designs (as containment trees); however, one of them is heuristic whereas the other relies on a generic tree-differencing algorithm. In this paper, we describe the two approaches and we compare them on multiple versions of an open-source software system.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Dulucq, S., Tichit, L.: RNA Secondary structure comparison: exact analysis of the Zhang–Shasha tree edit algorithm. Journal Theoretical Computer Science 306(13), 471–484 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  2. Comparing and merging UML models in IBM Rational Software Architect, http://www-128.ibm.com/developerworks/rational/library/05/712_comp/

  3. Egyed, A.: Scalable consistency checking between diagrams - The VIEWINTEGRA approach. In: Proceedings of the 16th International Conference on Automated Software Engineering, pp. 387–390 (2001)

    Google Scholar 

  4. Kim, M., Notkin, D.: Discovering and Representing Systematic Code Changes. In: Proceedings of the 31st International Conference on Software Engineering, pp. 309–319 (2009)

    Google Scholar 

  5. Kim, M., Notkin, D., Grossman, D.: Automatic Inference of Structural Changes for Matching Across Program Versions. In: Proceedings of the 29th International Conference on Software Engineering, pp. 333–343 (2007)

    Google Scholar 

  6. Levenshtein, V.: Binary codes capable of correcting deletions, insertions and reversals. Soviet Physics Doklady 10(8), 707–710 (1966)

    MathSciNet  MATH  Google Scholar 

  7. Mikhaiel, R., Lin, G., Stroulia, E.: Simplicity in RNA Secondary Structure Alignment: Towards biologically plausible alignments. In: Post Proceedings of the IEEE 6th Symposium on Bioinformatics and Bioengineering, pp. 149–158 (2006)

    Google Scholar 

  8. Mikhaiel, R., Stroulia, E.: Examining Usage Protocols for Service Discovery. In: Dan, A., Lamersdorf, W. (eds.) ICSOC 2006. LNCS, vol. 4294, pp. 496–502. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  9. Mikhaiel, R., Stroulia, E.: Accurate and Efficient HTML Differencing. In: Proceedings of the 13th International Workshop on Software Technology and Engineering Practice, pp. 163–172 (2005)

    Google Scholar 

  10. Mikhaiel, R.: Comparing XML Documents as Reference-aware Labeled Ordered Trees, PhD Thesis, Computing Science Department, University of Alberta (2011)

    Google Scholar 

  11. Ohst, D., Welle, M., Kelter, U.: Difference tools for analysis and design documents. In: Proceedings of the 19th International Conference on Software Maintenance, pp. 13–22 (2003)

    Google Scholar 

  12. Schofield, C., Tansey, B., Xing, Z., Stroulia, E.: Digging the Development Dust for Refactorings. In: Proceedings of the 14th International Conference on Program Comprehension, pp. 23–34 (2006)

    Google Scholar 

  13. Selonen, P., Koskimies, K., Sakkinen, M.: Transformations between UML diagrams. Journal of Database Management 14(3), 37–55 (2003)

    Article  Google Scholar 

  14. Tsantalis, N., Negara, N., Stroulia, E.: WebDiff: A Generic Differencing Service for Software Artifacts. In: Proceedings of the 27th IEEE International Conference on Software Maintenance, pp. 586–589 (2011)

    Google Scholar 

  15. Wagner, R.A., Fischer, M.J.: The string-to-string correction problem. Journal of the ACM 21(1), 168–173 (1974)

    Article  MathSciNet  MATH  Google Scholar 

  16. Xing, Z., Stroulia, E.: Understanding Phases and Styles of Object-Oriented Systems’ Evolution. In: Proceedings of the 20th International Conference on Software Maintenance, pp. 242–251 (2004)

    Google Scholar 

  17. Xing, Z., Stroulia, E.: Understanding Class Evolution in Object-Oriented Software. In: Proceedings of the 12th International Workshop on Program Comprehension, pp. 34–45 (2004)

    Google Scholar 

  18. Xing, Z., Stroulia, E.: Data-mining in Support of Detecting Class Co-evolution. In: Proceedings of the 16th International Conference on Software Engineering & Knowledge Engineering, pp. 123–128 (2004)

    Google Scholar 

  19. 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, pp. 54–65 (2005)

    Google Scholar 

  20. Xing, Z., Stroulia, E.: Towards Experience-Based Mentoring of Evolutionary Development. In: Proceedings of the 21st IEEE International Conference on Software Maintenance, pp. 621–624 (2005)

    Google Scholar 

  21. Xing, Z., Stroulia, E.: Analyzing the Evolutionary History of the Logical Design of Object-Oriented Software. IEEE Trans. Software. Eng. 31(10), 850–868 (2005)

    Article  Google Scholar 

  22. Xing, Z., Stroulia, E.: Refactoring Practice: How it is and How it Should be Supported - An Eclipse Case Study. In: Proceedings of the 22nd IEEE International Conference on Software Maintenance, pp. 458–468 (2006)

    Google Scholar 

  23. Xing, Z., Stroulia, E.: Understanding the Evolution and Co-evolution of Classes in Object-oriented Systems. International Journal of Software Engineering and Knowledge Engineering 16(1), 23–52 (2006)

    Article  Google Scholar 

  24. Xing, Z., Stroulia, E.: Refactoring Detection based on UMLDiff Change-Facts Queries. In: Proceedings of the 13th Working Conference on Reverse Engineering, pp. 263–274 (2006)

    Google Scholar 

  25. Xing, Z., Stroulia, E.: Differencing logical UML models. Autom. Softw. Eng. 14(2), 215–259 (2007)

    Article  Google Scholar 

  26. Xing, Z., Stroulia, E.: API-Evolution Support with Diff-CatchUp. IEEE Trans. Software Eng. 33(12), 818–836 (2007)

    Article  Google Scholar 

  27. Xing, Z., Stroulia, E.: The JDEvAn tool suite in support of object-oriented evolutionary development. In: Proceedings of the 30th International Conference on Software Engineering (ICSE 2008 Companion), pp. 951–952 (2008)

    Google Scholar 

  28. Xing, Z.: Supporting Object-Oriented Evolutionary Development by Design Evolution Analysis, PhD Thesis, Computing Science Department, University of Alberta (2008)

    Google Scholar 

  29. Xing, Z.: Model Comparison with GenericDiff. In: Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, pp. 135–138 (2010)

    Google Scholar 

  30. Zhang, K., Shasha, D.: Simple fast algorithm for the editing distance between trees and related problems. SIAM Journal on Computing 18(6), 1245–1262 (1989)

    Article  MathSciNet  MATH  Google Scholar 

  31. Fokaefs, M., Mikhaiel, R., Tsantalis, N., Stroulia, E., Lau, A.: An Empirical Study on Web Service Evolution. In: Proceedings of the IEEE International Conference on Web Services, ICWS 2011, pp. 49–56 (2011)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Mikhaiel, R., Tsantalis, N., Negara, N., Stroulia, E., Xing, Z. (2013). Differencing UML Models: A Domain-Specific vs. a Domain-Agnostic Method. In: Lämmel, R., Saraiva, J., Visser, J. (eds) Generative and Transformational Techniques in Software Engineering IV. GTTSE 2011. Lecture Notes in Computer Science, vol 7680. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35992-7_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-35992-7_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-35991-0

  • Online ISBN: 978-3-642-35992-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics