Skip to main content
Log in

Differencing and merging of architectural views

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

Differencing and merging architectural views is an important activity in software engineering. However, existing approaches are still based on restrictive assumptions, such as requiring view elements to have unique identifiers or exactly matching types, which is often not the case in many application domains.

We propose an approach based on structural information. We generalize a published polynomial-time tree-to-tree correction algorithm that detects inserts, renames and deletes, into a novel algorithm that additionally detects restricted moves. Our algorithm also supports forcing and preventing matches between view elements.

We incorporate the algorithm into tools to compare and merge Component-and-Connector (C&C) architectural views. We provide an empirical evaluation of the algorithm. We illustrate the tools using extended examples, and use them to detect and reconcile interesting differences between real architectural views.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Abi-Antoun, M., Aldrich, J., Garlan, D., Schmerl, B., Nahas, N., Tseng, T.: Improving system dependability by enforcing architectural intent. In: Proceedings of the Workshop on Architecting Dependable Systems, pp. 1–7 (2005)

  • Abi-Antoun, M., Aldrich, J., Coelho, W.: A case study in re-engineering to enforce architectural control flow and data sharing. J. Syst. Softw. 80(2), 240–264 (2007)

    Article  Google Scholar 

  • Alanen, M., Porres, I.: Difference and union of models. In: Proceedings of 6th International Conference on the Unified Modeling Language, Modeling Languages and Applications, pp. 2–17 (2003)

  • Aldrich, J., Chambers, C., Notkin, D.: ArchJava: connecting software architecture to implementation. In: Proceedings of the 24th International Conference on Software Engineering, pp. 187–197 (2002)

  • Ammann, M.M., Cameron, R.D.: Inter-module renaming and reorganizing: examples of program manipulation-in-the-large. In: Proceedings of the International Conference on Software Maintenance, pp. 354–361 (1994)

  • Apiwattanapong, T., Orso, A., Harrold, M.J.: A differencing algorithm for object-oriented programs. In: Proceedings of the 19th IEEE International Conference on Automated Software Engineering, pp. 2–13 (2004)

  • Chawathe, S.S., Garcia-Molina, H.: Meaningful change detection in structured data. In: Proceedings of the ACM SIGMOD International Conference on Management of Data, pp. 26–37 (1997)

  • Chen, P.H., Critchlow, M., Garg, A., van der Westhuizen, C., van der Hoek, A.: Differencing and merging within an evolving product line architecture. In: Proceedings of the 5th International Workshop on Software Product-Family Engineering, pp. 269–281 (2003)

  • Clements, P., Bachman, F., Bass, L., Garlan, D., Ivers, J., Little, R., Nord, R., Stafford, J.: Documenting Software Architecture: View and Beyond. Addison-Wesley, Cambridge (2003)

    Google Scholar 

  • Conte, D., Foggia, P., Sansone, C., Vento, M.: Thirty years of graph matching in pattern recognition. Int. J. Pattern Recognit. Artif. Intell. 18(3), 265–298 (2004)

    Article  Google Scholar 

  • Dashofy, E.M., van der Hoek, A., Taylor, R.N.: Towards architecture-based self-healing systems. In: Proceedings of the First Workshop on Self-Healing Systems, pp. 21–26 (2002)

  • Dickinson, P.J., Bunke, H., Dadej, A., Kraetzl, M.: Matching graphs with unique node labels. Pattern Anal. Appl. 7(3), 243–254 (2004)

    MathSciNet  Google Scholar 

  • Easterbrook, S., Nuseibeh B.: Using ViewPoints for inconsistency management. Softw. Eng. J. 11(1), 31–43 (1996)

    Article  Google Scholar 

  • Egyed, A.: Instant consistency checking for the UML. In: Proceeding of the 28th International Conference on Software Engineering, pp. 381–390 (2006)

  • Eixelsberger, W., Ogris, M., Gall, H., Bellay, B.: Software architecture recovery of a program family. In: Proceedings of the 20th International Conference on Software Engineering, pp. 508–511 (1998)

  • Erdogmus, H.: Representing architectural evolution. In: Proceedings of the Conference of the Center for Advanced Studies on Collaborative Research, pp. 159–177 (1998)

  • Garlan, D., Monroe, R.T., Wile, D.: Acme: architectural description of component-based systems. In: Leavens, G.T., Sitaraman, M. (eds.) Foundations of Component-Based Systems, pp. 47–68. Cambridge University Press, Cambridge (2000)

    Google Scholar 

  • Hlaoui, A., Wang, S.: A new algorithm for graph matching with application to content-based image retrieval. In: Proceedings of the Joint IAPR International Workshop on Structural, Syntactic, and Statistical Pattern Recognition, pp. 291–300 (2002)

  • Jiang, T., Wang, L., Zhang, K.: Alignment of trees—an alternative to tree edit. In: Proceedings of the 5th Annual Symposium on Combinatorial Pattern Matching, pp. 75–86 (1994)

  • Jimenez, A.M.: Change propagation in the MDA: a model merging approach. Master’s thesis, University of Queesland (2005)

  • Krikhaar, R., Postma, A., Sellink, A., Stroucken, M., Verhoef, C.: A two-phase process for software architecture improvement. In: Proceedings of the IEEE International Conference on Software Maintenance, pp. 371–380 (1999)

  • Mandelin, D., Kimelman, D., Yellin, D.: A Bayesian approach to diagram matching with application to architectural models. In: Proceedings of the 28th International Conference on Software Engineering, pp. 222–231 (2006)

  • Medvidovic, N., Jakobac, V.: Using software evolution to focus architectural recovery. Autom. Softw. Eng. 13(2), 225–256 (2006)

    Article  Google Scholar 

  • Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)

    Article  Google Scholar 

  • Medvidovic, N., Oreizy, P., Robbins, J.E., Taylor, R.N.: Using object-oriented typing to support architectural design in the C2 style. In: Proceedings of the 4th ACM SIGSOFT Symposium on Foundations of Software Engineering, pp. 24–32 (1996)

  • Mehra, A., Grundy, J., Hosking, J.: 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, pp. 204–213 (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, pp. 117–128 (2002)

  • Mens, T., Van Gorp, P.: A taxonomy of model transformation. In: Proceedings of the International Workshop on Graph and Model Transformation (2005)

  • Messmer, B.: Efficient graph matching algorithms for preprocessed model graphs. PhD thesis, University of Bern (1996)

  • Monroe, R.: Capturing software architecture design expertise with Armani. Technical Report CMU-CS-98-163R, Carnegie Mellon University School of Computer Science (2001)

  • Muccini, H., Dias, M.S., Richardson, D.J.: Towards software architecture-based regression testing. In: Proceedings of the Workshop on Architecting Dependable Systems, pp. 1–7 (2005)

  • Murphy, G.C., Notkin, D., Sullivan, K.J.: Software reflexion models: bridging the gap between design and implementation. IEEE Trans. Softw. Eng. 27(4), 364–380 (2001)

    Article  Google Scholar 

  • Object Technology International, Inc.: Eclipse platform technical overview. http://www.eclipse.org/whitepapers/eclipse-overview.pdf (2003)

  • Ohst, D., Welle, M., Kelter, U.: Differences between versions of UML diagrams. In: Proceedings of the 9th European Software Engineering Conference/11th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 227–236 (2003)

  • Raghavan, S., Rohana, R., Leon, D., Podgurski, A., Augustine, V.: Dex: a semantic-graph differencing tool for studying changes in large code bases. In: Proceedings of the 20th IEEE International Conference on Software Maintenance, pp. 188–197 (2004)

  • Roshandel, R., van der Hoek, A., Mikic-Rakic, M., Medvidovic, N.: Mae—a system model and environment for managing architectural evolution. ACM Trans. Softw. Eng. Methodol. 13(2), 240–276 (2004)

    Article  Google Scholar 

  • Rushby, J., Owre, S., Shankar, N.: Subtypes for specifications: predicate subtyping in PVS. IEEE Trans. Softw. Eng. 24(9) (1998)

  • Sartipi, K., Kontogiannis, K.: On modeling software architecture recovery as graph matching. In: Proceedings of the 19th IEEE International Conference on Software Maintenance, pp. 224–234 (2003)

  • Schmerl, B., Garlan, D.: AcmeStudio: supporting style-centered architecture development. In: Proceedings of the 26th International Conference on Software Engineering, pp. 704–705 (2004)

  • Schmerl, B., Aldrich, J., Garlan, D., Kazman, R., Yan, H.: Discovering architectures from running systems. IEEE Trans. Softw. Eng. 32(7), 454–466 (2006)

    Article  Google Scholar 

  • Shasha, D., Zhang, K.: Approximate tree pattern matching. In: Apostolico, A., Galil, E.Z. (eds.) Pattern Matching Algorithms. Oxford University Press, Oxford (1997)

    Google Scholar 

  • Shaw, M., Garlan, D.: Software Architectures: Perspectives on an Emerging Discipline. Prentice Hall, New York (1996)

    MATH  Google Scholar 

  • Spitznagel, B., Garlan, D.: Architecture-based performance analysis. In: Proceedings of the Conference on Software Engineering and Knowledge Engineering (1998)

  • Sun Microsystems: J2EE tutorials. Duke’s bank. http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Ebank2.html (2006)

  • Telea, A., Maccari, A., Riva, C.: An open visualization toolkit for reverse architecting. In: Proceedings of the 10th International Workshop on Program Comprehension, pp. 3–10 (2002)

  • Torsello, A., Hidovic-Rowe, D., Pelillo, M.: Polynomial-time metrics for attributed trees. IEEE Trans. Pattern Anal. Mach. Intell. 27(7), 1087–1099 (2005)

    Article  Google Scholar 

  • van der Westhuizen, C., van der Hoek, A.: Understanding and propagating architectural changes. In: Proceedings of the Working IFIP Conference on Software Architecture, pp. 95–109 (2002)

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

    MATH  MathSciNet  Google Scholar 

  • Wang, Y., DeWitt, D.J., Cai, J.-Y.: X-Diff: an effective change detection algorithm for XML documents. In: Proceedings of the 19th International Conference on Data Engineering, pp. 519–530 (2003)

  • 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)

  • Zhang, K., Jiang, T.: Some MAX SNP-hard results concerning unordered labeled trees. Inf. Process. Lett. 49(5), 249–254 (1994)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marwan Abi-Antoun.

Additional information

This article is an expanded version of the following paper: Abi-Antoun, M., Aldrich, J., Nahas, N., Schmerl, B., and Garlan, D: 2006, ‘Differencing and Merging of Architectural Views’. In: Proceedings of the 21st IEEE International Conference on Automated Software Engineering, pp. 47–58.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Abi-Antoun, M., Aldrich, J., Nahas, N. et al. Differencing and merging of architectural views. Autom Softw Eng 15, 35–74 (2008). https://doi.org/10.1007/s10515-007-0023-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-007-0023-3

Keywords

Navigation