Skip to main content

Advertisement

Log in

Search-based detection of model level changes

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

Software models, defined as code abstractions, are iteratively refined, restructured, and evolved due to many reasons such as reflecting changes in requirements or modifying a design to enhance existing features. For understanding the evolution of a model a-posteriori, change detection approaches have been proposed for models. The majority of existing approaches are successful to detect atomic changes. However, composite changes, such as refactorings, are difficult to detect due to several possible combinations of atomic changes or eventually hidden changes in intermediate model versions that may be no longer available. Moreover, a multitude of refactoring sequences may be used to describe the same model evolution. In this paper, we propose a multi-objective approach to detect model changes as a sequence of refactorings. Our approach takes as input an exhaustive list of possible types of model refactoring operations, the initial model, and the revised model, and generates as output a list of refactoring applications representing a good compromise between the following two objectives (i) maximize the similarity between the expected revised model and the generated model after applying the refactoring sequence on the initial model, and (ii) minimize the number of atomic changes used to describe the evolution. In fact, minimizing the number of atomic changes can important since it is maybe easier for a designer to understand and analyze a sequence of refactorings (composite model changes) rather than an equivalent large list of atomic changes (Weissgerber and Diehl 2006). Due to the huge number of possible refactoring sequences, a metaheuristic search method is used to explore the space of possible solutions. To this end, we use the non-dominated sorting genetic algorithm (NSGA-II) to find the best trade-off between our two objectives. The paper reports on the results of an empirical study of our multi-objective model changes detection technique as applied on various versions of real-world models taken from open source projects and one industrial project. We compared our approach to the simple deterministic greedy algorithm, multi-objective particle swarm optimization (MOPSO), an existing mono-objective changes detection approach, and two model changes detection tools not based on computational search. The statistical test results provide evidence to support the claim that our proposal enables the generation of changes detection solutions with correctness higher than 85 %, in average, using a variety of real-world scenarios.

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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

References

  • Alanen M, Porres I (2003) Difference and union of models. Proc Int Conf Unified Model Language (UML’03) LNCS 2863:2–17, Springer

    Google Scholar 

  • Arcuri A, Briand LC (2011) A practical guide for using statistical tests to assess randomized algorithms in software engineering. Proc 33rd Int Conf Software Eng (ICSE ’11)

  • Bechikh S, Ben Said L, Ghédira K (2010) Estimating nadir point in multi-objective optimization using mobile reference points. Proc IEEE Congress Evolution Comput (CEC’10): 2129–2137

  • Ben Fadhel A, Kessentini M, Langer P, Wimmer M (2012) Search-based detection of high-level model changes. Proc 28th IEEE Int Conf Software Maintenance, Italy

  • Briand LC, Labiche Y, Soccar G (2002) “Automating impact analysis and regression test selection based on UML designs”. Proc Int Conf Software Maintenance. IEEE: 251–260

  • Brosch P, Langer P, Seidl M, Wieland K, Wimmer M, Kappel G, Retschitzegger W, Schwinger W (2009) An example is worth a thousand words: composite operation modeling by-example. Proc MoDELS’09, Springer, 271–285

  • Brosch P, Seidl M, Wimmer M, Kappel G (2012) Conflict visualization for evolving UML models. J Object Technol 11(3):2, 1-30

    Article  Google Scholar 

  • Brown WJ, Malveau RC, Brown WH, Mowbray TJ (1998) “Anti patterns: refactoring software, architectures, and projects in crisis,”. John Wiley & Sons, ISBN 978-0471197133

  • Brun C, Pierantonio A (2008) Model differences in the eclipse modeling framework. UPGRADE, Europ J Inform Prof 9(2):29–34

    Google Scholar 

  • Cicchetti D, Di Ruscio A (2007) Pierantonio: a metamodel independent approach to difference representation. J Object Technol 6(9):165–185

    Article  Google Scholar 

  • Deb K, Pratap A, Agarwal S, Meyarivan T (2002) A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans Evol Comput 6:182–197

    Article  Google Scholar 

  • Demeyer S, Ducasse S, Nierstrasz O (2000) Finding refactorings via change metrics. Proc Conf Object-Orient Prog, Syst, Languages, Appl (OOPSLA’00), ACM. 166–177

  • Dig D, Comertoglu C, Marinov D, Johnson R (2006) Automated detection of refactorings in evolving components. Proc Europ Conf Object-Orient Prog (ECOOP’06), vol. 4067 of LNCS, Springer 404–428

  • Dig D, Manzoor K, Johnson RE, Nguyen TN (2008) Effective software merging in the presence of object-oriented refactorings. IEEE Trans Softw Eng 34(3):321–335

    Article  Google Scholar 

  • Eiben AE, Smit SK (2011) Parameter tuning for configuring and analyzing evolutionary algorithms. Swarm Evol Comput 1(1):19–31

    Article  Google Scholar 

  • Ekman T, Asklund U (2004) Refactoring-aware versioning in eclipse. Electronic Notes Theor Comput Sci 107:57–69

    Article  Google Scholar 

  • Fluri B, Würsch M, Pinzger M, Gall H (2007) Change distilling: tree differencing for fine-grained source code change extraction. IEEE Trans Software Eng 33(11):725–743

    Article  Google Scholar 

  • Fonseca CM, Fleming PJ (1993) Genetic algorithms for multi-objective optimization: formulation, discussion and generalization. In: Forrest S (ed) Proceedings of the fifth international conference on genetic algorithms. Morgan Kauffman, San Mateo, pp 416–423

    Google Scholar 

  • Fowler M, Beck K, Brant J, Opdyke W, Roberts D (1999) Refactoring – improving the design of existing code; 1st ed. Addison-Wesley

  • France R, Rumpe B (2007) Model-driven development of complex software: a research roadmap. Proc Int Conf Software Eng (ICSE’07): Future Software Eng; IEEE Comput Soc Press

  • Friedman M (1937) The use of ranks to avoid the assumption of normality implicit in the analysis of variance. J Am Stat Assoc (American Statistical Association) 32(200):675–701. doi:10.2307/2279372.JSTOR2279372

    MATH  Google Scholar 

  • Gasevic D, Djuric D, Devedzic V (2009) Model driven engineering and ontology development; 2. edition, Springer

  • Gîrba T, Ducasse S (2006) Modeling history to analyze software evolution. J Softw Maint Evol Res Pract 18(3):207–236

    Article  Google Scholar 

  • Harman M, Jones BF (2001) Search-based software engineering. Inform Software Technol 43(14):833–839

    Article  Google Scholar 

  • Harman M, Tratt L (2007) Pareto optimal search based refactoring at the design level. Proc Genet Evolution Comput Conf (GECCO’07): 1106–1113

  • Harman M, Mansouri SA, Zhang Y (2009) Search based software engineering: a comprehensive analysis and review of trends techniques and applications. Technical report TR-09-03, King’s College

  • T. Kehrer, U. Kelter, G. Taentzer (2011) A rule-based approach to the semantic lifting of model differences in the context of model versioning. Proc Int Conf Automated Software Eng (ASE’11), IEEE, 163–172

  • Kehrer T, Kelter U, Ohrndorf M, Sollbach T (2012) Understanding model evolution through semantically lifting model differences with SiLift. Proc 28th Int Conf Software Maintenance (ICSM’12), IEEE Comput Soc

  • Kessentini M, Sahraoui H, Boukadoum M (2008) Model transformation as an optimization problem. Proc MoDELS’08, vol. 5301 of Springer LNCS, 159–173

  • Kim M, Notkin D, Grossman DG Jr. (2012) Wilson: identifying and summarizing systematic code changes via rule inference. IEEE Trans Software Eng, early access article

  • Koegel M, Herrmannsdoerfer M, Li Y, Helming J, Joern D (2010) Comparing state- and operation-based change tracking on models. Proc IEEE Int EDOC Conf

  • Koza JR (1992) Genetic programming: on the programming of computers by means of natural selection. MIT Press, Cambridge

    MATH  Google Scholar 

  • Küster JM, Gerth C, Förster A, Engels G (2008) Detecting and resolving process modeling differences in the absence of a change log. Proc Int Conf Business Process Manag (BPM’08), LNCS, Springer, 244–260

  • Langer P, Wimmer M, Brosch P, Herrmannsdoerfer M, Seidl M, Wieland K, Kappel G (2012) A posteriori operation detection in evolving software models. J Syst Software

  • Li X (2003) A non-dominated sorting particle swarm optimizer for multiobjective optimization. Proc 2003 Int Conf Genet Evolution Comput (GECCO’03): 37–48

  • Lin Y, Gray J, Jouault F (2007) DSMDiff: a differentiation tool for domain-specific models. Eur J Inf Syst 16(4):349–361

    Article  Google Scholar 

  • Liu H, Yang L, Niu Z, Ma Z, Shao W (2009) Facilitating software refactoring with appropriate resolution order of bad smells. Proc ESEC/FSE’09: 265–268

  • Mansoor U, Kessentini M, Langer P, Wimmer M, Bechikh S, Deb K (2015) “MOMM: Multi-objective model merging”. J Syst Software, TBD, TBD: 1–20

  • Mansoor U, Kessentini M, Langer P, Wimmer M, Bechikh S, Deb K (2015b) MOMM: multi-objective model merging. J Syst Softw 103:423–439

    Article  Google Scholar 

  • Maoz S, Ringert J, Rumpe B (2010) A manifesto for semantic model differencing. MoDELS workshops. LNCS 6627:194–203, Springer

    Google Scholar 

  • Mens T, Tourwé T (2004) A survey of software refactoring. IEEE Trans Softw Eng 30(2):126–139

    Article  Google Scholar 

  • Moha N, Guéhéneuc Y-G, Duchien L, Meur A-FL (2009) DECOR: a method for the specification and detection of code and design smells. IEEE Trans Software Eng (TSE)

  • Nejati S, Sabetzadeh M, Chechik M, Easterbrook S, Zave P (2007) Matching and merging of statecharts specifications. Proc Int Conf Software Eng (ICSE 2007): 54–64. IEEE

  • O Cinnéide M (2001) Automated application of design patterns: a refactoring approach. Ph.D. Dissertation. Trinity College Dublin

  • Ó Cinnéide M, Tratt L, Harman M, Counsell S, Moghadam IH (2012) Experimental assessment of software metrics using automated refactoring. ESEM: 49–58

  • Opdyke WF (1992) Refactoring object-oriented frameworks. Ph.D. Dissertation. University of Illinois at Urbana-Champaign, Champaign, IL, USA. UMI Order No. GAX93-05645

  • Ouni A, Kessentini M, Sahraoui HA, Hamdi MS (2013) The use of development history in software refactoring using a multi-objective evolutionary algorithm. GECCO 1461–1468

  • Pilskalns O, Uyan G, Andrews A (2006) Regression testing uml designs. 22nd IEEE Int Conf Software Maintenance. ICSM’06. IEEE: 254–264)

  • Porres I (2003) Model refactorings as rule-based update transformations. Springer, Berlin Heidelberg, pp 159–174

    Google Scholar 

  • Prete K, Rachatasumrit N, Sudan N, Kim M (2010) Template-based reconstruction of complex refactorings. Proc Int Conf Software Maintenance (ICSM’10), IEEE 1–10

  • Rivera J, Vallecillo A (2008) Representing and OPERATING WITH MODEL DIFFERENCES. Paige RF, Meyer B (eds.) TOOLS EUROPE 2008. LNBIP 11, 141–160. Springer

  • Robbes R (2007) Mining a change-based software repository. Proc Workshop Mining Software Repositories (MSR’07) IEEE Comput Soc: 15–23

  • Roberts DB, Johnson R (1999) Practical analysis for refactoring. Ph.D. Dissertation

  • Ruiz R, Stützle T (2007) A simple and effective iterated greedy algorithm for the permutation flowshop scheduling problem. Eur J Oper Res 177(3):2033–2049

    Article  MATH  Google Scholar 

  • Sahin D, Kessentini M, Wimmer M, Deb K (2015) Model transformation testing: a bi-level search-based software engineering approach. J Software: Evol Process 27(11):821–837

    Google Scholar 

  • Seng O, Stammel J, Burkhart D (2006) Search-based determination of refactorings for improving the class structure of object-oriented systems. Proc Genet Evolution Comput Conf (GECCO’06): 1909–1916

  • Vermolen S, Wachsmuth G, Visser E (2011) Reconstructing complex metamodel evolution; Tech. Rep. TUD-SERG-2011-026, Delft University of Technology

  • Weissgerber P, Diehl S (2006) Identifying refactorings from source-code changes. Proc Int Conf Automated Software Eng (ASE’06), IEEE 231–240

  • Wieland K, Langer P, Seidl M, Wimmer M, Kappel G (2013) Turning conflicts into collaboration. Comput Supported Coop Work 22(2-3):181–240

    Article  Google Scholar 

  • Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2012) Experimentation in Software Engineering. Springer

  • Xing Z, Stroulia E (2005) UMLDiff: An algorithm for object-oriented design differencing. Proc Int Conf Automated Software Eng (ASE 2005): 54–65. ACM

  • Xing Z, Stroulia E (2006) Refactoring detection based on UMLDiff change-facts queries. Proc 13th Work Conf Reverse Eng (WCRE’06), IEEE:263–274

  • Zitzler E, Thiele L, Laumanns M, Fonseca CM, da Fonseca VG (2003) Performance assessment of multiobjective optimizers: an analysis and review. IEEE Trans Evol Comput 7(2):117–132

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marouane Kessentini.

Additional information

Communicated by: Andrea De Lucia

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kessentini, M., Mansoor, U., Wimmer, M. et al. Search-based detection of model level changes. Empir Software Eng 22, 670–715 (2017). https://doi.org/10.1007/s10664-016-9442-8

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-016-9442-8

Keywords

Navigation