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

Software Security and Reliability

Code 15646
Year 1
Semester S2
ECTS Credits 6
Workload PL(30H)/T(30H)
Scientific area Informatics
Entry requirements Does not have.
Learning outcomes The general objectives are:
• understand and master the development life cycle of secure and reliable IT systems based on Formal Methods.
• Know the existing formal methods, know when they should be applied and which are the most appropriate in each case.
• Apply the formal methods of specification and verification in the development of secure and reliable computer systems.
• Understand, be able to select but also design program static analyses methods and tools.
Syllabus 1. Formal methods in software engineering
2. Orders, lattices and the monotone framework
3. Data Flow Analysis
4. Path Sensitivity, interprocedural analysis and control flow analysis
5. Pointer analysis
6. Operational semantics for verification
7. Denotational, trace semantics
8. Axiomatic semantics, Hoare Logic, WPC and VCGEN
9. Deductive program verification on Why3
10. Theory of Types and Curry-Howard Isomorphism
11. Formal verification and evidence of COQ programs
12. Timed (timed) logic, timed model checking,
13. Model Checking with UPPAAL.
Main Bibliography J.B. Almeida, M.J. Frade, J.S. Pinto, and S. Melo de Sousa. Rigorous Software Development, An Introduction to Program Verification, volume 103 of Undergraduate Topics in Computer Science. Springer-Verlag, first edition, 307 p. 52 illus, 2011.
Béatrice Bérard, Michel Bidoit, Alain Finkel, François Laroussinie, Antoine Petit, Laure Petrucci, and Philippe Schnoebelen. Systems and Software Verification. Model-Checking Techniques and Tools. Springer, 2001.
J. Cooke. Constructing correct software. Formal approaches to computing and information technology. Springer Verlag, 2005.
Y. Bertot and P. Castéran. Interactive Theorem Proving and Program Development Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. An EATCS Serie. Springer Verlag, 2004.
J-F. Monin. Understanding Formal Methods. Springer Verlag, 2002. Translation editor M. Hinchey.
R. D. Tennent. Specifying Software. A Hands-On Introduction. Cambridge University Press, 2002.
Teaching Methodologies and Assessment Criteria The face-to-face classes are divided into two categories:
1. Theoretical classes where the theoretical concepts, the mathematical models specific to software construction /validation / analysis, the underlying algorithms, but also the capacitive technologies to the production of reliable and safe software are exposed.
2. Practical classes with application of program specification and verification techniques

In order to evaluate the acquired competences, the activities of Teaching-Learning will evaluate the understanding of the exposed theoretical concepts and the ability to put such concepts in practice. Thus, it will be carried out by a written test and by continuous evaluation based on practical exercises.
NF = Final grade
NCP = Grade for the practical component
NCT = grade for the theoretical component (written test)
NF = if (NCT> = 6) then (NCT + NCP) / 2 else “Fail”
Language Portuguese. Tutorial support is available in English.
Last updated on: 2024-03-04

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