The project second-year meeting will be hosted by the University of Parma at Campus Universitario (Parco Area delle Scienze 95, 43124 Parma). The meeting will be in room Master of the Centro Sant'Elisabetta.
14:30-14:35. Introduction to WP4: Application to IoT SW development. Alessio Ferrari (ISTI-CNR Pisa)
14:35-15:00. Hermes: A Wireless Communication Interface for Edge Computing Davide Carnemolla (Università degli Studi di Catania)
Abstract. Using wireless communication technologies and protocols in embedded systems is not a trivial undertaking, since it frequently requires an exhaustive understanding of protocols and APIs. The goal of this work is to address the issue by providing a unified interface (API) for developers to utilise various communication protocols in a black-box manner. This interface is provided by Hermes, the library we developed. Hermes uses the object-oriented programming paradigm and it is written entirely in C++ using the Arduino libraries. The library supports ESP-NOW for short-range wireless communications, as well as WiFi Mesh and LoRa Mesh for mesh network construction, with the first one supporting point-to-point communications over small distances and the second one supporting long-range communications. Although this library is useful in any context, it has been specifically designed to enable distributed communication between the agents of Democle, a declarative multi-agent platform for agent-based edge computing, which we will briefly describe. This paper presents an overview of Hermes, including its architecture, capabilities, and utility inside the Democle platform.
Joint work with Fabrizio Messina.
15:00-15:25. Runtime Verification of a Message-Oriented Middleware for a Mission-Critical Railway Control System. Davide Ancona (Università degli Studi di Genova)
Abstract. It is widely accepted that distributed systems are notoriously difficult to test and verify. This becomes even more challenging when the System Under Scrutiny is mission-critical, and its safety depends on the satisfaction of global properties involving an a priori unknown number of communicating agents. We present a real-world case study where runtime verification is adopted to test a mission-critical railway control system based on the publish-subscribe pattern where guaranteeing that messages are received and consumed in the same order in which they were produced is a critical requirement. We provide a corresponding specification in the domain-specific language RML from which an on-line monitor is automatically generated.
Joint work with Maurice ter Beek
15:25-15:30. Questions and (Maybe) Answers, Discussion and Brainstorming.
15:30-16:00. Coffee Break.
16:00-16:05. Introduction to Keynote. Walter Cazzola (Università degli Studi di Milano)
16:05-17:05. Introducing Multi-Agent Systems: at the intersection between Artificial Intelligence and Software Engineering. (Keynote) Stefano Tedeschi (Università della Valle d'Aosta)
Abstract. In the field of Artificial Intelligence, a Multi-Agent System (MAS) is a computerized system composed of multiple interacting computing elements, called agents, that act within a shared and possibly distributed environment. In these kinds of systems, agents represent several autonomous components which use common resources and interact to achieve individual or shared goals. The motivation for studying MAS stems from the fact that they allow to model complex, heterogeneous, distributed and dynamic systems in a straightforward way. In this talk we explore the main abstractions that characterize such an approach and we introduce how these abstractions can be effectively leveraged as software engineering tools. Specifically, we propose a characterization of the notions of accountability and responsibility within the context of MAS . We demonstrate how these high-level abstractions can serve as foundational elements in the design and development of robust distributed systems.
17:05-17:30. Questions and (Maybe) Answers.
17:30-. Aperitivo al Campus.
09:00-09:05. Introduction to WP2: Interaction for interoperability and adaptation. Maurice ter Beek (ISTI-CNR Pisa)
09:05-09:30. Assessing the Understandability and Acceptance of Attack-Defense Trees for Modelling Security Requirements. Giovanna Broccia (ISTI-CNR Pisa)
Abstract. Context and Motivation. Attack-Defense Trees (ADTs) are a graphical notation used to model and assess security requirements. ADTs are widely popular, as they can facilitate communication between different stakeholders involved in system security evaluation, and they are formal enough to be verified, e.g., with model checkers. Question/Problem. While the quality of this notation has been primarily assessed quantitatively, its understandability has never been evaluated despite being mentioned as a key factor for its success. Principal idea/Results. In this paper, we conduct an experiment with 25 human subjects to assess the understandability and user acceptance of the ADT notation. The study focuses on performance-based variables and perception-based variables, with the aim of evaluating the relationship between these measures and how they might impact the practical use of the notation. The results confirm a good level of understandability of ADTs. Participants consider them useful, and they show intention to use them. Contribution. This is the first study empirically supporting the understandability of ADTs, thereby contributing to the theory of security requirements engineering.
Joint work with Alessio Ferrari and Maurice ter Beek.
09:30-09:55. By Tying Embeddings You Are Assuming the Distributional Hypothesis. Francesco Bertolotti (Università degli Studi di Milano)
Abstract. In this work, we analyze both theoretically and empirically the effect of tied input-output embeddings—a popular technique that reduces the model size while often improving training. Interestingly, we found that this technique is connected to Harris (1954)’s distributional hypothesis—often portrayed by the famous Firth (1957)’s quote “a word is characterized by the company it keeps”. Specifically, our findings indicate that words (or, more broadly, symbols) with similar semantics tend to be encoded in similar input embeddings, while words that appear in similar contexts are encoded in similar output embeddings (thus explaining the semantic space arising in input and output embedding of foundational language models). As a consequence of these findings, the tying of the input and output embeddings is encouraged only when the distributional hypothesis holds for the underlying data. These results also provide insight into the embeddings of foundation language models (which are known to be semantically organized). Further, we complement the theoretical findings with several experiments supporting the claims.
Joint Work with Walter Cazzola.
09:55-10:20. Model Generation with LLMs: From Requirements to UML Sequence Diagrams. Alessio Ferrari (ISTI-CNR Pisa)
Abstract. Complementing natural language (NL) requirements with graphical models can improve stakeholders’ communication and provide directions for system design. However, creating models from requirements involves manual effort. The advent of generative large language models (LLMs), ChatGPT being a notable example, offers promising avenues for automated assistance in model generation. This paper investigates the capability of ChatGPT to generate a specific type of model, i.e., UML sequence diagrams, from NL requirements. We conduct a qualitative study in which we examine the sequence diagrams generated by ChatGPT for 28 requirements documents of various types and from different domains. Observations from the analysis of the generated diagrams have systematically been captured through evaluation logs, and categorized through thematic analysis. Our results indicate that, although the models generally conform to the standard and exhibit a reasonable level of understandability, their completeness and correctness with respect to the specified requirements often present challenges. This issue is particularly pronounced in the presence of requirements smells, such as ambiguity and inconsistency. The insights derived from this study can influence the practical utilization of LLMs in the RE process, and open the door to novel RE-specific prompting strategies targeting effective model generation.
10:20-10:30. Questions and (Maybe) Answers, Discussion and Brainstorming.
10:30-11:00. Coffee Break.
11:00-11:05. Introduction to WP3: Advanced Type Systems for interacting entities. Davide Ancona (Università degli Studi di Genova)
11:05-11:30. Don't Waste Resources: A Type System for Exact Usage. Riccardo Bianchini (Università degli Studi di Genova)
Abstract. Resource-aware type systems statically approximate not only the expected result of a program, but also the way external resources are used, e.g., how many times the value of a variable is needed. Notably, they reject programs that would attempt at consuming more than what is available. However, they do not forbid the opposite behaviour, that is, programs that do not fully consume the resources which have been allocated for their execution. In this talk we will briefly recall resource-aware semantics and type systems, and present ongoing work providing a novel approach where the type system ensures exact usage of resources, using as reference language a simple functional calculus.
Joint work with Francesco Dagnino and Elena Zucca.
11:30-11:55. Monadic Operational Semantics and Type-and-Effect Soundness. Francesco Dagnino (Università degli Studi di Genova)
Abstract. It would be hard to overstate the impact on foundations of programming languages of, on one hand, Moggi's idea that computational effects can be modeled by monads, on the other hand, the technique based on progress and subject reduction to prove the soundness of a type system with respect to a small-step operational semantics. In this talk we will connect these two ideas, showing how monads can be used to modularly describe effectful small-step operational semantics and how progress and subject reduction extends to this monadic setting, thus proving a proof technique for type-and-effect soundness.
Joint work with Paola Giannini and Elena Zucca
11:55-12:20. Global types for JadeScript. Paola Giannini (Università del Piemonte Orientale)
Abstract. We describe ongoing work on the definition of global and session types for the description of some common protocols of interaction between agents and their implementation in JadeScript. We propose an extension of regular global/session types that make possible to faithfully describe a number of common FIPA protocols. Then, we would like to generate from the session types (derived by projection from the global type describing the interaction) a skeleton for the JadeScript agents involved, that contains the interaction (exchange of messages) needed to implement the protocol. This will ensure deadlock freedom and progress, that, in this asynchronous setting means that there will not be "orphan message" (messages sent that will never be read) or "input locks" (agents waiting for a message that will never arrive).
Joint work with Leonardo Galliera, Paola Giannini, Riccardo Nazzari, Federico Bergenti and Stefania Monica
12:20-12:30. Questions and (Maybe) Answers, Discussion and Brainstorming.
12:30-14:00. Lunch.
14:00-14:05. Introduction to WP1: Models and Tools for Language Adaptation. Walter Cazzola (Università degli Studi di Milano)
14:05-14:30. How to Train Your Fault Tolerant Parser. Luca Favalli (Università degli Studi di Milano)
Abstract. In the context of programming compilation and syntactic analysis, parsers play a crucial role in understanding and interpreting code. However, when code contains syntactic errors, it is essential to implement error recovery strategies to maintain the robustness and adaptability of the parser, as well as to support flexible IDE services. With this goal in mind, this talk presents the actual implementation of a novel Error Recovery mechanism for the DEXTER parser generator. We will discuss the main categories of syntactic errors and the recovery techniques thereof. Then, we will analyze the innovations of the parser generator in question and how they can be exploited to dynamically train parsers to tolerate faults within programs.
Joint work with Walter Cazzola
14:30-14:55. ⋆piler: Compilers in Search of Compilations Francesco Bertolotti (Università degli Studi di Milano)
Abstract. In this work, we discuss an exotic alternative to compiler/transpiler development. The alternative takes form in the ⋆piler (read starpiler), a novel compiler infrastructure rooted in the popular search algorithm A*. While traditional compilers are defined as ordered sequences of compilation passes, the ⋆piler autonomously reconstruct the order information, and the compilation is the result of a search step (powered by A*) from all the available passes. This choice simplifies the language development by transparently reusing already available compilation passes. The main result allowing for fast searches is the development of metric a metric space embedding programs, consequently a non-overestimating heuristic can be derived. To test the ⋆piler capabilities, we develop three simple programming languages S, S++, and S# mimicking C, C++, and C# respectively. We show that the ⋆piler equipped with the proposed heuristic is capable of achieving compilation/transpilation between S, S++, and S# in less than a second while a naive search would require more than 40 minutes to be completed. Furthermore, we discuss possible variants of the proposed framework that, by changing initial assumptions, result in different overall properties.
Joint work with Walter Cazzola and Luca Favalli
14:55-15:20. Software Modernization Powered by Dynamic Language Product Lines Luca Favalli (Università degli Studi di Milano)
Abstract. Legacy software poses a critical challenge for organizations due to the costs of maintaining and modernizing outdated systems, as well as the scarcity of experts in aging programming languages. The issue extends beyond commercial applications, affecting public administration, as exemplified by the urgent need for COBOL programmers during the COVID-19 pandemic. In response, this work introduces a modernization approach based on dynamic language product lines, a subset of dynamic software product lines. This approach leverages open language implementations and dynamically generated micro-languages for the incremental migration of legacy systems to modern technologies. The language can be reconfigured at runtime to adapt to the execution of either legacy or modern code, and to generate a compatibility layer between the data types handled by the two languages. Through this process, the costs of modernizing legacy systems can be spread across several iterations, as developers can replace legacy code incrementally, with legacy and modern code coexisting until a complete refactoring is possible. To demonstrate the practical applicability of this approach, we present a case study on a COBOL system migration to Java. Using the Neverlang language workbench to create modular and reconfigurable language implementations, both the COBOL interpreter and the application evolve to spread the development effort across several iterations. Through this study, this work presents a viable solution for organizations dealing with the complexity of modernizing legacy software to contemporary technologies.
Joint work with Walter Cazzola
15:20-15:30. Questions and (Maybe) Answers, Discussion and Brainstorming.
15:30-16:00. Coffee Break.
16:00-17:00. Discussion on T-LADIES.
17:00-18:00. Visit to the Computer Science Museum.
20:00. Social Dinner at TBD
09:30-09:35. Resuming WP2: Interaction for Interoperability and Adaptation. Maurice ter Beek (ISTI-CNR Pisa)
09:35-10:00. Overview Of Distance-Based Positioning Methods. Mattia Alex Leoni (Università di Modena e Reggio Emilia)
Abstract. The study of robust and accurate indoor positioning methods for Wireless Sensors Networks (WSNs) is a research topic that is experiencing considerable interest because it has significant applications in various fields, which include industrial automation, homecare systems, educational games, and many others. The indoor positioning problem can be tackled by means of different methods that depend on some key factors, for example, the employed communication technology, the target accuracy, and the characteristics of the environment. The literature documents many methods that have been developed to provide effective estimates of the position of the nodes of a WSN in all such different situations. This talk provides a structured overview of the principal families of the algorithms that allow estimating the unknown position of a node on the basis of the measured distances with the other nodes of the WSN.
Joint work with Simone Dallospedale
10:00-10:25. Improved Event-Driven Programming in Jadescript. Federico Bergenti (Università degli Studi di Parma)
Abstract. Since the first proposed languages like AGENT0, agent-oriented programming has been intimately linked with event-driven programming because, besides their proactive abilities, agents are always expected to promptly react to the interesting events that occur in their world. Jadescript leverages the abstraction popularized by JADE to provide the needed language construct to react to events, which notably include the reception of messages. For example, the language constructs related to behaviours and message patterns are provided in Jadescript to allow the programmer to associate proper handlers to interesting events. However, it is well known that the use of these constructs tends to obfuscate the control flow, and therefore to reduce code readability and maintainability. This talk overviews some ideas that have been recently proposed, and primarily experimented, to enhance Jadescript with an improved support for event-driven programming. The discussed language constructs are based on the possibility of reinterpreting the abstractions that Jadescript already provides, thus ensuring coherence and ease of use.
10:25-10:50. An IoT Scenario from Sicilian Slackers Group: ChirpPark, Smart and Sustainable Parking System for Smart Cities. Corrado Santoro (Università degli Studi di Catania)
Abstract. The talk deals with an IoT distributed application that has been designed by UNICT reasearch group and focuses on a smart car parking application.
The objective is to let drivers find and reserve a parking stall in a specific zone of the city. To this aim a set of devices are present, spread over the city: a smart sensor present in all the parking stalls to detect if stall is busy; a parking hub to manage the stalls of a specific city zone; a reserving device mounted in the smart cars of the drivers. All of these devices are MCU boards equipped with a wireless communication hardware (and the relevant wireless protocol stacks). The system is designed to be implemented using the DEMOCLE declarative multi-agent framework, equipped with the Hermes extension to support communication among different devices, and employing the LoRA communication protocol.
10:50-11:00. Questions and (Maybe) Answers, Discussion and Brainstorming.
11:00-11:30. Coffee Break.
11:30-13:00. Discussion on the COLA paper about T-LADIES.
13:00-13:00. Closing. Walter Cazzola (Università degli Studi di Milano)