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

01.03.2023

Assessing the exposure of software changes

The DiPiDi approach

verfasst von: Mehran Meidani, Maxime Lamothe, Shane McIntosh

Erschienen in: Empirical Software Engineering | Ausgabe 2/2023

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

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.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

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!

Anhänge
Nur mit Berechtigung zugänglich
Literatur
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat Rosenthal R (1976) Experimenter effects in behavioral research. Irvington Rosenthal R (1976) Experimenter effects in behavioral research. Irvington
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat 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
Zurück zum Zitat Tukey JW et al (1977) Exploratory data analysis vol 2, Reading, Mass Tukey JW et al (1977) Exploratory data analysis vol 2, Reading, Mass
Zurück zum Zitat 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
Metadaten
Titel
Assessing the exposure of software changes
The DiPiDi approach
verfasst von
Mehran Meidani
Maxime Lamothe
Shane McIntosh
Publikationsdatum
01.03.2023
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 2/2023
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-022-10270-y

Weitere Artikel der Ausgabe 2/2023

Empirical Software Engineering 2/2023 Zur Ausgabe

Premium Partner