Matteo Orrù

Matteo Orrù
Università degli Studi di Milano-Bicocca | UNIMIB · Department of Computer Science, Systems and Communications

PhD

About

40
Publications
20,197
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
388
Citations
Introduction
Matteo Orrù currently works at the Department of Computer Science, Systems and Communications, Università degli Studi di Milano-Bicocca. Matteo does research in Software Engineering.
Additional affiliations
July 2016 - October 2017
Technion – Israel Institute of Technology
Position
  • Fellow
January 2013 - March 2016
University of Cagliari
Position
  • PhD Student

Publications

Publications (40)
Article
Field testing refers to testing techniques that operate in the field to reveal those faults that escape in-house testing. Field testing techniques are becoming increasingly popular with the growing complexity of contemporary software systems. In this article, we present the first systematic survey of field testing approaches over a body of 80 colle...
Preprint
Full-text available
The ecosystem in which mobile applications run is highly heterogeneous and configurable. All layers upon which mobile apps are built offer wide possibilities of variations, from the device and the hardware, to the operating system and middleware, up to the user preferences and settings. Testing all possible configurations exhaustively, before relea...
Conference Paper
Full-text available
Mobile apps can be executed with a huge set of partially unpredictable configurations. Indeed, they can be executed on an unbounded combination of devices, operating systems, settings, and user preferences. Apps may also interact with other apps that were not even available when they were released. This results in a virtually infinite set of config...
Preprint
Full-text available
Cloud systems are complex, large, and dynamic systems whose behavior must be continuously analyzed to timely detect misbehaviors and failures. Although there are solutions to flexibly monitor cloud systems, cost-effectively controlling the anomaly detection logic is still a challenge. In particular, cloud operators may need to quickly change the ty...
Conference Paper
Cloud systems are large scalable distributed systems that must be carefully monitored to timely detect problems and anomalies. While a number of cloud monitoring frameworks are available, only a few solutions address the problem of adaptively and dynamically selecting the indicators that must be collected, based on the actual needs of the operator....
Article
Patterns, micro-patterns, and nano-patterns have many applications: program comprehension, code transformations, documentation aids, improving code robustness, etc. This work revisits the notion of nano-patterns—originally an obiter dictum of the work on micro-patterns. Nano-patterns here are taken as more general than their previous definition in...
Conference Paper
Full-text available
Smart Cities represent the future of urban aggregation, where a multitude of heterogeneous systems and IoT devices interact to provide a safer, more efficient, and greener environment. The vision for smart cities is adapting accordingly to the evolution of software and IoT based services. The current trend is not to have a big comprehensive system,...
Preprint
Full-text available
This paper presents two new challenges for the Telco ecosystem transformation in the era of cloud-native microservice-based architectures. (1) Development-for-Operations (Dev-for-Operations) impacts not only the overall workflow for deploying a Platform as a Service (PaaS) in an open foundry environment, but also the Telco business as well as opera...
Preprint
Full-text available
Smart Cities are future urban aggregations, where a multitude of heterogeneous systems and IoT devices interact to provide a safer, more efficient, and greener environment. The vision of smart cities is adapting accordingly to the evolution of software and IoT based services. The current trend is not to have a big comprehensive system, but a pletho...
Conference Paper
Full-text available
Platform-As-A-Service (PaaS) systems offer customers a rich environment in which to build, deploy, and run applications. Today's PaaS offerings are tailored mainly to the needs of web and mobile applications developers, and involve a fairly rigid stack of components and features. The vision of the H2020 5GPPP Phase 2 Next Generation Platform-as-a-S...
Conference Paper
Full-text available
This paper presents two new challenges for the Telco ecosystem transformation in the era of cloud-native microservice-based architectures. (1) Development-for-Operations (Dev-for-Operations) impacts not only the overall workflow for deploying a Platform as a Service (PaaS) in an open foundry environment, but also the Telco business as well as opera...
Article
Full-text available
Cloud systems are complex and large systems where services provided by different operators must coexist and eventually cooperate. In such a complex environment, controlling the health of both the whole environment and the individual services is extremely important to timely and effectively react to misbehaviours, unexpected events, and failures. Al...
Preprint
Cloud systems are complex and large systems where services provided by different operators must coexist and eventually cooperate. In such a complex environment, controlling the health of both the whole environment and the individual services is extremely important to timely and effectively react to misbehaviours, unexpected events, and failures. Al...
Article
Full-text available
We present a study of 600 Java software networks with the aim of characterizing the relationship among their defectiveness and community metrics. We analyze the community structure of such networks , defined as their topological division into sub-networks of densely connected nodes. A high density of connections represents a higher level of coopera...
Article
Full-text available
A Blockchain is a global shared infrastructure where cryptocurrency transactions among addresses are recorded, validated and made publicly available in a peer- to-peer network. To date the best known and important cryptocurrency is the bitcoin. In this paper we focus on this cryptocurrency and in particular on the modeling of the Bitcoin Blockchain...
Preprint
A Blockchain is a global shared infrastructure where cryptocurrency transactions among addresses are recorded, validated and made publicly available in a peer- to-peer network. To date the best known and important cryptocurrency is the bitcoin. In this paper we focus on this cryptocurrency and in particular on the modeling of the Bitcoin Blockchain...
Article
Full-text available
Pluggable controllers are a different way to design control constructors such as if, while, do, switch, and operators such as short circuit con-junction (&&) and the “?.” operator of the Swift programming language. Adoption of pluggable controllers enables the final user to modify and extend the control flow constructs (if, while, etc.) of an under...
Conference Paper
Full-text available
Spartan programming is a coding style which tries to minimize the elements of code, like in a laconic speech. In the context of code, the minimized elements of speech include lines, characters, arguments, nesting use of ifs and whiles, etc. The style is achieved by the process of repeated application of code transformation techniques, or refactorin...
Conference Paper
Full-text available
The Spartanizer is an eclipse plugin featuring over one hundred and fifty refactoring techniques, all aimed at reducing various size complexity of the code, without changing its design, i.e., inheritance relations, modular structure, etc. Typical use case of the Spartanizer is in an automatic mode: refactoring operations are successively selected a...
Conference Paper
Full-text available
Refactoring is the practice of changing source code without altering its external behavior. It is widely used since it is acknowledged to have a positive effect on software quality. However, different studies on the impact of Refactoring on software quality led to contrasting results. This might be due also to the fact that research works on Refact...
Conference Paper
Refactoring, the activity of changing source code design without affecting its external behavior, is a widely used practice among developers, since it is considered to positively affect the quality of software systems. However, there are some "human factors" to be considered while performing refactoring, including developers knowledge of systems ar...
Conference Paper
Full-text available
In this work we present an empirical study on the use of inheritance in a curated corpus of Python systems. Replicating a study preformed on Java, we analyzed a collection of 51 software systems written in Python, and investigated how inheritance is effectively used by Python developers in practice through a convenient set of inheritance metrics. O...
Conference Paper
Full-text available
The aim of this paper is to present a dataset of metrics associated to the first release of a curated collection of Python software systems. We describe the dataset along with the adopted criteria and the issues we faced while building such corpus. This dataset can enhance the reliability of empirical studies, enabling their reproducibility, reduci...
Conference Paper
Full-text available
We used a complex network approach to study the evolution of a large software system, Eclipse, with the aim of statistically characterizing software defectiveness along the time. We studied the software networks associated to several releases of the system, focusing our attention specifically on their community structure, modularity and clustering...
Conference Paper
Full-text available
Refactoring is certainly one of the most widespread practices used by developers to improve software quality. During the last two decades, it has been the subject of an increasing number of research studies. But how much do we know about the trends, and the appearance of new topics, in the research field of refactoring? What have researchers found...
Conference Paper
Full-text available
Micro patterns can be a useful proxy for the quality of software. Classes matching certain categories of micro patterns were shown to be more fault prone than others, and those classes that do not correspond to any category of micro patterns were shown to be more likely to be faulty. In this paper we present a preliminary study of traditional softw...
Conference Paper
Full-text available
In a globalized economy, cultural heritage is a strong attractor. Thanks to ICT, it is possible to trigger new development dynamics. For cultural heritage, the contribution of new technologies can offer the highest degree of distribution and access opportunities. A modern museum can actually be seen as a complex ICT system, deeply interconnected, w...
Article
Full-text available
In this paper we present a case study about the clustering of maintenance activities applied on large software systems, from the complex networks perspective. We analyze several releases of two large Open Source Java software systems, using data extracted from Software Configuration Management systems and from Issue Tracking systems (ITS). We find...
Conference Paper
Full-text available
We present a study on the refactoring activities performed during the evolution of 7 popular Java open source software systems, using a complex network approach. We find that classes affected by refactorings are more likely to be interlinked than others, forming connected subgraphs. Our results show that in a software network, classes linked to ref...
Conference Paper
Full-text available
Refactoring is widely used among the practices of Agile software development. In this preliminary work we present an empirical study carried out on several releases of 5 software systems written in Java. We focus our attention on the effect of refactoring activities on the topology of the software network. We find that refactoring activities involv...
Conference Paper
Full-text available
This paper presents a case study of a large software system, Netbeans 6.0, made of independent subsystems, which are analyzed as complex software networks. Starting from the source code we built the associated software graphs, where classes represent graph nodes and inter-class relationships represent graph edges. We computed various metrics for th...

Network

Cited By