Please use this identifier to cite or link to this item: http://hdl.handle.net/2440/118075
Type: Thesis
Title: Semantic Component Selection Based on Non-Functional Requirements
Author: Kashefi, Amir Kanan
Issue Date: 2018
School/Discipline: School of Computer Science
Abstract: Reusing existing software components in place of requiring the implementation of new components can reduce the complexity of the software development process. However, for a software component to be effectively identified and selected for reuse, we need a good understanding of both the functional and non-functional requirements of the component needed, and the components available. Functional requirements specify what a software component does and non-functional requirements specify how a software component achieves its goals. Non-functional requirements are typically complex, and difficult to both understand and effectively articulate. Requirements engineering provides a solution to easing this process, and involves performing the following reasoning steps: elicitation, analysis and description. However, the output of these steps is based on reasoning that requires manual, expensive and error-prone techniques. To solve such drawbacks, this thesis describes a framework that provides the necessary tools and techniques for automating reasoning including: an ontology for non-functional requirements as a conceptual model for reasoning; and a search algorithm that matches the best component according to the reasoning process outputs. To validate our framework, we develop an implementation that supports semantic search within a repository to locate matches based on a user query, validated with experimental findings on a repository consisting of 50 individual component descriptions. Our findings demonstrate the benefit obtained from using an ontology, by minimizing the cost and complexity of analysing non-functional requirements. Our algorithm is capable of running a complex query, for example, supporting 5 non-functional requirements with total 16 prerequisites against a repository of 1000 components can run in 1750 second. It would be impossible for a field expert to compute a complex query in this time frame.
Advisor: Falkner, Katrina
Falkner, Nickolas
Szabo, Claudia
Dissertation Note: Thesis (MCompSc) -- University of Adelaide, School of Computer Science, 2018
Keywords: Software component retrieval
semantic search
non functional requirement
ontology
component-based development
Provenance: This electronic version is made publicly available by the University of Adelaide in accordance with its open access policy for student theses. Copyright in this thesis remains with the author. This thesis may incorporate third party material which has been used by the author pursuant to Fair Dealing exceptions. If you are the owner of any included third party copyright material you wish to be removed from this electronic version, please complete the take down form located at: http://www.adelaide.edu.au/legals
Appears in Collections:Research Theses

Files in This Item:
File Description SizeFormat 
Kashefi2018_MCompSc.pdf2.33 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.