Skip to main content
Top
Published in: Empirical Software Engineering 2/2023

01-03-2023

Assessing the exposure of software changes

The DiPiDi approach

Authors: Mehran Meidani, Maxime Lamothe, Shane McIntosh

Published in: Empirical Software Engineering | Issue 2/2023

Log in

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

Changing a software application with many build-time configuration settings may introduce unexpected side effects. For example, a change intended to be specific to a platform (e.g., Windows) or product configuration (e.g., community editions) might impact other platforms or configurations. Moreover, a change intended to apply to a set of platforms or configurations may be unintentionally limited to a subset. Indeed, understanding the exposure of source code changes is an important risk mitigation step in change-based development approaches. In this paper, we present DiPiDi, a new approach to assess the exposure of source code changes under different build-time configuration settings by statically analyzing build specifications. To evaluate our approach, we produce a prototype implementation of DiPiDi for the CMake build system. We measure the effectiveness and efficiency of developers when performing five tasks in which they must identify the deliverable(s) and conditions under which a source code change will propagate. We assign participants into three groups: without explicit tool support, supported by existing impact analysis tools, and supported by DiPiDi. While our study does not have the statistical power to make generalized quantitative claims, we manually analyze the full distribution of our study’s results and show that DiPiDi results in a net benefit for its users. Through our experimental evaluation, we show that DiPiDi results in a 36 average percentage points improvement in F1-score when identifying impacted deliverables and a reduction of 0.62 units of distance when ranking impacted patches. Furthermore, DiPiDi results in a 42% average task time reduction for our participants when compared to a competing impact analysis approach. DiPiDi’s improvements to both effectiveness and efficiency are especially prevalent in complex programs with many compile-time configurations.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Appendix
Available only for authorised users
Literature
go back to reference Adams B, Tromp H, De Schutter K, De Meuter W (2007) Design recovery and maintenance of build systems. In: 2007 IEEE international conference on software maintenance. IEEE, pp 114–123 Adams B, Tromp H, De Schutter K, De Meuter W (2007) Design recovery and maintenance of build systems. In: 2007 IEEE international conference on software maintenance. IEEE, pp 114–123
go back to reference Adams B, De Schutter K, Tromp H, De Meuter W (2008) The evolution of the Linux build system. Electronic Communications of the EASST 8 Adams B, De Schutter K, Tromp H, De Meuter W (2008) The evolution of the Linux build system. Electronic Communications of the EASST 8
go back to reference Ahsan SN, Wotawa F (2010) Impact analysis of scrs using single and multi-label machine learning classification. In: Proceedings of the 2010 ACM-IEEE international symposium on empirical software engineering and measurement, pp 1–4 Ahsan SN, Wotawa F (2010) Impact analysis of scrs using single and multi-label machine learning classification. In: Proceedings of the 2010 ACM-IEEE international symposium on empirical software engineering and measurement, pp 1–4
go back to reference Arnold RS, Bohner SA (1993) Impact analysis-towards a framework for comparison. In: 1993 conference on software maintenance. IEEE, pp 292–301 Arnold RS, Bohner SA (1993) Impact analysis-towards a framework for comparison. In: 1993 conference on software maintenance. IEEE, pp 292–301
go back to reference Bezemer CP, McIntosh S, Adams B, German DM, Hassan AE (2017) An empirical study of unspecified dependencies in make-based build systems. Empir Softw Eng 22(6):3117–3148CrossRef Bezemer CP, McIntosh S, Adams B, German DM, Hassan AE (2017) An empirical study of unspecified dependencies in make-based build systems. Empir Softw Eng 22(6):3117–3148CrossRef
go back to reference Bosu A, Greiler M, Bird C (2015) Characteristics of useful code reviews: An empirical study at microsoft. In: Proceedings of the 12th working conference on mining software repositories. IEEE Press, MSR ’15, pp 146–156 Bosu A, Greiler M, Bird C (2015) Characteristics of useful code reviews: An empirical study at microsoft. In: Proceedings of the 12th working conference on mining software repositories. IEEE Press, MSR ’15, pp 146–156
go back to reference Cao Q, Wen R, Mcintosh S (2017) Forecasting the duration of incremental build jobs. In: 2017 IEEE International conference on software maintenance and evolution (ICSME). IEEE, pp 524–528 Cao Q, Wen R, Mcintosh S (2017) Forecasting the duration of incremental build jobs. In: 2017 IEEE International conference on software maintenance and evolution (ICSME). IEEE, pp 524–528
go back to reference Cohen J (2010) Modern code review. Making Software: What Really Works, and Why We Believe It 329–336 Cohen J (2010) Modern code review. Making Software: What Really Works, and Why We Believe It 329–336
go back to reference Fontana FA, Mariani E, Mornioli A, Sormani R, Tonello A (2011) An experience report on using code smells detection tools. In: 2011 IEEE fourth international conference on software testing, verification and validation workshops. IEEE, pp 450–457 Fontana FA, Mariani E, Mornioli A, Sormani R, Tonello A (2011) An experience report on using code smells detection tools. In: 2011 IEEE fourth international conference on software testing, verification and validation workshops. IEEE, pp 450–457
go back to reference Gethers M, Poshyvanyk D (2010) Using relational topic models to capture coupling among classes in object-oriented software systems. In: 2010 IEEE international conference on software maintenance. IEEE, pp 1–10 Gethers M, Poshyvanyk D (2010) Using relational topic models to capture coupling among classes in object-oriented software systems. In: 2010 IEEE international conference on software maintenance. IEEE, pp 1–10
go back to reference Gyori A, Lahiri SK, Partush N (2017) Refining interprocedural change-impact analysis using equivalence relations. In: Proceedings of the 26th ACM SIGSOFT international symposium on software testing and analysis. https://doi.org/10.1145/3092703.3092719, vol 2017. Association for Computing Machinery, New York, pp 318–328 Gyori A, Lahiri SK, Partush N (2017) Refining interprocedural change-impact analysis using equivalence relations. In: Proceedings of the 26th ACM SIGSOFT international symposium on software testing and analysis. https://​doi.​org/​10.​1145/​3092703.​3092719, vol 2017. Association for Computing Machinery, New York, pp 318–328
go back to reference Hassan F, Wang X (2018) Hirebuild: An automatic approach to history-driven repair of build scripts. In: 2018 IEEE/ACM 40Th international conference on software engineering (ICSE). IEEE, pp 1078–1089 Hassan F, Wang X (2018) Hirebuild: An automatic approach to history-driven repair of build scripts. In: 2018 IEEE/ACM 40Th international conference on software engineering (ICSE). IEEE, pp 1078–1089
go back to reference Hochstein L, Jiao Y (2011) The cost of the build tax in scientific software. In: 2011 international symposium on empirical software engineering and measurement. IEEE, pp 384–387 Hochstein L, Jiao Y (2011) The cost of the build tax in scientific software. In: 2011 international symposium on empirical software engineering and measurement. IEEE, pp 384–387
go back to reference Kirchner F, Kosmatov N, Prevosto V, Signoles J, Yakobowski B (2015) Frama-c: a software analysis perspective. Form Asp Comput 27(3):573–609MathSciNetCrossRef Kirchner F, Kosmatov N, Prevosto V, Signoles J, Yakobowski B (2015) Frama-c: a software analysis perspective. Form Asp Comput 27(3):573–609MathSciNetCrossRef
go back to reference Li B, Sun X, Leung H, Zhang S (2013) A survey of code-based change impact analysis techniques. Software Testing Verification and Reliability 23(8):613–646CrossRef Li B, Sun X, Leung H, Zhang S (2013) A survey of code-based change impact analysis techniques. Software Testing Verification and Reliability 23(8):613–646CrossRef
go back to reference Liebig J, Apel S, Lengauer C, Kästner C, Schulze M (2010) An analysis of the variability in forty preprocessor-based software product lines. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume, vol 1, pp 105–114 Liebig J, Apel S, Lengauer C, Kästner C, Schulze M (2010) An analysis of the variability in forty preprocessor-based software product lines. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume, vol 1, pp 105–114
go back to reference Martin K, Hoffman B (2010) Mastering CMake: a cross-platform build system. Kitware Martin K, Hoffman B (2010) Mastering CMake: a cross-platform build system. Kitware
go back to reference McIntosh S, Adams B, Hassan AE (2010) The evolution of ant build systems. In: 2010 7th IEEE working conference on mining software repositories (MSR 2010). IEEE, pp 42–51 McIntosh S, Adams B, Hassan AE (2010) The evolution of ant build systems. In: 2010 7th IEEE working conference on mining software repositories (MSR 2010). IEEE, pp 42–51
go back to reference McIntosh S, Adams B, Nguyen TH, Kamei Y, Hassan AE (2011) An empirical study of build maintenance effort. In: 2011 33Rd international conference on software engineering (ICSE). IEEE, pp 141–150 McIntosh S, Adams B, Nguyen TH, Kamei Y, Hassan AE (2011) An empirical study of build maintenance effort. In: 2011 33Rd international conference on software engineering (ICSE). IEEE, pp 141–150
go back to reference Meidani M, Lamothe M, McIntosh S (2021) Assessing the exposure of software changes: The dipidi approach. arXiv:210400725 Meidani M, Lamothe M, McIntosh S (2021) Assessing the exposure of software changes: The dipidi approach. arXiv:210400725
go back to reference Moura Ld, Bjørner N (2008) Z3: An efficient smt solver. In: International conference on Tools and algorithms for the construction and analysis of systems. Springer, pp 337–340 Moura Ld, Bjørner N (2008) Z3: An efficient smt solver. In: International conference on Tools and algorithms for the construction and analysis of systems. Springer, pp 337–340
go back to reference Nadi S, Holt R (2014) The Linux kernel: A case study of build system variability. Journal of Software: Evolution and Process 26(8):730–746 Nadi S, Holt R (2014) The Linux kernel: A case study of build system variability. Journal of Software: Evolution and Process 26(8):730–746
go back to reference Orrú M, Tempero E, Marchesi M, Tonelli R, Destefanis G (2015) A curated benchmark collection of python systems for empirical studies on software engineering. In: Proceedings of the 11th international conference on predictive models and data analytics in software engineering, pp 1–4 Orrú M, Tempero E, Marchesi M, Tonelli R, Destefanis G (2015) A curated benchmark collection of python systems for empirical studies on software engineering. In: Proceedings of the 11th international conference on predictive models and data analytics in software engineering, pp 1–4
go back to reference Parr TJ, Quong RW (1995) Antlr: a predicated-ll (k) parser generator. Software: Practice and Experience 25(7):789–810 Parr TJ, Quong RW (1995) Antlr: a predicated-ll (k) parser generator. Software: Practice and Experience 25(7):789–810
go back to reference Robles G, Gonzalez-Barahona JM, Merelo JJ (2006) Beyond source code: the importance of other artifacts in software development (a case study). J Syst Softw 79(9):1233–1248CrossRef Robles G, Gonzalez-Barahona JM, Merelo JJ (2006) Beyond source code: the importance of other artifacts in software development (a case study). J Syst Softw 79(9):1233–1248CrossRef
go back to reference Rosenthal R (1976) Experimenter effects in behavioral research. Irvington Rosenthal R (1976) Experimenter effects in behavioral research. Irvington
go back to reference Rovegård P, Angelis L, Wohlin C (2008) An empirical study on views of importance of change impact analysis issues. IEEE Trans Softw Eng 34(4):516–530CrossRef Rovegård P, Angelis L, Wohlin C (2008) An empirical study on views of importance of change impact analysis issues. IEEE Trans Softw Eng 34(4):516–530CrossRef
go back to reference Seo H, Sadowski C, Elbaum S, Aftandilian E, Bowdidge R (2014) Programmers’ build errors: a case study (at google). In: Proceedings of the 36th International Conference on Software Engineering, Association for Computing Machinery, New York, NY, USA, ICSE, vol 2014, pp 724–734. https://doi.org/10.1145/2568225.2568255 Seo H, Sadowski C, Elbaum S, Aftandilian E, Bowdidge R (2014) Programmers’ build errors: a case study (at google). In: Proceedings of the 36th International Conference on Software Engineering, Association for Computing Machinery, New York, NY, USA, ICSE, vol 2014, pp 724–734. https://​doi.​org/​10.​1145/​2568225.​2568255
go back to reference Sincero J, Schirmeier H, Schröder-Preikschat W, Spinczyk O (2007) Is the Linux kernel a software product line. In: Proc. SPLC workshop on open source software and product lines Sincero J, Schirmeier H, Schröder-Preikschat W, Spinczyk O (2007) Is the Linux kernel a software product line. In: Proc. SPLC workshop on open source software and product lines
go back to reference Tamrawi A, Nguyen HA, Nguyen HV, Nguyen TN (2012) Build code analysis with symbolic evaluation. In: 2012 34Th international conference on software engineering (ICSE). IEEE, pp 650–660 Tamrawi A, Nguyen HA, Nguyen HV, Nguyen TN (2012) Build code analysis with symbolic evaluation. In: 2012 34Th international conference on software engineering (ICSE). IEEE, pp 650–660
go back to reference Tu Q, Godfrey MW (2001) The build-time software architecture view. In: Proceedings IEEE international conference on software maintenance. ICSM. IEEE, pp 398–407 Tu Q, Godfrey MW (2001) The build-time software architecture view. In: Proceedings IEEE international conference on software maintenance. ICSM. IEEE, pp 398–407
go back to reference Tukey JW et al (1977) Exploratory data analysis vol 2, Reading, Mass Tukey JW et al (1977) Exploratory data analysis vol 2, Reading, Mass
go back to reference Wen R, Gilbert D, Roche MG, Mcintosh S (2018) Blimp tracer: integrating build impact analysis with code review. In: 2018 IEEE International conference on software maintenance and evolution (ICSME). IEEE, pp 685–694 Wen R, Gilbert D, Roche MG, Mcintosh S (2018) Blimp tracer: integrating build impact analysis with code review. In: 2018 IEEE International conference on software maintenance and evolution (ICSME). IEEE, pp 685–694
Metadata
Title
Assessing the exposure of software changes
The DiPiDi approach
Authors
Mehran Meidani
Maxime Lamothe
Shane McIntosh
Publication date
01-03-2023
Publisher
Springer US
Published in
Empirical Software Engineering / Issue 2/2023
Print ISSN: 1382-3256
Electronic ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-022-10270-y

Other articles of this Issue 2/2023

Empirical Software Engineering 2/2023 Go to the issue

Premium Partner