{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,18]],"date-time":"2026-03-18T13:35:38Z","timestamp":1773840938483,"version":"3.50.1"},"reference-count":38,"publisher":"MDPI AG","issue":"9","license":[{"start":{"date-parts":[[2018,9,3]],"date-time":"2018-09-03T00:00:00Z","timestamp":1535932800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Information"],"abstract":"<jats:p>Software applications have become a fundamental part in the daily work of modern society as they meet different needs of users in different domains. Such needs are known as software requirements (SRs) which are separated into functional (software services) and non-functional (quality attributes). The first step of every software development project is SR elicitation. This step is a challenge task for developers as they need to understand and analyze SRs manually. For example, the collected functional SRs need to be categorized into different clusters to break-down the project into a set of sub-projects with related SRs and devote each sub-project to a separate development team. However, functional SRs clustering has never been considered in the literature. Therefore, in this paper, we propose an approach to automatically cluster functional requirements based on semantic measure. An empirical evaluation is conducted using four open-access software projects to evaluate our proposal. The experimental results demonstrate that the proposed approach identifies semantic clusters according to well-known used measures in the subject.<\/jats:p>","DOI":"10.3390\/info9090222","type":"journal-article","created":{"date-parts":[[2018,9,3]],"date-time":"2018-09-03T10:50:51Z","timestamp":1535971851000},"page":"222","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":19,"title":["Semantic Clustering of Functional Requirements Using Agglomerative Hierarchical Clustering"],"prefix":"10.3390","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3258-7304","authenticated-orcid":false,"given":"Hamzeh","family":"Eyal Salman","sequence":"first","affiliation":[{"name":"Information Technology Department, Mutah University, Mutah 61710, Jordan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6527-5070","authenticated-orcid":false,"given":"Mustafa","family":"Hammad","sequence":"additional","affiliation":[{"name":"Information Technology Department, Mutah University, Mutah 61710, Jordan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Abdelhak-Djamel","family":"Seriai","sequence":"additional","affiliation":[{"name":"LIRMM Lab, University of Montpellier, 34000 Montpellier, France"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7582-0041","authenticated-orcid":false,"given":"Ahed","family":"Al-Sbou","sequence":"additional","affiliation":[{"name":"Department of Computer Science, Al-Hussein Bin Talal University, Ma\u2019an 20, Jordan"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2018,9,3]]},"reference":[{"key":"ref_1","unstructured":"Sommerville, I. (2010). Software Engineering, Addison-Wesley Publishing Company. [9th ed.]."},{"key":"ref_2","unstructured":"Davis, A.M. (1993). Software Requirements: Objects, Functions, and States, Prentice-Hall, Inc."},{"key":"ref_3","unstructured":"Pressman, R. (2010). Software Engineering: A Practitioner\u2019s Approach, McGraw-Hill, Inc.. [7th ed.]."},{"key":"ref_4","unstructured":"Kotonya, G., and Sommerville, I. (1998). Requirements Engineering: Processes and Techniques, Wiley. [1st ed.]."},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"104","DOI":"10.1016\/j.infsof.2017.03.001","article-title":"Minimizing the stakeholder dissatisfaction risk in requirement selection for next release planning","volume":"87","author":"Pitangueira","year":"2017","journal-title":"Inf. Softw. Technol."},{"key":"ref_6","doi-asserted-by":"crossref","first-page":"267","DOI":"10.1016\/j.jss.2014.09.038","article-title":"Software requirements selection and prioritization using SBSE approaches: A systematic review and mapping of the literature","volume":"103","author":"Pitangueira","year":"2015","journal-title":"J. Syst. Softw."},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"133","DOI":"10.1007\/s00766-012-0149-0","article-title":"Towards an understanding of the causes and effects of software requirements change: Two case studies","volume":"17","author":"McGee","year":"2012","journal-title":"Requir. Eng."},{"key":"ref_8","doi-asserted-by":"crossref","first-page":"230","DOI":"10.1016\/j.infsof.2006.10.017","article-title":"Semantic Clustering: Identifying Topics in Source Code","volume":"49","author":"Kuhn","year":"2007","journal-title":"Inf. Softw. Technol."},{"key":"ref_9","doi-asserted-by":"crossref","unstructured":"Aurum, A., and Wohlin, C. (2005). Requirements elicitation: A survey of techniques, approaches, and tools. Engineering and Managing Software Requirements, Springer.","DOI":"10.1007\/3-540-28244-0"},{"key":"ref_10","unstructured":"Sommerville, I., Sawyer, P., and Viller, S. (1998, January 10). Viewpoints for requirements elicitation: A practical approach. Proceedings of the 1998 Third International Conference on Requirements Engineering, Colorado Springs, CO, USA."},{"key":"ref_11","unstructured":"Bitencourt, A.S., Paiva, D.M., and Cagnin, M.I. (2016, January 17\u201320). Requirements elicitation from business process model in bpmn: A systematic review. Proceedings of the XII Brazilian Symposium on Information Systems on Brazilian Symposium on Information Systems: Information Systems in the Cloud Computing Era, Florianopolis, Brazil."},{"key":"ref_12","unstructured":"Doerr, J., and Opdahl, A.L. (2013). Highlighting stakeholder communities to support requirements decision-making. Requirements Engineering: Foundation for Software Quality, Springer."},{"key":"ref_13","doi-asserted-by":"crossref","unstructured":"Kamalrudin, M., Grundy, J., and Hosking, J. (2010, January 20\u201324). Tool support for essential use cases to better capture software requirements. Proceedings of the IEEE\/ACM International Conference on Automated Software Engineering (ASE\u201910), Antwerp, Belgium.","DOI":"10.1145\/1858996.1859047"},{"key":"ref_14","doi-asserted-by":"crossref","first-page":"25","DOI":"10.1016\/j.jss.2013.08.036","article-title":"Conceptual modeling of natural language functional requirements","volume":"88","author":"Sagar","year":"2014","journal-title":"J. Syst. Softw."},{"key":"ref_15","doi-asserted-by":"crossref","unstructured":"Alebrahim, A. (2017). Framework for identifying meta-requirements. Bridging the Gap between Requirements Engineering and Software Architecture: A Problem-Oriented and Quality-Driven Method, Springer.","DOI":"10.1007\/978-3-658-17694-5"},{"key":"ref_16","first-page":"172","article-title":"Non-functional requirements research: Survey","volume":"3","author":"Harsimran","year":"2015","journal-title":"Int. J. Sci. Eng. Appl."},{"key":"ref_17","doi-asserted-by":"crossref","unstructured":"Deocadez, R., Harrison, R., and Rodriguez, D. (2017, January 4\u20138). Automatically classifying requirements from app stores: A preliminary study. Proceedings of the 2017 IEEE 25th International Requirements Engineering Conference Workshops (REW), Lisbon, Portugal.","DOI":"10.1109\/REW.2017.58"},{"key":"ref_18","doi-asserted-by":"crossref","unstructured":"Kapetanios, E., Sugumaran, V., and Spiliopoulou, M. (2008). Using linguistic knowledge to classify non-functional requirements in srs documents. Natural Language and Information Systems, Springer.","DOI":"10.1007\/978-3-540-69858-6"},{"key":"ref_19","unstructured":"IEEE-SA Standards Board (1998). IEEE Recommended Practice for Software Requirements Specifications, IEEE. IEEE Std 830-1998."},{"key":"ref_20","unstructured":"National Research Council of Italy (2018, June 03). Natural Language Requirements Dataset. Available online: http:\/\/fmt.isti.cnr.it\/nlreqdataset\/."},{"key":"ref_21","doi-asserted-by":"crossref","unstructured":"Eckhardt, J., Vogelsang, A., and Fern\u00e1ndez, D.M. (2016, January 14\u201322). Are \u201cNon-functional\u201d Requirements Really Non-functional? An Investigation of Non-functional Requirements in Practice. Proceedings of the 38th International Conference on Software Engineering (ICSE\u201916), Austin, TX, USA.","DOI":"10.1145\/2884781.2884788"},{"key":"ref_22","unstructured":"Sommerville, I., and Sawyer, P. (1997). Requirements Engineering: A Good Practice Guide, Wiley. [1st ed.]."},{"key":"ref_23","doi-asserted-by":"crossref","unstructured":"Ghazarian, A., Tehrani, M.S., and Ghazarian, A. (2011, January 27\u201329). A software requirements specification framework for objective pattern recognition: A set-theoretic classification approach. Proceedings of the 2011 16th IEEE International Conference on Engineering of Complex Computer Systems, Las Vegas, NV, USA.","DOI":"10.1109\/ICECCS.2011.28"},{"key":"ref_24","doi-asserted-by":"crossref","unstructured":"Ghazarian, A. (2012, January 24\u201328). Characterization of functional software requirements space: The law of requirements taxonomic growth. Proceedings of the 2012 20th IEEE International Requirements Engineering Conference (RE), Chicago, IL, USA.","DOI":"10.1109\/RE.2012.6345810"},{"key":"ref_25","doi-asserted-by":"crossref","unstructured":"Rashwan, A., Ormandjieva, O., and Witte, R. (2013, January 22\u201326). Ontology-based classification of non-functional requirements in software specifications: A new corpus and svm-based classifier. Proceedings of the 2013 IEEE 37th Annual Computer Software and Applications Conference, Kyoto, Japan.","DOI":"10.1109\/COMPSAC.2013.64"},{"key":"ref_26","doi-asserted-by":"crossref","unstructured":"Singh, P., Singh, D., and Sharma, A. (2016, January 19\u201321). Classification of non-functional requirements from SRS documents using thematic roles. Proceedings of the 2016 IEEE International Symposium on Nanoelectronic and Information Systems (iNIS), Gwalior, India.","DOI":"10.1109\/iNIS.2016.054"},{"key":"ref_27","doi-asserted-by":"crossref","unstructured":"Kurtanovi\u0107, Z., and Maalej, W. (2017, January 4\u20138). Automatically classifying functional and non-functional requirements using supervised machine learning. Proceedings of the 2017 IEEE 25th International Requirements Engineering Conference (RE), Lisbon, Portugal.","DOI":"10.1109\/RE.2017.82"},{"key":"ref_28","doi-asserted-by":"crossref","unstructured":"Rashwan, A. (2012, January 28\u201330). Semantic analysis of functional and non-functional requirements in software requirements specifications. Proceedings of the 25th Canadian Conference on Advances in Artificial Intelligence (Canadian AI\u201912), Toronto, ON, Canada.","DOI":"10.1007\/978-3-642-30353-1_42"},{"key":"ref_29","doi-asserted-by":"crossref","first-page":"852","DOI":"10.1016\/j.procs.2016.03.083","article-title":"A novel approach for specifying functional and non-functional requirements using rds (requirement description schema)","volume":"79","author":"Shah","year":"2016","journal-title":"Procedia Comput. Sci."},{"key":"ref_30","doi-asserted-by":"crossref","unstructured":"Manning, C.D., Raghavan, P., and Sch\u00fctze, H. (2008). Introduction to Information Retrieval, Cambridge University Press.","DOI":"10.1017\/CBO9780511809071"},{"key":"ref_31","unstructured":"(2017, November 03). Term Freuency Weighting. Available online: http:\/\/opencourseonline.com\/."},{"key":"ref_32","doi-asserted-by":"crossref","first-page":"130","DOI":"10.1108\/eb046814","article-title":"An algorithm for suffix stripping","volume":"14","author":"Porter","year":"1980","journal-title":"Program"},{"key":"ref_33","doi-asserted-by":"crossref","first-page":"613","DOI":"10.1145\/361219.361220","article-title":"A vector space model for automatic indexing","volume":"18","author":"Salton","year":"1975","journal-title":"Commun. ACM"},{"key":"ref_34","doi-asserted-by":"crossref","unstructured":"Marcus, A., and Maletic, J.I. (2003, January 3\u201310). Recovering documentation-to-source-code traceability links using latent semantic indexing. Proceedings of the 25th International Conference on Software Engineering (ICSE\u201903), Portland, OR, USA.","DOI":"10.1109\/ICSE.2003.1201194"},{"key":"ref_35","doi-asserted-by":"crossref","unstructured":"Saied, M.A., Abdeen, H., Benomar, O., and Sahraoui, H. (2015, January 18\u201319). Could we infer unordered api usage patterns only using the library source code?. Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension (ICPC\u201915), Florence, Italy.","DOI":"10.1109\/ICPC.2015.16"},{"key":"ref_36","unstructured":"Zhao, H., and Qi, Z. (2010, January 9\u201310). Hierarchical agglomerative clustering with ordering constraints. Proceedings of the 2010 Third International Conference on Knowledge Discovery and Data Mining, Phuket, Thailand."},{"key":"ref_37","unstructured":"Menzies, T., Krishna, R., and Pryor, D. (2018, June 03). The Promise Repository of Empirical Software Engineering Data. Available online: http:\/\/openscience.us\/repo\/requirements\/requirements-other\/wasp.html."},{"key":"ref_38","unstructured":"(2018, June 03). Mental Health Care Patient Management System. Available online: https:\/\/bscs143.files.wordpress.com\/2015\/11\/requirement-mhc-pms.docx."}],"container-title":["Information"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2078-2489\/9\/9\/222\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T15:18:30Z","timestamp":1760195910000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2078-2489\/9\/9\/222"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,9,3]]},"references-count":38,"journal-issue":{"issue":"9","published-online":{"date-parts":[[2018,9]]}},"alternative-id":["info9090222"],"URL":"https:\/\/doi.org\/10.3390\/info9090222","relation":{},"ISSN":["2078-2489"],"issn-type":[{"value":"2078-2489","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,9,3]]}}}