I am associate professor at the Department of Informatics  at Faculty of Sciences of University of Lisbon and member of Reliable Software Systems (RSS) research group at LASIGE.

I received a BSc in Applied Mathematics and Computer Science and a MSc in Applied Mathematics from Technical University of Lisbon (IST) in, respectively, 1991 and 1993, and a PhD in Informatics from University of Lisbon (FCUL) in 1999.

My research interests are in the area of formal methods for software engineering. These include mathematically based techniques for the specification, modelling and analysis of various types of software intensive systems, namely service-oriented systems and self-adaptive systems.

I am a member of the Editorial Board of ACM Transactions on Software Engineering and Methodology (TOSEM) and the Board of Academic Editors of PeerJ Computer Science.


I was the PC co-chair of FASE 2007 (Fundamental Approaches to Software Engineering), FMOODS/FORTE 2009 (IFIP International Conference on Formal Techniques for Distributed Systems), ASAAS 2011 (First Workshop on Assurances for Self-Adaptive Systems) and PC chair of ECSA 2017 (European Conference on Software Architecture). I was PC co-chair of COORDINATION 2023 (International Conference on Coordination Models and Languages), FormaliSE 2024 (International Conference on Formal Methods in Software Engineering and Journal-First Papers track of ICSE 2024.

I was keynote speaker at MEDI 2011 (International Conference on Model & Data Engineering), ICGT 2012 (International Conference on Graph Transformation) and IMM 2016 (Iberian Mathematical Meeting). I gave an invited tutorial on Software Architecture at the 2nd Latin-American School on Software Engineering in July 2015 and a course on Software Reliability Methods at ECI 2018 in July 2018.


My publications are available here and also on my DBLP and Google Scholar pages.


HeadREST — a expressive interface description language for RESTful APIs, designed to support the specification of important properties of RESTful APIs that cannot be expressed in existing IDLs for RESTful APIs such as Open API Specification. The tool that validates the wellformedness of HeadREST specifications is available in HeadREST Eclipse Plug-in. Also, you can try it here. At client-side, one can take advantage of HeadREST specifications by programming in SafeRestScript. This language is a type-safe subset of JavaScript equipped with primitives to natively support REST calls; these calls are statically validated against specifications of the corresponding APIs written in HeadREST. The SafeRestScript compiler, which transpiles valid programs into JavaScript, is available in SRS Eclipse Plug-in.

ConGu — a tool that determines at run-time whether a Java module (which may include generic classes) behaves as required by a specification. Specifications are property-driven, can be parameterized (by other specifications), and support the specification of ADTs independently of the programming language and programming paradigm.

Research Projects



Current and Recent Activities



malopes at ciencias ulisboa pt

Departamento de Informática
Faculdade de Ciências da Universidade de Lisboa
Campo Grande 1749-016 Lisboa, Portugal

Office: 6.3.16 (3rd floor of building C6)

Telephone: +351 21 750 0604  Fax: +351 21750 00 84
Internal calls:  26316