Giordano Tamburrelli

dblp:02/2374 · DBLP profile ↗
← Back
26ranked-venue papers
1as first author
0since 2021 · last 2018
—ORCID · none

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

Software engineering, systems software and programming languages · 22 · 1 first-authorArtificial intelligence and machine learning · 2 · 1 first-authorSystems, architecture and hardware · 1Computer networks · 1Theory of computation · 1Applied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
13 papers
Requirements engineering and software design · 29% Program verification · 28% Services computing and microservices · 14%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Cloud and datacenter computing · 100%

Topics — the 20 heaviest of 25, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program verification › model checking
probabilistic model checking
0.752016
Supporting Self-Adaptation via Quantitative Verification and Sensitivity Analysis at Run Time · IEEE Trans. Software Eng. 2016
Reliability of Run-Time Quality-of-Service evaluation using parametric model checking · ICSE 2016
Run-time efficient probabilistic model checking · ICSE 2011
Requirements engineering and software design › software architecture
self-adaptive systems
0.452016
Managing non-functional uncertainty via model-driven adaptivity · ICSE 2013
Run-time efficient probabilistic model checking · ICSE 2011
Supporting Self-Adaptation via Quantitative Verification and Sensitivity Analysis at Run Time · IEEE Trans. Software Eng. 2016
Software maintenance and evolution
dynamic software updating
0.312017
Automating Live Update for Generic Server Programs · IEEE Trans. Software Eng. 2017
Operating systems
live update
0.312017
Automating Live Update for Generic Server Programs · IEEE Trans. Software Eng. 2017
Program verification
model checking
0.212016
Supporting Self-Adaptation via Quantitative Verification and Sensitivity Analysis at Run Time · IEEE Trans. Software Eng. 2016
Program verification › model checking › probabilistic model checking
parametric model checking
0.212016
Reliability of Run-Time Quality-of-Service evaluation using parametric model checking · ICSE 2016
Requirements engineering and software design
non-functional requirements
0.222016
Managing non-functional uncertainty via model-driven adaptivity · ICSE 2013
Supporting Self-Adaptation via Quantitative Verification and Sensitivity Analysis at Run Time · IEEE Trans. Software Eng. 2016
Requirements engineering and software design
software architecture
0.222015
Managing non-functional uncertainty via model-driven adaptivity · ICSE 2013
Reactive Programming: A Walkthrough · ICSE (2) 2015
Requirements engineering and software design › design process
design space exploration
0.212015
Search-Based Synthesis of Probabilistic Models for Quality-of-Service Software Engineering (T) · ASE 2015
Requirements engineering and software design › non-functional requirements
quality-of-service requirements
0.212015
Search-Based Synthesis of Probabilistic Models for Quality-of-Service Software Engineering (T) · ASE 2015
Programming languages and type systems › programming paradigms
reactive programming
0.212015
Reactive Programming: A Walkthrough · ICSE (2) 2015
Program analysis › specification mining
behavioral model inference
0.212014
Mining behavior models from user-intensive web applications · ICSE 2014
Empirical software engineering
mining software repositories
0.212014
Mining behavior models from user-intensive web applications · ICSE 2014
Services computing and microservices › service composition
declarative service composition
0.112012
SelfMotion: a declarative language for adaptive service-oriented mobile apps · SIGSOFT FSE 2012
Services computing and microservices
service composition
0.112012
SelfMotion: a declarative language for adaptive service-oriented mobile apps · SIGSOFT FSE 2012
Program verification › dynamic verification
runtime verification
0.112011
Run-time efficient probabilistic model checking · ICSE 2011
Services computing and microservices › service-oriented architecture
service-oriented systems
0.112011
Dynamic QoS Management and Optimization in Service-Based Systems · IEEE Trans. Software Eng. 2011
Requirements engineering and software design
model-driven engineering
0.112009
Model evolution by run-time parameter adaptation · ICSE 2009
Runtime systems and virtual machines
garbage collection
0.112017
Automating Live Update for Generic Server Programs · IEEE Trans. Software Eng. 2017
Automated reasoning and model checking › model checking
probabilistic model checking
0.112015
Search-Based Synthesis of Probabilistic Models for Quality-of-Service Software Engineering (T) · ASE 2015

Methods — techniques the papers use, named apart from their topics

statistical inference · 0.5parametric model checking · 0.5search-based software engineering · 0.4multi-objective genetic algorithm · 0.4probabilistic model checking · 0.3conservative garbage collection · 0.3checkpoint-restart · 0.3sensitivity analysis · 0.2quantitative verification · 0.2markov model inference · 0.2preliminary experiment · 0.2gamification design · 0.2statistical change-point detection · 0.1
YearPublicationVenuePosition
2018 Synthesis of probabilistic models for quality-of-service software engineering
abstract
An increasingly used method for the engineering of software systems with strict quality-of-service (QoS) requirements involves the synthesis and verification of probabilistic models for many alternative architectures and instantiations of system parameters. Using manual trial-and-error or simple heuristics for this task often produces suboptimal models, while the exhaustive synthesis of all possible models is typically intractable. The EvoChecker search-based software engineering approach presented in our paper addresses these limitations by employing evolutionary algorithms to automate the model synthesis process and to significantly improve its outcome. EvoChecker can be used to synthesise the Pareto-optimal set of probabilistic models associated with the QoS requirements of a system under design, and to support the selection of a suitable system architecture and configuration. EvoChecker can also be used at runtime, to drive the efficient reconfiguration of a self-adaptive software system. We evaluate EvoChecker on several variants of three systems from different application domains, and show its effectiveness and applicability.
Simos Gerasimou, Radu Calinescu, Giordano Tamburrelli
Autom. Softw. Eng.3
2017 Automating Live Update for Generic Server Programs
abstract
The pressing demand to deploy software updates without stopping running programs has fostered much research on live update systems in the past decades. Prior solutions, however, either make strong assumptions on the nature of the update or require extensive and error-prone manual effort, factors which discourage the adoption of live update. This paper presentsMutable Checkpoint-Restart(MCR), a new live update solution for generic (multiprocess and multithreaded) server programs written in C. Compared to prior solutions, MCR can support arbitrary software updates and automate most of the common live update operations. The key idea is to allow the running version to safely reach a quiescent state and then allow the new version to restart as similarly to a fresh program initialization as possible, relying on existing code paths to automatically restore the old program threads and reinitialize a relevant portion of the program data structures. To transfer the remaining data structures, MCR relies on a combination of precise and conservative garbage collection techniques to trace all the global pointers and apply the required state transformations on the fly. Experimental results on popular server programs (Apache httpd,nginx,OpenSSHandvsftpd) confirm that our techniques can effectively automate problems previously deemed difficult at the cost of negligible performance overhead (2 percent on average) and moderate memory overhead (3.9$\times$on average, without optimizations).
Cristiano Giuffrida, Calin Iorgulescu, Giordano Tamburrelli, Andrew S. Tanenbaum
IEEE Trans. Software Eng.3
2016 Reliability of Run-Time Quality-of-Service evaluation using parametric model checking
abstract
Run-time Quality-of-Service (QoS) assurance is crucial for business-critical systems. Complex behavioral performance metrics (PMs) are useful but often difficult to monitor or measure. Probabilistic model checking, especially parametric model checking, can support the computation of aggregate functions for a broad range of those PMs. In practice, those PMs may be defined with parameters determined by run-time data. In this paper, we address the reliability of QoS evaluation using parametric model checking. Due to the imprecision with the instantiation of parameters, an evaluation outcome may mislead the judgment about requirement violations. Based on a general assumption of run-time data distribution, we present a novel framework that contains light-weight statistical inference methods to analyze the reliability of a parametric model checking output with respect to an intuitive criterion. We also present case studies in which we test the stability and accuracy of our inference methods and describe an application of our framework to a cloud server management problem.
Guoxin Su, David S. Rosenblum, Giordano Tamburrelli
ICSE3
2016 Formal Verification With Confidence Intervals to Establish Quality of Service Properties of Software Systems
abstract
Formal verification is used to establish the compliance of software and hardware systems with important classes of requirements. System compliance with functional requirements is frequently analyzed using techniques such as model checking, and theorem proving. In addition, a technique called quantitative verification supports the analysis of the reliability, performance, and other quality-of-service (QoS) properties of systems that exhibit stochastic behavior. In this paper, we extend the applicability of quantitative verification to the common scenario when the probabilities of transition between some or all states of the Markov models analyzed by the technique are unknown, but observations of these transitions are available. To this end, we introduce a theoretical framework, and a tool chain that establish confidence intervals for the QoS properties of a software system modelled as a Markov chain with uncertain transition probabilities. We use two case studies from different application domains to assess the effectiveness of the new quantitative verification technique. Our experiments show that disregarding the above source of uncertainty may significantly affect the accuracy of the verification results, leading to wrong decisions, and low-quality software systems.
Radu Calinescu, Carlo Ghezzi, Kenneth Johnson, Mauro Pezzè, Yasmin Rafiq, Giordano Tamburrelli
IEEE Trans. Reliab.6
2016 Supporting Self-Adaptation via Quantitative Verification and Sensitivity Analysis at Run Time
abstract
Modern software-intensive systems often interact with an environment whose behavior changes over time, often unpredictably. The occurrence of changes may jeopardize their ability to meet the desired requirements. It is therefore desirable to design software in a way that it can self-adapt to the occurrence of changes with limited, or even without, human intervention. Self-adaptation can be achieved by bringing software models and model checking to run time, to support perpetual automatic reasoning about changes. Once a change is detected, the system itself can predict if requirements violations may occur and enable appropriate counter-actions. However, existing mainstream model checking techniques and tools were not conceived for run-time usage; hence they hardly meet the constraints imposed by on-the-fly analysis in terms of execution time and memory usage. This paper addresses this issue and focuses on perpetual satisfaction of non-functional requirements, such as reliability or energy consumption. Its main contribution is the description of a mathematical framework for run-time efficient probabilistic model checking. Our approach statically generates a set of verification conditions that can be efficiently evaluated at run time as soon as changes occur. The proposed approach also supports sensitivity analysis, which enables reasoning about the effects of changes and can drive effective adaptation strategies.
Antonio Filieri, Giordano Tamburrelli, Carlo Ghezzi
IEEE Trans. Software Eng.2
2015 Reactive Programming: A Walkthrough
abstract
Over the last few years, Reactive Programming has emerged as the trend to support the development of reactive software through dedicated programming abstractions. Reactive Programming has been increasingly investigated in the programming languages community and it is now gaining the interest of practitioners. Conversely, it has received so far less attention from the software engineering community. This technical briefing bridges this gap through an accurate overview of Reactive Programming, discussing the available frameworks and outlining open research challenges with an emphasis on cross-field research opportunities.
Guido Salvaneschi, Alessandro Margara, Giordano Tamburrelli
ICSE (2)3
2015 Search-Based Synthesis of Probabilistic Models for Quality-of-Service Software Engineering (T)
abstract
The formal verification of finite-state probabilistic models supports the engineering of software with strict quality-of-service (QoS) requirements. However, its use in software design is currently a tedious process of manual multiobjective optimisation. Software designers must build and verify probabilistic models for numerous alternative architectures and instantiations of the system parameters. When successful, they end up with feasible but often suboptimal models. The EvoChecker search-based software engineering approach and tool introduced in our paper employ multiobjective optimisation genetic algorithms to automate this process and considerably improve its outcome. We evaluate EvoChecker for six variants of two software systems from the domains of dynamic power management and foreign exchange trading. These systems are characterised by different types of design parameters and QoS requirements, and their design spaces comprise between 2E+14 and 7.22E+86 relevant alternative designs. Our results provide strong evidence that EvoChecker significantly outperforms the current practice and yields actionable insights for software designers.
Simos Gerasimou, Giordano Tamburrelli, Radu Calinescu
ASE2
2015 Performance-driven dynamic service selection
abstract
Summary Modern software systems are increasingly built by integrating different services implemented by independent organizations and offered in an open service marketplace. In such environment, multiple providers may compete with each other by publishing services that provide the same functionality, and export the same interface, but differ in the offered QoS and in particular in the offered performance. Clients and service integrators may therefore dynamically select the most efficient services that satisfy their requirements among the competing alternatives. Service selection may be performed by clients by following different strategies, which may ultimately affect the overall quality of service invocations. In this paper, we address the problem of analyzing and comparing different service selection strategies based on a framework that supports performance estimates. We report on quantitative analyses through simulations, highlighting advantages and limitations of each strategy. Copyright © 2014 John Wiley & Sons, Ltd.
Carlo Ghezzi, Valerio Panzica La Manna, Alfredo Motta, Giordano Tamburrelli
Concurr. Comput. Pract. Exp.4
2014 Mining behavior models from user-intensive web applications
abstract
Many modern user-intensive applications, such as Web applications, must satisfy the interaction requirements of thousands if not millions of users, which can be hardly fully understood at design time. Designing applications that meet user behaviors, by efficiently supporting the prevalent navigation patterns, and evolving with them requires new approaches that go beyond classic software engineering solutions. We present a novel approach that automates the acquisition of user-interaction requirements in an incremental and reflective way. Our solution builds upon inferring a set of probabilistic Markov models of the users' navigational behaviors, dynamically extracted from the interaction history given in the form of a log file. We annotate and analyze the inferred models to verify quantitative properties by means of probabilistic model checking. The paper investigates the advantages of the approach referring to a Web application currently in use.
Carlo Ghezzi, Mauro Pezzè, Michele Sama, Giordano Tamburrelli
ICSE4
2014 Mining unit tests for code recommendation
abstract
Developers spend a significant portion of their time understanding and learning the correct usage of the APIs of libraries they want to integrate in their projects. However, learning how to effectively use APIs is complex and time consuming. Code recommendation systems play a crucial role facilitating developers in this task by providing to them relevant examples while they code. This paper proposes a novel approach to code recommendation in which code examples are automatically obtained by mining and manipulating unit tests. In this paper we discuss the theoretical and practical implications that underpin this idea. The discussion leads to a series of fascinating research challenges that we organized in a research agenda.
Mohammad Ghafari, Carlo Ghezzi, Andrea Mocci, Giordano Tamburrelli
ICPC4
2014 Towards Automated A/B Testing
Giordano Tamburrelli, Alessandro Margara
SSBSE1
2014 SelfMotion: A declarative approach for adaptive service-oriented mobile applications
Gianpaolo Cugola, Carlo Ghezzi, Leandro Sales Pinto, Giordano Tamburrelli
J. Syst. Softw.4
2013 Managing non-functional uncertainty via model-driven adaptivity
abstract
Modern software systems are often characterized by uncertainty and changes in the environment in which they are embedded. Hence, they must be designed as adaptive systems. We propose a framework that supports adaptation to non-functional manifestations of uncertainty. Our framework allows engineers to derive, from an initial model of the system, a finite state automaton augmented with probabilities. The system is then executed by an interpreter that navigates the automaton and invokes the component implementations associated to the states it traverses. The interpreter adapts the execution by choosing among alternative possible paths of the automaton in order to maximize the system's ability to meet its non-functional requirements. To demonstrate the adaptation capabilities of the proposed approach we implemented an adaptive application inspired by an existing worldwide distributed mobile application and we discussed several adaptation scenarios.
Carlo Ghezzi, Leandro Sales Pinto, Paola Spoletini, Giordano Tamburrelli
ICSE4
2013 Improving Interaction with Services via Probabilistic Piggybacking
Carlo Ghezzi, Mauro Pezzè, Giordano Tamburrelli
ICSOC3
2013 Adaptive REST applications via model inference and probabilistic model checking
Carlo Ghezzi, Mauro Pezzè, Giordano Tamburrelli
IM3
2013 Understanding gamification mechanisms for software development
abstract
In this paper we outline the idea to adopt gamification techniques to engage, train, monitor, and motivate all the players involved in the development of complex software artifacts, from the inception to the deployment and maintenance. The paper introduces the concept of gamification and proposes a research approach to understand how its principles may be successfully applied to the process of software development. Applying gamification to software engineering is not as straightforward as it may appear since it has to be casted to the peculiarities of this domain. Existing literature in the area has already recognized the possible use of such technology in the context of software development, however how to design and use gamification in this context is still an open question. This leads to several research challenges which are organized in a fascinating research agenda that is part of the contribution of this paper. Finally, to support the proposed ideas we present a preliminary experiment that shows the effect of gamification on the performance of students involved in a software engineering project.
Daniel J. Dubois, Giordano Tamburrelli
ESEC/SIGSOFT FSE2
2012 Adaptive Service-Oriented Mobile Applications: A Declarative Approach
Gianpaolo Cugola, Carlo Ghezzi, Leandro Sales Pinto, Giordano Tamburrelli
ICSOC4
2012 QoS-Aware Adaptive Service Orchestrations
abstract
Service Oriented Computing enables distributed applications that orchestrate existing services exported by remote providers. This paradigm requires to explicitly handle possible changes that may affect the orchestration. They include changes that impact its functional behavior (e.g., services being retired by their providers), but also changes in the non-functional behavior of the orchestrated services (e.g., an increased execution time). In the past we developed DSOL: it combines a declarative language to model the orchestration with planning mechanisms to decide at run-time the best flow of actions. In this paper we extend DSOL to support QoS attributes and requirements. In particular, we combine the DSOL planning techniques with a linear optimizer to calculate the optimal plan w.r.t. the QoS requirements. Moreover, we leverage the DSOL ability to adapt the orchestration flow at run-time, to further optimize the QoS perceived by the end users depending on the actual situations encountered.
Gianpaolo Cugola, Leandro Sales Pinto, Giordano Tamburrelli
ICWS3
2012 SelfMotion: a declarative language for adaptive service-oriented mobile apps
abstract
In this demo we present SelfMotion: a declarative language and a run-time system conceived to support the development of adaptive, mobile applications, built as compositions of ad-hoc components, existing services and third party applications. The advantages of the approach and the adaptive capabilities of SelfMotion are demonstrated in the demo by designing and executing a mobile application inspired by an existing, worldwide distributed, mobile application.
Gianpaolo Cugola, Carlo Ghezzi, Leandro Sales Pinto, Giordano Tamburrelli
SIGSOFT FSE4
2012 A formal approach to adaptive software: continuous assurance of non-functional requirements
abstract
Abstract Modern software systems are increasingly requested to be adaptive to changes in the environment in which they are embedded. Moreover, adaptation often needs to be performed automatically, through self-managed reactions enacted by the application at run time. Off-line, human-driven changes should be requested only if self-adaptation cannot be achieved successfully. To support this kind of autonomic behavior, software systems must be empowered by a rich run-time support that can monitor the relevant phenomena of the surrounding environment to detect changes, analyze the data collected to understand the possible consequences of changes, reason about the ability of the application to continue to provide the required service, and finally react if an adaptation is needed. This paper focuses on non-functional requirements, which constitute an essential component of the quality that modern software systems need to exhibit. Although the proposed approach is quite general, it is mainly exemplified in the paper in the context of service-oriented systems, where the quality of service (QoS) is regulated by contractual obligations between the application provider and its clients. We analyze the case where an application, exported as a service, is built as a composition of other services. Non-functional requirements—such as reliability and performance—heavily depend on the environment in which the application is embedded. Thus changes in the environment may ultimately adversely affect QoS satisfaction. We illustrate an approach and support tools that enable a holistic view of the design and run-time management of adaptive software systems. The approach is based on formal (probabilistic) models that are used at design time to reason about dependability of the application in quantitative terms. Models continue to exist at run time to enable continuous verification and detection of changes that require adaptation.
Antonio Filieri, Carlo Ghezzi, Giordano Tamburrelli
Formal Aspects Comput.3
2011 Run-time efficient probabilistic model checking
abstract
Unpredictable changes continuously affect software systems and may have a severe impact on their quality of service, potentially jeopardizing the system's ability to meet the desired requirements. Changes may occur in critical components of the system, clients' operational profiles, requirements, or deployment environments.
Antonio Filieri, Carlo Ghezzi, Giordano Tamburrelli
ICSE3
2011 Dynamic QoS Management and Optimization in Service-Based Systems
abstract
Service-based systems that are dynamically composed at runtime to provide complex, adaptive functionality are currently one of the main development paradigms in software engineering. However, the Quality of Service (QoS) delivered by these systems remains an important concern, and needs to be managed in an equally adaptive and predictable way. To address this need, we introduce a novel, tool-supported framework for the development of adaptive service-based systems called QoSMOS (QoS Management and Optimization of Service-based systems). QoSMOS can be used to develop service-based systems that achieve their QoS requirements through dynamically adapting to changes in the system state, environment, and workload. QoSMOS service-based systems translate high-level QoS requirements specified by their administrators into probabilistic temporal logic formulae, which are then formally and automatically analyzed to identify and enforce optimal system configurations. The QoSMOS self-adaptation mechanism can handle reliability and performance-related QoS requirements, and can be integrated into newly developed solutions or legacy systems. The effectiveness and scalability of the approach are validated using simulations and a set of experiments based on an implementation of an adaptive service-based system for remote medical assistance.
Radu Calinescu, Lars Grunske, Marta Z. Kwiatkowska, Raffaela Mirandola, Giordano Tamburrelli
IEEE Trans. Software Eng.5
2010 Change-point detection for black-box services
abstract
Modern software systems are increasingly built out of services that are developed, deployed, and operated by independent organizations, which expose them for use by potential clients. Services may be directly invoked by clients. They may also be composed by service integrators, who in turn expose the composite artifact as a new service. Continuous change is typical of this world. Providers may change services and the deployment infrastructure to meet continuously changing requirements and be more competitive. Clients may change their operational profiles. Changes have a severe impact on the quality of services.
Ilenia Epifani, Carlo Ghezzi, Giordano Tamburrelli
SIGSOFT FSE3
2009 Model evolution by run-time parameter adaptation
abstract
Models can help software engineers to reason about design-time decisions before implementing a system. This paper focuses on models that deal with non-functional properties, such as reliability and performance. To build such models, one must rely on numerical estimates of various parameters provided by domain experts or extracted by other similar systems. Unfortunately, estimates are seldom correct. In addition, in dynamic environments, the value of parameters may change over time. We discuss an approach that addresses these issues by keeping models alive at run time and feeding a Bayesian estimator with data collected from the running system, which produces updated parameters. The updated model provides an increasingly better representation of the system. By analyzing the updated model at run time, it is possible to detect or predict if a desired property is, or will be, violated by the running implementation. Requirement violations may trigger automatic reconfigurations or recovery actions aimed at guaranteeing the desired goals. We illustrate a working framework supporting our methodology and apply it to an example in which a Web service orchestrated composition is modeled through a discrete time Markov chain. Numerical simulations show the effectiveness of the approach.
Ilenia Epifani, Carlo Ghezzi, Raffaela Mirandola, Giordano Tamburrelli
ICSE4
2009 Reasoning on Non-Functional Requirements for Integrated Services
abstract
We focus on non-functional requirements for applications offered by service integrators; i.e., software that delivers service by composing services, independently developed, managed, and evolved by other service providers. In particular, we focus on requirements expressed in a probabilistic manner, such as reliability or performance. We illustrate a unified approach-a method and its support tools-which facilitates reasoning about requirements satisfaction as the system evolves dynamically. The approach relies on run-time monitoring and uses the data collected by the probes to detect if the behavior of the open environment in which the application is situated, such as usage profile or the external services currently bound to the application, deviates from the initially stated assumptions and whether this can lead to a failure of the application. This is achieved by keeping a model of the application alive at run time, automatically updating its parameters to reflect changes in the external world, and using the model's predictive capabilities to anticipate future failures, thus enabling suitable recovery plans.
Carlo Ghezzi, Giordano Tamburrelli
RE2
2008 Choosing a Software Architecture: An Approach and a Case Study
Carlo Ghezzi, Giordano Tamburrelli
SEKE2