João Lourenço

dblp:14/3418 · also João M. Lourenço · DBLP profile ↗
← Back
33ranked-venue papers
4as first author
8since 2021 · last 2025
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 9 · 1 since 2021Human-computer interaction and ubiquitous computing · 9 · 1 since 2021Software engineering, systems software and programming languages · 8 · 2 first-author · 3 since 2021Theory of computation · 2Artificial intelligence and machine learning · 1Computer networks · 1 · 1 since 2021Databases, data management, data science and information retrieval · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 1 · 1 first-author · 1 since 2021
YearPublicationVenuePosition
2025 WFANS: Simulating Wi-Fi Aware Interactions with Android API Fidelity
abstract
Wi-Fi Aware application development faces challenges from limited device availability and a lack of scalable, accurate simulation tools, hindering realistic, reproducible testing. We introduce WFANS, a PeerSim-based simulation framework replicating the Android Wi-Fi Aware API. It implements core functionalities (clustering, service discovery, messaging and TCP communication), informed by empirical measurements. WFANS offers configurable models for network topology, mobility, radio conditions, and includes a graphical visualization interface. WFANS is validated against real-world metrics, showing accuracy in simulating short message loss and TCP throughput. Its applicability is demonstrated by porting Android applications with minimal changes. WFANS addresses a critical gap in the Wi-Fi Aware toolchain, offering a scalable, realistic environment for proximity networking research and development.
João Tomás, Pedro Miguel Delgado, António Teófilo, Hervé Paulino, João Lourenço
MSWiM5
2025 Dynamic Membership Management and Data Sharding in Edge-Enabled Publish/Subscribe Systems
abstract
Decentralized Publish/Subscribe (P/S) systems deployed at the edge must cope with two major challenges: frequent membership churn and storage hot-spots caused by skewed topic popularity. In this work, we address these challenges in topic-based P/S systems built over Distributed Hash Tables (DHTs). We introduce PARSLEY, a group-based DHT based on a hybrid architecture that supports dynamic group management. Groups are flexibly maintained through splits, merges, and proactive peer relocation driven by soft size limits, ensuring balanced membership while minimizing expensive global operations. Additionally, we propose a lightweight sharding mechanism for popular topics, which partitions metadata and subscriptions across multiple DHT groups to alleviate overload by directing only subsequent data to new shards. Both mechanisms are coordinated by an edge server while preserving decentralized execution within the overlay. An implementation in the THYME framework demonstrates that proactive peer relocation reduces merge operations substantially lowers bandwidth consumption for state transfers, stabilizing group sizes under churn, while sharding alleviates storage pressure on popular topics, reducing maximum group load by up to 65% with moderate overhead. Together, they improve scalability, resilience, and responsiveness of edge-enabled P/S systems.
Jaime Saramago, João A. Silva, Hervé Paulino, João Lourenço
NCA4
2024 Monitoring of spatio-temporal properties with nonlinear SAT solvers
abstract
Abstract The automotive industry is increasingly dependent on computing systems with different critical requirements. The verification and validation methods for these systems are now leveraging complex AI methods, for which the decision algorithms introduce non-determinism, especially in autonomous driving. This paper presents a runtime verification technique agnostic to the target system, which focuses on monitoring spatio-temporal properties that abstract the evolution of objects’ behavior in their spatial and temporal flow. First, a formalization of three known traffic rules (from the Vienna convention on road traffic) is presented, where a spatio-temporal logic fragment is used. Then, these logical expressions are translated to a monitoring model written in first-order logic, where they are processed by a non-linear satisfiability solver. Finally, the translation allows the solver to check the validity of the encoded properties according to an instance of a specific traffic scenario (a trace). The results obtained from our tool, which automatically generates a monitor from a formula, show that our approach is feasible for online monitoring in a real-world environment.
André de Matos Pedro, Tomás Silva, Tiago F. Sequeira, João Lourenço, João Costa Seco, Carla Ferreira 0001
Int. J. Softw. Tools Technol. Transf.4
2023 Monolith Development History for Microservices Identification: a Comparative Analysis
abstract
Recent research has proposed different approaches on the automated identification of candidate microservices on monolith systems, which vary on the monolith representation, similarity criteria, and quality metrics used. On the other hand, they are generally limited in the number of codebases and decompositions evaluated, and few comparisons between approaches exist. Considering the emerging trend in software engineering in techniques based on the analysis of codebases’ evolution, we compare a representation based on the monolith code structure, in particular the sequences of accesses to domain entities, with representations based on the monolith development history (file changes and changes authorship). From the analysis on a total of 468k decompositions of 28 codebases, using five quality metrics that evaluate modularity, minimization of the number of transactions per functionality, and reduction of teams and communication, we conclude that the changes authorship representation of codebases with many authors achieves comparable or better results than the sequences of accesses representation of codebases with few authors with respect to minimization of the number of transactions per functionality and the reduction of teams.
João Lourenço, António Manuel Ferreira Rito da Silva
ICWS1
2022 Monitoring of Spatio-Temporal Properties with Nonlinear SAT Solvers
André de Matos Pedro, Tomás Silva, Tiago F. Sequeira, João Lourenço, João Costa Seco, Carla Ferreira 0001
FMICS4
2022 Towards Multimodal Search and Visualization of Movies Based on Emotions
abstract
Movies are one of the most important and impactful forms of entertainment and a powerful vehicle for culture and education, due to the cognitive and emotional impact on the viewers, and technology has been making them more accessible in pervasive services and devices. As such, the huge amount of movies we can access, and the important role emotions play in our lives, make more pertinent the ability to access, visualize and search movies based on their emotional impact. In this paper, we characterize the challenges and approaches in this scenario, and present interactive means to visualize and search movies based on their dominant and actual emotional impact along the movie, with different models and modalities. In particular through emotional highlights and trajectories, the user's emotional state, or a music being played. Music contributes greatly to the emotional impact of movies and it can also be a trigger to get us into one of them in serendipitous moments.
Francisco Caldeira, João Lourenço, Nuno Tavares Silva, Teresa Chambel
IMX2
2021 Virtual Environments & Precision Viticulture: A Case Study
abstract
The development and implementation of a virtual environment that aims to support farmers in managing their land and crops in a more sustainable way is presented in this paper. It allows both textual and 3D visualization of crop-related biophysical parameters, such as height, volume and length. Moreover, the latter can be dynamically altered according to various criteria. A case study was conducted in a Portuguese vineyard. The application was developed using the Unity software, while a real agricultural data feed was provided by mySense interface. The virtual environment can be seen as a valuable decision support system to assist farmers.
João Lourenço, Luís Pádua, Telmo Adão, Emanuel Peres, Joaquim João Sousa
IGARSS1
2021 It's about Thyme: On the design and implementation of a time-aware reactive storage system for pervasive edge computing environments
abstract
Nowadays, smart mobile devices generate huge amounts of data in all sorts of gatherings. Much of that data has localized and ephemeral interest, but can be of great use if shared among co-located devices. However, mobile devices often experience poor connectivity, leading to availability issues if application storage and logic are fully delegated to a remote cloud infrastructure. In turn, the edge computing paradigm pushes computations and storage beyond the data center, closer to end-user devices where data is generated and consumed, enabling the execution of certain components of edge-enabled systems directly and cooperatively on edge devices. In this article, we address the challenge of supporting reliable and efficient data storage and dissemination among co-located wireless mobile devices without resorting to centralized services or network infrastructures. We propose Thyme, a novel time-aware reactive data storage system for pervasive edge computing environments, that exploits synergies between the storage substrate and the publish/subscribe paradigm. We present the design of Thyme and elaborate a three-fold evaluation, through an analytical study, and both simulation and real world experimentations, characterizing the scenarios best suited for its use. The evaluation shows that Thyme allows the notification and retrieval of relevant data with low overhead and latency, and also with low energy consumption, proving to be a practical solution in a variety of situations.
João A. Silva, Filipe Cerqueira, Hervé Paulino, João Lourenço, João Leitão 0001, Nuno M. Preguiça
Future Gener. Comput. Syst.4
2020 RedMesh: A WiFi-Direct Network Formation Algorithm for Large-Scale Scenarios
abstract
Device-to-device communication enables collaboration between mobile devices, even when no communication infrastructure is available. In this setting, WiFi-Direct emerges as a technology able to provide device-to-device communication with WiFi coverage and speed. WiFi-Direct specification only addresses communication inside small groups (typically up to 8 devices), but some solutions for inter-group communication have been proposed and, atop such solutions, automatic network formation algorithms are now appearing. However, these proposals are neither efficient for large scale scenarios, due to the use of broadcasts, nor effective, as they offer limited connectivity.
António Teófilo, João Lourenço, Hervé Paulino
MobiQuitous2
2019 Time-aware reactive storage in wireless edge environments
abstract
Nowadays, smart mobile devices generate huge amounts of data in all sorts of gatherings. Much of that data has localized and ephemeral interest, but can be of great use if shared among co-located devices. However, these devices often experience poor connectivity, leading to availability issues if applications' storage and logic are fully delegated to a remote cloud infrastructure. In turn, the edge computing paradigm pushes computations and storage beyond the data center, closer to end-user devices where data is generated and consumed. Thus, enabling the execution of certain components of edge-enabled systems directly and cooperatively on edge devices. In this paper, we address the challenge of supporting reliable and efficient data storage and dissemination among co-located wireless mobile devices without resorting to centralized services or network infrastructures. We propose Thyme, a novel time-aware reactive data storage system for wireless edge networks, that exploits synergies between the storage substrate and the publish/subscribe paradigm. We present the design of Thyme and evaluate it through simulation, characterizing the scenarios best suited for its use. The evaluation shows that Thyme allows for reliable notification and retrieval of relevant data with low overhead and latency.
João A. Silva, Hervé Paulino, João Lourenço, João Leitão 0001, Nuno M. Preguiça
MobiQuitous3
2019 A survey of challenges for runtime verification from advanced application domains (beyond software)
abstract
Abstract Runtime verification is an area of formal methods that studies the dynamic analysis of execution traces against formal specifications. Typically, the two main activities in runtime verification efforts are the process of creating monitors from specifications, and the algorithms for the evaluation of traces against the generated monitors. Other activities involve the instrumentation of the system to generate the trace and the communication between the system under analysis and the monitor. Most of the applications in runtime verification have been focused on the dynamic analysis of software, even though there are many more potential applications to other computational devices and target systems. In this paper we present a collection of challenges for runtime verification extracted from concrete application domains, focusing on the difficulties that must be overcome to tackle these specific challenges. The computational models that characterize these domains require to devise new techniques beyond the current state of the art in runtime verification.
César Sánchez 0001, Gerardo Schneider, Wolfgang Ahrendt, Ezio Bartocci, Domenico Bianculli, Christian Colombo 0001, Yliès Falcone, Adrian Francalanza, Srdan Krstic, João Lourenço, Dejan Nickovic, Gordon J. Pace, José Rufino, Julien Signoles, Dmitriy Traytel, Alexander Weiss
Formal Methods Syst. Des.10
2019 Correction to: A survey of challenges for runtime verification from advanced application domains (beyond software)
César Sánchez 0001, Gerardo Schneider, Wolfgang Ahrendt, Ezio Bartocci, Domenico Bianculli, Christian Colombo 0001, Yliès Falcone, Adrian Francalanza, Srdan Krstic, João Lourenço, Dejan Nickovic, Gordon J. Pace, José Rufino, Julien Signoles, Dmitriy Traytel, Alexander Weiss
Formal Methods Syst. Des.10
2018 Verifying Real-World Software with Contracts for Concurrency
João Lourenço
ISoLA (4)1
2017 Verifying Concurrent Programs Using Contracts
abstract
The central notion of this paper is that of contracts for concurrency, allowing one to capture the expected atomicity of sequences of method or service calls in a concurrent program. The contracts may be either extracted automatically from the source code, or provided by developers of libraries or software modules to reflect their expected usage in a concurrent setting. We start by extending the so-far considered notion of contracts for concurrency in several ways, improving their expressiveness and enhancing their applicability in practice. Then, we propose two complementary analyses—a static and a dynamic one—to verify programs against the extended contracts. We have implemented both approaches and present promising experimental results from their application on various programs, including real-world ones where our approach unveiled previously unknown errors.
Ricardo J. Dias, Carla Ferreira 0001, Jan Fiedor, João Lourenço, Ales Smrcka, Diogo Sousa 0001, Tomás Vojnar
ICST4
2017 GOCRGO and GOGO: Two Minimal Communication Topologies for WiFi-Direct Multi-group Networking
abstract
Although mobile devices can collaborate and interact when connected by a communication infrastructure, such interactions may also be greatly desired or even highly necessary when such infrastructures are not available or cannot be used, like in crowded spaces, disaster situations, and remote areas, or when there is no trust in the existing infrastructures. A major requirement to support such autonomous collaborative systems on top of mobile devices is to build a communication network to interconnect them all. In this quest, Wi-Fi Direct (WFD) stands out as a promising technology to offer infrastructure-less WiFi networking to off-the-shelf devices. However, the WFD standard only addresses communications inside one group of devices, and current WFD inter-group communication solutions have several limitations, as they must contend with intermittent connections, slow communication (broadcasts and/or multicasts), and/or a high number of nodes to interconnect groups. In this paper, we aim to overcome those limitations by proposing two novel topologies, named GOCRGO and GOGO, which use permanent radio connections, can rely on either UDP or TCP communication, and require the minimum number of nodes necessary to interconnect WFD groups. Both topologies present advantages over each other, in different scenarios, and thus can be used together in a complementary way.
António Teófilo, Diogo Remédios, João Lourenço, Hervé Paulino
MobiQuitous3
2016 A Hardware Approach to Detect, Expose and Tolerate High Level Data Races
abstract
Concurrent programs are more complex and error prone than their sequential peers, and are much harder to debug as well. High level data races (HLDR) are one of the concurrency bugs most difficult to debug. They are a class of concurrency errors that are not commonly addressed by the testing and debugging techniques and tools. HLDR result from the misdefinition of the scope of an atomic block, which should be unique but was wrongly split into two or more independent atomic blocks. Interleavings involving these misdefined atomic blocks may violate the program correctness invariants and cause the concurrent program to fail. In this work we propose a hardware module to detect, expose and tolerate HLDR in concurrent programs, with applications in both the software testing and debugging and the software deployment phases. In the detecting mode, our proposal detects HLDR with few false positives and without the overhead and intrusion of other dynamic software approaches. In the exposing mode, it "stimulates" the program to expose existing latent HLDR and trigger hidden HLDRs. Finally, in the tolerating mode, it may act as a software healing technique by inhibiting certain buggy interleavings. The results shows a reasonable performance overhead and few false positives in all modes.
Lois Orosa 0001, João Lourenço
PDP2
2016 Pot: Deterministic Transactional Execution
abstract
This article presents Pot, a system that leverages the concept of preordered transactions to achieve deterministic multithreaded execution of programs that use Transactional Memory. Preordered transactions eliminate the root cause of nondeterminism in transactional execution: they provide the illusion of executing in a deterministic serial order, unlike traditional transactions that appear to execute in a nondeterministic order that can change from execution to execution. Pot uses a new concurrency control protocol that exploits the serialization order to distinguish between fast and speculative transaction execution modes in order to mitigate the overhead of imposing a deterministic order. We build two Pot prototypes: one using STM and another using off-the-shelf HTM. To the best of our knowledge, Pot enables deterministic execution of programs using off-the-shelf HTM for the first time. An experimental evaluation shows that Pot achieves deterministic execution of TM programs with low overhead, sometimes even outperforming nondeterministic executions, and clearly outperforming the state of the art.
Tiago M. Vale, João A. Silva, Ricardo J. Dias, João Lourenço
ACM Trans. Archit. Code Optim.4
2015 Extracting static and dynamic structural information from java concurrent programs for coverage testing
abstract
This paper proposes novel techniques for the extraction of structural information from the source code of Java concurrent programs for their coverage testing. Such techniques differ from others because they consider synchronization flow among processes/threads, distinct paradigms of communication/synchronization, method calls and pointer manipulation. The structural information gathered from the source code is kept in a test model based on a Parallel Control Flow Graph (PCFG) and helps the generation of an instrumented source code, used for a future generation of trace files and to replay the concurrent execution. The results show the techniques can generate both an instrumented code and a PCFG for Java concurrent programs effectively, extracting static and runtime information required for structural testing.
Rafael R. Prado, Paulo Sergio Lopes de Souza, George Gabriel Mendes Dourado, Simone do Rócio Senger de Souza, Júlio Cezar Estrella, Sarita Mazzini Bruschi, João Lourenço
CLEI7
2015 Decentralized Storage for Networks of Hand-held Devices
abstract
In this paper we propose a fully distributed storage system for everyday hand-held mobile devices, e.g., smartphones and tablets, that follows a best effort approach to ensure data persistence and availability even in the presence of churn (i.e., the unpredictable arrival and departure of nodes).
Ricardo Monteiro, João A. Silva, João Lourenço, Hervé Paulino
MobiQuitous3
2015 Mobile Device-to-Device Distributed Computing Using Data Sets
abstract
The rapidly increasing computing power, available storage and communication capabilities of mobile devices makes it possible to start processing and storing data locally, rather than offloading it to remote servers; allowing scenarios of mobile clouds without infrastructure dependency. We can now ai
Diogo Remédios, António Teófilo, Hervé Paulino, João Lourenço
MobiQuitous4
2015 Group-to-Group Bidirectional Wi-Fi Direct Communication with Two Relay Nodes
abstract
The current capabilities of mobile phones in terms of communication, processing and storage, enables its use to form autonomous networks of devices that can be used in case of collapse or inexistent support from a communication infrastructure. In this paper, we propose a network configuration of nod
António Teófilo, Diogo Remédios, Hervé Paulino, João Lourenço
MobiQuitous4
2015 Special issue on testing, analysis and debugging of concurrent programs
abstract
This special issue concerns a range of issues related to the development of concurrent programs. This is an important topic, because many systems are now either multi-threaded or distributed, and it is well known that concurrency makes testing, analysis and debugging significantly more complicated. Essentially, the alternative interleavings of events can lead to different behaviours, and so any analysis, debugging or testing technique must consider these interleavings. The interest in this topic is reflected in the larger than normal issue, which contains five papers. The papers fall into three groups: we start with a paper on debugging, then have two on static analysis techniques and finally have two on testing. All papers were reviewed in the normal way.
Eitan Farchi, Robert M. Hierons, João Lourenço
Softw. Test. Verification Reliab.3
2013 MacroDB: Scaling Database Engines on Multicores
João Soares 0003, João Lourenço, Nuno M. Preguiça
Euro-Par2
2013 Efficient support for in-place metadata in Java software transactional memory
abstract
SUMMARY Software transactional memory (STM) algorithms associate metadata with the memory locations accessed during a transaction's lifetime. This metadata may be stored in an external table by resorting to a mapping function that associates the address of a memory cell with the table entry containing the corresponding metadata (out‐place or external strategy). Alternatively, the metadata may be stored adjacent to the associated memory cell by wrapping the cell and metadata together (in‐place strategy). The implementation techniques to support these two approaches are very different and each STM framework is usually biased towards one of them, only allowing the efficient implementation of STM algorithms which suit one of the approaches and inhibiting a fair comparison with STM algorithms suiting the other. In this paper, we introduce a technique to implement in‐place metadata that does not wrap memory cells, thus overcoming the bias and allowing STM algorithms to directly access the transactional metadata. The proposed technique is available as an extension to Deuce and enables the efficient implementation of a wide range of STM algorithms and their fair (unbiased) comparison in a common STM framework. We illustrate the benefits of our approach by analyzing its impact in two popular transactional memory algorithms with several transactional workloads, TL2 and multiversioning, each befitting out‐place and in‐place, respectively. Copyright © 2013 John Wiley & Sons, Ltd.
Ricardo J. Dias, Tiago M. Vale, João Lourenço
Concurr. Comput. Pract. Exp.3
2012 Verification of Snapshot Isolation in Transactional Memory Java Programs
Ricardo J. Dias, Dino Distefano, João Costa Seco, João Lourenço
ECOOP4
2012 Efficient Support for In-Place Metadata in Transactional Memory
Ricardo J. Dias, Tiago M. Vale, João Lourenço
Euro-Par3
2009 Unifying Memory and Database Transactions
Ricardo J. Dias, João Lourenço
Euro-Par2
2008 Animated Graphical User Interface Generator Framework for Input-Output Place-Transition Petri Net Models
João Lourenço, Luís Gomes 0001
Petri Nets1
2008 Topic 1: Support Tools and Environments
Marios D. Dikaiakos, Omer F. Rana, Shmuel Ur, João Lourenço
Euro-Par4
1999 An experiment in tool integration: The DDBG parallel and distributed debugger
José C. Cunha, João Lourenço, Tiago Rodrigues Antao
J. Syst. Archit.2
1998 An integrated course on parallel and distributed processing
abstract
Most known teaching experiences focus on parallel computing courses only, but some teaching experiences on distributed computing courses have also been reported. In this paper we describe a course on Parallel and Distributed Processing that is taught at undergraduate level in the Computer Science degree of our University.This course presents an integrated approach concerning concurrency, parallelism, and distribution issues. It's a breadth-first course addressing a wide spectrum of abstractions: the theoretical component focus on the fundamental abstractions to model concurrent systems, including process cooperation schemes, concurrent programming models, data and control distribution, concurrency control and recovery in transactional systems, and parallel processing models; the practical component illustrates the design and implementation issues involved in selected topics such as a data and control distribution problem, a distributed transaction-based support system and a parallel algorithm.We also discuss how this approach has been contributing to prepare the student to further actions regarding research and development of concurrent, distributed, or parallel systems.
José C. Cunha, João Lourenço
SIGCSE2
1997 A Graphical Development and Debugging Environment for Parallel Programs
Péter Kacsuk, José C. Cunha, Gábor Dózsa, João Lourenço, Tibor Fadgyas, Tiago Rodrigues Antao
Parallel Comput.4
1996 Teaching parallel processing: development of curriculum and software tools
abstract
article Free Access Share on Teaching parallel processing: development of curriculum and software tools Authors: Jan Kwiatkowski Technical University of Wroclaw, Computer Science Department, Poland Technical University of Wroclaw, Computer Science Department, PolandView Profile , Marek Andruszkiewicz Technical University of Wroclaw, Computer Science Department, Poland Technical University of Wroclaw, Computer Science Department, PolandView Profile , Emilio Luque Universitat Autonoma de Barcelona, Computer Science Department, Spain Universitat Autonoma de Barcelona, Computer Science Department, SpainView Profile , Tomas Margalef Universitat Autonoma de Barcelona, Computer Science Department, Spain Universitat Autonoma de Barcelona, Computer Science Department, SpainView Profile , Jose Cunha Universidade Nova de Lisboa, Departamento de Informatica, Portugal Universidade Nova de Lisboa, Departamento de Informatica, PortugalView Profile , Joao Lourenco Universidade Nova de Lisboa, Departamento de Informatica, Portugal Universidade Nova de Lisboa, Departamento de Informatica, PortugalView Profile , Henryk Krawczyk Technical University of Gdansk Electronics Faculty, Poland Technical University of Gdansk Electronics Faculty, PolandView Profile , Stanislaw Szejko Technical University of Gdansk Electronics Faculty, Poland Technical University of Gdansk Electronics Faculty, PolandView Profile Authors Info & Claims ACM SIGCSE BulletinVolume 28Issue SI1996 pp 159–161https://doi.org/10.1145/237477.237633Published:01 January 1996Publication History 4citation199DownloadsMetricsTotal Citations4Total Downloads199Last 12 Months15Last 6 weeks1 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Jan Kwiatkowski, Marek Andruszkiewicz, Emilio Luque, Tomàs Margalef, José C. Cunha, João Lourenço, Henryk Krawczyk, Stanislaw Szejko
ITiCSE6