Abstract
The term “bad smell” denotes a symptom of poor design or implementation that negatively impacts a software system’s properties. The research community has been actively identifying the characteristics of bad smells bad smells as well as developing approaches for detecting and fixing them. However, most of these efforts focus on smells that occur at code level: little consideration is given to smells that occur at higher levels of abstraction. This paper presents an initial effort to fill this gap by contributing to (i) the characterization of bad smells that are relevant to the Model-View-Controller architectural style and (ii) assessing the feasibility of their automatic detection using text analysis techniques in five systems, implemented with the Yii Framework. The obtained results show that the defined smells exist in practice and give some insight into which of them tend to occur more frequently. Regarding the automatic detection method, results show that it exhibits good performance and accuracy.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (1999).
Source Makings, Code Smells, https://sourcemaking.com/refactoring/smells
Garcia, J., Popescu, D., Edwards, G., Medvidovic, N.: Toward a catalogue of architectural bad smells. In 5th International Conference on the Quality of Software Architectures, pp. 146—162. Springer-Verlag, Berlin, Heidelberg (2009).
Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P., Lim, E., MacCormack, A., Nord, R. L., Ozkaya, I., Sangwan, R. S., Seaman, C.B., Sullivan, K.J., Zazworka, N.: Managing technical debt in software reliant systems. In Workshop on Future of Software Engineering Research, at the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 47–52. ACM (2010).
Ganesh, S.G., Sharma, T., Suryanarayana, G.: Towards a Principle-based Classification of Structural Design Smells. Journal of Object Technology, 12 (2), 1-29 (2013).
Fernandes, E., Oliveira, J., Vale, G. Paiva, T., Figueiredo, E.: A review-based comparative study of bad smell detection tools. In 20th International Conference on Evaluation and Assessment in Software Engineering, pp. 109–120. ACM, New York (2016).
Best MVC Practices, http://www.yiiframework.com/doc/guide/1.1/en/basics.best-practices
yiiFramework, http://www.yiiframework.com
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley Professional (2012).
Spring, https://spring.io
Django, https://www.djangoproject.com
Rails, http://rubyonrails.org
Laravel, https://laravel.com
Lippert, M., Roock, S.: Refactoring in Large Software Projects: Performing Complex Restructurings Successfully. Wiley (2006).
PHP_CodeSniffer, https://pear.php.net/package/PHP_CodeSniffer
Vale, G., Figueiredo, E., Abílio, R., Costa, H.: Bad Smells in Software Product Lines: A Systematic Review. In Eighth Brazilian Symposium on Software Components, Architectures and Reuse, pp. 84–94. IEEE Computer Society, Washington, DC (2014).
Bavota, G., De Lucia, A., Di Penta, M., Oliveto, R., Palomba, F.: An Experimental Investigation on the Innate Relationship between Quality and Refactoring. Journal of Systems and Software, 107, 1–14 (2015).
Khomh, F., Vaucher, S., Guéhéneuc, Y., Sahraoui, H.: BDTEX: A GQM-based Bayesian Approach for the Detection of Antipatterns. Journal of Systems and Software, 84, 559–572 (2011).
Maiga, A., Ali, N., Bhattacharya, N., Sabané, A., Guéhéneuc, Y. G., Antoniol, G., Aimeur, E.: Support Vector Machines for Anti-pattern Detection. In 27th International Conference on Automated Software Engineering, pp. 278–281. IEEE Press, New York (2012).
Vidal, S., Marcos, C., Díaz-Pace, J.: An Approach to Prioritize Code Smells for Refactoring. Automated Software Engineering, 23, 501–532 (2014).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
Cite this paper
Velasco-Elizondo, P., Castañeda-Calvillo, L., García-Fernandez, A., Vazquez-Reyes, S. (2018). Towards Detecting MVC Architectural Smells. In: Mejia, J., Muñoz, M., Rocha, Á., Quiñonez, Y., Calvo-Manzano, J. (eds) Trends and Applications in Software Engineering. CIMPS 2017. Advances in Intelligent Systems and Computing, vol 688. Springer, Cham. https://doi.org/10.1007/978-3-319-69341-5_23
Download citation
DOI: https://doi.org/10.1007/978-3-319-69341-5_23
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-69340-8
Online ISBN: 978-3-319-69341-5
eBook Packages: EngineeringEngineering (R0)