Supporting instances in use cases

Requirements Engineering includes elicitation and analysis of system requirements. There are many techniques used for requirement elicitation. The use case approach is one such technique. This technique uses textual use cases written in a natural language for gathering requirements. Textual use case...

Full description

Bibliographic Details
Main Author: Samarasinghe, Nayanamana
Format: Others
Language:en
Published: University of Ottawa (Canada) 2013
Subjects:
Online Access:http://hdl.handle.net/10393/27173
http://dx.doi.org/10.20381/ruor-18574
Description
Summary:Requirements Engineering includes elicitation and analysis of system requirements. There are many techniques used for requirement elicitation. The use case approach is one such technique. This technique uses textual use cases written in a natural language for gathering requirements. Textual use cases are simple and easy to understand because they are written using free form text. But in order to automate requirements analysis, use cases need to be expressed using a restricted form of language according to a set of guidelines. An advantage of a restricted form of natural language is that it can be used to mechanically process use cases while still being understandable to end users. A use case specifies interactions between a system and its environment. Sometimes interactions need to be expressed between instances. In the existing restricted natural language syntaxes there is usually no distinction between entities and instances of entities. Another issue is that use cases are expressed in term of domain elements. In most of the cases, a domain model is created and updated manually in an ad hoc manner. One of the contributions of this thesis is a restricted natural language syntax for use cases, where instances are explicitly expressed. Another contribution is an approach to automate domain element extraction from use cases. Finally, we implemented our results as part of UCEd (Use Case Editor): a tool that supports use cases based requirements engineering.