Skip to main content

Advertisement

Log in

A search-based approach for detecting circular dependency bad smell in goal-oriented models

  • Regular Paper
  • Published:
Software and Systems Modeling Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Notes

  1. http://istarwiki.org/tiki-index.php?page=iStarGuide.

  2. https://github.com/MawalMohammed/Circular-Dependency-in-GRL

  3. http://www.ascetic.eu/.

  4. https://github.com/ascetictoolbox/ascetictoolbox.

  5. http://softwareengineeringresearch.net/GRLSBSE.html.

  6. https://github.com/ascetictoolbox/ascetictoolbox/blob/742b056d7b98f11f5edaf90aa8545410210eefe1/saas/saas-modelling/ascetic-experiment-based-methodology/ASCETIC-Experiment-SaaS-Reqs-Design-Approach.jucm.

References

  1. 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)

  2. Lapouchnian A.: Goal-oriented requirements engineering: an overview of the current research. University of Toronto, vol. 32, (2005)

  3. Mylopoulos, J., Chung, L., Nixon, B.: Representing and using nonfunctional requirements: a process-oriented approach. IEEE Trans. Software Eng. 18(6), 483–497 (1992)

    Article  Google Scholar 

  4. Chung, L., Nixon B.A., Yu, E.J: Mylopoulos: Non-functional requirements in software engineering. Springer Science & Business Media (2012)

  5. Dardenne, A., van Lamsweerde, A., Fickas, S.: Goal-directed requirements acquisition. Sci. Comput. Program. 20(1–2), 3–50 (1993)

    Article  Google Scholar 

  6. 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)

  7. 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)

  8. ITU-T, Z: 151 User requirements notation (URN)–Language definition. ITU-T, (2018)

  9. Horkoff J. et al: Goal-oriented requirements engineering: a systematic literature Map. In: IEEE 24th International Requirements Engineering Conference (RE), pp. 106–115 (2016)

  10. Pacheco, C., Garcia, I.: A systematic literature review of stakeholder identification methods in requirements elicitation. J. Syst. Softw. 85(9), 2171–2181 (2012)

    Article  Google Scholar 

  11. 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)

    Article  Google Scholar 

  12. Amyot, D., Mussbacher, G., Ghanavati, S.,Kealey, J.: GRL Modeling and Analysis with jUCMNav. iStar, 766, pp. 160–162 (2011)

  13. Fowler, M.: Refactoring: Improving the Design of Existing Code 2nd ed. Addison-Wesley Signature Series (Fowler), (2018)

  14. 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)

    Article  Google Scholar 

  15. 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)

    Article  Google Scholar 

  16. 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.

  17. Alshayeb, M.: Empirical investigation of refactoring effect on software quality. Inf. Softw. Technol. 51(9), 1319–1326 (2009)

    Article  Google Scholar 

  18. Arendt, T., Taentzer, G: UML model smells and model refactorings in early software development phases. Universitat Marburg, (2010)

  19. Horkoff, J., Eric, S.: A Qualitative, Interactive Evaluation Procedure for Goal-and Agent-Oriented Models. In: CAiSE Forum, (2009)

  20. Duran, M.B., Mussbacher, G.: Investigation of feature run-time conflicts on goal model-based reuse. Inf. Syst. Front. 18(5), 855–875 (2016)

    Article  Google Scholar 

  21. 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)

  22. Duran, M.B., Mussbacher, G., Thimmegowda, N., Kienzle, J.: On the reuse of goal models. In: International SDL Forum, pp. 141–158: Springer. (2015)

  23. Sharma, T., Spinellis, D.: A survey on software smells. J. Syst. Softw. 138, 158–173 (2018)

    Article  Google Scholar 

  24. Misbhauddin, M., Alshayeb, M.: UML model refactoring: a systematic literature review. Empir. Softw. Eng. 20(1), 206–251 (2015)

    Article  Google Scholar 

  25. 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)

  26. Mariani, T., Vergilio, S.R.: A systematic review on search-based refactoring. Inf. Softw. Technol. 83, 14–34 (2017)

    Article  Google Scholar 

  27. Alkharabsheh, K., Crespo, Y., Manso, E., Taboada, J. A.: Software design smell detection: a systematic mapping study. Software Quality Journal, pp. 1–80, (2018)

  28. 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)

  29. 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)

  30. 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)

  31. 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)

  32. 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)

    Google Scholar 

  33. 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)

  34. 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)

    Article  Google Scholar 

  35. 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)

  36. Czibula, G., Marian, Z., Czibula, I.G.: Detecting software design defects using relational association rule mining. Knowl. Inf. Syst. 42(3), 545–577 (2015)

    Article  Google Scholar 

  37. 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)

    Article  Google Scholar 

  38. 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)

  39. 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)

    Article  Google Scholar 

  40. 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)

  41. 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)

  42. 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)

  43. 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)

    Article  Google Scholar 

  44. 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)

  45. 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)

  46. 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)

  47. 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)

  48. 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)

  49. Luke, S.: Essentials of metaheuristics. ed: Springer, (2011)

  50. 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)

    Article  Google Scholar 

  51. 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)

    Article  Google Scholar 

  52. 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)

  53. 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)

  54. 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)

  55. Yan, J.B.: Static Semantics Checking Tool for jUCMNav. ed: Master’s project, SITE, University of Ottawa, (2008)

  56. 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)

  57. Mussbacher, G., Amyot, D., Heymans, P.: Eight Deadly Sins of GRL. In: iStar, pp. 2–7 (2011)

  58. Johnson, D.B.: Finding all the elementary circuits of a directed graph. SIAM J. Comput. 4(1), 77–84 (1975)

    Article  MathSciNet  Google Scholar 

  59. Horkoff, J., Yu, E.: Comparison and evaluation of goal-oriented satisfaction analysis techniques. Requirements Eng. 18(3), 199–222 (2013)

    Article  Google Scholar 

  60. Yu, E.: Modelling strategic relationships for process reengineering (Social Modeling for Requirements Engineering). p. 2011 (2011)

  61. Jureta, I.J., Faulkner, S.: Clarifying goal models. In: 26th international conference on Conceptual modeling, vol. 28, pp. 139–144 (2007)

  62. 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)

  63. Jureta, I.J., Faulkner, S., Schobbens, P.-Y.: Clear justification of modeling decisions for goal-oriented requirements engineering. Requirements Eng. 13(2), 87 (2008)

    Article  Google Scholar 

  64. Rayasam, S: Transformational creativity in requirements goal models. University of Cincinnati, (2016)

  65. 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)

  66. 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)

  67. Zhong, E.: Methods and systems for determining circular dependency. ed: Google Patents, (2007)

  68. Melton, H., Tempero, E.: An empirical study of cycles among classes in Java. Empir. Softw. Eng. 12(4), 389–415 (2007)

    Article  Google Scholar 

  69. 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)

  70. 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)

  71. Lima, P., et al.: An extended systematic mapping study about the scalability of i* Models. CLEI Electron. J. 19(3), 7–7 (2016)

    Google Scholar 

  72. 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)

    Google Scholar 

  73. 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)

  74. Almhana, R., Kessentini, M.: Considering dependencies between bug reports to improve bugs triage. Autom. Softw. Eng. 28(1), 1–26 (2021)

    Article  Google Scholar 

  75. Kirkpatrick, S., Gelatt, C.D., Vecchi, M.P.: Optimization by simulated annealing. science, vol. 220, no. 4598, pp. 671–680, (1983)

  76. 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)

  77. Eiben, A.E., Smit, S.K.: Parameter tuning for configuring and analyzing evolutionary algorithms. Swarm Evol. Comput. 1(1), 19–31 (2011)

    Article  Google Scholar 

  78. Campbell, D.T., Cook, T.D.: Quasi-experimentation: Design & analysis issues for field settings. Rand McNally College Publishing Company Chicago, (1979)

Download references

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

Authors

Corresponding author

Correspondence to Mohammad Alshayeb.

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-021-00965-z

Keywords

Navigation