Skip to main content

GSDetector: a tool for automatic detection of bad smells in GRL goal models

Abstract

Goal models play a significant role in the early stages of the requirements engineering process. These models are subject to quality problems (a.k.a., bad smells) that may disseminate to the later stages of the requirements engineering process and even to the other stages in software development. To avoid this negative impact, it is important to detect and correct these problems as early as possible. However, the manual detection of these smells is generally tedious, cumbersome, and error-prone. In this paper, we report on an Eclipse plugin tool, called GSDetector (GRL Smells Detector), that automates the detection of Goal-oriented Requirements Language (GRL) bad smells. We first introduce and articulate four new GRL-based bad smells. To detect the instances of these smells, a set of metric-based rules is introduced. Factors that affect setting thresholds are also presented and explained to help modelers specify these rules by setting effective thresholds. GSDetector was evaluated using 5 case studies of different sizes that consider the different scenarios in building GRL models. The obtained results show that GSDetector was able to detect all the existing instances of bad smells with respect to the specified thresholds. The manual inspection of these instances revealed that the modelers were giving the system to be developed more attention than the strategic needs of the stakeholder leading to the appearance of these instances. In conclusion, the proposed bad smells and developed tool provide a useful approach to help identify and analyze quality improvement opportunities in GRL models.

This is a preview of subscription content, access via your institution.

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

Availability of data and material

https://github.com/MawalMohammed/GRL-Bad-Smell-Detection

Code availability

Not applicable.

Notes

  1. http://pmd.sourceforge.net/

  2. https://github.com/MawalMohammed/GRL-Bad-Smell-Detection

  3. https://github.com/MawalMohammed/GRL-Bad-Smell-Detection/blob/master/Deverlopers'%20Guide.md

  4. https://github.com/MawalMohammed/GRL-Bad-Smell-Detection/tree/master/DataSet

  5. https://github.com/MawalMohammed/GRL-Bad-Smell-Detection/blob/master/DataSet/1_Hospital.jucm

  6. https://github.com/MawalMohammed/GRL-Bad-Smell-Detection/blob/master/DataSet/4_ATM.jucm

References

  1. Pohl, K.: Requirements Engineering: Fundamentals, Principles, and Techniques. Springer. (2010)

  2. Denger, C. and Olsson, T.: Quality assurance in requirements engineering. In: Engineering and Managing Software Requirements. p. 163-185, Springer, Berlin, Heidelberg. (2005)

  3. Knauss, E., El Boustani, C., and Flohr, T.: Investigating the impact of software requirements specification quality on project success. In: International Conference on Product-Focused Software Process Improvement. Springer. (2009)

  4. Boehm, B.W., Papaccio, P.N.: Understanding and controlling software costs. IEEE Trans. Softw. Eng. 14(10), 1462–1477 (1988)

    Article  Google Scholar 

  5. Frederick P. Brooks, J.: No Silver Bullet - Essence and Accidents of Software Engineering. IEEE Comput. 20(4). (1997)

  6. Bubenko, J.A.: Challenges in requirements engineering. In: Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95). IEEE. (1995)

  7. Femmer, H.: Requirements engineering artifact quality: definition and control. Technische Universität München. (2017)

  8. Yu, E.S., Mylopoulos, J.: From ER To “aR”—modelling strategic actor relationships for business process reengineering. Int. J. Cooperative Inf. Syst. 4(02n03), 125–144 (1995)

    Article  Google Scholar 

  9. Jacobs, S., Holten, R.: Goal driven business modelling: supporting decision making within information systems development. In: Proceedings of conference on Organizational computing systems. (1995)

  10. Clements, P., Bass, L.: Relating business goals to architecturally significant requirements for software systems. Software Engineering Institute, Carnegie Mellon University. (2010)

  11. Ali, R., Dalpiaz, F., Giorgini, P.: A goal-based framework for contextual requirements modeling and analysis. Requir. Eng. 15(4), 439–458 (2010)

    Article  Google Scholar 

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

    Article  Google Scholar 

  13. Van Lamsweerde, A. and Letier, E.: From object orientation to goal orientation: a paradigm shift for requirements engineering. Radical Innovations of Software and Systems Engineering in the Future. Springer. p. 325–340. (2004)

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

    Article  Google Scholar 

  15. Chung, L., et al.: Non-functional requirements in software engineering. Vol. 5. Springer Science & Business Media. (2012)

  16. Kaiya, H., Horai, H., Saeki, M.: AGORA: Attributed goal-oriented requirements analysis method. In: Proceedings IEEE joint international conference on requirements engineering. IEEE. (2002)

  17. Yu, E.S.: Towards modelling and reasoning support for early-phase requirements engineering. In: Proceedings of ISRE'97: 3rd IEEE International Symposium on Requirements Engineering. IEEE. (1997)

  18. Bresciani, P., et al.: Tropos: an agent-oriented software development methodology. Auton. Agent. Multi Agent Syst. 8(3), 203–236 (2004)

    Article  Google Scholar 

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

  20. Salger, F.: Requirements reviews revisited: residual challenges and open research questions. In: 21st IEEE International Requirements Engineering Conference (RE). IEEE. (2013)

  21. Zelkowitz, M.V., et al.: The Software Industry: A State of the Art Survey. (1983)

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

  23. Yu, E., et al.: Strengths and Weaknesses of the i* Framework: An Empirical Evaluation. Social Modeling for Requirements Engineering, MIT Press. (2011)

  24. Amyot, D., et al.: GRL Modeling and Analysis with jUCMNav. iStar 766, 160–162 (2011)

    Google Scholar 

  25. ITU-T, Z.: 151 User Requirements Notation (URN)–Language Definition. ITU-T. (2018)

  26. Neace, K., Roncace, R., Fomin, P.: Goal model analysis of autonomy requirements for Unmanned aircraft systems. Req. Eng. 23(4), 509–555 (2018)

    Article  Google Scholar 

  27. Fowler, M.: Refactoring: improving the design of existing code. Addison-Wesley Professional. (2018)

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

    Article  Google Scholar 

  29. Yang, L., Liu, H., and Niu, Z.: Identifying fragments to be extracted from long methods. In: 16th Asia-Pacific Software Engineering Conference. IEEE. (2009)

  30. El-Attar, M., Miller, J.: Improving the quality of use case models using antipatterns. Softw. Syst. Model. 9(2), 141–160 (2010)

    Article  Google Scholar 

  31. El-Attar, M., Miller, J.: Constructing high quality use case models: a systematic review of current practices. Req. Eng. 17(3), 187–201 (2012)

    Article  Google Scholar 

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

    Article  Google Scholar 

  33. Alkharabsheh, K., et al.: Software design smell detection: a systematic mapping study. Softw. Qual. J. 27(3), 1069–1148 (2019)

    Article  Google Scholar 

  34. Baqais, A., Alshayeb, M.: Automatic software refactoring: a systematic literature review. Softw. Qual. J. 2(28), 459–502 (2020)

    Article  Google Scholar 

  35. AbuHassan, A., Alshayeb, M., Ghouti, L.: Software smell detection techniques: a systematic literature review. J Softw. Evol. Process. 33(3), e2320 (2021)

    Article  Google Scholar 

  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., et al.: 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., et al.: Design defect detection rules generation: a music metaphor. In: 15th European Conference on Software Maintenance and Reengineering. IEEE. (2011)

  39. Maddeh, M. and Ayouni, S.: Extracting and modeling design defects using gradual rules and UML profile. In: IFIP International Conference on Computer Science and its Applications. Springer. (2015)

  40. Palomba, F., et al.: Lightweight detection of android-specific code smells: the aDoctor project. In: IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE. (2017)

  41. Kim, T.-W., Kim, T.-G., Seu, J.-H.: Specification and automated detection of code smells using ocl. Int. J. Softw. Eng. Appl. 7(4), 35–44 (2013)

    Google Scholar 

  42. Kim, T.-W., Kim, T.-G.: Automated code smell detection and refactoring using OCL. KIPS Trans. PartD. 15(6), 825–840 (2008)

    Article  Google Scholar 

  43. Boussaa, M., et al.: Competitive coevolutionary code-smells detection. In: International Symposium on Search Based Software Engineering. Springer. (2013)

  44. 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. IBM Corp. (2011)

  45. Kessentini, W., et al.: A cooperative parallel search-based software engineering approach for code-smells detection. IEEE Trans. Softw. Eng. 40(9), 841–861 (2014)

    Article  Google Scholar 

  46. Ouni, A., et al.: Multi-criteria code refactoring using search-based software engineering: an industrial case study. ACM Trans. Softw. Eng. Methodol (TOSEM) 25(3), 23 (2016)

    MathSciNet  Article  Google Scholar 

  47. Ouni, A., et al.: Search-based web service antipatterns detection. IEEE Trans. Serv. Comput. 10(4), 603–617 (2017)

    Article  Google Scholar 

  48. Serikawa, M.A., et al.: Towards the characterization of monitor smells in adaptive systems. In: X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS). IEEE. (2016)

  49. Macia, I., Garcia, A., and von Staa, A.: Defining and applying detection strategies for aspect-oriented code smells. In: Brazilian Symposium on Software Engineering. IEEE. (2010)

  50. Fontana, F.A., et al.: Comparing and experimenting machine learning techniques for code smell detection. Empir. Softw. Eng. 21(3), 1143–1191 (2016)

    Article  Google Scholar 

  51. Hassaine, S., et al.: IDS: An immune-inspired approach for the detection of software design smells. In: Seventh International Conference on the Quality of Information and Communications Technology. IEEE. (2010)

  52. Khomh, F., et al.: A bayesian approach for the detection of code and design smells. In: Ninth International Conference on Quality Software. IEEE. (2009)

  53. Maiga, A., et al.: Support vector machines for anti-pattern detection. In: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. ACM. (2012)

  54. Oliveto, R., et al.: Identifying method friendships to remove the feature envy bad smell: NIER track. In: 33rd International Conference on Software Engineering (ICSE). IEEE. (2011)

  55. Hozano, M., et al.: Evaluating the accuracy of machine learning algorithms on detecting code smells for different developers. In: ICEIS (2). (2017)

  56. Jiang, Y., Li, M., Zhou, Z.-H.: Software defect detection with R ocus. J. Comput. Sci. Technol. 26(2), 328–342 (2011)

    Article  Google Scholar 

  57. Maneerat, N. and Muenchaisri, P.: Bad-smell prediction from software design model using machine learning techniques. In: 2011 Eighth International Joint Conference on Computer Science and Software Engineering (JCSSE). IEEE. (2011)

  58. Alkharabsheh, K., et al.: Influence of nominal project knowledge in the detection of design smells: an exploratory study with god class. Int. J. Adv. Stud. Comput. Sci. Eng. 5(11), 120 (2016)

    Google Scholar 

  59. Oliveto, R., et al.: Numerical signatures of antipatterns: An approach based on b-splines. In: 14th European Conference on Software Maintenance and Reengineering. IEEE. (2010)

  60. Kaur, K., Jain, S.: Evaluation of machine learning approaches for change-proneness prediction using code smells. In: Proceedings of the 5th International Conference on Frontiers in Intelligent Computing: Theory and Applications. Springer. (2017)

  61. Vaucher, S., et al.: Tracking design smells: lessons from a study of god classes. In: 16th Working Conference on Reverse Engineering. IEEE. (2009)

  62. Bertran, I.M.: Detecting architecturally-relevant code smells in evolving software systems. In: 33rd International Conference on Software Engineering (ICSE). IEEE. (2011)

  63. Dexun, J., et al.: Detecting bad smells with weight based distance metrics theory. In: Second International Conference on Instrumentation, Measurement, Computer, Communication and Control. IEEE. (2012)

  64. Fourati, R., Bouassida, N., Abdallah, H.B.: A metric-based approach for anti-pattern detection in uml designs. Computer and Information Science 2011. Springer. p. 17–33. (2011)

  65. Nongpong, K.: Feature envy factor: A metric for automatic feature envy detection. In: 7th International Conference on Knowledge and Smart Technology (KST). IEEE. (2015)

  66. 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(5), 1–10 (2011)

    Article  Google Scholar 

  67. Tahvildari, L. and Kontogiannis, K.: A metric-based approach to enhance design quality through meta-pattern transformations. In: Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.: IEEE. (2003)

  68. Tahvildar, L., Kontogiannis, K.: Improving design quality using meta-pattern transformations: a metric-based approach. J. Softw. Maint. Evol. Res. Pract. 16(4–5), 331–361 (2004)

    Article  Google Scholar 

  69. Fontana, F.A., Maggioni, S.: Metrics and antipatterns for software quality evaluation. In: IEEE 34th Software Engineering Workshop. IEEE. (2011)

  70. Marinescu, R.: Detecting design flaws via metrics in object-oriented systems. In: Proceedings 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems. TOOLS 39. IEEE. (2001)

  71. Olbrich, S., et al.: The evolution and impact of code smells: a case study of two open source systems. In: 3rd international symposium on empirical software engineering and measurement. IEEE. (2009)

  72. Salehie, M., Li, S., Tahvildari, L.: A metric-based heuristic framework to detect object-oriented design flaws. In: 14th IEEE International Conference on Program Comprehension (ICPC'06). IEEE. (2006)

  73. Srivisut, K., Muenchaisri, P.: Bad-smell metrics for aspect-oriented software. In: 6th IEEE/ACIS International Conference on Computer and Information Science (ICIS 2007). IEEE. (2007)

  74. Padilha, J., et al.: Detecting god methods with concern metrics: an exploratory study. In: Latin-American Workshop on Aspect-Oriented Software Development. (2013)

  75. Dexun, J., et al.: Detection and refactoring of bad smell caused by large scale. Int. J. Softw. Eng. Appl. 4(5), 1 (2013)

    Google Scholar 

  76. Fernandes, E., et al.: A review-based comparative study of bad smell detection tools. In: Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering. ACM. (2016)

  77. Fokaefs, M., Tsantalis, N., Chatzigeorgiou, A.: Jdeodorant: Identification and removal of feature envy bad smells. In: 2007 IEEE International Conference on Software Maintenance. IEEE. (2007)

  78. Moha, N., et al.: Decor: A method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 36(1), 20–36 (2009)

    Article  Google Scholar 

  79. Marinescu, R.: Assessing technical debt by identifying design flaws in software systems. IBM Journal of Research and Development. 56(5): p. 9: 1–9: 13. (2012)

  80. Ruhroth, T., Voigt, H., Wehrheim, H.: Measure, diagnose, refactor: a formal quality cycle for software models. In: 2009 35th Euromicro Conference on Software Engineering and Advanced Applications. IEEE. (2009)

  81. Voigt, H., Ruhroth, T.: A quality circle tool for software models. In: International Conference on Conceptual Modeling. Springer. (2008)

  82. Cabot, J., Gogolla, M.: Object constraint language (OCL): a definitive guide. In: International school on formal methods for the design of computer, communication and software systems. Springer. (2012)

  83. Kim, D.-K.: Software quality improvement via pattern-based model refactoring. In: 2008 11th IEEE High Assurance Systems Engineering Symposium. IEEE. (2008)

  84. Arendt, T., et al.: Towards syntactical model quality assurance in industrial software development: process definition and tool support. Software Engineering –Fachtagung des GI-Fachbereichs Softwaretechnik. (2011)

  85. Mohamed, M., Romdhani, M., Ghedira, K.: M-REFACTOR: A new approach and tool for model refactoring. ARPN J. Syst. Softw. Syst. Model. 1(4), 117–122 (2011)

    Google Scholar 

  86. Enckevort, T.V.: Refactoring UML models: using openarchitectureware to measure uml model quality and perform pattern matching on UML models with OCL queries. In: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications. ACM. (2009)

  87. Xu, J.: Rule-based automatic software performance diagnosis and improvement. Perform. Eval. 69(11), 525–550 (2012)

    Article  Google Scholar 

  88. Arcelli, D., Cortellessa, V., Di Pompeo, D.: Automating performance antipattern detection and software refactoring in UML models. In: 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE. (2019)

  89. Kolovos, D.S., Paige, R.F., Polack, F.A.: Eclipse development tools for epsilon. In: Eclipse Summit Europe, Eclipse Modeling Symposium. Citeseer. (2006)

  90. Štolc, M., Polášek, I.: A visual based framework for the model refactoring techniques. In: 2010 IEEE 8th International Symposium on Applied Machine Intelligence and Informatics (SAMI). IEEE. (2010)

  91. Asano, K., Hayashi, S., Saeki, M.: Detecting bad smells of refinement in goal-oriented requirements analysis. In: International Conference on Conceptual Modeling. Springer. (2017)

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

  93. Saeki, M., Hayashi, S., Kaiya, H.: A tool for attributed goal-oriented requirements analysis. In: 2009 IEEE/ACM International Conference on Automated Software Engineering. IEEE. (2009)

  94. Mohammed, M.A., Alshayeb, M., Hassine, J.: A search-based approach for detecting circular dependency bad smell in goal-oriented models. Software and Systems Modeling. (2022)

  95. Alqmase, M., et al.: Threshold Extraction Framework for Software Metrics. 34(5): p. 1063–1078. (2019)

  96. Yu, E.: Modelling Strategic Relationships for Process Reengineering. Social Modeling for Requirements Engineering. p. 2011. (2011)

  97. Wohlin, C., et al.: Experimentation in Software Engineering. Springer Science & Business Media. (2012)

Download references

Acknowledgements

The authors acknowledge the support of King Fahd University of Petroleum and Minerals in the development of this work.

Funding

The author declare that there is no funding.

Author information

Authors and Affiliations

Authors

Contributions

Mawal A. Mohammed: Conceptualization, methodology, analysis, and writing of the manuscript. Jameleddine Hassine: Conceptualization, methodology, analysis, and writing of the manuscript. Mohammad Alshayeb: Conceptualization, methodology, analysis, and writing of the manuscript.

Corresponding author

Correspondence to Mohammad Alshayeb.

Ethics declarations

Conflict of interest

The authors confirm that they do not have any Conflicts of interest nor competing interests.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Mohammed, M.A., Hassine, J. & Alshayeb, M. GSDetector: a tool for automatic detection of bad smells in GRL goal models. Int J Softw Tools Technol Transfer (2022). https://doi.org/10.1007/s10009-022-00662-2

Download citation

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10009-022-00662-2

Keywords

  • Bad smells
  • Goal models
  • GRL
  • GSDetector