Please use this identifier to cite or link to this item: https://hdl.handle.net/2440/118075
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorFalkner, Katrina-
dc.contributor.advisorFalkner, Nickolas-
dc.contributor.advisorSzabo, Claudia-
dc.contributor.authorKashefi, Amir Kanan-
dc.date.issued2018-
dc.identifier.urihttp://hdl.handle.net/2440/118075-
dc.description.abstractReusing 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.en
dc.language.isoenen
dc.subjectSoftware component retrievalen
dc.subjectsemantic searchen
dc.subjectnon functional requirementen
dc.subjectontologyen
dc.subjectcomponent-based developmenten
dc.titleSemantic Component Selection Based on Non-Functional Requirementsen
dc.typeThesisen
dc.contributor.schoolSchool of Computer Scienceen
dc.provenanceThis 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/legalsen
dc.description.dissertationThesis (MCompSc) -- University of Adelaide, School of Computer Science, 2018en
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.