a software product, continuing to the episode when a fault is found (i.e. due to a slow
product operation), and a new design has to be adopted (i.e. using a faster algorithm),
or an episode when the requirements change (i.e. because the accuracy has to be
increased), the only thing that is “stable” and could be easily noted is a recurrence of
problems.
Requirements engineering, based on requirements specification, elicitation and
analysis, is not only the first, but also one of the most critical, knowledge-intensive
activities of software development [1] The most basic question in requirements
engineering is how to find out what users really need. Research has shown that in
general many large projects fail because of inadequate requirements and specifically
that poor execution of elicitation will almost guarantee that the final project is a
complete failure. Since project failures are so rampant [2], it is quite likely that
improving how the industry performs elicitation could have a dramatic effect on the
success record of the industry [3]. Improving requirements elicitation requires us to
understand it first. Although many papers have been written to define elicitation, or to
prescribe a specific technique to perform during elicitation, nobody has defined yet a
unified model of the elicitation process that emphasizes the role of knowledge.
The motivations of this paper can be seen in our effort to reach such a model. We’d
like to make the necessary steps in establishing and describing (documenting) the
requirements engineering phase, with an emphasis put on requirements elicitation,
based on our experience in large software projects. Furthermore, we want to illustrate
how we assessed the correctness of all these steps, based on a realistic software
product development. In this paper, our specific aim is to discuss all the
improvements regarding requirements elicitation that have been tested under real
circumstances when developing an e-Learning platform called Tesys [4].
The organization of the rest of the paper is as follows. First, the paper presents an
overview of the requirements engineering process (involving requirements
specification, elicitation and analysis). Then it presents briefly the Tesys application
platform. Next, it discusses the proposed improvements to requirements elicitation,
regarding traceability and modeling of requirements in the elicitation process, and the
benefits regarding verification and validation The paper concludes with a discussion
of the proposed solutions and makes recommendations on how requirements
elicitation could proceed.
2 Requirements Specification, Elicitation and Analysis
The purpose of the requirements engineering process, which involves requirements
definition (specification), elicitation and analysis is to document the requirements for
the next phases to be implemented during the software process according to the
specific aims of the project. From a social point of view, this should be a collaborative
process involving domain expertise from the client and software expertise from the
contractor part. The key concept behind this step consists of the separation of
application requirements from business/process requirements, which later on permits
to link these to design objects. The up-front separation of application from business
requirements really helps to clarify and focus on each aspect of the user's
65