Abstract
Software projects must adhere to a variety of non-functional requirements, also known as software qualities. Automated evaluation with respect to such requirements can be conducted thanks to a wide array of available tools. Each tool usually focuses on a specific quality, since heterogeneous analyses are needed for each non-functional requirement. Apart from an overall index expressing the project’s performance in terms of the software quality they specialize on, many tools recommend code changes that are expected to improve the aforementioned index. Thus, a development team that cares for more than one non-functional requirement is facing the problem of unknown trade-offs; besides improving the quality on which the tool that generated each suggestion focuses, how would this code change, if implemented, affect the rest of the non-functional requirements? We present a framework for dealing with this problem. We pick energy efficiency, technical debt and software security as our qualities of interest, and use three respective tools for the analysis of several open-source projects with regard to these qualities. We develop an extensible empirical model, based on fuzzy sets, for the characterization of each suggestion’s trade-offs. Finally, we present an intuitive visualization of said trade-offs, and suggest a method of utilizing them towards reliable decision-making.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
Since this is a prototype, we do not intend to delve into further details. We use the figures in this section as assistants to the reader’s intuition.
- 7.
Preference declaration is trivial given an MCDM algorithm. The reader may study [30] for the particular case that we implemented.
References
Boehm, B.W., Brown, J.R., Lipow, M.: Quantitative evaluation of software quality. In: Proceedings of the 2nd International Conference on Software Engineering, pp. 592–605 (1976)
Kan, S.H.: Metrics and Models in Software Quality Engineering. Addison-Wesley Professional, Boston (2003)
Kitchenham, B., Pfleeger, S.L.: Software quality: the elusive target [special issues section]. IEEE Softw. 13(1), 12–21 (1996)
Tsantalis, N., Chaikalis, T., Chatzigeorgiou, A.: JDeodorant: identification and removal of type-checking bad smells. In: 2008 12th European Conference on Software Maintenance and Reengineering, pp. 329–331. IEEE (2008)
Bakota, T., Hegedűs, P., Körtvélyesi, P., Ferenc, R., Gyimóthy, T.: A probabilistic software quality model. In: 2011 27th IEEE International Conference on Software Maintenance (ICSM), September 2011, pp. 243–252 (2011). iSSN: 1063–6773
Samoladas, I., Gousios, G., Spinellis, D., Stamelos, I.: The SQO-OSS quality model: measurement based open source software evaluation. In: Russo, B., Damiani, E., Hissam, S., Lundell, B., Succi, G. (eds.) OSS 2008. ITIFIP, vol. 275, pp. 237–248. Springer, Boston, MA (2008). https://doi.org/10.1007/978-0-387-09684-1_19
Miguel, J.P., Mauricio, D., Rodríguez, G.: A review of software quality models for the evaluation of software products. Int. J. Softw. Eng. Appl. 5(6), 31–53 (2014). http://airccse.org/journal/ijsea/papers/5614ijsea03.pdf
Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Boston (2018)
Brito, A., Hora, A., Valente, M.T.: Refactoring graphs: assessing refactoring over time. In: 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 367–377. IEEE (2020)
Campbell, G.A., Papapetrou, P.P.: SonarQube in Action. Manning Publications Co. (2013)
Luk, C.-K., et al.: Pin: building customized program analysis tools with dynamic instrumentation. ACM SIGPLAN Not. 40(6), 190–200 (2005)
Siavvas, M., et al.: The SDK4ED platform for embedded software quality improvement - preliminary overview. In: Gervasi, O., et al. (eds.) ICCSA 2020. LNCS, vol. 12252, pp. 1035–1050. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-58811-3_73
Siavvas, M., Gelenbe, E.: Optimum checkpoints for programs with loops. Simul. Model. Pract. Theory 97, 101951 (2019)
Kehagias, D., Jankovic, M., Siavvas, M., Gelenbe, E.: Investigating the interaction between energy consumption, quality of service, reliability, security, and maintainability of computer systems and networks. SN Comput. Sci. 2(1), 1–6 (2021)
Che, S., et al.: Rodinia: a benchmark suite for heterogeneous computing. In: IEEE International Symposium on Workload Characterization (IISWC), pp. 44–54. IEEE (2009)
Pouchet, L.-N., et al.: PolyBench: The polyhedral benchmark suite (2012). http://www.cs.ucla.edu/pouchet/software/polybench
Papadopoulos, L., Marantos, C., Digkas, G., Ampatzoglou, A., Chatzigeorgiou, A., Soudris, D.: Interrelations between software quality metrics, performance and energy consumption in embedded applications. In: Proceedings of the 21st International Workshop on Software and Compilers for Embedded Systems, pp. 62–65 (2018)
Siavvas, M., Marantos, C., Papadopoulos, L., Kehagias, D., Soudris, D., Tzovaras, D.: On the relationship between software security and energy consumption. In: 15th China-Europe International Symposium on Software Engineering Education (2019)
Siavvas, M., et al.: An empirical evaluation of the relationship between technical debt and software security. In: 9th International Conference on Information society and technology (ICIST), vol. 2019 (2019)
Li, B., Sun, X., Leung, H., Zhang, S.: A survey of code-based change impact analysis techniques. Softw. Test. Verification Reliab. 23(8), 613–646 (2013)
Mongiovi, M., Gheyi, R., Soares, G., Teixeira, L., Borba, P.: Making refactoring safer through impact analysis. Sci. Comput. Program. 93, 39–64 (2014)
Yu, P.-L.: Multiple-Criteria Decision Making: Concepts, Techniques, and Extensions, vol. 30. Springer, Heidelberg (2013)
Sitorus, F., Brito-Parada, P.R.: A multiple criteria decision making method to weight the sustainability criteria of renewable energy technologies under uncertainty. Renew. Sustain. Energy Rev. 127, 109891 (2020)
Kou, G., Yang, P., Peng, Y., Xiao, F., Chen, Y., Alsaadi, F.E.: Evaluation of feature selection methods for text classification with small datasets using multiple criteria decision-making methods. Appl. Soft Comput. 86, 105836 (2020)
Cinelli, M., Kadziński, M., Gonzalez, M., Słowiński, R.: How to support the application of multiple criteria decision analysis? Let us start with a comprehensive taxonomy. Omega 96, 102261 (2020)
Honsel, D., Herbold, V., Waack, S., Grabowski, J.: Investigation and prediction of open source software evolution using automated parameter mining for agent-based simulation. Autom. Softw. Eng. 28(1), 1–37 (2021). https://doi.org/10.1007/s10515-021-00280-3
Pati, J., Kumar, B., Manjhi, D., Shukla, K.K.: A comparison among ARIMA, BP-NN, and MOGA-NN for software clone evolution prediction. IEEE Access 5, 11841–11851 (2017)
Boaye Belle, A.: Estimation and prediction of technical debt: a proposal. arXiv e-prints, arXiv:1904 (2019)
Guo, S., Zhao, H.: Fuzzy best-worst multi-criteria decision-making method and its applications. Knowl.-Based Syst. 121, 23–31 (2017)
Tsoukalas, D., Siavvas, M., Jankovic, M., Kehagias, D., Chatzigeorgiou, A., Tzovaras, D.: Methods and tools for TD estimation and forecasting: a state-of-the-art survey. In: International Conference on Intelligent Systems (IS) 2018, pp. 698–705 (2018)
Acknowledgments
This work has received funding by the EU H2020 research and innovation programme EXA2PRO under grant agreement No. 801015.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this paper
Cite this paper
Lamprakos, C.P., Marantos, C., Papadopoulos, L., Soudris, D. (2022). The Known Unknowns: Discovering Trade-Offs Between Heterogeneous Code Changes. In: Orailoglu, A., Jung, M., Reichenbach, M. (eds) Embedded Computer Systems: Architectures, Modeling, and Simulation. SAMOS 2021. Lecture Notes in Computer Science, vol 13227. Springer, Cham. https://doi.org/10.1007/978-3-031-04580-6_23
Download citation
DOI: https://doi.org/10.1007/978-3-031-04580-6_23
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-04579-0
Online ISBN: 978-3-031-04580-6
eBook Packages: Computer ScienceComputer Science (R0)