Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
About

About

I'm an assistant professor at the Department of Informatics Engineering (DEI) of the Faculty of Engineering of the University of Porto (FEUP), Portugal, and a senior researcher at HASLab, INESC TEC's unit focused on high-assurance software development, developing, teaching and applying formal techniques for software engineering.


My main research interest lies in trustworthy software design, particularly in the application of lightweight formal methods based on model checking and model finding to software engineering. I'm one of the developers of Alloy 6 and its Analyzer, a tool to analyze software models. I've also been tailoring such techniques for the robotics domain to promote the development of dependable robotics software, and I've applied them in knowledge transfer and consultancy projects.


My teaching activities mainly focus on programming languages and formal methods for software engineering. In this context, I also maintain Alloy4Fun, a platform for teaching Alloy.

Interest
Topics
Details

Details

  • Name

    Nuno Moreira Macedo
  • Cluster

    Computer Science
  • Role

    Senior Researcher
  • Since

    01st November 2011
003
Publications

2023

Task Model Design and Analysis with Alloy

Authors
Cunha, A; Macedo, N; Kang, E;

Publication
Rigorous State-Based Methods - 9th International Conference, ABZ 2023, Nancy, France, May 30 - June 2, 2023, Proceedings

Abstract
This paper describes a methodology for task model design and analysis using the Alloy Analyzer, a formal, declarative modeling tool. Our methodology leverages (1) a formalization of the HAMSTERS task modeling notation in Alloy and (2) a method for encoding a concrete task model and compose it with a model of the interactive system. The Analyzer then automatically verifies the overall model against desired properties, revealing counter-examples (if any) in terms of interaction scenarios between the operator and the system. In addition, we demonstrate how Alloy can be used to encode various types of operator errors (e.g., inserting or omitting an action) into the base HAMSTERS model and generate erroneous interaction scenarios. Our methodology is applied to a task model describing the interaction of a traffic air controller with a semi-autonomous Arrival MANager (AMAN) planning tool. © 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.

2023

Verifying Temporal Relational Models with Pardinus

Authors
Macedo, N; Brunel, J; Chemouil, D; Cunha, A;

Publication
Rigorous State-Based Methods - 9th International Conference, ABZ 2023, Nancy, France, May 30 - June 2, 2023, Proceedings

Abstract
This short paper summarizes an article published in the Journal of Automated Reasoning [7]. It presents, an extension of the popular [12] relational model finder with linear temporal logic (including past operators) to simplify the analysis of dynamic systems. includes a SAT-based bounded model checking engine and an SMV-based complete model checking engine, both allowing iteration through the different instances (or counterexamples) of a specification. It also supports a decomposed parallel analysis strategy that improves the efficiency of both analysis engines on commodity multi-core machines. © 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.

2023

Adding Records to Alloy

Authors
Brunel, J; Chemouil, D; Cunha, A; Macedo, N;

Publication
Rigorous State-Based Methods - 9th International Conference, ABZ 2023, Nancy, France, May 30 - June 2, 2023, Proceedings

Abstract
Records are a composite data type available in most programming and specification languages, but they are not natively supported by Alloy. As a consequence, users often find themselves having to simulate records in ad hoc ways, a strategy that is error prone and often encumbers the analysis procedures. This paper proposes a conservative extension to the Alloy language to support record signatures. Uniqueness and completeness is imposed on the atoms of such signatures, while still supporting Alloy’s flexible signature hierarchy. The Analyzer has been extended to internally expand such record signatures as partial knowledge for the solving procedure. Evaluation shows that the proposed approach is more efficient than commonly used idioms. © 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.

2022

Merging cloned Alloy models with colorful refactorings

Authors
Liu, C; Macedo, N; Cunha, A;

Publication
SCIENCE OF COMPUTER PROGRAMMING

Abstract
Likewise to code, clone-and-own is a common way to create variants of a model, to explore the impact of different features while exploring the design of a software system. Previously, we have introduced Colorful Alloy, an extension of the popular Alloy language and toolkit to support feature-oriented design, where model elements can be annotated with feature expressions and further highlighted with different colors to ease understanding. In this paper we propose a catalog of refactoring laws for Colorful Alloy models, and show how they can be used to iteratively merge cloned Alloy models into a single featureannotated colorful model, where the commonalities and differences between the different clones are easily perceived, and more efficient aggregated analyses can be performed. We then show how these refactorings can be composed in an automated merging strategy that can be used to migrate Alloy clones into a Colorful Alloy SPL in a single step. The paper extends a conference version [1] by formalizing the semantics and type system of the improved Colorful Alloy language, allowing the simplification of some rules and the evaluation of their soundness. Additional rules were added to the catalog, and the evaluation extended. The automated merging strategy is also novel.

2022

Schema-guided Testing of Message-oriented Systems

Authors
Santos, A; Cunha, A; Macedo, N;

Publication
ENASE: PROCEEDINGS OF THE 17TH INTERNATIONAL CONFERENCE ON EVALUATION OF NOVEL APPROACHES TO SOFTWARE ENGINEERING

Abstract
Effective testing of message-oriented software requires describing the expected behaviour of the system and the causality relations between messages. This is often achieved with formal specifications based on temporal logics that require both first-order and metric temporal constructs - to specify constraints over data and real time. This paper proposes a technique to automatically generate tests for metric first-order temporal specifications that match well-understood specification patterns. Our approach takes in properties in a high-level specification language and identifies test schemas (strategies) that are likely to falsify the property. Schemas correspond to abstract classes of execution traces, that can be refined by introducing assumptions about the system. At the low level, concrete traces are successively produced for each schema using property-based testing principles. We instantiate this approach for a popular robotic middleware, ROS, and evaluate it on two systems, showing that schema-based test generation is effective for message-oriented software.

Supervised
thesis

2022

Automatic Repair of Behavioural Specifications

Author
Jorge Gabriel Alves Cerqueira

Institution
UM

2022

Verificação e descoberta de modelos probabilísticos no Alloy Analyser.

Author
Pedro Faria Durães da Silva

Institution
UM

2021

Graph databases for HR relationships

Author
Rafael Araújo Moura

Institution
UP-FEUP

2021

Safety Verification for ROS Applications

Author
André Filipe Faria dos Santos

Institution
UM

2021

Lightweight Trustworthy High-level Software Design

Author
Chong Liu

Institution
UM