Abstract
Quality has a key role in the functioning, maintenance, and longevity of software. To evaluate the software quality, different points of view and mechanisms may be adopted, e.g., quality attributes, runtime performances. In this paper, we are interested in the internal quality of self-adaptive systems (SAS). SAS are more complex than non-self-adaptive systems (NSAS) because they implement also the mechanisms to monitor the execution environment, to analyze the gathered data about the environment, to plan adaptation strategies and to execute necessary adaptations required by the current state of the system. The available evaluation approaches for SAS focus mainly on the runtime performances achieved through the self-adaptive mechanisms. We consider that also the internal quality of SAS is equally important for their evaluation as for any other software. Therefore, we analyze 20 SAS using 4 different quality evaluation mechanisms: software metrics, design patterns, code and architectural smells. To discuss the quality of SAS, in our analysis we have considered 20 NSAS as a quality reference. Hence, we compare the quality of SAS with the quality of NSAS, and discuss the possible reasons behind the identified quality issues.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
SEAMS Artifacts - https://www.hpi.uni-potsdam.de/giese/public/selfadapt/exemplars/.
- 2.
QualitasCorpus - http://qualitascorpus.com/.
- 3.
MavenRepository - https://mvnrepository.com/.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
References
Arcelli Fontana, F., Maggioni, S., Raibulet, C.: Understanding the relevance of micro-structures for design patterns detection. J. Syst. Softw. 84(12), 2334–2347 (2011). https://doi.org/10.1016/j.jss.2011.07.006
Arcelli Fontana, F., Maggioni, S., Raibulet, C.: Design patterns: a survey on their micro-structures. J. Softw.: Evol. Process 25(1), 27–52 (2013). https://doi.org/10.1002/smr.547
Arcelli Fontana, F., Pigazzini, I., Roveda, R., Tamburri, D.A., Zanoni, M., Nitto, E.D.: Arcan: a tool for architectural smells detection. In: International Conference on Software Architecture Workshops, Sweden, 5–7 April 2017, pp. 282–285 (2017). https://doi.org/10.1109/ICSAW.2017.16
Arcoverde, R., Garcia, A., Figueiredo, E.: Understanding the longevity of code smells: preliminary results of an explanatory survey. In: Fourth Workshop on Refactoring Tools 2011, WRT 2011, Honolulu, USA, pp. 33–36 (2011). https://doi.org/10.1145/1984732.1984740
Chatzigeorgiou, A., Manakos, A.: Investigating the evolution of bad smells in object-oriented code. In: 2010 Seventh International Conference on the Quality of Information and Communications Technology, pp. 106–115. IEEE (2010). https://doi.org/10.1109/QUATIC.2010.16
Chidamber, S.R., Kemerer, C.F.: Towards a metrics suite for object oriented design. In: Paepcke, A. (ed.) Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 1991), Sixth Annual Conference, Phoenix, Arizona, USA, 6–11 October 1991, Proceedings, pp. 197–211. ACM (1991). https://doi.org/10.1145/117954.117970
Fontana, F.A., Roveda, R., Zanoni, M., Raibulet, C., Capilla, R.: An experience report on detecting and repairing software architecture erosion. In: 13th Working IEEE/IFIP Conference on Software Architecture, WICSA 2016, Venice, Italy, 5–8 April 2016, pp. 21–30. IEEE Computer Society (2016). https://doi.org/10.1109/WICSA.2016.37
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston (1999)
Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.M.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1994)
Garcia, J., Popescu, D., Edwards, G., Medvidovic, N.: Identifying architectural bad smells. In: CSMR 2009. pp. 255–258. IEEE, Germany (2009). https://doi.org/10.1109/CSMR.2009.59
Kozik, R., Choraś, M., Puchalski, D., Renk, R.: Platform for software quality and dependability data analysis. In: Zamojski, W., Mazurkiewicz, J., Sugier, J., Walkowiak, T., Kacprzyk, J. (eds.) DepCoS-RELCOMEX 2018. AISC, vol. 761, pp. 306–315. Springer, Cham (2019). https://doi.org/10.1007/978-3-319-91446-6_29
Krupitzer, C., Roth, F.M., VanSyckel, S., Schiele, G., Becker, C.: A survey on engineering approaches for self-adaptive systems. Pervasive Mob. Comput. 17, 184–206 (2015). https://doi.org/10.1016/j.pmcj.2014.09.009
Le, D.M., Behnamghader, P., Garcia, J., Link, D., Shahbazian, A., Medvidovic, N.: An empirical study of architectural change in open-source software systems. In: 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories, pp. 235–245 (2015). https://doi.org/10.1109/MSR.2015.29
Macia, I., Arcoverde, R., Cirilo, E., Garcia, A., von Staa, A.: Supporting the identification of architecturally-relevant code anomalies. In: Proceedings of 28th IEEE International Conference on Software Maintenance (ICSM 2012). IEEE, Trento (2012). https://doi.org/10.1109/ICSM.2012.6405348
Martin, R.: OO design quality metrics: an analysis of dependencies (1994). http://gerritbeine.de/assets/downloads/OODesignQualityMetrics-Martin,RobertC_.pdf. Accessed Sept 2020
Martini, A., Fontana, F.A., Biaggi, A., Roveda, R.: Identifying and prioritizing architectural debt through architectural smells: a case study in a large software company. In: Cuesta, C.E., Garlan, D., Pérez, J. (eds.) ECSA 2018. LNCS, vol. 11048, pp. 320–335. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-00761-4_21
de Normalisation O.I.: ISO/IEC 25010:2011, systems and software engineering - systems and software quality requirements and evaluation (square) - system and software quality models (2017)
Olbrich, S., Cruzes, D.S., Basili, V., Zazworka, N.: The evolution and impact of code smells: a case study of two open source systems. In: 2009 3rd International Symposium on Empirical Software Engineering and Measurement, pp. 390–400 (2009). https://doi.org/10.1109/ESEM.2009.5314231
Peters, R., Zaidman, A.: Evaluating the lifespan of code smells using software repository mining. In: 16th European Conference on Software Maintenance and Reengineering, pp. 411–416. IEEE (2012). https://doi.org/10.1109/CSMR.2012.79
Pettersson, N., Löwe, W., Nivre, J.: Evaluation of accuracy in design pattern occurrence detection. IEEE Trans. Softw. Eng. 36(4), 575–590 (2010). https://doi.org/10.1109/TSE.2009.92
Raemaekers, S., van Deursen, A., Visser, J.: The maven repository dataset of metrics, changes, and dependencies. In: Zimmermann, T., Penta, M.D., Kim, S. (eds.) Proceedings of the 10th Working Conference on Mining Software Repositories, MSR 2013, San Francisco, CA, USA, 18–19 May 2013, pp. 221–224. IEEE Computer Society (2013). https://doi.org/10.1109/MSR.2013.6624031
Raibulet, C.: Facets of adaptivity. In: Morrison, R., Balasubramaniam, D., Falkner, K. (eds.) ECSA 2008. LNCS, vol. 5292, pp. 342–345. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-88030-1_33
Raibulet, C., Arcelli Fontana, F.: Evaluation of self-adaptive systems: a women perspective. In: 11th European Conference on Software Architecture, UK, 11–15 September 2017, pp. 23–30 (2017). https://doi.org/10.1145/3129790.3129825
Raibulet, C., Arcelli Fontana, F.: Collaborative and teamwork software development in an undergraduate software engineering course. J. Syst. Softw. 144, 409–422 (2018). https://doi.org/10.1016/j.jss.2018.07.010
Raibulet, C., Arcelli Fontana, F., Carettoni, S.: A preliminary analysis and comparison of self-adaptive systems according to different issues. Softw. Qual. J. 28, 1213–1243 (2020). https://doi.org/10.1007/s11219-020-09502-5
Raibulet, C., Fontana, F.A., Carettoni, S.: SAS vs. NSAS: analysis and comparison of self-adaptive systems and non-self-adaptive systems based on smells and patterns. In: Ali, R., Kaindl, H., Maciaszek, L.A. (eds.) Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering, ENASE 2020, Prague, Czech Republic, 5–6 May 2020, pp. 490–497. SCITEPRESS (2020). https://doi.org/10.5220/0009513504900497
Ramirez, A.J., Cheng, B.H.C.: Design patterns for developing dynamically adaptive systems. In: ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, South Africa, pp. 49–58 (2010). https://doi.org/10.1145/1808984.1808990
Romano, D., Raila, P., Pinzger, M., Khomh, F.: Analyzing the impact of antipatterns on change-proneness using fine-grained source code changes. In: Proc. 19th Working Conference on Reverse Engineering (WCRE 2012), pp. 437–446. IEEE, Canada (2012). https://doi.org/10.1109/WCRE.2012.53
Suryanarayana, G., Samarthyam, G., Sharma, T.: Refactoring for Software Design Smells, 1 edn. Morgan Kaufmann, Burlington (2015)
Tempero, E.D., et al.: The qualitas corpus: a curated collection of java code for empirical studies. In: Han, J., Thu, T.D. (eds.) 17th Asia Pacific Software Engineering Conference, APSEC 2010, Sydney, Australia, 30 November–3 December 2010, pp. 336–345. IEEE Computer Society (2010). https://doi.org/10.1109/APSEC.2010.46
Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.T.: Design pattern detection using similarity scoring. IEEE Trans. Softw. Eng. 32(11), 896–909 (2006). https://doi.org/10.1109/TSE.2006.112
Walter, B., Alkhaeir, T.: The relationship between design patterns and code smells: an exploratory study. Inf. Softw. Technol. 74, 127–142 (2016). https://doi.org/10.1016/j.infsof.2016.02.003
Weyns, D.: Software engineering of self-adaptive systems. In: Cha, S., Taylor, R., Kang, K. (eds.) Handbook of Software Engineering, pp. 399–443. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-00262-6_11
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Raibulet, C., Fontana, F.A., Carettoni, S. (2021). Internal Software Quality Evaluation of Self-adaptive Systems Using Metrics, Patterns, and Smells. In: Ali, R., Kaindl, H., Maciaszek, L.A. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2020. Communications in Computer and Information Science, vol 1375. Springer, Cham. https://doi.org/10.1007/978-3-030-70006-5_16
Download citation
DOI: https://doi.org/10.1007/978-3-030-70006-5_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-70005-8
Online ISBN: 978-3-030-70006-5
eBook Packages: Computer ScienceComputer Science (R0)