Skip to main content

Towards Better Understanding of Software Maintainability Evolution

  • Conference paper
  • First Online:
Systems Engineering in Context

Abstract

Due to effort and scalability challenges involved in understanding software maintainability evolution, and conflicts and synergies among software quality attributes on a large scale, researchers are forced to adjust the scopeĀ and granularity of their analysis which oftentimes results in skipping the code or applying lightweight static analysis techniques over commit history. To address this scarcity, we developed SQUAAD, a comprehensive framework including a cloud-based automated infrastructure accompanied by a data analytics and visualization toolset. SQUAAD has been documented in multiple recent research publications empowering their empirical studies and is used by a major governmental entity.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover 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

Notes

  1. 1.

    http://findbugs.sourceforge.net/.

  2. 2.

    https://www.sonarqube.org/.

  3. 3.

    https://github.com/.

  4. 4.

    https://github.com/apache/avro.

  5. 5.

    https://github.com/apache/parquet-mr.

  6. 6.

    https://pmd.github.io/.

  7. 7.

    https://angularjs.org/.

  8. 8.

    https://nodejs.org/.

References

  1. Boehm, B. W., Brown, J. R., & Lipow, M. (1976). Quantitative evaluation of software quality. In Proceedings of the 2nd International Conference on Software Engineering (pp. 592ā€“605). IEEE Computer Society Press.

    Google ScholarĀ 

  2. Mexim, B., & Kessentini, M. (2015). An introduction to modern software quality assurance. Software quality assurance: In large scale and complex software-intensive systems (pp. 19ā€“46). Waltham, MA: Morgan Kaufmann.

    Google ScholarĀ 

  3. Behnamghader, P., Alfayez, R., Srisopha, K., & Boehm, B. (2017). Towards better understanding of software quality evolution through commit-impact analysis. In 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS) (pp. 251ā€“262).

    Google ScholarĀ 

  4. DAmbros, M., Gall, H., Lanza, M., & Pinzger, M. (2008). Analysing software repositories to understand software evolution. In Software evolution (pp. 37ā€“67). Berlin, Germany: Springer.

    ChapterĀ  Google ScholarĀ 

  5. Ganpati, A., Kalia, A., & Singh, H. (2012). A comparative study of maintainability index of open source software. International Journal of Emerging Technology and Advanced Engineering, 2(10), 228ā€“230.

    Google ScholarĀ 

  6. Le, D. M., Behnamghader, P., Garcia, J., Link, D., Shahbazian, A., & Medvidovic, N. (2015). An empirical study of architectural change in open-source software systems. In Proceedings of the 12th Working Conference on Mining Software Repositories (pp. 235ā€“245). IEEE Press.

    Google ScholarĀ 

  7. Pinto, G., Torres, W., Fernandes, B., Castor, F., & Barros, R. S. (2015). A large-scale study on the usage of javas concurrent programming constructs. Journal of Systems and Software, 106, 59ā€“81.

    ArticleĀ  Google ScholarĀ 

  8. Godfrey, M. W., & Tu, Q. (2000, October). Evolution in open source software: A case study. In Proceedings of the International Conference on Software Maintenance (ICSM'00) (p. 131). IEEE Computer Society.

    Google ScholarĀ 

  9. Alexandru, C. V., Panichella, S., & Gall, H. C. (2017). Reducing redundancies in multi-revision code analysis. In 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER) (pp. 148ā€“159).

    Google ScholarĀ 

  10. Bajracharya, S., Ossher, J., & Lopes, C. (2014). Sourcerer: An infrastructure for large-scale collection and analysis of open-source code. Science of Computer Programming, 79, 241ā€“259. Experimental Software and Toolkits (EST 4): A special issue of the Workshop on Academic Software Development Tools and Techniques (WASDeTT-3 2010).

    Google ScholarĀ 

  11. Diamantopoulos, T., Thomopoulos, K., & Symeonidis, A. (2016). Qualboa: Reusabilityā€”Aware recommendations of source code components. In Proceedings of the 13th International Conference on Mining Software Repositories (pp. 488ā€“491). ACM.

    Google ScholarĀ 

  12. Dyer, R., Nguyen, H. A., Rajan, H., & Nguyen, T. N. (2015). Boa: Ultra-large-scale software repository and source-code mining. ACM Transactions on Software Engineering and Methodology, 25(1), 7.

    ArticleĀ  Google ScholarĀ 

  13. Gousios, G., Vasilescu, B., Serebrenik, A., & Zaidman, A. (2014). Lean ghtorrent: Github data on demand. In Proceedings of the 11th Working Conference on Mining Software Repositories (pp. 384ā€“387). ACM.

    Google ScholarĀ 

  14. Kaur, A., & Chopra, D. (2018). GCC-git change classifier for extraction and classification of changes in software systems (pp. 259ā€“267). Singapore, Singapore: Springer.

    Google ScholarĀ 

  15. Rozenberg, D., Beschastnikh, I., Kosmale, F., Poser, V., Becker, H., Palyart, M., et al. (2016). Comparing repositories visually with repograms. In 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR) (pp. 109ā€“120).

    Google ScholarĀ 

  16. Sokol, F. Z., Aniche, M. F., & Gerosa, M. A. (2013). Metricminer: Supporting researchers in mining software repositories. In 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM) (pp. 142ā€“146).

    Google ScholarĀ 

  17. Tiwari, N. M., Upadhyaya, G., Nguyen, H. A., & Rajan, H. (2017). Candoia: A platform for building and sharing mining software repositories tools as apps. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR) (pp. 53ā€“63).

    Google ScholarĀ 

  18. Tufano, M., Palomba, F., Bavota, G., Oliveto, R., Penta, M. D., Lucia, A. D., et al. (2017). When and why your code starts to smell bad (and whether the smells go away). IEEE Transactions on Software Engineering, 43(11), 1063ā€“1088.

    ArticleĀ  Google ScholarĀ 

  19. Alfayez, R., Behnamghader, P., Srisopha, K., & Boehm, B. (2017). How does contributors involvement influence open source systems. In 2017 IEEE 28th Annual Software Technology Conference (STC) (pp. 1ā€“8).

    Google ScholarĀ 

  20. Alfayez, R., Behnamghader, P., Srisopha, K., & Boehm, B. (2018). An exploratory study on the influence of developers in Technical Debt. In 2018 International Conference on Technical Debt (TechDebt) (pp. 1ā€“10).

    Google ScholarĀ 

  21. Behnamghader, P., Le, D. M., Garcia, J., Link, D., Shahbazian, A., & Medvidovic, N. (2017). A large-scale study of architectural evolution in open-source software systems. Empirical Software Engineering, 22(3), 1146ā€“1193.

    ArticleĀ  Google ScholarĀ 

  22. Bessey, A., Block, K., Chelf, B., Chou, A., Fulton, B., Hallem, S., et al. (2010). A few billion lines of code later: Using static analysis to find bugs in the real world. Communications of the ACM, 53(2), 66ā€“75.

    ArticleĀ  Google ScholarĀ 

  23. Kupsch, J. A., & Miller, B. P. (2009). Manual vs. automated vulnerability assessment: A case study. In First International Workshop on Managing Insider Security Threats (MIST) (pp. 83ā€“97).

    Google ScholarĀ 

  24. Safi, G., Shahbazian, A., Halfond, W. G., & Medvidovic, N. (2015). Detecting event anomalies in event-based systems. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (pp. 25ā€“37). ACM.

    Google ScholarĀ 

  25. Runeson, P., Andersson, C., Thelin, T., Andrews, A., & Berling, T. (2006). What do we know about defect detection methods? [software testing]. IEEE Software, 23(3), 82ā€“90.

    ArticleĀ  Google ScholarĀ 

  26. Welker, K. D., Oman, P. W., & Atkinson, G. G. (1997). Development and application of an automated source code maintainability index. Journal of Software: Evolution and Process, 9(3), 127ā€“159.

    Google ScholarĀ 

  27. Wagner, S., JĆ¼rjens, J., Koller, C., & Trischberger, P. (2005). Comparing bug finding tools with reviews and tests. In IFIP International Conference on Testing of Communicating Systems (pp. 40ā€“55). Berlin, Germany: Springer.

    Google ScholarĀ 

  28. Louridas, P. (2006). Static code analysis. IEEE Software, 23(4), 58ā€“61.

    ArticleĀ  Google ScholarĀ 

  29. Le, D. M., Carrillo, C., Capilla, R., & Medvidovic, N. (2016). Relating architectural decay and sustainability of software systems. In 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA) (pp. 178ā€“181).

    Google ScholarĀ 

  30. Campbell, A. (2015). Sonarqube: Open source quality management. Retrieved from http://tiny.cc/2q4z9x

  31. Langhammer, M., Shahbazian, A., Medvidovic, N., & Reussner, R. H. (2016). Automated extraction of rich software models from limited system information. In 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA) (pp. 99ā€“108).

    Google ScholarĀ 

  32. VallĆ©e-Rai, R., Co, P., Gagnon, E., Hendren, L., Lam, P., & Sundaresan, V. (1999). Sootā€”A java bytecode optimization framework. In Proceedings of the 1999 Conference of the Centre for Advanced Studies on Collaborative Research, CASCON ā€™99 (p. 13). IBM Press.

    Google ScholarĀ 

  33. Mahajan, S., Li, B., Behnamghader, P., & Halfond, W. G. (2016). Using visual symptoms for debugging presentation failures in web applications. In 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST) (pp. 191ā€“201). IEEE.

    Google ScholarĀ 

  34. Malaiya, Y. K., Li, M. N., Bieman, J. M., & Karcich, R. (2002). Software reliability growth with test coverage. IEEE Transactions on Reliability, 51(4), 420ā€“426.

    ArticleĀ  Google ScholarĀ 

  35. Joshi, P., Naik, M., Park, C. S., & Sen, K. (2009). CalFuzzer: An extensible active testing framework for concurrent programs. In International Conference on Computer Aided Verification (pp. 675ā€“681). Berlin, Germany: Springer.

    Google ScholarĀ 

  36. BlƤsing, T., Batyuk, L., Schmidt, A. D., Camtepe, S. A., & Albayrak, S. (2010). An android application sandbox system for suspicious software detection. In 2010 5th International Conference on Malicious and Unwanted Software, Nancy, Lorraine (pp. 55ā€“62).

    Google ScholarĀ 

  37. Trautsch, F., Herbold, S., Makedonski, P., & Grabowski, J. (2017). Addressing problems with replicability and validity of repository mining studies through a smart data platform. Empirical Software Engineering, 23(2), 1036ā€“1083.

    ArticleĀ  Google ScholarĀ 

  38. Trautsch, F., Herbold, S., Makedonski, P., & Grabowski, J. (2016). Addressing problems with external validity of repository mining studies through a smart data platform. In Proceedings of the 13th International Conference on Mining Software Repositories, MSR ā€™16 (pp. 97ā€“108). New York: ACM.

    Google ScholarĀ 

  39. Dyer, R., Nguyen, H. A., Rajan, H., & Nguyen, T. N. (2013). Boa: A language and infrastructure for analyzing ultra-large-scale software repositories. In Proceedings of the 2013 International Conference on Software Engineering (pp. 422ā€“431). IEEE Press.

    Google ScholarĀ 

Download references

Acknowledgment

This material is based upon the work supported in part by the US Department of Defense through the Systems Engineering Research Center (SERC) under Contract H98230-08-D-0171. SERC is a federally funded University Affiliated Research Center managed by Stevens Institute of Technology. It was also supported by the National Science Foundation grant CMMI-1408909, Developing a Constructive Logic-Based Theory of Value-Based Systems Engineering.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pooyan Behnamghader .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

Ā© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Behnamghader, P., Boehm, B. (2019). Towards Better Understanding of Software Maintainability Evolution. In: Adams, S., Beling, P., Lambert, J., Scherer, W., Fleming, C. (eds) Systems Engineering in Context. Springer, Cham. https://doi.org/10.1007/978-3-030-00114-8_47

Download citation

Publish with us

Policies and ethics