Requirements engineering: natural language requirements elicitation, specification and quality evaluation

   

Dott. Giuseppe Lami
Istituto di Scienza e Tecnologie dell’Informazione “Alessandro Faedo”, Area della Ricerca di Pisa del CNR

15 hours, 4 credits (final test)

April 16 - April 20, 2007
Dipartimento di Ingegneria dell'Informazione: Elettronica, Informatica, Telecomunicazioni, via Diotisalvi, meeting room

Contacts: Prof. Luca Simoncini

   

Motivations

Skills in requirement engineering (as for instance the realisation of complete, unambiguous requirement documents, or the requirement change management) are considered determinant for the success of industrial projects for software-intensive systems. That determined an increasing awareness of the importance of the specific role of the requirement engineer.

Software engineering courses are today widely spread in almost all IT-specific curricula, because the academia in the last two decades understood the demand for skilled software professionals coming from the market. Nevertheless, software engineering courses focus more on coding, architecture and testing than requirements engineering.

Skills in requirements engineering are pressing for almost every possible scenario an engineer will operate in, because requirements are handled (written or used) during the whole development process.

Objectives

The principal objectives of this series of lectures are (i) to make the students aware of the consequences of low quality requirements for a software project; and (ii) to provide them the basic skills to specify requirements as well to analyse and manage requirements quality.

These objectives are achieved by learning software quality concepts as well as requirements elicitation and specification techniques. The simulation of a requirements elicitation meeting and the experience of the realisation and quality analysis of a real requirements document will consolidate the concepts learned.

Modules

MODULE I
Software quality, principles and theory (4 hours)

The purpose of this introductory module is to underline the importance of a culture of quality in software engineering and to understand the consequences of lack of quality at all the phases of the software development with particular emphasis on the requirements phase. Metrics, reviews and process assessments, as means to evaluate the quality, are also treated.

  • Quality of product
  • Quality of process
  • Software quality assurance and project management
  • International standards
  • Software quality metrics

MODULE II
Requirements engineering (4 hours)

In this module the basic concepts of the requirements engineering discipline are considered. The state-of-the-art techniques for representing and managing requirements are described.

  • Requirements elicitation (techniques and methods)
  • Requirements documentation
  • Formal methods
  • Graphical notations
  • Natural language-based notations
  • Requirements management (techniques and tools)

MODULE III
Requirements elicitation workshop (4 hours)

A meeting between customer and supplier for eliciting customer requirements is simulated in this module. The workshop is composed of a presentation of the customer needs (the teacher plays the role of the customer) and an interactive part where the students are encouraged to interview the customer to elicit additional requirements/details, ask for clarifications and solve possible conflicts. A requirements document produced by the students is the expected outcome of this module.

  • Case study presentation
  • Elicitation of requirements
  • Requirements document production

MODULE IV
Quality analysis of natural language requirements (2 hours)

After an overview of the existing tools and methods for the quality analysis of natural language requirements, the students run the quality analysis and calculate metrics on the requirements they produced in module 3 using an automatic tool.

MODULE V
Conclusions (1 hour)

This final module aims at sharing and discussing the results of the work made by the students in the laboratory session (module 4). The scope and validity of the analysis performed (what specific properties of the software are addressed and what not) are discussed too.