Abstract
Goal-oriented models are gaining significant attention from researchers and practitioners in various domains, especially in software requirements engineering. Similar to other software engineering models, goal models are subject to bad practices (i.e., bad smells). Detecting and rectifying these bad smells would improve the quality of these models. In this paper, we formally define the circular dependency bad smell and then develop an approach based on the simulated annealing (SA) search-based algorithm to detect its instances. Furthermore, we propose two mechanisms (namely, pruning and pairing) to improve the effectiveness of the proposed approach. We empirically evaluate three algorithm combinations, i.e., (1) the base SA search algorithm, (2) the base SA search algorithm augmented with pruning mechanism, and (3) the base SA search algorithm augmented with pruning and pairing mechanisms, using several case studies. Results show that simulated annealing augmented with pruning and pairing is the most effective approach, while the simulated annealing augmented with pruning mechanism is more effective than the base SA search algorithm. We also found that the proposed pruning and pairing mechanisms provide a significant improvement in the detection of circular dependency bad smell, in terms of computation time and accuracy.
Similar content being viewed by others
Notes
References
Lamsweerde A.v.: Goal-oriented requirements engineering: a guided tour. In: Proceedings of the Fifth IEEE International Symposium on Requirements Engineering pp. 249–262 (2001)
Lapouchnian A.: Goal-oriented requirements engineering: an overview of the current research. University of Toronto, vol. 32, (2005)
Mylopoulos, J., Chung, L., Nixon, B.: Representing and using nonfunctional requirements: a process-oriented approach. IEEE Trans. Software Eng. 18(6), 483–497 (1992)
Chung, L., Nixon B.A., Yu, E.J: Mylopoulos: Non-functional requirements in software engineering. Springer Science & Business Media (2012)
Dardenne, A., van Lamsweerde, A., Fickas, S.: Goal-directed requirements acquisition. Sci. Comput. Program. 20(1–2), 3–50 (1993)
Van Lamsweerde, A., Letier: From object orientation to goal orientation: A paradigm shift for requirements engineering," in Radical Innovations of Software and Systems Engineering in the Future: Springer, pp. 325–340 (2004)
Yu, E.:Towards modelling and reasoning support for early-phase requirements engineering. In: Proceedings of the Third IEEE International Symposium on Requirements Engineering, pp. 226–235: IEEE (1997)
ITU-T, Z: 151 User requirements notation (URN)–Language definition. ITU-T, (2018)
Horkoff J. et al: Goal-oriented requirements engineering: a systematic literature Map. In: IEEE 24th International Requirements Engineering Conference (RE), pp. 106–115 (2016)
Pacheco, C., Garcia, I.: A systematic literature review of stakeholder identification methods in requirements elicitation. J. Syst. Softw. 85(9), 2171–2181 (2012)
Amyot, D., Ghanavati, S., Horkoff, J., Mussbacher, G., Peyton, L., Yu, E.: Evaluating goal models within the goal-oriented requirement language. Int. J. Intell. Syst. 25(8), 841–877 (2010)
Amyot, D., Mussbacher, G., Ghanavati, S.,Kealey, J.: GRL Modeling and Analysis with jUCMNav. iStar, 766, pp. 160–162 (2011)
Fowler, M.: Refactoring: Improving the Design of Existing Code 2nd ed. Addison-Wesley Signature Series (Fowler), (2018)
Sjøberg, D.I., Yamashita, A., Anda, B.C., Mockus, A., Dybå, T.: Quantifying the effect of code smells on maintenance effort. IEEE Trans. Softw. Eng. 39(8), 1144–1156 (2013)
Palomba, F., Bavota, G., Di Penta, M., Fasano, F., Oliveto, R., De Lucia, A.: On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation. Empir. Softw. Eng. 23(3), 1188–1221 (2018)
Zazworka, N., Shaw, M. A.,Shull, F., Seaman C.: Investigating the impact of design debt on software quality. In: Proceedings of the 2nd Workshop on Managing Technical Debt, (2011), pp. 17–23: ACM.
Alshayeb, M.: Empirical investigation of refactoring effect on software quality. Inf. Softw. Technol. 51(9), 1319–1326 (2009)
Arendt, T., Taentzer, G: UML model smells and model refactorings in early software development phases. Universitat Marburg, (2010)
Horkoff, J., Eric, S.: A Qualitative, Interactive Evaluation Procedure for Goal-and Agent-Oriented Models. In: CAiSE Forum, (2009)
Duran, M.B., Mussbacher, G.: Investigation of feature run-time conflicts on goal model-based reuse. Inf. Syst. Front. 18(5), 855–875 (2016)
Tinnes, C., Biesdorf, A., Hohenstein, U., Matthes, F.: Ideas on improving software artifact reuse via traceability and self-awareness. In: IEEE/ACM 10th International Symposium on Software and Systems Traceability (SST), pp. 13–16: IEEE (2019)
Duran, M.B., Mussbacher, G., Thimmegowda, N., Kienzle, J.: On the reuse of goal models. In: International SDL Forum, pp. 141–158: Springer. (2015)
Sharma, T., Spinellis, D.: A survey on software smells. J. Syst. Softw. 138, 158–173 (2018)
Misbhauddin, M., Alshayeb, M.: UML model refactoring: a systematic literature review. Empir. Softw. Eng. 20(1), 206–251 (2015)
Azeem, M.I., Palomba, F., Shi, L., Wang, Q.: Machine learning techniques for code smell detection: a systematic literature review and meta-analysis. Information and Software Technology, (2019)
Mariani, T., Vergilio, S.R.: A systematic review on search-based refactoring. Inf. Softw. Technol. 83, 14–34 (2017)
Alkharabsheh, K., Crespo, Y., Manso, E., Taboada, J. A.: Software design smell detection: a systematic mapping study. Software Quality Journal, pp. 1–80, (2018)
Bertran, I.M.: Detecting architecturally-relevant code smells in evolving software systems. In: 33rd International Conference on Software Engineering (ICSE), pp. 1090–1093: IEEE (2011)
Dexun, J., Peijun, M., Xiaohong, S., Tiantian, W.: Detecting bad smells with weight based distance metrics theory. In: Second International Conference on Instrumentation, Measurement, Computer, Communication and Control, pp. 299–304: IEEE (2012)
Nongpong K.: Feature envy factor: a metric for automatic feature envy detection. In: 7th International Conference on Knowledge and Smart Technology (KST), pp. 7–12: IEEE (2015)
Fourati, R., Bouassida, N., Abdallah, H. B.: A metric-based approach for anti-pattern detection in uml designs. In: Computer and Information Science: Springer, pp. 17–33 (2011)
Singh, S., Kahlon, K.: Effectiveness of encapsulation and object-oriented metrics to refactor code and identify error prone classes using bad smells. ACM SIGSOFT Softw. Eng. Notes 36, 1–10 (2011)
Tahvildar, L., Kontogiannis, K.: A metric-based approach to enhance design quality through meta-pattern transformations," in Seventh European Conference onSoftware Maintenance and Reengineering, pp. 183–192: IEEE (2003)
Chen, Z., Chen, L., Ma, W., Zhou, X., Zhou, Y., Xu, B.: Understanding metric-based detectable smells in Python software: a comparative study. Inf. Softw. Technol. 94, 14–29 (2018)
Velioğlu, S., Selçuk, Y.E.: An automated code smell and anti-pattern detection approach: In: IEEE 15th International Conference on Software Engineering Research, Management and Applications (SERA), pp. 271–275: IEEE (2017)
Czibula, G., Marian, Z., Czibula, I.G.: Detecting software design defects using relational association rule mining. Knowl. Inf. Syst. 42(3), 545–577 (2015)
Lee, S.-J., Lo, L.H., Chen, Y.-C., Shen, S.-M.: Co-changing code volume prediction through association rule mining and linear regression model. Expert Syst. Appl. 45, 185–194 (2016)
Kessentini, M., Sahraoui, H., Boukadoum, M., Wimmer, M.: Design defect detection rules generation: a music metaphor. In: 15th European Conference on Software Maintenance and Reengineering, pp. 241–248: IEEE (2011)
Lee, K.S., Geem, Z.W.: A new meta-heuristic algorithm for continuous engineering optimization: harmony search theory and practice. Comput. Methods Appl. Mech. Eng. 194(36–38), 3902–3933 (2005)
Maddeh, M., Ayouni, S.: Extracting and Modeling Design Defects Using Gradual Rules and UML Profile. In: IFIP International Conference on Computer Science and its Applications, pp. 574–583: Springer. (2015)
Di-Jorio, L., Laurent, A., Teisseire, M.: Mining frequent gradual itemsets from large databases. In: International Symposium on Intelligent Data Analysis, pp. 297–308: Springer (2009)
Palomba, F., Di Nucci, D., Panichella, A., Zaidman, A., De Lucia, A.: Lightweight detection of Android-specific code smells: The aDoctor project. In: IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 487–491: IEEE (2017)
Fontana, F.A., Mäntylä, M.V., Zanoni, M., Marino, A.: Comparing and experimenting machine learning techniques for code smell detection. Empir. Softw. Eng. 21(3), 1143–1191 (2016)
Hozano, M., Antunes, N., Fonseca, B., Costa, E.: Evaluating the accuracy of machine learning algorithms on detecting code smells for different developers. In: ICEIS (2), pp. 474–482 (2017)
Maneerat, N., Muenchaisri, P.: Bad-smell prediction from software design model using machine learning techniques. In: Eighth International Joint Conference on Computer Science and Software Engineering (JCSSE), pp. 331–336: IEEE (2011)
Maiga, A., Ali, N., Bhattacharya, N., Sabane, A., Gueheneuc, Y.-G., Aimeur, E.:SMURF: A SVM-based incremental anti-pattern detection approach. In: 19th Working Conference on Reverse Engineering, pp. 466–475: IEEE (2012)
Maiga, A. et al.: Support vector machines for anti-pattern detection. In: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, pp. 278–281: IEEE (2012)
Hassaine, S., Khomh, F., Guéhéneuc, Y.-G., Hamel, S.: IDS: An immune-inspired approach for the detection of software design smells," in Seventh International Conference on the Quality of Information and Communications Technology, pp. 343–348: IEEE (2010)
Luke, S.: Essentials of metaheuristics. ed: Springer, (2011)
Kessentini, W., Kessentini, M., Sahraoui, H., Bechikh, S., Ouni, A.: A cooperative parallel search-based software engineering approach for code-smells detection. IEEE Trans. Softw. Eng. 40(9), 841–861 (2014)
Ouni, A., Kessentini, M., Inoue, K., Cinnéide, M.O.: Search-based web service antipatterns detection. IEEE Trans. Serv. Comput. 10(4), 603–617 (2017)
Boussaa, M., Kessentini, W., Kessentini, M., Bechikh, S., Chikha, S.B.: Competitive coevolutionary code-smells detection. In: International Symposium on Search Based Software Engineering, pp. 50–65: Springer (2013)
Ghannem, A., Kessentini, M., El Boussaidi, G.: Detecting model refactoring opportunities using heuristic search," In: Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research, pp. 175–187: IBM Corp (2011)
Asano, K., Hayashi, S., Saeki. M.: Detecting bad smells of refinement in goal-oriented requirements analysis. In: International Conference on Conceptual Modeling, pp. 122–132: Springer (2017)
Yan, J.B.: Static Semantics Checking Tool for jUCMNav. ed: Master’s project, SITE, University of Ottawa, (2008)
E. Knauss, El Boustani, C.,Flohr, T.: Investigating the impact of software requirements specification quality on project success. In: International Conference on Product-Focused Software Process Improvement, pp. 28–42: Springer (2009)
Mussbacher, G., Amyot, D., Heymans, P.: Eight Deadly Sins of GRL. In: iStar, pp. 2–7 (2011)
Johnson, D.B.: Finding all the elementary circuits of a directed graph. SIAM J. Comput. 4(1), 77–84 (1975)
Horkoff, J., Yu, E.: Comparison and evaluation of goal-oriented satisfaction analysis techniques. Requirements Eng. 18(3), 199–222 (2013)
Yu, E.: Modelling strategic relationships for process reengineering (Social Modeling for Requirements Engineering). p. 2011 (2011)
Jureta, I.J., Faulkner, S.: Clarifying goal models. In: 26th international conference on Conceptual modeling, vol. 28, pp. 139–144 (2007)
Santander, V.F., Castro, J. F.: Deriving use cases from organizational modeling. In: Proceedings IEEE joint international conference on requirements engineering, pp. 32–39: IEEE (2002)
Jureta, I.J., Faulkner, S., Schobbens, P.-Y.: Clear justification of modeling decisions for goal-oriented requirements engineering. Requirements Eng. 13(2), 87 (2008)
Rayasam, S: Transformational creativity in requirements goal models. University of Cincinnati, (2016)
Omer, A.M., Schill, A.: Automatic management of cyclic dependency among web services. In: 14th IEEE International Conference on Computational Science and Engineering, pp. 44–51: IEEE (2011)
Bitonti, T.F., Lei, Y.: Methods, systems, and computer program products for using graphs to solve circular dependency in object persistence. ed: Google Patents, (2009)
Zhong, E.: Methods and systems for determining circular dependency. ed: Google Patents, (2007)
Melton, H., Tempero, E.: An empirical study of cycles among classes in Java. Empir. Softw. Eng. 12(4), 389–415 (2007)
Hassine, J., Alshayeb, M.: Measurement of actor external dependencies in GRL Models. In: Proceedings of the Seventh International i* Workshop co-located with the 26th International Conference on Advanced Information Systems Engineering (CAiSE 2014), Thessaloniki, Greece, (2014)
Yu, E., Giorgini, P., Maiden, N., Mylopoulos, J., Fickas, S.: Strengths and weaknesses of the i* framework: an empirical evaluation (Social Modeling for Requirements Engineering). MIT Press, (2011)
Lima, P., et al.: An extended systematic mapping study about the scalability of i* Models. CLEI Electron. J. 19(3), 7–7 (2016)
Yu, E., Giorgini, P., Maiden, N., Mylopoulos, J., Fickas, S.: Strengths and Weaknesses of the i* Framework: An Empirical Evaluation. MIT Press, Social Modeling for Requirements Engineering (2011)
Abdel-Basset, M., Abdel-Fatah, L., Sangaiah, A.K.: Metaheuristic algorithms: a comprehensive review. Computational intelligence for multimedia big data on the cloud with engineering applications, pp. 185–231, (2018)
Almhana, R., Kessentini, M.: Considering dependencies between bug reports to improve bugs triage. Autom. Softw. Eng. 28(1), 1–26 (2021)
Kirkpatrick, S., Gelatt, C.D., Vecchi, M.P.: Optimization by simulated annealing. science, vol. 220, no. 4598, pp. 671–680, (1983)
Arcuri, A., Briand, L.: A practical guide for using statistical tests to assess randomized algorithms in software engineering. In: 33rd International Conference on Software Engineering (ICSE), pp. 1–10: IEEE (2011)
Eiben, A.E., Smit, S.K.: Parameter tuning for configuring and analyzing evolutionary algorithms. Swarm Evol. Comput. 1(1), 19–31 (2011)
Campbell, D.T., Cook, T.D.: Quasi-experimentation: Design & analysis issues for field settings. Rand McNally College Publishing Company Chicago, (1979)
Acknowledgements
The authors acknowledge the support of King Fahd University of Petroleum and Minerals in the development of this work.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Silvia Abrahao.
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Mohammed, M.A., Alshayeb, M. & Hassine, J. A search-based approach for detecting circular dependency bad smell in goal-oriented models. Softw Syst Model 21, 2007–2037 (2022). https://doi.org/10.1007/s10270-021-00965-z
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-021-00965-z