Degree Name

Masters by Research


School of Information Technology and Computer Science - Faculty of Informatics


Non-functional requirements represent a critical and difficult problem in requirement engineering, but are often ignored. Usually, these are articulated as statements of objectives, as opposed to propositional assertions. A key challenge in dealing with objectives is that there is no obvious means of deciding when they are satisfied. In effect, these objectives are never fully satisfied, but satisficed to varying degrees. In evaluating alternative design decisions, we need to trade-off varying degrees of satisfaction of potentially mutually contradictory non-functional requirements. One key contribution of this work is the use of the hierarchical constraint logic programming framework in dealing with non-functional requirements. We show how NFRs can be formulated as soft constraints and how the machinery associated with constraint hierarchies can be used to evaluate the alternative trade-offs involved in seeking to satisfy a set of non-functional requirements that might pull in different directions. We apply also this approach to the problem of reasoning about web service selection and composition, and establish that significant value can be derived from such an exercise. Our second contribution is to develop an approach to executing high-level requirements models represented in the i* agent-oriented conceptual modeling language. We achieve this by translating these into sets of interacting agents implemented in the 3APL language. This approach enables us to analyze early phase system models by performing rule-/consistency-checking at higher-levels of abstraction. We show how this approach finds special application in the analysis of high-level models of service oriented architectures. The overarching project within which this research has been conducted seeks to bring to bear the full power of hierarchical constraint logic programming to requirements engineering problems. That this is a feasible exercise is clear from the close connections between logic programming and the style of agent programming explored here, as well as the connections between non-functional requirements and hierarchical representations of soft constraints that we have established in this thesis. The full project is beyond the scope of this Masters dissertation, but the research presented here may be viewed as laying the groundwork for this exercise.

02Whole.pdf (1741 kB)