You need to activate javascript for this site.
Menu Conteúdo Rodapé
  1. Home
  2. Courses
  3. Computer Science and Engineering
  4. Software Security and Reliability

Software Security and Reliability

Code 14466
Year 1
Semester S2
ECTS Credits 6
Workload PL(30H)/T(30H)
Scientific area Informatics
Entry requirements N/A
Learning outcomes The general objectives are
• Understand the life cycle of secure and reliable software systems, from specification to verification, using techniques based on mathematical formalisms (formal methods).
• Learn about modern formal methods and techniques, when to use them, and which are most appropriate for each phase of secure and reliable software systems.
• Apply formal methods and techniques to the specification and verification of secure and reliable software systems.
Syllabus • Introduction to specification and programming languages for building secure and reliable software
• Logics for formal specification: Propositional logic, first-order logic and temporal logic
• Automatic proof techniques: SAT solving for propositional logic, SMT solving for first-order logic and theories, Bounded model-checking via SAT for temporal logic
• Program specification: Domain languages for behavioral specification, execution safety properties and functional properties, contract-based specification
• Static program verification: verification conditions for programs with contracts
• Dynamic program verification: runtime monitoring with contracts
• Introduction to formal methods for cyber-physical systems
Main Bibliography Michael Huth & Mark Ryan. Logic in Computer Science: Modelling and Reasoning About Systems. Cambridge University Press; 2nd edition (2004).

Aaron R. Bradley & Zohar Manna. The Calculus of Computation: Decision Procedures with Applications to Verification. Springer (2007).

J.B. Almeida & M.J. Frade & J.S. Pinto & S.M. de Sousa. Rigorous Software Development: An Introduction to Program Verification. Springer (2011).
Teaching Methodologies and Assessment Criteria To assess the acquired competencies, the teaching-learning activities will evaluate the understanding of the theoretical concepts presented and the ability to apply them in practice. This assessment will be carried out through a written exam and a continuous assessment based on practical exercises.

NF = Final grade
NCP = Grade for the practical component (assessment of exercises)
NCT = Grade for the theoretical component (written exam)
NF = If (NCT >= 6 and NCP >= 6) then (NCT + NCP)/2 otherwise Fail/Not Admitted
Language Portuguese. Tutorial support is available in English.
Last updated on: 2025-03-10

The cookies used in this website do not collect personal information that helps to identify you. By continuing you agree to the cookie policy.