-
R. Verdecchia, Philippe Kruchten, and P. Lago
Architectural Technical Debt: A Grounded Theory
European Conference on Software Architecture (ECSA), 2020.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{verdecchia2020ecsa,
title = "Architectural Technical Debt: A Grounded Theory",
abstract = "Architectural technical debt in a software-intensive system is driven by design decisions about its structure, frameworks, technologies,languages, etc. Unlike code-level technical debt, which can be readily detected by static analysers, and can often be refactored with minimal efforts, architectural debt is hard to detect, and its remediation is wide-ranging, daunting, and often avoided. The objective of this study is to develop a better understanding of how software development organisations conceptualize their architectural debt, and how they deal with it, if at all. We used a grounded theory method, eliciting qualitative data from software architects and senior technical staff from a wide range of software development organizations. The result of the study, i.e., the theory emerging from the collected data, constitutes an encompassing conceptual theory of architectural debt, identifying and relating concepts such as symptoms, causes, consequences, and management strategies. By grounding the findings in empirical data, the theory provides researchers and practitioners with evidence of which crucial factors of architectural technical debt are experienced in industrial contexts.",
author = "Verdecchia, R., Kruchten, P. and Patricia Lago",
year = "2020",
booktitle = "European Conference on Software Architecture (ECSA)"
}
Architectural technical debt in a software-intensive system is driven by design decisions about its structure, frameworks, technologies,languages, etc. Unlike code-level technical debt, which can be readily detected by static analysers, and can often be refactored with minimal efforts, architectural debt is hard to detect, and its remediation is wide-ranging, daunting, and often avoided. The objective of this study is to develop a better understanding of how software development organisations conceptualize their architectural debt, and how they deal with it, if at all. We used a grounded theory method, eliciting qualitative data from software architects and senior technical staff from a wide range of software development organizations. The result of the study, i.e., the theory emerging from the collected data, constitutes an encompassing conceptual theory of architectural debt, identifying and relating concepts such as symptoms, causes, consequences, and management strategies. By grounding the findings in empirical data, the theory provides researchers and practitioners with evidence of which crucial factors of architectural technical debt are experienced in industrial contexts.
-
R. Verdecchia, P. Lago, I. Malavolta, and I. Ozkaya
ATDx: Building an Architectural Technical Debt Index
Evaluation of Novel Approaches to Software Engineering (ENASE),
2020.
[Abstract]
[BibTeX]
[PDF]
[Slides]
@inproceedings{verdecchia2020vu,
title = {ATDx: Building an Architectural Technical Debt Index},
author = {Roberto Verdecchia and Patricia Lago and Ivano Malavolta and Ipek Ozkaya},
year = {2020},
booktitle = {Evaluation of Novel Approaches to Software Engineering (ENASE)}
}
Architectural technical debt (ATD) in software-intensive systems refers to the architecture design decisions which work as expedient in the short term, but later negatively impact system evolvability and maintainability. Over the years numerous approaches have been proposed to detect particular types of ATD at a refined level of granularity via source code analysis. Nevertheless, how to gain an encompassing overview of the ATD present in a software-intensive system is still an open question. In this study, we present a multi-step approach designed to build an ATD index (ATDx), which provides insights into a set of ATD dimensions building upon existing architectural rules by leveraging statistical analysis. The ATDx approach can be adopted by researchers and practitioners alike in order to gain a better understanding of the nature of the ATD present in software-intensive systems, and provides a systematic framework to implement concrete instances of ATDx according to specific project and organizational needs.
-
R. Verdecchia, P. Lago, I. Malavolta, and I. Ozkaya
ATDx: Prototype Implementation Technical Report
VU Technical Reports, 2020.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{verdecchia2020enase,
title = {ATDx: Prototype Implementation Technical Report},
author = {Roberto Verdecchia and Patricia Lago and Ivano Malavolta and Ipek Ozkaya},
year = {2020},
booktitle = {VU Technical Reports}
}
In this technical report we document a preliminary investigation carried out to evaluate the viability and the implementation feasibility of ATDx, and index designed to gain an overview of the architectural technical debt (ATD) present in a software-intensive system. We implement a prototype via the ATDx method by considering the source code static analysis tool SonarQube. This process is carried out by manually identifying 45 architectural rules, and subsequently applying the constructed prototype on a large-scale dataset composed of 6,706 open source Java-based projects. Among other results, this technical report provides insights into the benefits and drawbacks entailed by the concrete implementation of ATDx, the distribution of architectural debt across 6 distinct ATD dimensions (marked by the prominence of issues related to interfaces), and the correlation among the identified dimensions.
-
P. Lago, R. Verdecchia, N. Condori-Fernandez, E. Rahmadian, J. Sturm, T. van Nijnanten, R. Bosma, C. Debuysscher, and Paulo Ricardo
Designing for Sustainability: Lessons Learned from Four Industrial Projects
International Conference on Environmental Informatics (EnviroInfo), 2020.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{lago2020enviroinfo,
title = {Designing for Sustainability: Lessons Learned from Four Industrial Projects},
author = {Lago, Patricia and Verdecchia, Roberto and Condori-Fernandez, Nelly and Rahmadian, Eko and Sturm, Janina and van Nijnanten, Thijmen and Bosma, Rex and Debuysscher, Christophe and Ricardo, Paulo},
year = {2020},
booktitle = {International Conference on Environmental Informatics},
}
Scientific research addressing the relation between software and sustainability is slowly maturing in two focus areas, related to ‘sustainable software’ and ‘software for sustainability’. The first is better understood and may include research foci like energy efficient software and software maintainability. It most-frequently covers ‘technical’ concerns. The second, ‘software for sustainability’, is much broader in both scope and potential impact, as it entails how software can contribute to sustainability goals in any sector or application domain. Next to the technical concerns, it may also cover economic, social, and environmental sustainability.
Differently from researchers, practitioners are often not aware or well- trained in all four types of software sustainability concerns. To address this need, in previous work we have defined the Sustainability-Quality Assessment Framework (SAF) and assessed its viability via the analysis of a series of software projects. Nevertheless, it was never used by practitioners themselves, hence triggering the question: What can we learn from the use of SAF in practice? To answer this question, we report the results of practitioners applying the SAF to four industrial cases. The results show that the SAF helps practitioners in (1) creating a sustainability mindset in their practices, (2) uncovering the relevant sustainability-quality concerns for the software project at hand, and (3) reasoning about the inter-dependencies and trade-offs of such concerns as well as the related short- and long-term implications. Next to improvements for the SAF, the main lesson for us as researchers is the missing explicit link between the SAF and the (technical) architecture design.
-
F. Corò, R. Verdecchia, E. Cruciani, B. Miranda, and A. Bertolino
JTeC: A Large Collection of Java Test Classes for Test Code Analysis and Processing
International Conference on Mining Software Repositories (MSR), 2020.
[Abstract]
[BibTeX]
[PDF]
[Demo]
@inproceedings{coro2020msr,
title = {JTeC: A Large Collection of Java Test Classes for Test Code Analysis and Processing},
author = {Cor\`o, Federico and Verdecchia, Roberto and Cruciani, Emilio and Miranda, Breno and Bertolino, Antonia},
year = {2020},
booktitle = {International Conference on Mining Software Repositories},
}
The recent push towards test automation and test-driven develop- ment continues to scale up the dimensions of test code that needs to be maintained, analysed, and processed side-by-side with pro- duction code. As a consequence, on the one side regression testing techniques, e.g., for test suite prioritization or test case selection, capable to handle such large-scale test suites become indispensable; on the other side, as test code exposes own characteristics, specific techniques for its analysis and refactoring are actively sought. We present JTeC, a large-scale dataset of test cases that researchers can use for benchmarking the above techniques or any other type of tool expressly targeting test code. JTeC collects more than 2.5M test classes belonging to 31K+ GitHub projects and summing up to more than 430 Million SLOCs of ready-to-use real-world test code.
-
A. Bertolino , E. Cruciani, B. Miranda, and R. Verdecchia
Know Your Neighbor: Fast Static Prediction of Test Flakiness
ISTI Technical Reports, 2020.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{bertolino2020isti,
title = {Scalable Approaches for Test Suite Reduction},
author = {Cruciani, Emilio and Miranda, Breno and Verdecchia, Roberto and Bertolino, Antonia},
year = {2020},
booktitle = {ISTI Technical Reports},
doi = {10.32079/ISTI-TR-2020/001}
}
Flaky tests plague regression testing in Continuous Integration environments by slowing down change releases, wasting development effort, and also eroding testers trust in the test process. We present FLAST, the fast static approach to flakiness detection using test code similarity. Our extensive evaluation on 24 projects taken from repositories used in three previous studies showed that FLAST can identify flaky tests with up to 0.98 Median and 0.92 Mean precision. For six of those projects it could already yield ∼0.98 average precision values with a training set containing less than 100 tests. Besides, where known flaky tests are classified according to their causes, the same approach can also predict a flaky test category with alike precision values. The cost of the approach is negligible: the average train time over a dataset of ∼1,700 test methods is less than one second, while the average prediction time for a new test is less than one millisecond
-
E. Cruciani, B. Miranda, R. Verdecchia, A. Bertolino
Scalable Approaches for Test Suite Reduction
International Conference on Software Engineering (ICSE)
,
2019.
🏆
ACM SIGSOFT Distinguished Paper Award.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{cruciani2019FAST-R,
title = {Scalable Approaches for Test Suite Reduction},
author = {Cruciani, Emilio and Miranda, Breno and Verdecchia, Roberto and Bertolino, Antonia},
year = {2019},
booktitle = {Proceedings of the 40th International Conference on Software Engineering},
organization={IEEE Press}
}
Test suite reduction approaches aim at decreasing software regression testing costs by selecting a representative subset from large-size test suites. Most existing techniques are too expensive for handling modern massive systems and moreover depend on artifacts, such as code coverage metrics or specification models, that are not commonly available at large scale. We present a family of novel very efficient approaches for similaritybased test suite reduction that apply algorithms borrowed from the big data domain together with smart heuristics for finding an evenly spread subset of test cases. The approaches are very general since they only use as input the test cases themselves (test source code or command line input). We evaluate four approaches in a version that selects a fixed budget B of test cases, and also in an adequate version that does the reduction guaranteeing some fixed coverage. The results show that the approaches yield a fault detection loss comparable to state-of-the-art techniques, while providing huge gains in terms of efficiency. When applied to a suite of more than 500K real world test cases, the most efficient of the four approaches could select B test cases (for varying B values) in less than 10 seconds.
-
R. Verdecchia, I. Malavolta, and P. Lago
Guidelines for Architecting Android Apps: A mixed-method Empirical Study
International Conference on Software Architecture (ICSA),
2019.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{verdecchia2019icsa,
title = {Guidelines for Architecting Android Apps: A mixed-method Empirical Study},
author = {Roberto Verdecchia and Ivano Malavolta and Patricia Lago},
year = {2019},
booktitle = {International Conference on Software Architecture (ICSA))}
}
For surviving in the highly competitive market of Android apps, it is fundamental for app developers to deliver apps of high quality and with short release times. A well architected Android app is beneficial for developers, e.g. in terms of maintainability, testability, performance, and avoidance of resource leaks. However, how to properly architect Android apps is still debated and subject to conflicting opinions usually influenced by technological hypes rather than objective evidence. In this paper we present an empirical study on how developers architect Android apps, what architectural patterns and practices Android apps are based on, and their potential impact on quality. We apply a mixed-method empirical research design that combines (i) semi-structured interviews with Android practitioners in the field and (ii) a systematic analysis of both the grey (i.e., websites, on-line blogs) and white literature (i.e., academic studies) on the architecture of Android apps. Based on the analysis of the state of the art and practice about architecting Android apps, we systematically extract a set of 42 evidencebased guidelines supporting developers when architecting their Android apps.
-
P. Lago, Jia F. Cai, Remco C. de Boer, Philippe Kruchten, and
R. Verdecchia
DecidArch v2: An improved Game to teach Architecture Design Decision Making
International Workshop on decision Making in Software ARCHitecture (MARCH), 2019.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{deBoer2019MARCH,
title = "DecidArch: Playing Cards as Software Architects",
abstract = "Teaching software architecture is a challenge because of the difficulty to expose students to actual meaningful design situations. Games can provide a useful illustration of the design decision making process, and teach students the power of team interaction for making sound decisions.We introduce a game –DecidArch– developed to achieve three learning objectives: 1) create awareness about the rationale involved in design decision making, 2) enable appreciation of the reasoning behind candidate design decisions proposed by others, and 3) create awareness about interdependencies between design decisions.The game has been played by 22 groups with a total of 83 players, all of them students of the VU software architecture course. We present some of the lessons learned, both from our observation and through participant survey. We conclude that the game well supports our three learning objectives, and we identify several improvement points for future game editions.",
author = "{de Boer}, R.C., P. Lago, R. Verdecchia and Philippe Kruchten",
year = "2019",
booktitle = "3rd International Workshop on decision Making in Software ARCHitecture (MARCH)"
}
We report on the use of our DecidArch game to teach software architecture design decision making in two consecutive years. We compare the support of three learning goals for the first version of the game with the second, revised version. Results show how the game has clearly improved. For the remaining issues, we suggest final improvements.
-
P. Lago, Jia F. Cai, Remco C. de Boer, Philippe Kruchten, and
R. Verdecchia
DecidArch: Playing Cards as Software Architects
Hawaii International Conference on System Sciences, 2019.
🏆
Best Paper Award.
🏆
ISSIP-IBM-CBA Student Paper Award for Best Industry Studies Paper.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{lago2019hicss,
title = "DecidArch: Playing Cards as Software Architects",
abstract = "Teaching software architecture is a challenge because of the difficulty to expose students to actual meaningful design situations. Games can provide a useful illustration of the design decision making process, and teach students the power of team interaction for making sound decisions.We introduce a game –DecidArch– developed to achieve three learning objectives: 1) create awareness about the rationale involved in design decision making, 2) enable appreciation of the reasoning behind candidate design decisions proposed by others, and 3) create awareness about interdependencies between design decisions.The game has been played by 22 groups with a total of 83 players, all of them students of the VU software architecture course. We present some of the lessons learned, both from our observation and through participant survey. We conclude that the game well supports our three learning objectives, and we identify several improvement points for future game editions.",
author = "P. Lago and Cai, {Jia F.} and {de Boer}, R.C. and Philippe Kruchten and R. Verdecchia",
year = "2018",
booktitle = "52nd Hawaii International Conference on System Sciences (HICSS)"
}
Teaching software architecture is a challenge because of the difficulty to expose students to actual meaningful design situations. Games can provide a useful illustration of the design decision making process, and teach students the power of team interaction for making sound decisions.We introduce a game –DecidArch– developed to achieve three learning objectives: 1) create awareness about the rationale involved in design decision making, 2) enable appreciation of the reasoning behind candidate design decisions proposed by others, and 3) create awareness about interdependencies between design decisions.The game has been played by 22 groups with a total of 83 players, all of them students of the VU software architecture course. We present some of the lessons learned, both from our observation and through participant survey. We conclude that the game well supports our three learning objectives, and we identify several improvement points for future game editions.
-
R. Verdecchia, I. Malavolta, and P. Lago
Architectural Technical Debt Identification: The Research Landscape
International Conference on Technical Debt (TechDebt),
2018.
[Abstract]
[BibTeX]
[PDF]
[Slides]
@inproceedings{verdecchia2018techdebt,
title = {Architectural Technical Debt Identification: The Research Landscape},
keywords = {Software Engineering, Software Architecture, Technical Debt, Systematic Mapping Study},
author = {Roberto Verdecchia and Ivano Malavolta and Patricia Lago},
year = {2018},
booktitle = {International Conference on Technical Debt (TechDebt)}
}
Architectural Technical Debt (ATD) regards sub-optimal design decisions that bring short-term benefits to the cost of long-term gradual deterioration of the quality of the software architecture. The identication of ATD strongly influences the technical and economic sustainability of software systems and is attracting growing interest in the scientific community. During the years several approaches for ATD identification have been conceived. Each of them, however, addresses ATD from different perspectives and with heterogeneous characteristics.
In this paper we present a systematic mapping study on ATD identification. Our goal is to identify, classify, and evaluate the state of the art on ATD identification from the following three perspectives: publication trends, characteristics, and potential for industrial adoption. Specifically, starting from a set of 509 potentially relevant studies, we systematically selected 47 primary studies and analyzed them according to a rigorously predefined classification framework.
The analysis of the obtained results will support both researchers and practitioners by providing (i) an assessment of current research trends and gaps in ATD identification, (ii) a solid foundation for understanding existing (and future) research, and (iii) a rigorous evaluation of its potential for industrial adoption.
-
I. Malavolta, R. Verdecchia, M. Bruntink
, B. Filipovic and P. Lago
On the Evolution of Maintainability Issues of Android Applications
IEEE International Conference on Software Maintenance and Evolution (ICSME),
2018.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{malavolta2018icsme,
title = {On the Evolution of Maintainability Issues of Android Applications},
keywords = {Software Engineering, Software Maintenance, Android Application},
author = {IVano Malavolta, Roberto Verdecchia, Magiel Bruntink, Bojan Filipovic and Patricia Lago},
year = {2018},
booktitle = {International Conference on Software Maintenance and Evolution (ICSME)}
}
Context. Android is the largest mobile platform today, with thousands of apps published and updated in the Google Play store everyday. Maintenance is an important factor in Android apps lifecycle, as it allows developers to constantly expand their apps and better tailor them to their user base.
Goal. In this paper we investigate the evolution of various maintainability issues along the lifetime of Android apps.
Method. We designed and conducted an empirical study on 434 GitHub repositories containing open, real (i.e., published in the Google Play store), and actively maintained Android apps. We statically analyzed 9,945 weekly snapshots of all apps for identifying their maintainability issues over time. We also identified maintainability hotspots along the lifetime of Android apps according to how their density of maintainability issues evolves over time. More than 2,000 GitHub commits belonging to identified hotspots have been manually categorized to understand the context in which maintainability hotspots occur.
Results. Our results shed light on (i) how often various types of maintainability issues occur over the lifetime of Android apps, (ii) the stationarity and trends maintainability issue density of Android apps over time, and (iii) an in-depth characterization of development activities related to maintainability hotspots. Conclusions. Independently from the type of development activ- ity, maintainability issues grow until they stabilize, but are never fully resolved.
-
R. Verdecchia, R. A. Saez, Giuseppe Procaccianti, and P. Lago
Empirical Evaluation of the Energy Impact of Refactoring Code Smells
International Conference on ICT for Sustainability (ICT4S),
2018.
🏆
Runner-up Best Paper Award.
[Abstract]
[BibTeX]
[PDF]
@inbook{verdecchia2018codeSmells,
title = "Empirical Evaluation of the Energy Impact of Refactoring Code Smells",
keywords = "Software Engineering, sustainability, energy efficiency",
author = "Roberto Verdecchia and Saez, {Rene' Aparicio} and Giuseppe Procaccianti and Patricia Lago",
year = "2018",
month = "5",
series = "ICT4S",
booktitle = "International Conference on ICT for Sustainability"
}
Software energy efficiency has gained the increasing attention of the research community. How to improve it, however, still lacks evidence. Specifically, the impact of code smell refactoring on energy efficiency has been scarcely investigated. In the exploratory study here reported, we investigate the impact on performance and energy consumption of refactoring well-known code smells on Java software applications. In order to understand if software metrics can be used as indicators of the energy impact of refactoring, we also measured the variation caused by refactoring on a set of well-established software metrics. We conducted a controlled experiment using state-of-the-art power measurement equipment. Statistical hypothesis testing and effect size estimation were performed on the experimental results, which show that in one out of three applications, refactoring each smell significantly impacted power- and energy consumption. E.g., refactoring Feature Envy and Long Method smells led to a 49% energy efficiency improvement. No software metric, however, significantly correlated with execution time, power or energy consumption. In conclusion, refactoring code smells resulted to be a viable process to significantly improve software energy efficiency. The magnitude of the impact may depend on application properties, e.g. size or age. Further research is needed
to understand the relationship between software metrics and energy efficiency.
-
R. Verdecchia, A. Guldner, Y. Becker, and E. Kern
Code-level Energy Hotspot Localization via Naive Spectrum Based Testing
International Conference On Enviromental Informatics (EnviroInfo), 2018.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{verdecchia2018enviroinfo,
title = {Code-level Energy Hotspot Localizationvia Naive Spectrum Based Testing},
keywords = {Software Energy Efficiency; Software Testing; Empirical Software Engineering;},
author = {Roberto Verdecchia and Achim Guldner and Yannick Becker and Eva Kern},
year = {2018},
booktitle = {International Conference On Enviromental Informatics}
}
With the growing adoption of ICT solutions, the requirement for developing energy efficient software becomes increasingly important. Current methods aimed at analyzing energy demanding portions of code, referred to as ``energy hotspots'', often require ad-hoc analyses that constitute an additional process in the development life cycle. This leads to the scarce adoption of such methods in practice, leaving an open gap between source code energy optimization research and its concrete application. Thus, our underlying goal is to provide developers with a technique that enables them to efficiently gather source code energy consumption information without requiring excessive time overhead and resources.
In this research we present a naive spectrum-based fault localization technique aimed to efficiently locate energy hotspots in source code. More specifically, our research aims to understand the viability of spectrum based energy hotspot localization and the tradeoffs which can be made between performance and precision for such techniques. Our naive yet effective approach takes as input an application and its test suite, and utilizes a simple algorithm to localize portions of code which are potentially energy-greedy. This is achieved by combining test case coverage information with runtime energy consumption measurements. The viability of the approach is assessed through an empirical experiment.
We conclude that the naive spectrum based energy hotspot localization approach can effectively support developers by efficiently providing insights of the energy consumption of software at source code level. Since we use processes already in place in most companies and adopt straightforward data analysis processes, naive spectrum based energy hotspot localization can reduce the effort and time required for assessing energy consumption of software and thus make including the energy consumption in the development process viable. As future work we plan to (i) further investigate the tradeoffs between performance and precision of spectrum based energy hotspot approaches (ii) compare our approach to similar ones through large-scale experiments. Our ultimate goal is to conceive ad-hoc tradeoff tuning of performance and precision according to development and organizational needs.
-
R. Verdecchia
Identifying Architectural Technical Debt: Moving Forward
IEEE International Conference On Software Architecture (ICSA), 2018.
[Abstract]
[BibTeX]
[PDF]
[Slides]
@inproceedings{verdecchia2018icsa,
title = {Identifying Architectural Technical Debt: Moving Forward},
keywords = {Software Architecture; Technical Debt; Software Maintenance;},
author = {Roberto Verdecchia},
year = {2018},
booktitle = {IEEE International Conference On Software Architecture}
}
In software-intensive systems, technical debt is a metaphor encompassing design and implementation constructs that are used as expedients in the short term, but that hinder future maintainability and evolvability. Architectural technical debt, in turn, adopts such concept by considering sub-optimal architectural design and implementation choices that bring short-term benefits to the cost of the long-term gradual deterioration of the quality of the software architecture.
Architectural technical debt is an active field of research. Nevertheless, how to accurately identify and manage architectural technical debt is still an open question. Our research aims to fill this gap. In particular, our goal is to: (i) consolidate the existing knowledge of architectural technical debt identification and its management in practice, (ii) conceive novel identification and management approaches built upon the existing state of the art techniques and industrial needs, and (iii) provide empirical evidence of architectural technical debt phenomena and assess the viability of the conceived approaches.
As a result, we envision a sound methodology aimed to support software architects in the identification and management of architectural technical debt throughout the software development process.
-
B. Miranda, E. Cruciani, R. Verdecchia, A. Bertolino
FAST Approaches to Scalable Similarity-based Test Case Prioritization
International Conference on Software Engineering (ICSE)
,
2018.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{miranda2018fast,
title = {FAST Approaches to Scalable Similarity-based Test Case Prioritization},
author = {Miranda, Breno and Cruciani, Emilio and Verdecchia, Roberto and Bertolino, Antonia},
year = {2018},
booktitle = {Proceedings of the 39th International Conference on Software Engineering},
organization={IEEE Press}
}
Many test case prioritization criteria have been proposed for speeding up fault detection. Among them, similarity-based approaches give priority to the test cases that are the most dissimilar from those already selected. However, the proposed criteria do not scale up to handle the many thousands or even some millions test suite sizes of modern industrial systems and simple heuristics are used instead. We introduce the FAST family of test case prioritization techniques that radically changes this landscape by borrowing algorithms commonly exploited in the big data domain to find similar items. FAST techniques provide scalable similarity-based test case prioritization in both white-box and black-box fashion. The results from experimentation on real world C and Java subjects show that the fastest members of the family outperform other black-box approaches in efficiency with no significant impact on effectiveness, and also outperform whitebox approaches, including greedy ones, if preparation time is not counted. A simulation study of scalability shows that one FAST technique can prioritize a million test cases in less than 20 minutes.
-
R. Verdecchia
Identifying Architectural Technical Debt in Android Applications through Compliance Checking
International Conference on Mobile Software Engineering and Systems (MobileSoft),
2018.
🏆
Bronze medal - ACM Student Research Competition.
[Abstract]
[BibTeX]
[PDF]
[Slides]
[Poster]
@inproceedings{verdecchia2018mobilesoft,
title = {Identifying Architectural Technical Debt in Android Applications through Compliance Checking},
keywords = {Software Engineering, Software Architecture, Technical Debt, Android},
author = {Roberto Verdecchia},
year = {2018},
booktitle = {International Conference on Mobile Software Engineering and Systems}
}
By considering the fast pace at which mobile applications need to evolve, Architectural Technical Debt results to be a crucial yet implicit factor of success. In this research we present an approach to automatically identify Architectural Technical Debt in Android applications. The approach takes advantage of architectural guide- lines extraction and modeling, architecture reverse engineering, and compliance checking. As future work, we plan to automate the process and empirically evaluate it via large-scale experiments.
-
R. Verdecchia, Giuseppe Procaccianti, I. Malavolta, P. Lago, and J. Koedijk
Estimating Energy Impact of Software Releases and Deployment Strategies: The KPMG Case Study
Empirical Software Engineering and Measurement (ESEM),
2017.
[Abstract]
[BibTeX]
[PDF]
@inproceedings{verdecchia2017estimating,
title={Estimating Energy Impact of Software Releases and Deployment Strategies: The KPMG Case Study},
author={Verdecchia, Roberto and Procaccianti, Giuseppe and Malavolta, Ivano and Lago, Patricia and Koedijk, Joost},
booktitle={Empirical Software Engineering and Measurement (ESEM), 2017 ACM/IEEE International Symposium on},
pages={257--266},
year={2017},
organization={IEEE}
}
Often motivated by optimization objectives, software products are characterized by different subsequent
releases and deployed through different strategies. The impact of these two aspects of software on energy consumption has still to be completely understood and can be improved by carrying out ad-hoc analyses for specific software products. In this research we report on an industrial collaboration aiming at assessing the different impact that releases and deployment strategies of a software product can have on the energy consumption of its underlying hardware infrastructure. We designed and performed an empirical experiment in a controlled environment. Deployment strategies, releases and use case scenarios of an industrial third-party software product were adopted as experimental factors. The use case scenarios were used as a blocking factor and adopted to dynamically
load-test the software product. Power consumption and execution time were selected as response variables to measure the energy consumption. We observed that both deployment strategies and software releases significantly influence the energy consumption of the hardware infrastructure. A strong interaction between the two factors was identified. The impact of such interaction highly varied depending on which use case scenario was considered, making the identification of the most frequently adopted use case scenario critical for energy optimisation. The collaboration between industry and academia has been productive for both parties, even if some practitioners manifested low interest/awareness on software energy efficiency. For the software product considered there is no absolute preferable release or deployment strategy with respect to energy efficiency, as the interaction of these factors has to be considered. The number of machines involved in a software deployment strategy does not simply constitute an additive effect of the energy consumption of the underlying hardware infrastructure.
-
R. Verdecchia, F. Ricchiuti, A. Hankel, P. Lago, and Giuseppe Procaccianti
Green ICT Research and Challenges
Advances and New Trends in Environmental Informatics, pp. 37-48,
2017.
[Abstract]
[BibTeX]
[PDF]
@article{verdecchia2017green,
title={Green {ICT} {R}esearch and {C}hallenges},
author={Verdecchia, Roberto and Ricchiuti, Fabio and Hankel, Albert and Lago, Patricia and Procaccianti, Giuseppe},
booktitle={Advances and New Trends in Environmental Informatics},
pages={37--48},
year={2017},
publisher={Springer}
}
Green ICT is a young and pioneering field. Therefore, as often pointed out in the literature, studies evaluating the main research activities and the general direction of this new and continuously evolving research field are scarce and often incomplete. This study presents a quantitative analysis, through a systematic literature review, of the main activities, trends and issues that can be found in the Green ICT literature. The research reports the analysis of various characteristics of the studies gathered for this review, such as addressed type of effect and year of publication. It also led to the identification of the most recurrent issues of the research and development of Green ICT strategies. Finally, this study proposes a new category of effect (people awareness) that, even if often addressed by the field, is not included in current Green ICT frameworks.
The entirety of above linked documents are made available as a mean to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the authors or by other copyright holders, notwithstanding that the works are offered here electronically. It is understood that all persons utilizing this information will adhere to the terms and constraints invoked by each copyright holder. These works may not be reposted without the explicit permission of the copyright holders.