Skip to main content

Building the MSR Tool Kaiaulu: Design Principles and Experiences

  • Conference paper
  • First Online:
Software Architecture (ECSA 2021)

Abstract

Background: Since Alitheia Core was proposed and subsequently retired, tools that support empirical studies of software projects continue to be proposed, such as Codeface, Codeface4Smells, GrimoireLab and SmartSHARK, but they all make different design choices and provide overlapping functionality. Aims: We seek to understand the design decisions adopted by these tools–the good and the bad–along with their consequences, to understand why their authors reinvented functionality already present in other tools, and to help inform the design of future tools. Method: We used action research to evaluate the tools, and to determine a set of principles and anti-patterns to motivate a new tool design. Results: We identified 7 major design choices among the tools: 1) Abstraction Debt, 2) the use of Project Configuration Files, 3) the choice of Batch or Interactive Mode, 4) Minimal Paths to Data, 5) Familiar Software Abstractions, 6) Licensing and 7) the Perils of Code Reuse. Building on the observed good and bad design decisions, we created our own tool architecture and implemented it as an R package. Conclusions: Tools should not require onerous setup for users to obtain data. Authors should consider the conventions and abstractions used by their chosen language and build upon these instead of redefining them. Tools should encourage best practices in experiment reproducibility by leveraging self-contained and readable schemas that are used for tool automation, and reuse must be done with care to avoid depending on dead code.

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

Access this chapter

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    https://github.com/istlab/Alitheia-Core.

  2. 2.

    The documentation for the tool can be found at https://github.com/sailuh/kaiaulu.

  3. 3.

    https://github.com/smartshark/issueSHARK#introduction.

  4. 4.

    See https://github.com/siemens/codeface/tree/master/conf and https://github.com/maelstromdat/codeface4smells_TR/tree/master/Configurations for Codeface and Codeface4Smells respectively.

  5. 5.

    https://xnmt.readthedocs.io/en/latest/experiment_config_files.html.

  6. 6.

    https://smartshark.github.io/plugin/tutorial/python.

  7. 7.

    https://github.com/dmlc/xgboost/issues/1338.

  8. 8.

    https://github.com/Rdatatable/data.table/pull/2456.

  9. 9.

    https://github.com/smartshark/mecoSHARK.

  10. 10.

    https://github.com/sed-inf-u-szeged/OpenStaticAnalyzer.

  11. 11.

    http://findbugs.sourceforge.net/.

  12. 12.

    https://sourceforge.net/p/findbugs/bugs/1487/.

  13. 13.

    https://github.com/spotbugs/spotbugs.

  14. 14.

    https://ropensci.org/about/.

  15. 15.

    https://chaoss.community/.

  16. 16.

    https://devguide.ropensci.org/softwarereviewintro.html#whysubmit.

  17. 17.

    https://www.r-project.org/.

  18. 18.

    https://cran.r-project.org/web/packages/.

  19. 19.

    See for example under Vignettes: https://cran.r-project.org/web/packages/ggplot2/index.html.

  20. 20.

    https://github.com/sailuh/kaiaulu/blob/master/R/network.R.

  21. 21.

    Also publicly available at: http://www.catb.org/~esr/writings/taoup/html/ch11s01.html.

  22. 22.

    https://github.com/sailuh/kaiaulu/blob/master/vignettes/gitlog_showcase.Rmd.

  23. 23.

    https://github.com/sailuh/kaiaulu/blob/master/vignettes/social_smell_showcase.Rmd.

  24. 24.

    https://github.com/sailuh/kaiaulu/blob/master/vignettes/blamed_line_types_showcase.Rmd.

  25. 25.

    For a full analysis with the metrics, see: http://itm0.shidler.hawaii.edu/kaiaulu/articles/social_smell_showcase.html. The source code can be found on https://github.com/sailuh/kaiaulu/blob/master/vignettes/social_smell_showcase.Rmd.

  26. 26.

    https://github.com/sailuh/kaiaulu/tree/master/conf.

References

  1. 15th IEEE/ACM International Workshop on Cooperative and Human Aspects of Software Engineering, CHASE@ICSE 2022. IEEE (2022). https://fpalomba.github.io/pdf/Conferencs/C65.pdf

  2. Almeida, D.A., Murphy, G.C., Wilson, G., Hoye, M.: Do software developers understand open source licenses? In: IEEE/ACM 25th International Conference on Program Comprehension, pp. 1–11 (2017)

    Google Scholar 

  3. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 4th edn. Addison-Wesley, Boston (2021)

    Google Scholar 

  4. Bird, C., Gourley, A., Devanbu, P., Gertz, M., Swaminathan, A.: Mining email social networks. In: Proceedings of International Workshop on Mining Software Repositories, pp. 137–143. ACM (2006)

    Google Scholar 

  5. Bird, C., Rigby, P.C., Barr, E.T., Hamilton, D.J., German, D.M., Devanbu, P.: The promises and perils of mining git. In: 2009 6th IEEE International Working Conference on Mining Software Repositories, pp. 1–10 (2009). https://doi.org/10.1109/MSR.2009.5069475

  6. Broere, C.: Effects of community smells on turnover in Open Source Software projects. Ph.D. thesis, Vrije Universiteit Amsterdam (2021)

    Google Scholar 

  7. Carlos Paradis, R.K.: Design choices in building an MSR tool: the case of kaiaulu. In: ECSA 2021 (2021). http://ceur-ws.org/Vol-2978/msr4sa-paper1.pdf

  8. Coelho, J., Valente, M.: Why modern open source projects fail. In: Proceedings of 11th Joint Meeting on Foundations of Software Engineering, pp. 186–196. ACM (2017)

    Google Scholar 

  9. De Stefano, M., Iannone, E., Pecorelli, F., Tamburri, D.A.: Impacts of software community patterns on process and product: an empirical study. Sci. Comput. Program. 214, 102731 (2022). https://doi.org/10.1016/j.scico.2021.102731. https://www.sciencedirect.com/science/article/pii/S0167642321001246

  10. Dueñas, S., Cosentino, V., Robles, G., Gonzalez-Barahona, J.M.: Perceval: software project data at your will. In: Proceedings of 40th International Conference on Software Engineering: Companion Proceedings, pp. 1–4. ACM (2018)

    Google Scholar 

  11. Easterbrook, S., Singer, J., Storey, M.A., Damian, D.: Selecting empirical methods for software engineering research. In: Shull, F., Singer, J., Sjøberg, D.I.K. (eds.) Guide to Advanced Empirical Software Engineering, pp. 285–311. Springer, London (2008). https://doi.org/10.1007/978-1-84800-044-5_11

    Chapter  Google Scholar 

  12. Giarola, F.: Detecting code and community smells in open-source: an automated approach. Master’s thesis, Politecnico di Milano (2016)

    Google Scholar 

  13. Gousios, G., Spinellis, D.: Alitheia core: an extensible software quality monitoring platform. In: 2009 IEEE 31st International Conference on Software Engineering, pp. 579–582 (2009)

    Google Scholar 

  14. Joblin, M., Apel, S., Hunsen, C., Mauerer, W.: Classifying developers into core and peripheral: an empirical study on count and network metrics. In: IEEE/ACM 39th International Conference on Software Engineering, pp. 164–174 (2017)

    Google Scholar 

  15. Joblin, M., Mauerer, W., Apel, S., Siegmund, J., Riehle, D.: From developer networks to verified communities: a fine-grained approach. In: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, vol. 1, pp. 563–573 (2015)

    Google Scholar 

  16. Joblin, M.: Structural and evolutionary analysis of developer networks. Ph.D. thesis, Universitat Passau (2017)

    Google Scholar 

  17. Kalliamvakou, E., Gousios, G., Blincoe, K., Singer, L., German, D.M., Damian, D.: The promises and perils of mining github. In: Proceedings of the 11th Working Conference on Mining Software Repositories, MSR 2014, pp. 92–101. Association for Computing Machinery, New York (2014). https://doi.org/10.1145/2597073.2597074

  18. Kazman, R., Bianco, P., Echeverria, S., Ivers, J.: Robustness. Technical report, CMU/SEI-2022-TR-004 (2022)

    Google Scholar 

  19. Lancichinetti, A., Radicchi, F., Ramasco, J.J., Fortunato, S.: Finding statistically significant communities in networks. PLoS ONE 6(4), e18961 (2011). https://doi.org/10.1371/journal.pone.0018961

  20. Magnoni, S.: An approach to measure community smells in software development communities. Ph.D. thesis, Politecnico Milano (2016)

    Google Scholar 

  21. van Meijel, J.: On the relations between community patterns and smells in open-source: a taxonomic and empirical analysis. Ph.D. thesis, Eindhoven University of Technology (2021)

    Google Scholar 

  22. Menzies, T., Williams, L., Zimmermann, T.: Perspectives on Data Science for Software Engineering, 1st edn. Morgan Kaufmann Publishers Inc., Burlington (2016)

    Google Scholar 

  23. Mo, R., Cai, Y., Kazman, R., Xiao, L., Feng, Q.: Architecture anti-patterns: automatically detectable violations of design principles. IEEE Trans. Softw. Eng. 47(5), 1008–1028 (2019)

    Article  Google Scholar 

  24. Moreno, D., et al.: Sortinghat: wizardry on software project members. In: IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings, pp. 51–54 (2019)

    Google Scholar 

  25. Neubig, G., et al.: XNMT: the extensible neural machine translation toolkit. In: Conference of the Association for Machine Translation in the Americas Open Source Software Showcase (2018)

    Google Scholar 

  26. Raymond, E.S.: The Art of UNIX Programming. Pearson Education, Burlington (2003)

    Google Scholar 

  27. Sculley, D., et al.: Hidden technical debt in machine learning systems. In: Proceedings of 28th International Conference on Neural Information Processing Systems, NIPS 2015, vol. 2, pp. 2503–2511. MIT Press, Cambridge (2015)

    Google Scholar 

  28. Spadini, D., Aniche, M., Bacchelli, A.: PyDriller: python framework for mining software repositories. In: Proceedings of 26th ACM Joint Proceedings of ESEC/FSE, pp. 908–911. ACM Press (2018)

    Google Scholar 

  29. Tamburri, D., Palomba, F., Kazman, R.: Exploring community smells in open-source: an automated approach. IEEE Trans. Softw. Eng. 47(3), 630–652 (2019)

    Article  Google Scholar 

  30. Trautsch, A., Trautsch, F., Herbold, S., Ledel, B., Grabowski, J.: The smartshark ecosystem for software repository mining. arXiv preprint arXiv:2001.01606 (2020)

  31. Trautsch, F., Herbold, S., Makedonski, P., Grabowski, J.: Addressing problems with replicability and validity of repository mining studies through a smart data platform. Empir. Softw. Eng. 23(2), 1036–1083 (2017). https://doi.org/10.1007/s10664-017-9537-x

    Article  Google Scholar 

  32. Valiev, M., Vasilescu, B., Herbsleb, J.: Ecosystem-level determinants of sustained activity in open-source projects: a case study of the PyPI ecosystem. In: Proceedings of 26th ACM Joint Proceedings of ESEC/FSE, pp. 644–655. ACM (2018)

    Google Scholar 

  33. Zhu, J., Wei, J.: An empirical study of multiple names and email addresses in OSS version control repositories. In: IEEE/ACM 16th International Conference on Mining Software Repositories (MSR), pp. 409–420 (2019)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Carlos Paradis .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Paradis, C., Kazman, R. (2022). Building the MSR Tool Kaiaulu: Design Principles and Experiences. In: Scandurra, P., Galster, M., Mirandola, R., Weyns, D. (eds) Software Architecture. ECSA 2021. Lecture Notes in Computer Science, vol 13365. Springer, Cham. https://doi.org/10.1007/978-3-031-15116-3_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-15116-3_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-15115-6

  • Online ISBN: 978-3-031-15116-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics