An Essential Use Case (EUC) is a simplified, abstract, generalized use
case that captures the intentions of a user in a technology and
implementation-independent manner. A problem that often occurs when
expressing requirements is that the client embeds what are really
implementation-specific details to the requirements. E.g. "The user
should select the choice of (something) from a drop-down menu" specifies
the use of a drop-down menu, when another user-interface element may
result in a more usable interface (e.g. radio buttons). Really such
details should not appear in the requirements specification at all. The
EUC equivalent for the above example would be "User makes choice of
EUCs tend to be much shorter than standard use cases, and consequently there are typically many more EUCs that need to be described than standard use cases (40-50 for even a small system). This means specifying requirements using EUCs requires quite a lot of effort. Furthermore, many EUCs for the a system are similar, meaning their development can quite tedious. EUCs have not been widely accepted, possibly because of the amount of tedious effort required, and also the need to manage such a large number. Having tool support for capturing EUCs may mean they get used more. However it is not obvious what such a tool might look like, nor whether it is efficient enough to making EUCs manageable.
Recently a research paper was published describing a set of patterns that could be used to generate a large proportion of EUCs for a system. If these patterns are in fact useful, then they could be used as the basis for a tool that can semi-automatically generate many of the necessary EUCS.
The research goal of this project is determine whether tool support for EUC is feasible, that it can be made usable enough to reduce to effort required to describe requirements using EUCs. In particular, this project will address the question as to whether the proposed patterns can be used to semi-automatically generate EUCs.
Development of a web-based tool and studies demonstrating its value.
Must be a SOFTENG student (ie completed SOFTENG306, and ideally SOFTENG325).
Lab allocations have not been finalised