Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Sobre

Sobre

Sou professor auxiliar no Departamento de Engenharia Informática (DEI) da Faculdade de Engenharia da Universidade do Porto (FEUP), Portugal, e investigador sénior no HASLab, a unidade do INESC TEC focada do desenvolvimento de software confiável, onde desenvolvo, ensino e aplico técnicas formais à engenharia de software.


A minha investigação foca-se na concepção de software confiável, particularmente na aplicação de técnicas formais "lightweight" à concepção de software baseadas em "model check" e "model finding". Faço parte da equipa que mantém o Alloy 6 e o seu Analyzer, uma ferramenta para analisar modelos de software. Adaptei também esse tipo de técnicas ao domínio da robótica para promover o desenvolvimento de software robótico confiável, assim como é projetos de transferência de conhecimento e de consultadoria.


As minhas atividades letivas focam-se no ensino de linguagens de programação e de métodos formais na engenharia de software. Nesse contexto, mantenho também o Alloy4Fun, uma plataforma para apoiar o ensino de Alloy.

Tópicos
de interesse
Detalhes

Detalhes

  • Nome

    Nuno Moreira Macedo
  • Cargo

    Investigador Sénior
  • Desde

    01 novembro 2011
003
Publicações

2024

Assessing the impact of hints in learning formal specification

Autores
Cunha, A; Macedo, N; Campos, JC; Margolis, I; Sousa, E;

Publicação
2024 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING EDUCATION AND TRAINING, ICSE-SEET 2024

Abstract
Background: Many progranunmg environments include automated feedback in the form of hints to help novices learn autonomously. Some experimental studies investigated the impact of automated liints in the immediate, performance and learning retention in that context. Automated feedback is also becoming a popular research topic in the context of formal specification languages, but so far no experimental studies have been conducted to assess its impact while learning such languages. Objective: We aim to investigate the impact of different types of automated hints while learning a formal specification language, not only in terms of immediate performance and learning retention, but also in the emotional response of the students. Method: We conducted a simple one-factor randomised experiment in 2 sessions involving 85 BSc students majoring in CSE. In the 1st session students were divided in 1 control group and 3 experimental groups, each receiving a different type of hint while learning to specify simple, requirements with the Alloy formal specification language. To assess the impact of hints on learning retention, in the 2nd session, 1 week later, students had no hints while formalising requirements. Before and after each session the students answered a standard self-reporting emotional survey to assess their emotional response to the experiment. Results: Of the 3 types of hints considered, only those pointing to the precise location of an error had a positive impact on the immediate performance and none had significant impact in learning retention. Hint availability also causes a significant impact on the emotional response, but no significant emotional :impact exists once hints are no longer available (i.e. no deprivation effects were detected). Conclusion: Although none of the evaluated hints had an impact on learning retention, learning a formal specification language with an environment that provides hints with precise error locations seems to contribute to a better overall experience without apparent drawbacks. Further studies are needed to investigate if other kind of feedback, namely hints combined with some sort of self explanation prompts, can have a positive impact in learning retention.

2024

Validating multiple variants of an automotive light system with Alloy 6

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

Publicação
INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER

Abstract
This paper reports on the development and validation of a formal model for an automotive adaptive exterior lights system (ELS) with multiple variants in Alloy 6, which is the most recent version of the Alloy lightweight formal specification language that supports mutable relations and temporal logic. We explore different strategies to address variability, one in pure Alloy and another through an annotative language extension. We then show how Alloy and its Analyzer can be used to validate systems of this nature, namely by checking that the reference scenarios are admissible, and to automatically verify whether the established requirements hold. A prototype was developed to translate the provided validation sequences into Alloy and back to further automate the validation process. The resulting ELS model was validated against the provided validation sequences and verified for most of requirements for all variants.

2023

Task Model Design and Analysis with Alloy

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

Publicação
RIGOROUS STATE-BASED METHODS, ABZ 2023

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

Verifying Temporal Relational Models with Pardinus

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

Publicação
RIGOROUS STATE-BASED METHODS, ABZ 2023

Abstract
This short paper summarizes an article published in the Journal of Automated Reasoning [7]. It presents Pardinus, an extension of the popular Kodkod [12] relational model finder with linear temporal logic (including past operators) to simplify the analysis of dynamic systems. Pardinus 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

Adding Records to Alloy

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

Publicação
RIGOROUS STATE-BASED METHODS, ABZ 2023

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.

Teses
supervisionadas

2023

Automatic Specification Repair in Contract Programming

Autor
Alexandre Almeida de Abreu Filho

Instituição
INESCTEC

2023

Data-Driven Hint Generation for Alloy using Historial Student Submissions

Autor
Ana Inês Oliveira de Barros

Instituição
INESCTEC

2023

Security Testing of Web APIs

Autor
Gonçalo André Carneiro Teixeira

Instituição
INESCTEC

2022

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

Autor
Pedro Faria Durães da Silva

Instituição
INESCTEC

2022

Automatic Repair of Behavioural Specifications

Autor
Jorge Gabriel Alves Cerqueira

Instituição
INESCTEC