Software Requirements and Specification

Year
1
Academic year
2025-2026
Code
02055929
Subject Area
Software Engineering
Language of Instruction
English
Other Languages of Instruction
Portuguese
Mode of Delivery
Face-to-face
Duration
SEMESTRIAL
ECTS Credits
6.0
Type
Elective
Level
2nd Cycle Studies - Mestrado

Recommended Prerequisites

Programming, Mathematics.

Teaching Methods

Lectures (TP): detailed presentation of topics, examples and discussion.

Laboratory classes (PL): exercises and application of concepts to a diverse set of case studies, as well as project support.

Learning Outcomes

The professional activity of software development requires an understanding of successful methods for bridging the gap between a problem to be solved and a working software system. In this course unit students will study a variety of techniques to:

(1) Understand the problem they are trying to solve, the various factors that constrain the possible solutions, and approaches to deciding among alternatives (requirements).

(2) Know formal software specification approaches as well as methods and tools for analysis and automatic verification of programs against their properties (specification).

At the end of this curricular unit the students shall be able to: (i) identify different classes of problems and their structures; (ii) analyze technical, organizational, usability, and business constraints on potential solutions; (iii) formally specify properties of software systems; and (iv) build verified programs using code annotations and automatic proof tools.

Work Placement(s)

No

Syllabus

1. Requirements and specification in software.

2. Contextual design.

3. Functional and non-functional requirements.

4. Executable requirements (BDD).

5. Specification of pre- and post-conditions, invariants, and assertions.

6. Annotation-based property specification.

7. Construction of verified programs.

8. Automated program verification.

Head Lecturer(s)

Mário Alberto da Costa Zenha Rela

Assessment Methods

Assessment
Exam: 30.0%
Project: 70.0%

Bibliography

Software Requirements, 3rd Edition, Karl Wiegers, Joy Beatty, 672 pages, ISBN-13: 978-0735679665, Microsoft Press, 2013.

Program proofs, K. Rustan M. Leino, Paperback, ISBN: 9780262546232, Pub date: March 7, 2023, Publisher: The MIT Press, 2023.