José Proença

José Proença

Assistant Researcher

CISTER Research Centre


I am currently an Assistant Professor at FCUP, Researcher at CISTER, and an external collaborator of INESC TEC, Portugal, working on formal models for component-based systems. Until January 2019 I worked in HASLab, INESC TEC & University of Minho, mainly with Luís Barbosa, and was affiliated with Distrinet, KU Leuven, until January 2016, working mainly with Danny Hughes and Dave Clarke. My work has been mainly on coordination of distributed components, often associated to the Reo coordination language, and on formal approaches to software product line engineering. More recently I have been working on component models for embedded devices in the context of the LooCI middleware and micro PnP (now part of VersaSense), and in the context of the VirtuosoNext RTOS.

Before I graduated in University of Minho, Portugal, for a 5 year degree in Mathematics and Computer Science. I studied abroad for 6 months as an Erasmus student in Bristol University, UK. I defended my PhD in Leiden University in May 2011, for my work carried in CWI, Amsterdam, in the group for Foundations of Software Engineering.

  • FCUP logo
  • CISTER logo
  • ARCA logo


  • Formal methods
  • Concurrency
  • Coordination
  • Software engineering
  • Software product lines
  • Real-time Embedded systems
  • Programming in Scala


  • PhD in Concurrent & Distributed Computing, 2011

    Leiden University, the Netherlands

  • BSc+MSc in Mathematics & Computer Science, 2005

    University of Minho, Portugal

Research Experience


Senior Researcher


Feb 2019 – Present Porto, Portugal
Coordination and monitoring of components in Cyber-Physical Systems

Post-doctoral Researcher

HasLAB (INESC TEC & Univ. Minho)

Nov 2015 – Jan 2019 Braga, Portugal
Coordination and monitoring of components in Cyber-Physical Systems

Post-doctoral Researcher

DistriNet (KU Leuven)

Feb 2010 – Oct 2015 Leuven, Belgium
Specification and analysis of both variability in a concurrent language and component models for embedded devices.

PhD Researcher

CWI (Leiden)

Jan 2006 – Dec 2009 Amsterdam, the Netherlands
Synchronous Coordination of Distributed Components

Teaching and Supervision Experience


Assistant Professor

University of Porto

Sep 2023 – Present Porto, Portugal

Responsible for the MSc course unit:

In charge of lab classes of the course units:


Invited Assistant Professor


Sep 2019 – Sep 2023 Porto, Portugal

Co-responsible for the MSc course units:

  • FVOCA - Formal Verification of Critical Applications (2021/22)
  • RAMDE - Requirement and Model Driven Engineering (2021/22)

In charge of lab classes of the course units:

  • PPROG - Object Oriented Paradigm (2020/21)
  • APROG - Introductory course on Algorithms and Programming (2019/20)
  • SCOMP - Concurrency control mechanisms in C (2019/20)

Invited lecturer in the following course units:

  • AC - Software Architecture and Design Calculi, UM, MSc level (2019/20, 2020/21)
  • CPC - Cyber-Physical Computation, UM, for PhD students of MAPi (2019/20)

Ongoing supervisor of the PhD thesis:

  • Giann Nandi, A Novel Framework for Certified Runtime Verification of Safety-Critical Cyber-Physical Systems (since 2019)

Ongoing supervisor of the MSc thesis:

  • José Matias, A DSL for a Cloud infrastructure (since 2020)

Invited Assistant Professor

University of Minho

Feb 2016 – Sep 2023 Braga, Portugal

Prepared and lectured course units on the following topics:

  • Cyber Physical Computation, MSc level (2022/23)
  • Cyber Physical Programming, MSc level (2022/23)
  • Software Architecture and Design Calculi, MSc level (2016, 2017, 2018)
  • Mathematics for Computer Science, requalification of software scientists (2017).

In charge of lab classes of the course units:

  • Algorithms and Complexity (2022/23);
  • Functional Programming (2016/17 and 2017/18);
  • Laboratory of Informatics I - functional programming (2016/17, 2017/18, 2018/19);
  • Laboratory of Informatics II - imperative programming (2017/18);
  • Program Calculation - advanced functional programming (2016/17).

Involved in the supervision of the work carried in the PhD thesis:

Supervisor of the MSc thesis:


Post-doctoral Researcher

KU Leuven

Feb 2010 – Oct 2015 Leuven, Belgium

Teaching assistant in the undergraduate courses:

  • P&O - Practical project with constrained devices (2013/14, 2014/15)
  • SWOP - Software design in object-oriented languages (2011/12, 2012/13, 2013/14)
  • CPL - Comparative Programming Languages (2012/13)
  • BS - Operating Systems (2012/13)
  • OGO - Introduction to the object-oriented paradigm (2011/12)

Involved in the supervision of the work carried in the PhD theses:

  • Wilfried Daniëls (defended in 2018)
  • Gowri Sankar Rang (defended in 2017)
  • Radu Muschevici (defended in 2013)

Supervisor of the MSc theses:

  • Sam Gielis, A reactive, extensible & modular Dashboard Factory for WSN monitoring (2015)
  • Jonas Flament, Encoding Scala with Logic (2014)
  • Wouter Seyen, Delta Modelling Evaluation using ABS Language (2012)