José Proença

José Proença
Instituto Superior de Engenharia do Porto | CISTER

PhD

About

57
Publications
5,522
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
474
Citations
Introduction
My current research interests include: Formal methods, Concurrency, Coordination, Software engineering, Software product lines, Real-time Embedded systems, and Programming Languages.
Additional affiliations
February 2019 - October 2020
Instituto Superior de Engenharia do Porto
Position
  • PhD Student
February 2010 - January 2016
KU Leuven
Position
  • PostDoc Position
January 2006 - December 2009
Centrum Wiskunde & Informatica
Position
  • PhD

Publications

Publications (57)
Preprint
Full-text available
Choreographic languages describe possible sequences of interactions among a set of agents. Typical models are based on languages or automata over sending and receiving actions. Pomsets provide a more compact alternative by using a partial order over these actions and by not making explicit the possible interleaving of concurrent actions. However, p...
Chapter
Full-text available
Motor controllers, such as the ones used in signalling systems, include critical embedded software. Alstom is a company that produces such embedded systems, which must follow complex certification processes that require formal modelling and analysis. The formal analysis of these real-time systems have to balance between including enough details to...
Chapter
We propose featured team automata to support variability in the development and analysis of teams, which are systems of reactive components that communicate according to specified synchronisation types. A featured team automaton concisely describes a family of concrete product models for specific configurations determined by feature selection. We f...
Preprint
This volume contains the proceedings of F-IDE 2021, the sixth international workshop on Formal Integrated Development Environment, which was held online on May 24-25, 2021, as part of NFM'21, the 13th NASA Formal Methods Symposium. High levels of safety, security and privacy standards require the use of formal methods to specify and develop complia...
Preprint
Full-text available
We propose featured team automata to support variability in the development and analysis of teams, which are systems of reactive components that communicate according to specified synchronisation types. A featured team automaton concisely describes a family of concrete product models for specific configurations determined by feature selection. We f...
Chapter
Hybrid programs combine digital control with differential equations, and naturally appear in a wide range of application domains, from biology and control theory to real-time software engineering. The entanglement of discrete and continuous behaviour inherent to such programs goes beyond the established computer science foundations, producing chall...
Article
VirtuosoNextTM is a distributed real-time operating system (RTOS) featuring a generic programming model dubbed Interacting Entities. This paper focuses on these interactions, implemented as so-called Hubs. Hubs act as synchronisation and communication mechanisms between the application tasks and implement the services provided by the kernel. While...
Preprint
Full-text available
Hybrid programs combine digital control with differential equations, and naturally appear in a wide range of application domains, from biology and control theory to real-time software engineering. The entanglement of discrete and continuous behaviour inherent to such programs goes beyond the established computer science foundations, producing chall...
Chapter
Reactive programming (RP) languages and Synchronous Coordination (SC) languages share the goal of orchestrating the execution of computational tasks, by imposing dependencies on their execution order and controlling how they share data. RP is often implemented as libraries for existing programming languages, lifting operations over values to operat...
Chapter
Building and maintaining complex systems requires good software engineering practices, including code modularity and reuse. The same applies in the context of coordination of complex component-based systems. This paper investigates how to verify properties of complex coordination patterns built hierarchically, i.e., built from composing blocks that...
Chapter
Full-text available
VirtuosoNext\(^{\text {TM}}\) is a distributed real-time operating system (RTOS) featuring a generic programming model dubbed Interacting Entities. This paper focuses on these interactions, implemented as so-called Hubs. Hubs act as synchronisation and communication mechanisms between the application tasks and implement the services provided by the...
Article
Full-text available
Our department has long been an advocate of the functional-first school of programming and has been teaching Haskell as a first language in introductory programming course units for 20 years. Although the functional style is largely beneficial, it needs to be taught in an enthusiastic and captivating way to fight the unusually high computer science...
Chapter
Connectors describe how to combine independent components by restricting the possible interactions between their interfaces. In this work, connectors are specified using an existing calculus of connectors for Reo connectors. Currently there are no tools to automatically analyse these connectors, other than a type-checker for a embedded domain speci...
Conference Paper
Software Product Lines (SPLs) are families of systems that share a high number of common assets while differing in others. In component-based systems, components themselves can be SPLs, i.e., each component can be seen as a family of variations, with different interfaces and functionalities, typically parameterized by a set of features and a featur...
Conference Paper
The reactive paradigm recently became very popular in user-interface development: updates — such as the ones from the mouse, keyboard, or from the network — can trigger a chain of computations organised in a dependency graph, letting the underlying engine control the scheduling of these computations. In the context of the Internet of Things (IoT),...
Conference Paper
Featured Timed Automata (FTA) is a formalism that enables the verification of an entire Software Product Line (SPL), by capturing its behavior in a single model instead of product-by-product. However, it disregards compositional aspects inherent to SPL development. This paper introduces Interface FTA (IFTA), which extends FTA with variable interfac...
Article
Typed models of connector/component composition specify interfaces describing ports of components and connectors. Typing ensures that these ports are plugged together appropriately, so that data can flow out of each output port and into an input port. These interfaces typically consider the direction of data flow and the type of values flowing. Com...
Book
This book constitutes the thoroughly revised selected papers from the 14th International Conference on Formal Aspects of Component Software, FACS 2017, held in Braga, Portugal, in October 2017. The 14 full papers presented were carefully reviewed and selected from 26 submissions. FACS 2016 is concerned with how formal methods can be used to make co...
Article
Full-text available
Wireless communication plays a critical role in determining the lifetime of Internet-of-Things (IoT) systems. Data aggregation approaches have been widely used to enhance the performance of IoT applications. Such approaches reduce the number of packets that are transmitted by combining multiple packets into one transmission unit, thereby minimising...
Conference Paper
Typed models of connector/component composition specify interfaces describing ports of components and connectors. Typing ensures that these ports are plugged together appropriately, so that data can flow out of each output port and into an input port. These interfaces typically consider the direction of data flow and the type of values flowing. Com...
Book
Full-text available
This book constitutes the proceedings of the 18th International Conference on Coordination Models and Languages, COORDINATION 2016, held in Heraklion, Crete, Greece, in June 2016, as part of the 11th International Federated Conference on Distributed Computing Techniques, DisCoTec 2016. The 16 full papers included in this volume were carefully revi...
Conference Paper
Full-text available
This paper introduces the concept of tomography, a mechanism to lower management overhead for component-based IoT applications. Previous research has shown the advantages of component-based software engineering, wherein applications are built and reconfigured at runtime through the composition of components. While this approach promotes code-reuse...
Article
Full-text available
Software product lines (SPLs) are diverse systems that are developed using a dual engineering process: (a) family engineering defines the commonality and variability among all members of the SPL, and (b) application engineering derives specific products based on the common foundation combined with a variable selection of features. The number of der...
Conference Paper
Full-text available
This paper proposes the concept of refraction, a principled means to lower the cost of managing reflective meta-data for pervasive systems. While prior work has demonstrated the benefits of reflective component-based middleware for building open and reconfigurable applications, the cost of using remote reflective operations remains high. Refractive...
Article
Full-text available
This volume contains the proceedings of FOCLASA 2014, the 13th International Workshop on the Foundations of Coordination Languages and Self-Adaptive Systems. FOCLASA 2014 was held in Rome, Italy, on September 9, 2014 as a satellite event of CONCUR 2014, the 25th International Conference on Concurrency Theory. Modern software systems are distributed...
Conference Paper
Full-text available
Dynamic software product lines (DSPLs) combine the advantages of traditional SPLs, such as an explicit variability model connected to an integrated repository of reusable code artefacts, with the ability to exploit a system's variability at runtime. When a system needs to adapt, for example to changes in operational environment or functional requir...
Conference Paper
Full-text available
This paper studies complex coordination mechanisms based on constraint satisfaction. In particular, it focuses on data-sensitive connectors from the Reo coordination language. These connectors restrict how and where data can flow between loosely-coupled components taking into account the data being exchanged. Existing engines for Reo provide a very...
Conference Paper
Full-text available
Interaction constraints are an expressive formalism for describing coordination patterns, such as those underlying the coordination language Reo, that can be efficiently implemented using constraint satisfaction technologies such as SAT and SMT solvers. Existing implementations of interaction constraints interact with external components only in a...
Article
Full-text available
Modern software systems must support a high degree of variability to accommodate a wide range of requirements and operating conditions. This paper introduces the Abstract Behavioural Specification (ABS) language and tool suite, a comprehensive platform for developing and analysing highly adaptable distributed concurrent software systems. The ABS la...
Article
Full-text available
We present a procedure for splitting processes in a process algebra with multi-actions (a subset of the specification language mCRL2). This splitting procedure cuts a process into two processes along a set of actions A: roughly, one of these processes contains no actions from A, while the other process contains only actions from A. We state and pro...
Conference Paper
Full-text available
Connector colouring provided an intuitive semantics of Reo connectors which lead to effective implementation techniques, first based on computing colouring tables directly, and later on encodings of colouring into constraints. One weakness of the framework is that it operates globally, giving a colouring to all primitives of the connector in lock-s...
Article
Full-text available
Since wireless sensor network applications are ever growing in scale and complexity, managers require strong formal guarantees that any changes done to the system can be enacted safely. This paper presents the formalisation and analysis of the semantics of policies, tiny software artefacts used to orchestrate wireless sensor network applications. T...
Conference Paper
Full-text available
Synchronous coordination systems, such as Reo, exchange data via indivisible actions, while distributed systems are typically asynchronous and assume that messages can be delayed or get lost. To combine these seemingly contradictory notions, we introduce the Dreams framework. Coordination patterns in Dreams are described using a synchronous model b...
Article
Full-text available
We present a procedure for splitting processes in a process algebra with multi-actions (a subset of the specification language mCRL2). This splitting procedure cuts a process into two processes along a set of actions A: roughly, one of these processes contains no actions from A, while the other process contains only actions from A. We state and pro...
Conference Paper
Full-text available
Formal modelling and verification are critical for managing the inherent complexity of systems with a high degree of variability, such as those designed following the software product line (SPL) paradigm. SPL models tend to be large--the number of products in an SPL can be exponential in the number of features. Modelling these systems poses two mai...
Article
Full-text available
Coordination in Reo emerges from the composition of the behavioural constraints of primitives, such as channels, in a component connector. Understanding and implementing Reo, however, has been challenging due to the interaction of the channel metaphor, which is an inherently local notion, and the non-local nature of the constraints imposed by compo...
Article
Full-text available
Synchronous coordination systems allow the exchange of data by logically indivisible actions involving all coordinated entities. This paper introduces behavioural automata, a logically synchronous coordination model based on the Reo coordination language, which focuses on relevant aspects for the concurrent evolution of these systems. We show how o...
Article
Full-text available
This work contributes to the field of coordination, in particular to Reo, by improving existing approaches to execute synchronisation models in three major ways. First, this work supports decoupled execution and lightweight reconfiguration. We developed a prototype Dreams engine to test our distributed protocol, using an actor library for the Scala...
Conference Paper
Full-text available
The HATS project aims at developing a model-centric methodology for the design, implementation and verification of highly configurable systems, such as software product lines, centred around the Abstract Behavioural Specification (ABS) modelling Language. This article describes the variability modelling features of the ABS Modelling framework. It c...
Conference Paper
Full-text available
Wegner describes coordination as constrained interaction. We take this approach literally and define a coordination model based on interaction constraints and partial, iterative and interactive constraint satisfaction. Our model captures behaviour described in terms of synchronisation and data flow constraints, plus various modes of interaction wi...
Article
Full-text available
Coordination in Reo emerges from the composition of the behavioural constraints of the primitives, such as channels, in a component connector. Understanding and implementing Reo, however, has been challenging due to interaction of the channel metaphor, which is an inherently local notion, and the non-local nature of constraint propagation imposed b...
Article
Full-text available
Reo is a language for coordinating autonomous components in dis- tributed environments. Coordination in Reo is performed by circuit-like connectors, which are constructed from primitive, mobile channels with well-defined behaviour. While the structure of a connector can be modeled as a graph, its behaviour is com- positionally defined using that of...
Article
Full-text available
We present in this paper the Eclipse Coordination Tools (ECT), a set of visual tools for modeling, testing and executing Reo connector in the Eclipse development environment.
Article
Full-text available
Orc and Reo are two complementary approaches to the problem of coordinating components or services. On one hand, Orc is highly asynchronous, naturally dynamic, and based on ephemeral connections to services. On the other hand, Reo is based on the interplay between synchronization and mutual exclusion, is more static, and establishes more continuous...
Conference Paper
Full-text available
The subject of this paper is functional program transforma- tion in the so-called point-free style. By this we mean first translating programs to a form consisting only of categorically-inspired combinators, algebraic data types defined as fixed points of functors, and implicit re- cursion through the use of type-parameterized recursion patterns. T...
Article
Full-text available
Abstract Na programa¸c˜ao funcional existem v´arios estilos de programa¸c˜ao, n˜ao havendo consenso quanto a qual ser´a o melhor. Dois estilos opostos s˜ao, por exemplo, point-free e pointwise, que se distinguem principalmente por no primeiro serem utilizadas vari´aveis e no segundo n˜ao. Neste trabalho foi introduzida uma,poss´ıvel descri¸c˜ao de...

Network

Cited By