Requirements engineering is an important part of software engineering. It consists in defining
the needs of users when building a new system. These needs may be functional, i.e., what
service should the system be able to provide, as well as non-functional, i.e., under which
constraints should the system operate. Errors in requirements may have disastrous effects in
the rest of the software engineering process (Brooks 1995, p.199), since they would lead to the
construction of a system of little interest to its users or would require expensive modifications
to correct. Because requirements documents may be very large, errors are usually hard to
detect manually. Computer support is therefore often beneficial for their analysis. This
is made easier if requirements are expressed formally. However, this support must also be
adapted to and be usable by people who are expressing their requirements. These people
are usually not computer specialists and are not accustomed to use formal languages. It is
therefore necessary to help them express their requirements. Numerous approaches, have
been suggested as aids to the acquisition of requirements (Reubenstein 1990). Much less
attention has been paid to the control of the dialogue taking place between the users and the
system whilst using such frameworks (Bubenko et al. 1994). Frameworks for requirements
acquisition are not normally accompanied by theories of the types of dialogue which they
support. Our ability to develop sophisticated formal frameworks to analyse requirements
makes this deficiency more acutely felt, since increases in formality are often accompanied
by greater difficulty in understanding and using the frameworks (Robertson et al. 1989).
Users write their requirements in more or less natural language. This
is then translated into a formal language that can be interpreted by the elicitation module.
This module works on the requirements and provide feedback. The translation process is
then applied to convert feedback into more or less natural language. Different systems put
different emphasis on the parts of that general architecture. Some are very good at natural
language interpretation while others put more emphasis on analysing the requirements and
Natural language approaches to requirements elicitation, put an emphasis on natural
language interpretation (see section 1.2.1). In these approaches, users write their specifica¬
tion in a subset of natural language. The system then translates it into a formal notation.
The main benefit provided by these approaches is the improvement in the ease of use of
the system: natural language is the main means of communication for human beings and
does not need to be learned. However, most of these approaches do not provide a dialogue
well suited for the requirements elicitation process. Because they translate the natural lan¬
guage specification into a formal notation but do not provide guidance on how to write the
specification in the first place, users are left in charge of writing correct requirements. If a
mistake is made while writing the specification, it will simply be translated into the formal
In order to actively help users in the process of writing the requirements, the elicit¬
ation system must interact with them. The emphasis, here, is no longer on translating
requirements, but on actively extracting them through a dialogue with users. This is useful,
since the requirements elicitation process is complex, and offering guidance is a big help
for users. Unfortunately, most of the approaches providing guidance expose their formal
underlying frameworks directly to users (see section 1.2.2). In order to benefit from the
guidance provided, users have to learn the idiosyncrasies of the system they use. The task
of providing guidance is complicated by the fact that there are numerous ways of carrying
out the requirements elicitation. Very little research has been done on how to organise best
the elicitation process to provide effective guidance. An arbitrary choice could be made,
but forcing users to adopt a predefined method is usually not possible as it would make
the elicitation process very difficult to follow and understand. The system must therefore
be able to adapt itself to various elicitation methods. On the other hand, it is necessary
for the system to make choices in order to provide active guidance. A "least-commitment"
strategy, such as asking users at every choice point what to do next, is not a useful approach
(Ferguson et al. 1996).
One way of offering guidance without restricting users too much is by communicating
with them in natural language, and by using natural language constraints to inform the
choices made by the system to select a guidance strategy. These constraints ensure that
the system adopts a strategy that will guide users in a natural and understandable manner,
by taking into account the current state of the dialogue. In other words, the system takes into account the current state of the specification to help users complete it, but the current
state of the dialogue is the principal factor constraining what will be spoken about next.
Using such an approach reduces some of the problems discussed above. The specification
does not need to be immediately correct as it will be checked and reworked by the system.
The formal framework is hidden from users but is still there to ensure the correctness of
the specifications. Guidance is continuously offered through dialogue, which is influenced
by but does not directly follow the steps of construction of the specification.
The natural language constraints we use in this thesis are theories of dialogue coherence,
called "focus" theories. They define what can be spoken about next in a dialogue based
on what has already been discussed and the subject under discussion. The theories take
into account what participants in a dialogue pay attention to and try to ensure that the
rest of the dialogue is related to it. The systems tries to
help its users define how a research group WWW site should look like. The way the dialogue
evolves from discussing the research group, to discussing the site and its associated home
page, to discussing the set of publication can quite easily be followed. The use of pronouns
helps in making the text fell natural. It would have been difficult to achieve the same result
without using focus rules.
Other techniques for organising dialogues, such as those based on the intentions under¬
lying the dialogue (Cohen et al. 1990), would require the dialogue manager to know what
the elicitation system is trying to achieve and what its plan is. For some elicitation systems,
this knowledge may not be available. Similarly, techniques based on the content of the
communications exchanged and how they relate, e.g., based on RST (Mann and Thompson
1987), usually require a lot of domain knowledge. They are therefore time-consumming to
code. Focus theories require less information from the elicitation module while enabling the
dialogue manager to structure the dialogue. However, in some cases, focus theories are not
sufficient to organise a dialogue. We use a theory based on speech act (see section 3.4.1) and
some ideas from Grice's work on conversation (see section 5.2.1) to deal with these cases.
More generally, although we tried to minimise the impact of other theories to study in detail
focus theories, it would be interesting to know whether and how we can integrate them with
the work presented in this thesis. In particular, the notion of dialog act and its application
to dialog grammar could be of interest. General frameworks developped to study various
aspects of dialogue, including dialog acts and focus, have started to appear but work is still
at an early stage (C-Star Consortium 1998; Allen and Core 1997).
Organising a dialogue based on attention requires a lot of domain knowledge in order to
know how things mentioned in the dialogue relate to each other. Therefore, the amount of
knowledge engineering needed to build natural language applications is also an important
issue. We have tried to limit the engineering difficulties by clearly separating the domain
knowledge needed by our dialogue manager from its management capabilities, and by provid¬
ing a way of re-using the existing domain knowledge as far as possible. This is done by using
rules which enable us to re-use part of the domain knowledge already used by the elicitation
The contribution of this thesis is therefore the formalisation and evaluation of focus
theories for requirements elicitation dialogues in natural language. The main questions we
deal with are the following:
• Which focus theories should we use?
• What are the relations between the constraints imposed by the focus theories and the
constraints inherent to the requirements elicitation process?
• Does this approach improve the perceived quality of the dialogue between the elicita¬
tion tool and its users?
A prototype system has been developed. This system mainly operates in the WWW site
design domain. It has also been applied in other domains as an initial demonstration of the
range of problems that can be tackled by our approach.