OPLA-Tool-ASP: a Tool to Prevent Architectural Smells in Search-based Product Line Architecture Design
Keywords:Software Product Lines, Architectural Smells, Search-based Software Engineering
Search-based algorithms have been successfully employed in Product Line Architecture (PLA) design in the seminal approach named Multi-Objective Approach for Product-Line Architecture Design (MOA4PLA). This approach generates a set of alternative PLA designs, which optimize different architectural properties. In addition to these properties, the alternative PLA designs should have as few architectural smells as possible. Architectural smells can negatively impact PLA variability, PLA extensibility, SPL maintainability, and other non-functional attributes. However, one of the main findings of a previous study is that the tool that automates the application of MOA4PLA adversely introduces architectural smells in the automatically generated solutions. In this work, we present OPLA-Tool-ASP, which is a tool that implements guidelines to detect and prevent the architectural smells Unused Interface, Unused Brick, Concern Overload, and Link Overload in the context of MOA4PLA. An empirical study was carried out to assess the effectiveness of OPLA-Tool-ASP in preventing the aforementioned smells in the resulting PLA designs. The obtained results pointed out that the proposed tool is effective in both preventing the smells and improving the architectural properties selected for optimization.
T. L. Alves, C. Ypma, and J. Visser. Deriving metric thresholds from benchmark data. In 2010 IEEE International Conference on Software Maintenance, pages 1–10, 2010.
A. Arcuri and L. Briand. A hitchhiker’s guide to statistical tests for assessing randomized algorithms in software engineering. Software Testing, Verification and Reliability, 24(3):219–250, 2014.
U. Azadi, F. Arcelli Fontana, and D. Taibi. Architectural smells detected by tools: a catalogue proposal. In 2019 IEEE/ACM International Conference on Technical Debt (TechDebt), pages 88–97, 2019.
V. Basili, G. Caldeira, and H. Rombacj. The goal question metric approach. Encyclopedia of Soft. Eng., 2:528–532, 1994.
J. Choma Neto, T. Gaieski, A. M. Amaral, and T. E. Colanzi. Quanti-qualitative analysis of a memetic algorithm to optimize product line architecture design. In 2018 IEEE 30th International Conference on Tools with Artificial Intelligence (ICTAI), pages 498–505, Volos, Greece, 2018.
P. Clements, F. Bachmann, and L. Bass. Documenting Software Architectures: Views and Beyond. Addison-Wesley Professional, 2 edition, 2010.
C. A. C. Coello, G. B. Lamont, D. A. Van Veldhuizen, et al. Evolutionary algorithms for solving multi-objective problems, volume 5. Springer, 2007.
T. E. Colanzi, W. K. Assunção, S. R. Vergilio, P. R. Farah, and G. Guizzo. The symposium on search-based software engineering: Past, present and future. Information and Software Technology, 127:106372, 2020.
T. E. Colanzi, S. R. Vergilio, I. Gimenes, and W. N. Oizumi. A search-based approach for software product line design. In Proceedings of the 18th International Software Product Line ConferenceVolume 1, pages 237–241. ACM, 2014.
A. C. Contieri, G. G. Correia, T. E. Colanzi, I. M. Gimenes, E. A. Oliveira, S. Ferrari, P. C. Masiero, and A. F. Garcia. Extending uml components to develop software product-line architectures: Lessons learned. In European Conference on Software Architecture, pages 130–138. Springer, 2011.
K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan. A fast and elitist multiobjective genetic algorithm: Nsga-ii. IEEE Transactions on Evolutionary Computation, 6(2):182–197, 2002.
P. M. Donegan and P. C. Masiero. Design issues in a component-based software product line. In Brazilian Symposium on Components, Architectures and Software Reuse (SBCARS), pages 3–16. Citeseer, 2007.
É. L. Féderle, T. do Nascimento Ferreira, T. E. Colanzi, and S. R. Vergilio. Opla-tool: a support tool for s9earch-based product line architecture design. In Proceedings of the 19th International Conference on Software Product Line, pages 370–373. ACM, 2015.
E. Figueiredo et al. Evolving software product lines with aspects: an empirical study on design stability. In Proc. of ICSE’08, pages 261–270. ACM, 2008.
M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, USA, 1999.
M. Fowler. Patterns of Enterprise Application Architecture. Addison-Wesley Longman Publishing Co., Inc., USA, 2002.
W. M. Freire, M. Massago, C. A. Zavadski, A. M. M. Amaral, and T. E. Colanzi. Opla-tool v2.0: a tool for product line architecture design optimization. In Proceedings of 34th Brazilian Symposium on Software Engineering (SBES ’20), October 21–23, 2020, Natal, Brazil. ACM, 2020.
J. Garcia. A unified framework for studying architectural decay of software systems. University of Southern California, 2014.
J. Garcia, D. Popescu, G. Edwards, and N. Medvidovic. Identifying architectural bad smells. In 2009 13th European Conference on Software Maintenance and Reengineering, pages 255–258. IEEE, 2009.
J. Garcia, D. Popescu, G. Edwards, and N. Medvidovic. Identifying architectural bad smells. In 2009 13th European Conference on Software Maintenance and Reengineering, pages 255–258, March 2009.
M. Harman, Y. Jia, J. Krinke, W. B. Langdon, J. Petke, and Y. Zhang. Search based software engineering for software product line engineering: a survey and directions for future work. In Proceedings of the 18th International Software Product Line Conference - Volume 1, pages 5–18, 2014.
M. Harman, S. A. Mansouri, and Y. Zhang. Searchbased software engineering: Trends, techniques and applications. ACM Computing Surveys, 45(1):11, 2012.
E. A. O. Junior, I. M. S. Gimenes, and J. C. Maldonado. Systematic management of variability in uml-based software product lines. Journal of Universal Computer Science, 16(17):2374–2393, sep 2010.
D. Le, D. Link, A. Shahbazian, and N. Medvidovic. An empirical study of architectural decay in opensource software. In IEEE International Conference on Software Architecture (ICSA). IEEE, 2018.
F. J. Linden, K. Schmid, and E. Rommes. Software product lines in action: the best industrial practice in product line engineering. Springer Science & Bus.Media, 2007.
R. E. Lopez-Herrejon, L. Linsbauer, and A. Egyed. A systematic mapping study of search-based software engineering for software product lines. Information and Software Technology, 61(C):33–51, May 2015.
I. Macia, A. Garcia, C. Chavez, and A. von Staa. Enhancing the detection of code anomalies with architecture-sensitive strategies. In 2013 17th European Conference on Software Maintenance and Reengineering, pages 177–186. IEEE, 2013.
T. T. Madrigar, T. E. Colanzi, W. Oizumi, and A. Garcia. Prevention of architectural anomalies in optimizing product line architecture design.Ibero-American Conference on Software Engineering (CibSE) - Technical Symposium 2020, 2020.
U. Mansoor, M. Kessentini, B. R. Maxim, and K. Deb. Multi-objective code-smells detection using good and bad design examples. Software Quality Journal, 25(2):529–552, Jun 2017.
T. Mariani and S. R. Vergilio. A systematic review on search-based refactoring. Information and Software Technology, 83:14–34, 2017.
R. Mo, Y. Cai, R. Kazman, L. Xiao, and Q. Feng. Architecture anti-patterns: Automatically detectable violations of design principles. IEEE Transactions on Software Engineering, 47(05):1008–1028, 2019.
J. C. Neto, C. H. da Silva, T. E. Colanzi, and A. M. M. M. Amaral. Are as profitable to search-based product-line architectures design? IET Software, 13(6):587–599, 2019.
C. Nunes, U. Kulesza, C. Sant’Anna, I. Nunes, A. Garcia, and C. Lucena. Assessment of the design modularity and stability of multi-agent system product lines. Journal of Universal Computer Science, 15(11):2254–2283, jun 2009.
W. Oizumi, A. Garcia, L. D. S. Sousa, B. Cafeo, and Y. Zhao. Code anomalies flock together: Exploring code anomaly agglomerations for locating design problems. In 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE), pages 440–451. IEEE, 2016.
E. G. Perissato, J. C. Neto, T. E. Colanzi, W. Oizumi, and A. Garcia. On identifying architectural smells in search-based product line designs. In VII Brazilian Symposium on Software Components, Architectures, and Reuse., pages 13–22, 2018.
D. F. d. Silva, L. F. Okada, T. E. Colanzi, and W. K. G. Assunção. Enhancing search-based product line design with crossover operators. In Genetic and Evolutionary Computation Conference (GECCO 20), page 12501258, 2020.
Software Engineering Institute. Arcade game maker: Pedagogical product line. Software Engineering Institute, (10):115–118, 2016.
Y. D. Verdecia, T. E. Colanzi, S. R. Vergilio, and M. C. B. Santos. An enhanced evaluation model for search-based product line architecture design. In XX Ibero-American Conference on Software Engineering (CIbSE2017), Buenos Aires, 2017.
S. Vidal, E. Guimaraes, W. Oizumi, A. Garcia, A. D. Pace, and C. Marcos. Identifying architectural problems through prioritization of code smells. In 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), pages 41–50. IEEE, 2016.
C. Wohlin. Guidelines for snowballing in systematic literature studies and a replication in software engineering. In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, pages 1–10, 2014.
L. Xiao, Y. Cai, R. Kazman, R. Mo, and Q. Feng. Identifying and quantifying architectural debt. In 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE), pages 488–498. IEEE, 2016.
T. J. Young. Using aspectj to build a software product line for mobile devices. PhD thesis, University of British Columbia, 2005.
How to Cite
Copyright (c) 2022 Tiago Tadeu Madrigar, Thelma Elita Colanzi, Willian Nalepa Oizumi, Luiz Fernando Okada, Alessandro Garcia
This work is licensed under a Creative Commons Attribution 4.0 International License.