VLDB 2026 Research / reviewers in the wild / expert
Ferruccio Damiani
dblp:19/4742
· DBLP profile ↗
102ranked-venue papers
34as first author
29since 2021 · last 2026
0000-0001-8109-1706ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 69 · 25 first-author · 20 since 2021Theory of computation · 25 · 13 first-author · 6 since 2021Artificial intelligence and machine learning · 5 · 3 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 5 · 3 first-authorComputer networks · 2 · 1 first-authorSystems, architecture and hardware · 1Human-computer interaction and ubiquitous computing · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Aggregate Indoor Localisation
Giorgio Audrito, Leonardo Bertolino, Ferruccio Damiani, Gianluca Torta |
COORDINATION | 3 |
| 2026 | Distributed Runtime Verification in Proximity-Based Networks: A Tutorial on the Aggregate Programming ApproachabstractAbstract Distributed runtime verification (DRV) addresses the problem of checking the correctness of distributed systems during execution, coping with partial knowledge, dynamic topologies, and the absence of global time. These challenges are particularly prominent in proximity-based networks, such as those arising in IoT and Far Edge computing scenarios, where large numbers of devices interact through local communication. This tutorial presents an approach to DRV based on Aggregate Programming (AP), a paradigm for designing distributed collective systems via high-level abstractions over computational fields. We show how temporal and spatial properties (expressed in past-CTL and SLCS, respectively) can be systematically compiled into aggregate monitors grounded in the eXchange Calculus and executed using the FCPP C++ framework and simulator for AP. The tutorial combines conceptual foundations with practical guidance: participants learn how to specify spatio-temporal properties, generate corresponding monitors, and execute them in a 3D simulation environment. Examples are drawn from ongoing industrial collaborations and research projects, which we use to illustrate realistic monitoring scenarios and motivate open challenges for AP-based DRV. Giorgio Audrito, Ferruccio Damiani, Giordano Scarso, Volker Stolz, Gianluca Torta |
FM (2) | 2 |
| 2026 | Composable models and guarantees for aggregate systemsabstractAbstract Developing large-scale collective adaptive systems for safety-critical applications requires an extensive effort, involving the interplay of distributed programming techniques and mathematical proofs of real-time guarantees. This effort could be significantly reduced by allowing the system developer to rely on libraries of predefined algorithms. By exploiting such algorithms, distributed behaviour and (hard) real-time guarantees for the final application could be automatically inferred, effectively shifting the verification burden from the system designer to the algorithm developer. Following earlier work on real-time guarantees for aggregate computing algorithms, we argue that aggregate computing could provide a convenient framework towards this aim. As a first step, we give a detailed description of different kinds of models that can interpret corresponding classes of aggregate programs as mathematical functions. Then, building on such models, we investigate the problem of how real-time behaviour constraints can be specified in a compositional way, proposing a few composable specification patterns, and singling out a number of potential building block library algorithms that could constitute such a real-time aggregate computing library. We evaluate our proposal by means of examples, describing a series of example algorithms for each proposed model, and by investigating two possible compositions of some of them in an archetypal scenario of distributed estimation of the network diameter. In these two examples, we experimentally prove the effectiveness of the models by comparing the results of the interpretation with the simulations results, achieving a close match. Overall, the proposed framework provides a roadmap towards a real-time aggregate computing library with the potential of providing a valuable asset for supporting the rigorous engineering of safety-critical large-scale collective adaptive systems. Giorgio Audrito, Ferruccio Damiani, Gianluca Torta |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2025 | Declarative Dynamic Object Reclassification
Riccardo Sieve, Eduard Kamburjan, Ferruccio Damiani, Einar Broch Johnsen |
ECOOP | 3 |
| 2025 | Feature-Oriented Modelling and Analysis of a Self-Adaptive Robotic SystemabstractImproved autonomy in robotic systems is needed for innovation in, e.g., the marine sector. Autonomous robots that are let loose in hazardous environments, such as underwater, need to handle uncertainties that stem from both their environment and internal state. While self-adaptation is crucial to cope with these uncertainties, bad decisions may cause the robot to get lost or even to cause severe environmental damage. Autonomous, self-adaptive robots that operate in uncontrolled environments full of uncertainties need to be reliable! Since these uncertainties are hard to replicate in test deployments, we need methods to formally analyse self-adaptive robots operating in uncontrolled environments. In this article, we show how feature-oriented techniques can be used to formally model and analyse self-adaptive robotic systems in the presence of such uncertainties. Self-adaptive systems can be organised as two-layered systems with a managed subsystem handling the domain concerns and a managing subsystem implementing the adaptation logic. We consider a case study of an Autonomous Underwater Vehicle (AUV) for pipeline inspection, in which the managed subsystem of the AUV is modelled as a family of systems, where each family member corresponds to a valid configuration of the AUV which can be seen as an operating mode of the AUV’s behaviour. The managing subsystem of the AUV is modelled as a control layer that is capable of dynamically switching between such valid configurations, depending on both environmental and internal uncertainties. These uncertainties are captured in a probabilistic and highly configurable model. Our modelling approach allows us to exploit powerful formal methods for feature-oriented systems, which we illustrate by analysing safety properties, energy consumption, and multi-objective properties, as well as performing parameter synthesis to analyse to what extent environmental conditions affect the AUV. The case study is realised in the probabilistic feature-oriented modelling language and verification tool ProFeat, and in particular exploits family-based probabilistic and parametric model checking. Juliane Päßler, Maurice H. ter Beek, Ferruccio Damiani, Clemens Dubslaff, Einar Broch Johnsen, Silvia Lizeth Tapia Tarifa |
Formal Aspects Comput. | 3 |
| 2025 | Analysing Self-Adaptive Systems as Software Product LinesabstractSelf-adaptation is a crucial feature of autonomous systems that must cope with uncertainties in, e.g., their environment and their internal state. Self-adaptive systems (SASs) can be realised as two-layered systems, introducing a separation of concerns between the domain-specific functionalities of the system (the managed subsystem) and the adaptation logic (the managing subsystem), i.e., introducing an external feedback loop for managing adaptation in the system. We present an approach to model SASs as dynamic software product lines (SPLs) and leverage existing approaches to SPL-based analysis for the analysis of SASs. To do so, the functionalities of the SAS are modelled in a feature model, capturing the SAS’s variability. This allows us to model the managed subsystem of the SAS as a family of systems, where each family member corresponds to a valid feature configuration of the SAS. Thus, the managed subsystem of an SAS is modelled as an SPL model; more precisely, a probabilistic featured transition system. The managing subsystem of an SAS is modelled as a control layer capable of dynamically switching between these valid configurations, depending on both environmental and internal conditions. We demonstrate the approach on a small-scale evaluation of a self-adaptive autonomous underwater vehicle used for pipeline inspection, which we model and analyse with the feature-aware probabilistic model checker ProFeat. The approach allows us to analyse probabilistic reward and safety properties for the SAS, as well as the correctness of its adaptation logic. • Dynamic software product lines used to model self-adaptive systems. • Family-based analysis used for formal verification of self-adaptive systems. • A case study from the underwater robotics domain to exemplify the approach. • Maintaining separation of concerns between the two layers of a self-adaptive system. Juliane Päßler, Maurice H. ter Beek, Ferruccio Damiani, Einar Broch Johnsen, Silvia Lizeth Tapia Tarifa |
J. Syst. Softw. | 3 |
| 2025 | Programming Distributed Collective Processes in the eXchange CalculusabstractRecent trends like the Internet of Things (IoT) suggest a vision of dense and multi-scale deployments of computing devices in nearly all kinds of environments. A prominent engineering challenge revolves around programming the collective adaptive behaviour of such computational ecosystems. This requires abstractions able to capture concepts like ensembles (dynamic groups of cooperating devices) and collective tasks (joint activities carried out by ensembles). In this work, we consider collections of devices interacting with neighbours and that execute in nearly-synchronised sense-compute-interact rounds, where the computation is given by a single program mapping sensing values and incoming messages to output and outcoming messages. To support programming whole computational collectives, we propose the abstraction of a distributed collective process, which can be used to define at once the ensemble formation logic and its collective task. We formalise the abstraction in the eXchange Calculus (XC), a core functional language based on neighbouring values (maps from neighbours to values) where state and interaction is handled through a single primitive, exchange, and provide a corresponding implementation in the FCPP language. Then, we exercise distributed collective processes using two case studies: multi-hop message propagation and distributed monitoring of spatial properties. Finally, we discuss the features of the abstraction and its suitability for different kinds of distributed computing applications. Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Gianluca Torta, Mirko Viroli |
Log. Methods Comput. Sci. | 3 |
| 2025 | A Configurable Software Model of a Self-Adaptive Robotic SystemabstractSelf-adaptation, meant to increase reliability, is a crucial feature of cyber-physical systems operating in uncertain physical environments. Ensuring safety properties of self-adaptive systems is of utter importance, especially when operating in remote environments where communication with a human operator is limited, like under water or in space. This paper presents a software model that allows the analysis of one such self-adaptive system, a configurable underwater robot used for pipeline inspection, by means of the probabilistic model checker ProFeat. Furthermore, it shows that the configurable software model is easily extensible to further, possibly more complex use cases and analyses. Juliane Päßler, Maurice H. ter Beek, Ferruccio Damiani, Einar Broch Johnsen, Silvia Lizeth Tapia Tarifa |
Sci. Comput. Program. | 3 |
| 2025 | Software Engineering for Collective Cyber-Physical EcosystemsabstractToday’s distributed and pervasive computing addresses large-scale cyber-physical ecosystems, characterised by dense and large networks of devices capable of computation, communication and interaction with the environment and people. While most research focuses on treating these systems as ‘composites’ (i.e., heterogeneous functional complexes), recent developments in fields such as self-organising systems and swarm robotics have opened up a complementary perspective: treating systems as ‘collectives’ (i.e., uniform, collaborative and self-organising groups of entities). This article explores the motivations, state of the art and implications of this ‘collective computing paradigm’ in software engineering. In particular, it discusses its peculiar challenges, implied by characteristics like distribution, situatedness, large scale and cooperative nature. These challenges outline significant directions for future research in software engineering, touching on aspects such as macro-programming, collective intelligence, self-adaptive middleware, learning/synthesis of collective behaviour, human involvement, safety and security in collective cyber-physical ecosystems. Roberto Casadei, Gianluca Aguzzi, Giorgio Audrito, Ferruccio Damiani, Danilo Pianini, Giordano Scarso, Gianluca Torta, Mirko Viroli |
ACM Trans. Softw. Eng. Methodol. | 4 |
| 2024 | An Enhanced Exchange Operator for XC
Giorgio Audrito, Daniele Bortoluzzi 0002, Ferruccio Damiani, Giordano Scarso, Gianluca Torta |
COORDINATION | 3 |
| 2024 | Towards Real-Time Aggregate Computing
Giorgio Audrito, Ferruccio Damiani, Gianluca Torta |
ISoLA (2) | 2 |
| 2024 | The eXchange Calculus (XC): A functional programming language design for distributed collective systemsabstractDistributed collective systems are systems formed by homogeneous dynamic collections of devices acting in a shared environment to pursue a joint task or goal. Typical applications emerge in the context of wireless sensor networks, robot swarms, groups of wearable-augmented people, and computing infrastructures. Programming such systems is notoriously hard, due to requirements of scalability, concurrency, faults, and difficulty in making desired collective behaviour ultimately emerge: ad-hoc languages and mechanisms have been proposed threads like spatial computing, macro-programming, and field-based coordination. In this paper we present the eXchange Calculus (XC), formalising a tiny set of key mechanisms, usable across many different languages and platforms, allowing to express the overall interactive behaviour of distributed collective systems in a declarative way. In this approach, computation (executed in asynchronous rounds), communication (which is neighbour-based), and state over time, are all expressed by a single declarative construct, called exchange. We provide a formalisation of XC in terms of syntax, device-level and network-level semantics, prove a number of properties of the calculus, and discuss applicability considering a smart city scenario. XC is implemented as a DSL in Scala and in C++, with different trade-offs in terms of productivity and platform targetting. Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Guido Salvaneschi, Mirko Viroli |
J. Syst. Softw. | 3 |
| 2024 | Product lines of dataflowsabstractData-centric parallel programming models such as dataflows are well established to implement complex concurrent software. However, in a context of a configurable software, the dataflow used in its computation might vary with respect to the selected options: this happens in particular in fields such as Computational Fluid Dynamics (CFD), where the shape of the domain in which the fluid flows and the equations used to simulate the flow are all options configuring the dataflow to execute. In this paper, we present an approach to implement product lines of dataflows, based on Delta-Oriented Programming (DOP) and term rewriting. This approach includes several analyses to check that all dataflows of a product line can be generated. Moreover, we discuss a prototype implementation of the approach and demonstrate its feasibility in practice. Michael Lienhardt, Maurice H. ter Beek, Ferruccio Damiani |
J. Syst. Softw. | 3 |
| 2024 | Preface for the special issue on tool papers of the 17th International Federated Conference on Distributed Computing Techniques, DisCoTec 2022
Ferruccio Damiani, David M. Eyers, Anna Philippou |
Sci. Comput. Program. | 1 |
| 2023 | Programming Distributed Collective Processes for Dynamic Ensembles and Collective Tasks
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Gianluca Torta, Mirko Viroli |
COORDINATION | 3 |
| 2023 | Formal Modelling and Analysis of a Self-Adaptive Robotic System
Juliane Päßler, Maurice H. ter Beek, Ferruccio Damiani, Silvia Lizeth Tapia Tarifa, Einar Broch Johnsen |
iFM | 3 |
| 2023 | Variability modulesabstractA Software Product Line (SPL) is a family of similar programs, called variants, generated from a common artifact base. A Multi SPL (MPL) is a set of interdependent SPLs: each variant can depend on variants from other SPLs. MPLs are challenging to model and to implement efficiently, especially when different variants of the same SPL must coexist and interoperate. We address this challenge by introducing the concept of a variability module (VM), a new language construct. A VM constitutes at the same time a module and an SPL of standard (variability-free), possibly interdependent, modules. Generating a variant of a VM triggers the generation of all variants required to satisfy its dependencies. Consequentially, a set of interdependent VMs represents an MPL that can be compiled into a set of standard modules. We illustrate the VM concept with an example from an industrial modeling scenario and formalize it in a core calculus. We define family-based analyses to check that a VM satisfies certain well-formedness conditions and whether all variants can be generated. Finally, we provide an implementation of VM for the Java-like modeling language ABS, and evaluate it with case studies. Ferruccio Damiani, Reiner Hähnle, Eduard Kamburjan, Michael Lienhardt, Luca Paolini |
J. Syst. Softw. | 1 |
| 2023 | Predicting resource consumption of Kubernetes container systems using resource modelsabstractCloud computing has radically changed the way organizations operate their Software by allowing them to achieve high availability of services at affordable cost. Containerized microservices is an enabling technology for this change, and advanced container orchestration platforms such as Kubernetes are used for service management. Despite the flourishing ecosystem of monitoring tools for such orchestration platforms, service management is still mainly a manual effort. The modeling of cloud computing systems is an essential step towards automatic management, but the modeling of cloud systems of such complexity remains challenging and, as yet, unaddressed. In fact modeling resource consumption will be a key to comparing the outcome of possible deployment scenarios. This paper considers how to derive resource models for cloud systems empirically. We do so based on models of deployed services in a formal modeling language with explicit CPU and memory resources; once the adherence to the real system is good enough, formal properties can be verified in the model. Targeting a likely microservices application, we present a model of Kubernetes developed in Real-Time ABS. We report on leveraging data collected empirically from small deployments to simulate the execution of higher intensity scenarios on larger deployments. We discuss the challenges and limitations that arise from this approach, and identify constraints under which we obtain satisfactory accuracy. Gianluca Turin, Andrea Borgarelli, Simone Donetti, Ferruccio Damiani, Einar Broch Johnsen, Silvia Lizeth Tapia Tarifa |
J. Syst. Softw. | 4 |
| 2023 | Computation Against a Neighbour: Addressing Large-Scale Distribution and Adaptivity with Functional Programming and ScalaabstractRecent works in contexts like the Internet of Things (IoT) and large-scale Cyber-Physical Systems (CPS) propose the idea of programming distributed systems by focussing on their global behaviour across space and time. In this view, a potentially vast and heterogeneous set of devices is considered as an "aggregate" to be programmed as a whole, while abstracting away the details of individual behaviour and exchange of messages, which are expressed declaratively. One such a paradigm, known as aggregate programming, builds on computational models inspired by field-based coordination. Existing models such as the field calculus capture interaction with neighbours by a so-called "neighbouring field" (a map from neighbours to values). This requires ad-hoc mechanisms to smoothly compose with standard values, thus complicating programming and introducing clutter in aggregate programs, libraries and domain-specific languages (DSLs). To address this key issue we introduce the novel notion of "computation against a neighbour", whereby the evaluation of certain subexpressions of the aggregate program are affected by recent corresponding evaluations in neighbours. We capture this notion in the neighbours calculus (NC), a new field calculus variant which is shown to smoothly support declarative specification of interaction with neighbours, and correspondingly facilitate the embedding of field computations as internal DSLs in common general-purpose programming languages -- as exemplified by a Scala implementation, called ScaFi. This paper formalises NC, thoroughly compares it with respect to the classic field calculus, and shows its expressiveness by means of a case study in edge computing, developed in ScaFi. Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Mirko Viroli |
Log. Methods Comput. Sci. | 3 |
| 2022 | Functional Programming for Distributed Systems with XC
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Guido Salvaneschi, Mirko Viroli |
ECOOP | 3 |
| 2022 | Bringing Aggregate Programming Towards the Cloud
Giorgio Audrito, Ferruccio Damiani, Gianluca Torta |
ISoLA (3) | 2 |
| 2022 | Efficient static analysis and verification of featured transition systemsabstractAbstract A Featured Transition System (FTS) models the behaviour of all products of a Software Product Line (SPL) in a single compact structure, by associating action-labelled transitions with features that condition their presence in product behaviour. It may however be the case that the resulting featured transitions of an FTS cannot be executed in any product (so called dead transitions) or, on the contrary, can be executed in all products (so called false optional transitions). Moreover, an FTS may contain states from which a transition can be executed only in some products (so called hidden deadlock states). It is useful to detect such ambiguities and signal them to the modeller, because dead transitions indicate an anomaly in the FTS that must be corrected, false optional transitions indicate a redundancy that may be removed, and hidden deadlocks should be made explicit in the FTS to improve the understanding of the model and to enable efficient verification—if the deadlocks in the products should not be remedied in the first place. We provide an algorithm to analyse an FTS for ambiguities and a means to transform an ambiguous FTS into an unambiguous one. The scope is twofold: an ambiguous model is typically undesired as it gives an unclear idea of the SPL and, moreover, an unambiguous FTS can efficiently be model checked. We empirically show the suitability of the algorithm by applying it to a number of benchmark SPL examples from the literature, and we show how this facilitates a kind of family-based model checking of a wide range of properties on FTSs. Maurice H. ter Beek, Ferruccio Damiani, Michael Lienhardt, Franco Mazzanti, Luca Paolini |
Empir. Softw. Eng. | 2 |
| 2022 | Distributed runtime verification by past-CTL and the field calculus
Giorgio Audrito, Ferruccio Damiani, Volker Stolz, Gianluca Torta, Mirko Viroli |
J. Syst. Softw. | 2 |
| 2022 | Aggregate processes as distributed adaptive services for the Industrial Internet of Things
Lorenzo Testa, Giorgio Audrito, Ferruccio Damiani, Gianluca Torta |
Pervasive Mob. Comput. | 3 |
| 2022 | FTS4VMC: A front-end tool for static analysis and family-based model checking of FTSs with VMC
Maurice H. ter Beek, Ferruccio Damiani, Michael Lienhardt, Franco Mazzanti, Luca Paolini, Giordano Scarso |
Sci. Comput. Program. | 2 |
| 2022 | On logical and extensional characterizations of attributed feature models
Ferruccio Damiani, Michael Lienhardt, Luca Paolini |
Theor. Comput. Sci. | 1 |
| 2021 | Engineering collective intelligence at the edge with aggregate processes
Roberto Casadei, Mirko Viroli, Giorgio Audrito, Danilo Pianini, Ferruccio Damiani |
Eng. Appl. Artif. Intell. | 5 |
| 2021 | Adaptive distributed monitors of spatial properties for cyber-physical systems
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Volker Stolz, Mirko Viroli |
J. Syst. Softw. | 3 |
| 2021 | Aggregate centrality measures for IoT-based coordination
Giorgio Audrito, Danilo Pianini, Ferruccio Damiani, Mirko Viroli |
Sci. Comput. Program. | 3 |
| 2020 | Resilient Distributed Collection Through Information Speed Thresholds
Giorgio Audrito, Sergio Bergamini, Ferruccio Damiani, Mirko Viroli |
COORDINATION | 3 |
| 2020 | Lazy product discovery in huge configuration spacesabstractHighly-configurable software systems can have thousands of interdependent configuration options across different subsystems. In the resulting configuration space, discovering a valid product configuration for some selected options can be complex and error prone. The configuration space can be organized using a feature model, fragmented into smaller interdependent feature models reflecting the configuration options of each subsystem. Michael Lienhardt, Ferruccio Damiani, Einar Broch Johnsen, Jacopo Mauro |
ICSE | 2 |
| 2020 | On Two Characterizations of Feature Models
Ferruccio Damiani, Michael Lienhardt, Luca Paolini |
ICTAC | 1 |
| 2020 | FScaFi : A Core Calculus for Collective Adaptive Systems Programming
Roberto Casadei, Mirko Viroli, Giorgio Audrito, Ferruccio Damiani |
ISoLA (2) | 4 |
| 2020 | On Slicing Software Product Line Signatures
Ferruccio Damiani, Michael Lienhardt, Luca Paolini |
ISoLA (1) | 1 |
| 2020 | A Formal Model of the Kubernetes Container Framework
Gianluca Turin, Andrea Borgarelli, Simone Donetti, Einar Broch Johnsen, Silvia Lizeth Tapia Tarifa, Ferruccio Damiani |
ISoLA (1) | 6 |
| 2020 | Field-based Coordination with the Share Operator
Giorgio Audrito, Jacob Beal, Ferruccio Damiani, Danilo Pianini, Mirko Viroli |
Log. Methods Comput. Sci. | 3 |
| 2019 | The share Operator for Field-Based Coordination
Giorgio Audrito, Jacob Beal, Ferruccio Damiani, Danilo Pianini, Mirko Viroli |
COORDINATION | 3 |
| 2019 | Aggregate Processes in Field Calculus
Roberto Casadei, Mirko Viroli, Giorgio Audrito, Danilo Pianini, Ferruccio Damiani |
COORDINATION | 5 |
| 2019 | On a Higher-Order Calculus of Computational Fields
Giorgio Audrito, Mirko Viroli, Ferruccio Damiani, Danilo Pianini, Jacob Beal |
FORTE | 3 |
| 2019 | Summary of: On the Expressiveness of Modal Transition Systems with Variability Constraints
Maurice H. ter Beek, Ferruccio Damiani, Stefania Gnesi, Franco Mazzanti, Luca Paolini |
IFM | 2 |
| 2019 | Summary of: On Checking Delta-Oriented Software Product Lines of Statecharts
Michael Lienhardt, Ferruccio Damiani, Lorenzo Testa, Gianluca Turin |
IFM | 2 |
| 2019 | From distributed coordination to field calculus and aggregate computing
Mirko Viroli, Jacob Beal, Ferruccio Damiani, Giorgio Audrito, Roberto Casadei, Danilo Pianini |
J. Log. Algebraic Methods Program. | 3 |
| 2019 | On the expressiveness of modal transition systems with variability constraints
Maurice H. ter Beek, Ferruccio Damiani, Stefania Gnesi, Franco Mazzanti, Luca Paolini |
Sci. Comput. Program. | 2 |
| 2019 | A formal model for Multi Software Product Lines
Ferruccio Damiani, Michael Lienhardt, Luca Paolini |
Sci. Comput. Program. | 1 |
| 2019 | Certifying delta-oriented programs
Vítor Rodrigues, Simone Donetti, Ferruccio Damiani |
Softw. Syst. Model. | 3 |
| 2019 | Automatic refactoring of delta-oriented SPLs to remove-free form and replace-free form
Ferruccio Damiani, Michael Lienhardt, Luca Paolini |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2019 | A Higher-Order Calculus of Computational FieldsabstractThe complexity of large-scale distributed systems, particularly when deployed in physical space, calls for new mechanisms to address composability and reusability of collective adaptive behaviour. Computational fields have been proposed as an effective abstraction to fill the gap between the macro-level of such systems (specifying a system’s collective behaviour) and the micro-level (individual devices’ actions of computation and interaction to implement that collective specification), thereby providing a basis to better facilitate the engineering of collective APIs and complex systems at higher levels of abstraction. This article proposes a full formal foundation for field computations, in terms of a core (higher-order) calculus of computational fields containing a few key syntactic constructs, and equipped with typing, denotational and operational semantics. Critically, this allows formal establishment of a link between the micro- and macro-levels of collective adaptive systems by a result of computational adequacy and abstraction for the (aggregate) denotational semantics with respect to the (per-device) operational semantics. Giorgio Audrito, Mirko Viroli, Ferruccio Damiani, Danilo Pianini, Jacob Beal |
ACM Trans. Comput. Log. | 3 |
| 2018 | Space-Time Universality of Field Calculus
Giorgio Audrito, Jacob Beal, Ferruccio Damiani, Mirko Viroli |
COORDINATION | 3 |
| 2018 | From Field-Based Coordination to Aggregate Computing
Mirko Viroli, Jacob Beal, Ferruccio Damiani, Giorgio Audrito, Roberto Casadei, Danilo Pianini |
COORDINATION | 3 |
| 2018 | Distributed Real-Time Shortest-Paths Computations with the Field CalculusabstractAs the density of sensing/computation/actuation nodes is increasing, it becomes more and more feasible and useful to think at an entire network of physical devices as a single, continuous space-time computing machine. The emergent behaviour of the whole software system is then induced by local computations deployed within each node and by the dynamics of the information diffusion. A relevant example of this distribution model is given by aggregate computing and its companion language field calculus, a minimal set of purely functional constructs used to manipulate distributed data structures evolving over space and time, and resulting in robustness to changes. In this paper, we study the convergence time of an archetypal and widely used component of distributed computations expressed in field calculus, called gradient: a fully-distributed estimation of distances over a metric space by a spanning tree. We provide an analytic result linking the quality of the output of a gradient to the amount of computing resources dedicated. The resulting error bounds are then exploited for network design, suggesting an optimal density value taking broadcast interferences into account. Finally, an empirical evaluation is performed validating the theoretical results. Giorgio Audrito, Ferruccio Damiani, Mirko Viroli, Enrico Bini |
RTSS | 2 |
| 2018 | Interoperability of software product line variantsabstractSoftware Product Lines are an established mechanism to describe multiple variants of one software product. Current approaches however, do not offer a mechanism to support the use of multiple variants from one product line in the same application. We experienced the need for such a mechanism in an industry project with German Railways where we do not merely model a highly variable system, but a system with highly variable subsystems. We present the design challenges that arise when software product lines have to support the use of multiple variants in the same application, in particular: How to reference multiple variants, how to manage multiple variants to avoid name clashes, and how to keep multiple variants interoperable. Ferruccio Damiani, Reiner Hähnle, Eduard Kamburjan, Michael Lienhardt |
SPLC | 1 |
| 2018 | A core calculus for dynamic delta-oriented programming
Ferruccio Damiani, Luca Padovani, Ina Schaefer, Christoph Seidl 0001 |
Acta Informatica | 1 |
| 2018 | Optimal single-path information propagation in gradient-based algorithms
Giorgio Audrito, Ferruccio Damiani, Mirko Viroli |
Sci. Comput. Program. | 2 |
| 2018 | On checking delta-oriented product lines of statecharts
Michael Lienhardt, Ferruccio Damiani, Lorenzo Testa, Gianluca Turin |
Sci. Comput. Program. | 2 |
| 2017 | Optimally-Self-Healing Distributed Gradient Structures Through Bounded Information Speed
Giorgio Audrito, Ferruccio Damiani, Mirko Viroli |
COORDINATION | 2 |
| 2017 | A Unified and Formal Programming Model for Deltas and Traits
Ferruccio Damiani, Reiner Hähnle, Eduard Kamburjan, Michael Lienhardt |
FASE | 1 |
| 2017 | An Extension of the ABS Toolchain with a Mechanism for Type Checking SPLs
Ferruccio Damiani, Michael Lienhardt, Radu Muschevici, Ina Schaefer |
IFM | 1 |
| 2017 | Xtraitj: Traits for the Java platform
Lorenzo Bettini, Ferruccio Damiani |
J. Syst. Softw. | 2 |
| 2017 | A novel model-based testing approach for software product lines
Ferruccio Damiani, David Faitelson, Christoph Gladisch, Shmuel S. Tyszberowicz |
Softw. Syst. Model. | 1 |
| 2017 | Self-Adaptation to Device Distribution in the Internet of ThingsabstractA key problem when coordinating the behaviour of spatially situated networks, like those typically found in the Internet of Things (IoT), is adaptation to changes impacting network topology, density, and heterogeneity. Computational goals for such systems, however, are often dependent on geometric properties of the continuous environment in which the devices are situated rather than the particulars of how devices happen to be distributed through it. In this article, we identify a new property of distributed algorithms, eventual consistency , which guarantees that computation converges to a final state that approximates a predictable limit, based on the continuous environment, as the density and speed of devices increases. We then identify a large class of programs that are eventually consistent, building on prior results on the field calculus computational model (Beal et al. 2015; Viroli et al. 2015a) that identify a class of self-stabilizing programs. Finally, we confirm through simulation of IoT application scenarios that eventually consistent programs from this class can provide resilient behavior where programs that are only converging fail badly. Jacob Beal, Mirko Viroli, Danilo Pianini, Ferruccio Damiani |
ACM Trans. Auton. Adapt. Syst. | 4 |
| 2016 | On Type Checking Delta-Oriented Product Lines
Ferruccio Damiani, Michael Lienhardt |
IFM | 1 |
| 2016 | A Toolchain for Delta-Oriented Modeling of Software Product Lines
Cristina Chesta, Ferruccio Damiani, Liudmila Dobriakova, Marco Guernieri, Simone Martini 0003, Michael Nieke, Vítor Rodrigues, Sven Schuster |
ISoLA (2) | 2 |
| 2016 | Refactoring Delta-Oriented Product Lines to Enforce Guidelines for Efficient Type-Checking
Ferruccio Damiani, Michael Lienhardt |
ISoLA (2) | 1 |
| 2016 | Introduction to the Track on Variability Modeling for Scalable Software Evolution
Ferruccio Damiani, Christoph Seidl 0001, Ingrid Chieh Yu |
ISoLA (2) | 1 |
| 2016 | A type-sound calculus of computational fieldsabstractA number of recent works have investigated the notion of “computational fields” as a means of coordinating systems in distributed, dense and dynamic environments such as pervasive computing, sensor networks, and robot swarms. We introduce a minimal core calculus meant to capture the key ingredients of languages that make use of computational fields: functional composition of fields, functions over fields, evolution of fields over time, construction of fields of values from neighbours, and restriction of a field computation to a sub-region of the network. We formalise a notion of type soundness for the calculus that encompasses the concept of domain alignment, and present a sound static type inference system. This calculus and its type inference system can act as a core for actual implementation of coordination languages and models, as well as to pave the way towards formal analysis of properties concerning expressiveness, self-stabilisation, topology independence, and relationships with the continuous space–time semantics of spatial computations. Ferruccio Damiani, Mirko Viroli, Jacob Beal |
Sci. Comput. Program. | 1 |
| 2015 | Code Mobility Meets Self-organisation: A Higher-Order Calculus of Computational Fields
Ferruccio Damiani, Mirko Viroli, Danilo Pianini, Jacob Beal |
FORTE | 1 |
| 2015 | From Featured Transition Systems to Modal Transition Systems with Variability Constraints
Maurice H. ter Beek, Ferruccio Damiani, Stefania Gnesi, Franco Mazzanti, Luca Paolini |
SEFM | 2 |
| 2015 | Implementing type-safe software product lines using parametric traits
Lorenzo Bettini, Ferruccio Damiani, Ina Schaefer |
Sci. Comput. Program. | 2 |
| 2014 | A Calculus of Self-stabilising Computational Fields
Mirko Viroli, Ferruccio Damiani |
COORDINATION | 2 |
| 2014 | Delta-Trait Programming of Software Product Lines
Ferruccio Damiani, Ina Schaefer, Sven Schuster, Tim Winkelmann |
ISoLA (1) | 1 |
| 2014 | Delta-oriented multi software product linesabstractModern software systems outgrow the scope of traditional software product lines (SPLs) resulting in multi software product lines (MSPLs) with many interconnected subsystem versions and variants. Delta-oriented programming (DOP) is a flexible, modular approach for implementing SPLs, but DOP so far does not allow the realization of MSPLs. In this paper, we extend DOP to support MSPL development and provide the first holistic modeling approach for MSPLs that spans problem, solution and configuration space. The main concept is the extension of DOP with the possibility to import other SPLs or MSPLs into a new MSPL. By expressing constraints amongst the imported SPLs, a common configuration and product generation is enabled. Ferruccio Damiani, Ina Schaefer, Tim Winkelmann |
SPLC | 1 |
| 2014 | Verifying traits: an incremental proof system for fine-grained reuseabstractAbstract Traits have been proposed as a more flexible mechanism than class inheritance for structuring code in object-oriented programming, to achieve fine-grained code reuse. A trait originally developed for one purpose can be adapted and reused in a completely different context. Formalizations of traits have been extensively studied, and implementations of traits have started to appear in programming languages. So far, work on formally establishing properties of trait-based programs has mostly concentrated on type systems. This paper presents the first deductive proof system for a trait-based object-oriented language. If a specification of a trait can be given a priori, covering all actual usage of that trait, our proof system is modular as each trait is analyzed only once. However, imposing such a restriction may in many cases unnecessarily limit traits as a mechanism for flexible code reuse. In order to reflect the flexible reuse potential of traits, our proof system additionally allows new specifications to be added to a trait in anincrementalway which does not violate established proofs. We formalize and show the soundness of the proof system. Ferruccio Damiani, Johan Dovland, Einar Broch Johnsen, Ina Schaefer |
Formal Aspects Comput. | 1 |
| 2013 | Compositional type checking of delta-oriented software product lines
Lorenzo Bettini, Ferruccio Damiani, Ina Schaefer |
Acta Informatica | 2 |
| 2013 | On flexible dynamic trait replacement for Java-like languages
Lorenzo Bettini, Sara Capecchi, Ferruccio Damiani |
Sci. Comput. Program. | 3 |
| 2013 | Combining traits with boxes and ownership types in a Java-like setting
Lorenzo Bettini, Ferruccio Damiani, Kathrin Geilmann, Jan Schäfer 0002 |
Sci. Comput. Program. | 2 |
| 2013 | TraitRecordJ: A programming language with traits and records
Lorenzo Bettini, Ferruccio Damiani, Ina Schaefer, Fabio Strocco |
Sci. Comput. Program. | 2 |
| 2012 | A formal foundation for dynamic delta-oriented software product linesabstractDelta-oriented programming (DOP) is a flexible approach for implementing software product lines (SPLs). DOP SPLs are implemented by a code base (a set of delta modules encapsulating changes to object-oriented programs) and a product line declaration (providing the connection of the delta modules with the product features). In this paper, we extend DOP by the capability to switch the implemented product configuration at runtime and present a formal foundation for dynamic DOP. A dynamic DOP SPL is a DOP SPL with a dynamic reconfiguration graph that specifies how to switch between different feature configurations. Dynamic DOP supports (unanticipated) software evolution such that at runtime, the product line declaration, the code base and the dynamic reconfiguration graph can be changed in any (unanticipated) way that preserves the currently running product. The type system of our dynamic DOP core calculus ensures that the dynamic reconfigurations lead to type safe products and do not cause runtime type errors. Ferruccio Damiani, Luca Padovani, Ina Schaefer |
GPCE | 1 |
| 2012 | Family-Based Analysis of Type Safety for Delta-Oriented Software Product Lines
Ferruccio Damiani, Ina Schaefer |
ISoLA (1) | 1 |
| 2012 | A transformational proof system for delta-oriented programmingabstractDelta-oriented programming is a modular, yet flexible technique to implement software product lines. To efficiently verify the specifications of all possible product variants of a product line, it is usually infeasible to generate all product variants and to verify them individually. To counter this problem, we propose a transformational proof system in which the specifications in a delta module describe changes to previous specifications. Our approach allows each delta module to be verified in isolation, based on symbolic assumptions for calls to methods which may be in other delta modules. When product variants are generated from delta modules, these assumptions are instantiated by the actual guarantees of the methods in the considered product variant and used to derive the specifications of this product variant. Ferruccio Damiani, Olaf Owe, Johan Dovland, Ina Schaefer, Einar Broch Johnsen, Ingrid Chieh Yu |
SPLC (2) | 1 |
| 2012 | Simulation techniques for the calculus of wrapped compartments
Mario Coppo, Ferruccio Damiani, Maurizio Drocco, Elena Grassi, Eva Sciacca, Salvatore Spinella, Angelo Troina |
Theor. Comput. Sci. | 2 |
| 2011 | Verifying traits: a proof system for fine-grained reuseabstractTraits have been proposed as a more flexible mechanism for code structuring in object-oriented programming than class inheritance, for achieving fine-grained code reuse. A trait originally developed for one purpose can be modified and reused in a completely different context. Formalizations of traits have been extensively studied, and implementations of traits have started to appear in programming languages. However, work on formally establishing properties of trait-based programs has so far mostly concentrated on type systems. This paper proposes the first deductive proof system for a trait-based object-oriented language. If a specification for a trait can be given a priori, covering all actual usage of that trait, our proof system is modular as each trait is analyzed only once. In order to reflect the flexible reuse potential of traits, our proof system additionally allows new specifications to be added to a trait in an incremental way which does not violate established proofs. We formalize and show the soundness of the proof system. Ferruccio Damiani, Johan Dovland, Einar Broch Johnsen, Ina Schaefer |
FTfJP@ECOOP | 1 |
| 2011 | On Designing Multicore-Aware Simulators for Biological SystemsabstractThe stochastic simulation of biological systems is an increasingly popular technique in bioinformatics. It often is an enlightening technique, which may however result in being computational expensive. We discuss the main opportunities to speed it up on multi-core platforms, which pose new challenges for parallelisation techniques. These opportunities are developed in two general families of solutions involving both the single simulation and a bulk of independent simulations (either replicas of derived from parameter sweep). Proposed solutions are tested on the parallelisation of the CWC simulator (Calculus of Wrapped Compartments) that is carried out according to proposed solutions by way of the Fast Flow programming framework making possible fast development and efficient execution on multi-cores. Marco Aldinucci, Mario Coppo, Ferruccio Damiani, Maurizio Drocco, Massimo Torquati, Angelo Troina |
PDP | 3 |
| 2010 | A Calculus for Boxes and Traits in a Java-Like Setting
Lorenzo Bettini, Ferruccio Damiani, Kathrin Geilmann, Jan Schäfer 0002 |
COORDINATION | 2 |
| 2010 | Delta-Oriented Programming of Software Product Lines
Ina Schaefer, Lorenzo Bettini, Viviana Bono, Ferruccio Damiani, Nico Tanzarella |
SPLC | 4 |
| 2009 | A mechanism for flexible dynamic trait replacementabstractDynamic trait replacement is a programming language feature for changing the objects' behavior at runtime by replacing some of the objects' methods. In previous work on dynamic trait replacement for JAVA-like languages, the object's methods that may be replaced must correspond exactly to a named trait used in the object's class definition. In this paper we propose the notion of replaceable: a programming language feature that decouples trait replacement operation code and class declaration code, thus making it possible refactoring classes and/or performing unanticipated trait replacement operations without invalidating existing code. Lorenzo Bettini, Sara Capecchi, Ferruccio Damiani |
FTfJP@ECOOP | 3 |
| 2009 | FEATHERWEIGHT AGENT LANGUAGE - A Core Calculus for Agents and Artifacts
Ferruccio Damiani, Paola Giannini, Alessandro Ricci, Mirko Viroli |
ICSOFT (1) | 1 |
| 2008 | On Polymorphic Recursion, Type Systems, and Abstract Interpretation
Marco Comini, Ferruccio Damiani, Samuel Vrech |
SAS | 2 |
| 2008 | A type safe state abstraction for coordination in Java -like languages
Ferruccio Damiani, Elena Giachino, Paola Giannini, Sophia Drossopoulou |
Acta Informatica | 1 |
| 2008 | Alias Types and Effects for "Environment-aware" Computations
Ferruccio Damiani, Elena Giachino, Paola Giannini |
Fundam. Informaticae | 1 |
| 2007 | Rank 2 Intersection for Recursive Definitions
Ferruccio Damiani |
Fundam. Informaticae | 1 |
| 2007 | A provenly correct translation of Fickle into JavaabstractWe present a translation from Fickle , a small object-oriented language allowing objects to change their class at runtime, into Java. The translation is provenly correct in the sense that it preserves the static and dynamic semantics. Moreover, it is compatible with separate compilation, since the translation of a Fickle class does not depend on the implementation of used classes. Based on the formal system, we have developed an implementation. The translation turned out to be a more subtle problem than we expected. In this article, we discuss four possible approaches we considered for the design of the translation and to justify our choice, we present formally the translation and proof of preservation of the static and dynamic semantics, and discuss the prototype implementation. Moreover, we outline an alternative translation based on generics that avoids most of the casts (but not all) needed in the previous translation. The language Fickle has undergone and is still undergoing several phases of development. In this article we are discussing the translation of Fickle II . Davide Ancona, Ferruccio Damiani, Sophia Drossopoulou, Paola Giannini, Elena Zucca |
ACM Trans. Program. Lang. Syst. | 3 |
| 2005 | Polymorphic bytecode: compositional compilation for Java-like languagesabstractWe define compositional compilation as the ability to typecheck source code fragments in isolation, generate We define compositional compilation as the ability to typecheck source code fragments in isolation, generate corresponding binaries,and link together fragments whose mutual assumptions are satisfied, without reinspecting the code. Even though compositional compilation is a highly desirable feature, in Java-like languages it can hardly be achieved. This is due to the fact that the bytecode generated for a fragment (say, a class) is not uniquely determined by its source code, but also depends on the compilation context.We propose a way to obtain compositional compilation for Java, by introducing a polymorphic form of bytecode containing type variables (ranging over class names) and equipped with a set of constraints involving type variables. Thus, polymorphic bytecode provides a representation for all the (standard) bytecode that can be obtained by replacing type variables with classes satisfying the associated constraints.We illustrate our proposal by developing a typing and a linking algorithm. The typing algorithm compiles a class in isolation generating the corresponding polymorphic bytecode fragment and constraints on the classes it depends on. The linking algorithm takes a collection of polymorphic bytecode fragments, checks their mutual consistency, and possibly simplifies and specializes them. In particular, linking a self-contained collection of fragments either fails, or produces standard bytecode (the same as would have been produced by standard compilation of all fragments). Davide Ancona, Ferruccio Damiani, Sophia Drossopoulou, Elena Zucca |
POPL | 2 |
| 2003 | Rank 2 intersection types for modulesabstractWe propose a rank 2 intersection type system for a language of modules built on a core ML-like language. The principal typing property of the rank 2 intersection type system for the core language plays a crucial role in the design of the type system for the module language. We first consider a "plain" notion of module, where a module is just a set of mutually recursive top-level definitions, and illustrate the notions of: module intrachecking (each module is typechecked in isolation and its interface, which is the set of typings of the defined identifiers, is inferred); interface interchecking (when linking modules, typechecking is done just by looking at the interfaces); interface specialization (interface intrachecking may require to specialize the typing listed in the interfaces); principal interfaces (the principal typing property for the type system of modules); and separate typechecking (looking at the code of the modules does not provide more type information than looking at their interfaces). Then we illustrate some limitations of the "plain" framework and extend the module language and the type system in order to overcome these limitations. The decidability of the system is shown by providing algorithms for the fundamental operations involved in module intrachecking and interface interchecking. Ferruccio Damiani |
PPDP | 1 |
| 2003 | A Conjunctive Type System for Useless-Code EliminationabstractWe investigate the use of conjunctive non-standard type inference for the elimination of useless code in higher-order typed functional programs. In particular, we present a non-standard type assignment system for detecting useless code together with a mapping that simplifies a program by removing the useless code detected using the system. Ferruccio Damiani |
Math. Struct. Comput. Sci. | 1 |
| 2003 | Rank 2 intersection types for local definitions and conditional expressionsabstractWe propose a rank 2 intersection type system with new typing rules for local definitions (let-expressions and letrec-expressions) and conditional expressions (if-expressions and match-expressions). This is a further step towards the use of intersection types in "real" programming languages.The technique for typing local definitions relies entirely on the principal typing property (i.e. it does not depend on particulars of rank 2 intersection), so it can be applied to any system with principal typings. The technique for typing conditional expressions, which is based on the idea of introducing metrics on types to "limit the use" of the intersection type constructor in the types assigned to the branches of the conditionals, is instead tailored to rank 2 intersection. However, the underlying idea might also be useful for other type systems. Ferruccio Damiani |
ACM Trans. Program. Lang. Syst. | 1 |
| 2002 | Strictness, totality, and non-standard-type inference
Mario Coppo, Ferruccio Damiani, Paola Giannini |
Theor. Comput. Sci. | 2 |
| 2002 | More dynamic object reclassification: Fickle||abstractReclassification changes the class membership of an object at run-time while retaining its identity. We suggest language features for object reclassification, which extend an imperative, typed, class-based, object-oriented language.We present our proposal through the language Fickle ⋄⋄ . The imperative features, combined with the requirement for a static and safe type system, provided the main challenges. We develop a type and effect system for Fickle ⋄⋄ and prove its soundness with respect to the operational semantics. In particular, even though objects may be reclassified across classes with different members, there will never be an attempt to access nonexisting members. Sophia Drossopoulou, Ferruccio Damiani, Mariangiola Dezani-Ciancaglini, Paola Giannini |
ACM Trans. Program. Lang. Syst. | 2 |
| 2001 | Fickle : Dynamic Object Re-classification
Sophia Drossopoulou, Ferruccio Damiani, Mariangiola Dezani-Ciancaglini, Paola Giannini |
ECOOP | 2 |
| 2000 | Typing Local Definitions and Conditional Expressions with Rank 2 Intersection
Ferruccio Damiani |
FoSSaCS | 1 |
| 2000 | Automatic useless-code elimination for HOT functional programsabstractIn this paper we present two type inference systems for detecting useless-code in higher-order typed functional programs. Type inference can be performed in an efficient and complete way, by reducing it to the solution of a system of constraints. We also give a useless-code elimination algorithm which is based on a combined use of these type inference systems. The main application of the technique is the optimization of programs extracted from proofs in logical frameworks, but it could be used as well in the elimination of useless-code determined by program transformations. Ferruccio Damiani, Paola Giannini |
J. Funct. Program. | 1 |
| 1999 | A filter model for mobile processes
Ferruccio Damiani, Mariangiola Dezani-Ciancaglini, Paola Giannini |
Math. Struct. Comput. Sci. | 1 |
| 1996 | Refinement Types for Program Analysis
Mario Coppo, Ferruccio Damiani, Paola Giannini |
SAS | 2 |