Software Requirements and Specification
1
2025-2026
02055929
Software Engineering
English
Portuguese
Face-to-face
SEMESTRIAL
6.0
Elective
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)
NoSyllabus
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.