Requirements engineering

Degree course: 
Corso di Second cycle degree in INFORMATICA
Academic year when starting the degree: 
2017/2018
Year: 
1
Academic year in which the course will be held: 
2017/2018
Course type: 
Compulsory subjects, characteristic of the class
Credits: 
6
Period: 
First Semester
Standard lectures hours: 
48
Detail of lecture’s hours: 
Lesson (48 hours)
Requirements: 

Basic logical capabilities are required.
Basic knowledge of UML is beneficial.
A good knowledge of written English is required, to get access to a large amount of didactic material, publications, manuals, programs, etc.

Final Examination: 
Orale

Students can choose one of the following examination methods: (1) project or (2) written exam.
The project (1) involves the elicitation and specification of requirements, and can be carried out by a single student or by two students. The project involves 4 milestones:1) the problem is informally described;2) requirement are elicited, analysis of strategic goals, evaluation of alternatives, and choice of the solution to be proposed; 3) analysis of the tactical objectives for the chosen solution, models of entities, relations, use cases and behaviour; 4) solution specification. The evaluation is based on the material released at milestones 2, 3 and 4.
The written project includes a set of exercises concerning any topic addressed in the course. An oral examination is required only when the written essay does not allow for a proper evaluation.

Assessment: 
Voto Finale

The aim of the course is to provide students with the basic knowledge needed perform requirements engineering, starting from requirements elicitation (ialso in non conventional domains and with stakeholders from different domains), proceeding with modeling and analyzing different solutions, and arriving at the specification of the chosen solution.
Of the different technique described in the literature, the course addresses the more frequently used in industrial as well as in reasearch settings. Students are expected to learn the presented techniques and became able to apply them in case studies derived from real projects. The student will be given the instruments to autonomously learn new methods and techniques.
Thanks to elicitation, modeling and analysis lessons, the students are expectd to develop autonomous judgment and communication abilities.

The course offers a wide view of requirements engineering and describes formalisms, methods, processes and tools used to elicit and represent functional and non functional requirements. Concrete instruments supporting problem and solution space analysis. Requirements verification, evaluation and monitoring techniques are also described.

The course is organized as follows.

Introduction to requiremnts engineering and fundamental concepts (8 hours).
What do we mean by “requirements”; system classification; analysis of the software life cycle, with special emphasis on requirements-related activities.

Context analysis and requirements elicitation (14 hours).
What is a “problem” and what are its dimensions. Modeling objectives and their relationships. Elicitation techniques: pros and cons of each technique. Problem sizing. Feasibility analysis.

Requirements representation (14 hours).
Requirements modeling. Techniques to represent objectives. Models to represent the context (structured language, decision trees, decision tables, OCL), constraints.
Object-oriented modeling. OCL: expressions, invariants, pre- and postconditions, types, semantics. Modeling relationships: E/R models, comparison with class diagrams. Modeling states: FSM and statecharts. Modeling events: tabular models. Modeling interactions with the system: use cases.

Specification (8 hours).
Analysis and modeling of non functional requirements. Analysis of tactical objectives. Risk management. Requirements specifications. Requirements priority.

Traceability (4 hours).
Revisions and inspections (orf requirements and code). Software evolution and traceability. Traceability in the design phase.

Reading the following books is recommended:
Software Requirements and Specifications: A Lexicon of Practice, Principles and Prejudices, Michael Jackson, ACM Press, 1995 
Requirements Engineering: From System Goals to UML Models to Software Specifications, Axel van Lamsweerde (University Catholique de Louvain), 2009.

Lecture slides and additional material are available on the University e-learning site.

Convenzionale

The course includes only frontal lectures (48 hours)

Office hours: upon appointment via email

Borrowers