Software Architectures Evolution based Merging

Zine Eddine Bouras, Mourad Maouche


During the last two decades the software evolution community has intensively tackled the software merging issue. The main objective is to compare and merge, in a consistent way, different versions of software in order to obtain a new version. Well established approaches, mainly based on the dependence analysis techniques on the source code, have been used to bring suitable solutions. However the fact that we compare and merge a lot of lines of code is very expensive. In this paper we overcome this problem by operating at a high level of abstraction. The objective is to investigate the software merging at the level of software architecture, which is less expensive than merging source code. The purpose is to compare and merge software architectures instead of source code. The proposed approach, based on dependence analysis techniques, is illustrated through an appropriate case study.

Full Text:



Tom Mens (2008). “Introduction and Roadmap: History and Challenges of Software Evolution”. Eds Tom Mens • Serge Demeyer, Springer-Verlag Berlin Heidelberg, pp. 1-14.

T. Mens (2002), “A State-of-the-Art Survey on Software Merging”, IEEE Transactions on Software Engineering, vol 28, no 5, pp. 449–462.

D. Binkley, S. Horwitz, and T. Reps (1995). “Program Integration for Languages with Procedure Calls”, ACM Transactions on Software Engineering and Methodology, vol 4, no 1, pp. 3-35.

T. Khammaci, and Z. Bouras (2002). “Versions of Program Integration”, Handbook of Software Engineering and Knowledge Engineering, vol 2, World Scientific Publishing: Singapore, pp. 465-486 .

T. Kim, Y. Song, and L. Chung (2000). “Software architecture analysis: a dynamic slicing approach”, International Journal of Computer & Information Science, vol 1, no 2, pp. 91-103, 2000.

S. Horwitz, and T. Reps, “The use of dependence graph in software engineering”, Proceedings of the 14th International on software engineering, Melbourne, Australia, 1992, pp. 392-411.

T. Apiwattanapong, A. Orso, and M. Harrold (2004), “A Differencing Algorithm for Object-oriented Programs”, Automated Software Engineering, vol. 14, no 1, pp. 3-36.

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

Z. Xing, and E. Stroulia (2005), “UMLDiff: An Algorithm for Object–Oriented Design Differencing”, Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005), pp. 54-65.

M. Abi-Antoun, J. Aldrich, N. Nahas, B. Schmerl and D. Garlan (2006). “Differencing and Merging of Architectural Views”, proceedings of the 21st IEEE International Conference on Automated Software Engineering (ASE'06), pp. 47-58.

Z. Bouras, M. Maouche (2015). "Merging software architectures with conflicts detections”, accepted paper in International Journal of Information Systems and Change Management, Eds. Inderscience Publisher, Vol 7, No 3, pp. 242-260.

K. Kobayashi, M. Kamimura; K. Yano; and K. Kato (2013). “SArF map: Visualizing software architecture from feature and layer viewpoints”, in Proceedings of International Conference on Program Comprehension (ICPC’2013), San Fransisco USA, 2013, pp. 43 – 52.

B. Westfechtel (2010). “A Formal Approach to Three-Way Merging of EMF Models”, Proceedings of the 1st International Workshop on Model Comparison in Practice, IWMCP ’10, Malaga, Spain, pp. 31-41.

P. Brosch, M. Seidl, M. Wimmer and G. Kappel (2012). “Conflict Visualization for Evolving UML Models”, Journal of Object Technology, vol 11, no 3, pp. 1–30.

P. Langer, K. Wieland, M. Wimmer, and J. Cabot (2011), “From UML Profiles to EMF Profiles and Beyond”, eds. TOOLS. LNCS, vol. 6705, Springer, Heidelberg, pp. 52–67.

F. Rodrigues, and S. Barbosa(2006), “Component Identification Through Program. Slicing”, Proceedings of the International Workshop on Formal Aspects of Component Software (FACS 2005), Electronic Notes in Theoretical Computer Science, pp. 291-304.

J. Guo, Y. Liao, and R. Pamula (2006). “Static Analysis Based Software Architecture Recovery”, Computational Science and Its Applications Lecture Notes in Computer Science, 3982, pp. 974-983.

B. Li, Y. Zhou, Y. Wang, and J. Mo (2005). “Matrix-based component dependence representation and its applications in software quality assurance” SIGPLAN Notices, vol 40, no 11, pp. 29–36.

J. Lalchandani (2009). “Static Slicing of UML Architectural Models”, Journal of Object Technology, vol 8, no 1, pp. 159-188.

J. Zhao (2000). “A Slicing-Based Approach to Extracting Reusable Software Architectures," Proceedings of the. 4th European Conference on Software Maintenance and Reengineering, IEEE Computer Society Press, Zurich, Switzerland . pp.215-223.

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 License.