36 results on '"Pigazzini, I"'
Search Results
2. On the relation between architectural smells and source code changes
- Author
-
Sas, D, Avgeriou, P, Pigazzini, I, Arcelli Fontana, F, Avgeriou,P, Pigazzini,I, Arcelli Fontana,F, Sas, D, Avgeriou, P, Pigazzini, I, Arcelli Fontana, F, Avgeriou,P, Pigazzini,I, and Arcelli Fontana,F
- Abstract
Although architectural smells are one of the most studied type of architectural technical debt, their impact on maintenance effort has not been thoroughly investigated. Studying this impact would help to understand how much technical debt interest is being paid due to the existence of architecture smells and how this interest can be calculated. This work is a first attempt to address this issue by investigating the relation between architecture smells and source code changes. Specifically, we study whether the frequency and size of changes are correlated with the presence of a selected set of architectural smells. We detect architectural smells using the Arcan tool, which detects architectural smells by building a dependency graph of the system analyzed and then looking for the typical structures of the architectural smells. The findings, based on a case study of 31 open-source Java systems, show that 87% of the analyzed commits present more changes in artifacts with at least one smell, and the likelihood of changing increases with the number of smells. Moreover, there is also evidence to confirm that change frequency increases after the introduction of a smell and that the size of changes is also larger in smelly artifacts. These findings hold true especially in Medium–Large and Large artifacts.
- Published
- 2022
3. Architectural technical debt of multiagent systems development platforms
- Author
-
Calegari, R, Ciatto, G, Denti, E, Omicini, A, Sartor, G, Pigazzini, I, Briola, D, Arcelli, F, Pigazzini I., Briola D., Arcelli F., Calegari, R, Ciatto, G, Denti, E, Omicini, A, Sartor, G, Pigazzini, I, Briola, D, Arcelli, F, Pigazzini I., Briola D., and Arcelli F.
- Abstract
Technical debt is candidate to be the next buzzword in software engineering, and the number of studies evaluating the technical debt of software projects is increasing. A particular and dangerous type of debt is the architectural debt, i.e., the consequences of sub-optimal design decisions. Currently, there are no studies about the evaluation of architectural debt in MultiAgent Systems (MAS) and platforms. Hence, in this paper we propose the analysis of four well-known MAS development platforms, with the aim of evaluating their architectural debt and open the discussion in this field. We exploit a tool, named Arcan, developed for architectural smell detection and for the computation of an architectural debt index. The results show that MAS development platforms are subjected to architectural debt, and in particular to the presence of Cyclic Dependency smells. However, there is evidence that the minimum amount of debt is reached when developers report “bug fixes” and “Improvements”.
- Published
- 2021
4. A study on correlations between architectural smells and design patterns
- Author
-
Pigazzini, I, ARCELLI FONTANA, F, Walter, B, Pigazzini I., Francesca Arcelli Fontana., Walter B., Pigazzini, I, ARCELLI FONTANA, F, Walter, B, Pigazzini I., Francesca Arcelli Fontana., and Walter B.
- Abstract
Design patterns are recommended solutions for typical software design problems, with an extensively studied and documented impact on various quality factors. Flaws in design at a higher levels of abstraction are manifested in architectural smells. Some of those smells, similarly to code smells, can reduce the expected advantages of design patterns or even prevent their proper implementation. In this paper we study if and how design patterns and architectural smells are related, and how this knowledge could be exploited in practice. We present an empirical study with an analysis of 16 design patterns and 3 architectural smells in 60 open source Java systems. We analyze their diffuseness and correlation, and we extract association rules that describe their presence and dependencies. We demonstrate that there exist relationships between architectural smells and design patterns, both at the class and package levels. Some smells appear falsely positive, as they result from conscious decisions made by programmers, while the application of some patterns can be a cause of certain smells. Our results provide evidence that design patterns and architectural smells are related and affect each other. With knowledge about the relationships, programmers can avoid the side effects of applying some design patterns.
- Published
- 2021
5. The perception of Architectural Smells in industrial practice
- Author
-
Sas, D, Pigazzini, I, Avgeriou, P, Arcelli Fontana, F, Sas D., Pigazzini I., Avgeriou P., Arcelli Fontana F., Sas, D, Pigazzini, I, Avgeriou, P, Arcelli Fontana, F, Sas D., Pigazzini I., Avgeriou P., and Arcelli Fontana F.
- Abstract
Architectural technical debt (TD) is the most significant type of TD in industrial practice. Our goals in this study were to better understand the phenomenon of architectural smells, help practitioners better manage them, and offer relevant support to researchers
- Published
- 2021
6. An Overview and Comparison of Technical Debt Measurement Tools
- Author
-
Avgeriou, P, Taibi, D, Ampatzoglou, A, Arcelli Fontana, F, Besker, T, Chatzigeorgiou, A, Lenarduzzi, V, Martini, A, Moschou, N, Pigazzini, I, Saarimaki, N, Sas, D, de Toledo, S, Tsintzira, A, Avgeriou P. C., Taibi D., Ampatzoglou A., Arcelli Fontana F., Besker T., Chatzigeorgiou A., Lenarduzzi V., Martini A., Moschou N., Pigazzini I., Saarimaki N., Sas D. D., de Toledo S. S., Tsintzira A. A., Avgeriou, P, Taibi, D, Ampatzoglou, A, Arcelli Fontana, F, Besker, T, Chatzigeorgiou, A, Lenarduzzi, V, Martini, A, Moschou, N, Pigazzini, I, Saarimaki, N, Sas, D, de Toledo, S, Tsintzira, A, Avgeriou P. C., Taibi D., Ampatzoglou A., Arcelli Fontana F., Besker T., Chatzigeorgiou A., Lenarduzzi V., Martini A., Moschou N., Pigazzini I., Saarimaki N., Sas D. D., de Toledo S. S., and Tsintzira A. A.
- Abstract
There are numerous commercial tools and research prototypes that offer support for measuring technical debt. However, different tools adopt different terms, metrics, and ways to identify and measure technical debt. These tools offer diverse features, and their popularity / community support varies significantly. Therefore, (a) practitioners face difficulties when trying to select a tool matching their needs; and (b) the concept of technical debt and its role in software development is blurred. We attempt to clarify the situation by comparing the features and popularity of technical debt measurement tools, and analyzing the existing empirical evidence on their validity. Our findings can help practitioners to find the most suitable tool for their purposes, and researchers by highlighting the current tool shortcomings.
- Published
- 2021
7. Impact of Opportunistic Reuse Practices to Technical Debt
- Author
-
Capilla, R, Mikkonen, T, Carrillo, C, ARCELLI FONTANA, F, Pigazzini, I, Lenarduzzi, V, Capilla R., Mikkonen T., Carrillo C., Francesca Arcelli Fontana., Pigazzini I., Lenarduzzi V., Capilla, R, Mikkonen, T, Carrillo, C, ARCELLI FONTANA, F, Pigazzini, I, Lenarduzzi, V, Capilla R., Mikkonen T., Carrillo C., Francesca Arcelli Fontana., Pigazzini I., and Lenarduzzi V.
- Abstract
Technical debt (TD) has been recognized as an important quality problem for both software architecture and code. The evolution of TD techniques over the past years has led to a number of research and commercial tools. In addition, the increasing trend of opportunistic reuse (as opposed to systematic reuse), where developers reuse code assets in popular repositories, is changing the way components are selected and integrated into existing systems. However, reusing software opportunistically can lead to a loss of quality and induce TD, especially when the architecture is changed in the process. However, to the best of our knowledge, no studies have investigated the impact of opportunistic reuse in TD. In this paper, we carry out an exploratory study to investigate to what extent reusing components opportunistically negatively affects the quality of systems. We use one commercial and one research tool to analyze the TD ratios of three case systems, before and after opportunistically extending them with open-source software.
- Published
- 2021
8. Exploiting dynamic analysis for architectural smell detection: a preliminary study
- Author
-
Callico, GM, Hebig, R, Wortmann, A, Pigazzini, I, Di Nucci, D, Fontana, F, Belotti, M, Pigazzini, Ilaria, Di Nucci, Dario, Fontana, Francesca Arcelli, Belotti, Marco, Callico, GM, Hebig, R, Wortmann, A, Pigazzini, I, Di Nucci, D, Fontana, F, Belotti, M, Pigazzini, Ilaria, Di Nucci, Dario, Fontana, Francesca Arcelli, and Belotti, Marco
- Abstract
Architectural anomalies, also known as architectural smells, represent the violation of design principles or decisions that impact internal software qualities with significant negative effects on maintenance, evolution costs and technical debt. Architectural smells, if early removed, have an overall impact on reducing a possible progressive architectural erosion and architectural debt. Some tools have been proposed for their detection, exploiting different methods, usually based only on static analysis. This work analyzes how dynamic analysis can be exploited to detect architectural smells. We focus on two smells, Hub-Like Dependency and Cyclic Dependency, and we extend an existing tool integrating dynamic analysis. We conduct an empirical study on ten projects. We compare the results obtained comparing a method featuring dynamic analysis and the original version of Arcan based only on static analysis to understand if dynamic analysis can be successfully used. The results show that dynamic analysis helps identify missing architectural smells instances, although its usage is hindered by the lack of test suites suitable for this scope.
- Published
- 2022
9. Evaluating and Detecting Architecture Erosion
- Author
-
Pigazzini, I, ARCELLI FONTANA, FRANCESCA, LEPORATI, ALBERTO OTTAVIO, PIGAZZINI, ILARIA, Pigazzini, I, ARCELLI FONTANA, FRANCESCA, LEPORATI, ALBERTO OTTAVIO, and PIGAZZINI, ILARIA
- Abstract
Un'architettura software è erosa (o degradata) se mostra una progressiva perdita di integrità strutturale a causa di violazioni dei principi di progettazione. I sistemi erosi soffrono di Architectural Technical Debt (ATD), lo sforzo aggiuntivo richiesto agli sviluppatori per gestire i difetti causati dall'erosione. Un sintomo dell'accumulo di ATD è la presenza di Architectural Smells (AS), decisioni di software design che hanno un impatto negativo sulla qualità interna del sistema software. I sistemi affetti da AS soffrono di maggiori costi di manutenzione e sono più difficili da evolvere. Questa tesi indaga sei diversi tipi di AS che violano diversi principi di design in progetti Java monolitici Open-Source e industriali. Identifichiamo gli AS con il nostro strumento, Arcan, e introduciamo la sua nuova estensione per la rappresentazione dei software concerns. Discutiamo poi gli AS dal punto di vista dei professionisti, cercando di riassumere come gli AS sono percepiti e validando i risultati di Arcan. Riportiamo anche i risultati dei nostri studi empirici riguardanti l'evoluzione e la correlazione di AS e ATD. Infine, presentiamo i nostri primi risultati riguardanti la migrazione e la manutenzione di architetture a microservizi, con particolare attenzione al rilevamento degli odori dei microservizi., A software architecture is eroded (or degraded) if it shows a progressive loss of structural integrity due to design principle violations which leads to the deviation of the implemented architecture from the intended architecture. Eroded systems suffer from Architectural Technical Debt (ATD), the additional effort required by developers to manage the shortcomings caused by the erosion. A symptom of the accumulation of ATD is the presence of Architectural Smells (AS), design decisions that impact negatively on the internal system quality. Systems affected by AS suffer from higher maintenance costs and are harder to evolve. This thesis investigates six different types of AS violating different design principles in Open-Source and industrial monolithic Java projects. We identify AS with our tool, Arcan, and introduce its new extension for the representation of software concerns. We then discuss AS from the point of view of practitioners, trying to summarise how AS are perceived and validating Arcan results. We also report the results of our empirical studies concerning AS and ATD evolution and correlation. Finally, we present our first results concerning the migration and maintenance of microservices architectures, with a focus on the detection of microservices smells.
- Published
- 2022
10. Sen4Smells: A tool for ranking sensitive smells for an architecture debt index
- Author
-
Diaz-Pace, J, Tommasel, A, Pigazzini, I, Arcelli Fontana, F, Diaz-Pace J. A., Tommasel A., Pigazzini I., Arcelli Fontana F., Diaz-Pace, J, Tommasel, A, Pigazzini, I, Arcelli Fontana, F, Diaz-Pace J. A., Tommasel A., Pigazzini I., and Arcelli Fontana F.
- Abstract
Technical debt indexes are metrics for assessing the quality of a software system. Both academic and commercial tools have begun to provide computations of such indexes based on design violations and smells (e.g., cycles among system elements). When computing a debt index for a given project, a common use case is that engineers look at the index values for spotting design issues that negatively affect system evolution and quality. In this context, those smells being critical for the system architecture should be promptly identified soastoe valuate proper remediation actions. However, the interpretation of an index value in terms of problematic smells is usually a manual and labor-intensive task for engineers. To help with this task, we propose a tool called Sen4Smells that performs an automated sensitivity analysis for a given debt index based on the evolution of both the index values and the corresponding smells across (past) system versions. The Sen4Smells output is a ranking of smells that, due to their variations or instability, are major contributors to the debt index, and thus, can impact on architecture quality. Sen4Smells is designed as a pipeline that combines information from existing tools for smell detection, predefined d ebt i ndex f ormulas, and the Sobol method for sensitivity analysis. As a demonstration of the tool functionality, we briefly present implementations for the Arcan and Sonargraph tools with their respective debt indexes.
- Published
- 2020
11. Architectural technical debt of multiagent systems development platforms
- Author
-
Pigazzini, I., Briola, D., Fontana, F. A., Calegari, R, Ciatto, G, Denti, E, Omicini, A, Sartor, G, Pigazzini, I, Briola, D, and Arcelli, F
- Subjects
Architectural smell ,Multiagent system platform ,Architectural smells ,Trend analysis ,Multiagent system platforms ,Trend analysi ,Architectural debt ,INF/01 - INFORMATICA ,ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI - Abstract
Technical debt is candidate to be the next buzzword in software engineering, and the number of studies evaluating the technical debt of software projects is increasing. A particular and dangerous type of debt is the architectural debt, i.e., the consequences of sub-optimal design decisions. Currently, there are no studies about the evaluation of architectural debt in MultiAgent Systems (MAS) and platforms. Hence, in this paper we propose the analysis of four well-known MAS development platforms, with the aim of evaluating their architectural debt and open the discussion in this field. We exploit a tool, named Arcan, developed for architectural smell detection and for the computation of an architectural debt index. The results show that MAS development platforms are subjected to architectural debt, and in particular to the presence of Cyclic Dependency smells. However, there is evidence that the minimum amount of debt is reached when developers report “bug fixes” and “Improvements”.
- Published
- 2021
12. Evaluating the Architectural Debt of IoT Projects
- Author
-
Fontana, F, Pigazzini, I, Fontana, Francesca Arcelli, Pigazzini, Ilaria, Fontana, F, Pigazzini, I, Fontana, Francesca Arcelli, and Pigazzini, Ilaria
- Abstract
We observed a great and increasing interest in the last few years towards the evaluation of technical debt of software projects, in particular in the direction of code and architectural debt evaluation. This kind of analysis has not yet been performed for IoT projects. Hence, in this paper we start this exploration through the analysis of four Open Source IoT projects. We focus our attention on architectural debt and we exploit a tool, called Arcan, developed for architectural smell detection and for the computation of an architectural debt index. The results show that also IoT projects are subjected to architectural debt, and in particular to the presence of Cyclic Dependency and Unstable Dependency smells. However, there is evidence that the continuous refactoring of the code helps in avoiding the increase of debt, hence also developers of IoT projects should schedule periodical clean-ups of their code.
- Published
- 2021
13. Teaching Software Engineering Tools to Undergraduate Students
- Author
-
Raibulet, C, Fontana, F, Pigazzini, I, Raibulet, Claudia, Fontana, Francesca Arcelli, Pigazzini, Ilaria, Raibulet, C, Fontana, F, Pigazzini, I, Raibulet, Claudia, Fontana, Francesca Arcelli, and Pigazzini, Ilaria
- Abstract
Today, software development is characterized by keywords such as collaborative, teamwork, distributed, agile, dynamic, qualitative and tool-supported among many others. In this paper, we present our experience in teaching three software development tools often used in industry in a software engineering course for undergraduate students: GitHub, SonarQube, and Microsoft Project. The main reasons behind the use of these tools during the development of a software project were: (1) students become familiar with examples of tools adopted in industry and academia, (2) students are enabled to collaborate in teams for the achievement of a common goal, and (3) students become aware of the management tasks needed by a project developed in teams. We exploited these tools in the software engineering course in the last three academic years. The students feedback on using these tools gathered through a questionnaire was positive. Students were enthusiastic in learning about new tools and their support for software development and management. In this paper we summarize the students feedback during three academic years and the lessons we have learned from their feedback.
- Published
- 2019
14. PageRank and criticality of architectural smells
- Author
-
Fontana, F, Pigazzini, I, Raibulet, C, Basciano, S, Roveda, R, Fontana, Francesca Arcelli, Pigazzini, Ilaria, Raibulet, Claudia, Basciano, Stefano, Roveda, Riccardo, Fontana, F, Pigazzini, I, Raibulet, C, Basciano, S, Roveda, R, Fontana, Francesca Arcelli, Pigazzini, Ilaria, Raibulet, Claudia, Basciano, Stefano, and Roveda, Riccardo
- Abstract
Architectural smells represent symptoms of problems at architectural level that can negatively impact internal software qualities and lead to architectural debt. Detecting architectural smells and identifying the most critical ones is the key to prioritize refactoring efforts and prevent software architecture erosion. In this paper we focus our attention on three architectural smells based on dependency issues, called Cyclic Dependency, Unstable Dependency, and Hub-Like Dependency. Moreover, we evaluate the PageRank and Criticality of these smells through the analysis of six projects. PageRank is a measure that estimates whether an architectural smell is located in an important part of the project, where the importance is evaluated according to how many parts of a project depend on the one involved in the architectural smell. We describe a case study on the analysis of the possible relation existing between the PageRank and Criticality of the smells. The results show how the two measures can be both used to locate the architectural smells that need particular inspections and attention.
- Published
- 2019
15. A Study on Architectural Smells Prediction
- Author
-
Staron M., Capilla R., Skavhaug A., Arcelli Fontana, F, Avgeriou, P, Pigazzini, I, Roveda, R, Staron M., Capilla R., Skavhaug A., Arcelli Fontana, F, Avgeriou, P, Pigazzini, I, and Roveda, R
- Abstract
Architectural smells can be detrimental to system maintainability and evolvability, and represent a source of architectural debt. Thus, it is very important to be able to understand how they evolved in the past and to predict their future evolution. In this paper, we evaluate if the existence of architectural smells in the past versions of a project can be used to predict their presence in the future. We analyzed four Java projects in 295 Github releases and we applied four different supervised learning models for the prediction in a repeated cross-validation setting. We found that historical architectural smell information can be used to predict the presence of architectural smells in the future. Hence, practitioners should carefully monitor the evolution of architectural smells and take preventative actions to avoid introducing them and stave off their progressive growth.
- Published
- 2019
16. Tool Support for the Migration to Microservice Architecture: An Industrial Case Study
- Author
-
Bures, T, Duchien, L, Inverardi, P, Pigazzini, I, Arcelli Fontana, F, Maggioni, A, Pigazzini, Ilaria, Arcelli Fontana, Francesca, Maggioni, Andrea, Bures, T, Duchien, L, Inverardi, P, Pigazzini, I, Arcelli Fontana, F, Maggioni, A, Pigazzini, Ilaria, Arcelli Fontana, Francesca, and Maggioni, Andrea
- Abstract
With the introduction of microservice architecture, many investigate how to migrate their legacy systems into this architectural paradigm. The migration process requires the recovery of the project architecture to be migrated together with the knowledge necessary to understand how to decompose the code and obtain new microservices. At the moment, this process is realized mostly manually. This paper introduces an approach to identify candidate microservices in monolithic Java projects, implemented in a tool named Arcan and the validation of the approach in an industrial setting. The approach involves static analysis of the system architecture, architectural smell detection and topic detection, a text mining method used here to model software domains starting from code analysis. We report the feedbacks we get from an experienced industrial developer who carried out the migration described in the case study. From this collaboration with industry we collected useful information to enhance the approach, improve the tool and replicate the study.
- Published
- 2019
17. Automatic detection of architectural bad smells through semantic representation of code
- Author
-
Pigazzini, I and Pigazzini, I
- Abstract
Bad design decisions in software development can progressively affect the internal quality of a software system, causing architecture erosion. Such bad decisions are called Architectural Smells (AS) and should be detected as soon as possible, because their presence heavily hinders the maintainability and evolvability of the software. Many detection approaches rely on software analysis techniques which inspect the structure of the system under analysis and check with rules the presence of AS. However, some recent approaches leverage natural language processing techniques to recover semantic information from the system. This kind of information is useful to detect AS which violate "conceptual" design principles, such as the separation of concerns one. In this research study, I propose two detection strategies for AS detection based on code2vec, a neural model which is able to predict semantic properties of given snippets of code.
- Published
- 2019
18. Towards an Architectural Debt Index
- Author
-
Bures T.,Angelis L., Roveda, R, Arcelli Fontana, F, Pigazzini, I, Zanoni, M, Bures T.,Angelis L., Roveda, R, Arcelli Fontana, F, Pigazzini, I, and Zanoni, M
- Abstract
Different indexes have been proposed to evaluate software quality and technical debt. Usually these indexes take into account different code level issues and several metrics, well known software metrics or new ones defined ad hoc for a specific purpose. In this paper we propose and define a new index, more oriented to the evaluation of architectural violations. We describe in detail the index, called Architectural Debt Index, that we integrated in a tool developed for architectural smell detection. The index is based on the detection of architectural smells, their criticality and their history. Currently only dependency architectural smells have been considered, but other architectural debt indicators can be considered and integrated in the index computation.
- Published
- 2018
19. Arcan: A tool for architectural smells detection
- Author
-
ARCELLI FONTANA, F, Pigazzini, I, Roveda, R, Tamburri, D, Zanoni, M, Nitto, E, ARCELLI FONTANA, FRANCESCA, ROVEDA, RICCARDO, ZANONI, MARCO, Nitto, E., ARCELLI FONTANA, F, Pigazzini, I, Roveda, R, Tamburri, D, Zanoni, M, Nitto, E, ARCELLI FONTANA, FRANCESCA, ROVEDA, RICCARDO, ZANONI, MARCO, and Nitto, E.
- Abstract
Code smells are sub-optimal coding circumstances such as blob classes or spaghetti code - they have received much attention and tooling in recent software engineering research. Higher-up in the abstraction level, architectural smells are problems or sub-optimal architectural patterns or other design-level characteristics. These have received significantly less attention even though they are usually considered more critical than code smells, and harder to detect, remove, and refactor. This paper describes an open-source tool called Arcan developed for the detection of architectural smells through an evaluation of several different architecture dependency issues. The detection techniques inside Arcan exploit graph database technology, allowing for high scalability in smells detection and better management of large amounts of dependencies of multiple kinds. In the scope of this paper, we focus on the evaluation of Arcan results carried out with real-life software developers to check if the architectural smells detected by Arcan are really perceived as problems and to get an overall usefulness evaluation of the tool.
- Published
- 2017
20. Automatic detection of instability architectural smells
- Author
-
ARCELLI FONTANA, F, Pigazzini, I, Roveda, R, Zanoni, M, ARCELLI FONTANA, FRANCESCA, ROVEDA, RICCARDO, ZANONI, MARCO, ARCELLI FONTANA, F, Pigazzini, I, Roveda, R, Zanoni, M, ARCELLI FONTANA, FRANCESCA, ROVEDA, RICCARDO, and ZANONI, MARCO
- Abstract
Code smells represent well known symptoms of problems at code level, and architectural smells can be seen as their counterpart at architecture level. If identified in a system, they are usually considered more critical than code smells, for their effect on maintainability issues. In this paper, we introduce a tool for the detection of architectural smells that could have an impact on the stability of a system. The detection techniques are based on the analysis of dependency graphs extracted from compiled Java projects and stored in a graph database. The results combine the information gathered from dependency and instability metrics to identify flaws hidden in the software architecture. We also propose some filters trying to avoid possible false positives.
- Published
- 2017
21. The perception of Architectural Smells in Industrial Practice
- Author
-
Francesca Arcelli Fontana, Paris Avgeriou, Ilaria Pigazzini, Darius Sas, Software Engineering, Sas, D, Pigazzini, I, Avgeriou, P, and Arcelli Fontana, F
- Subjects
FOS: Computer and information sciences ,Java ,Computer science ,media_common.quotation_subject ,Companie ,Maintenance engineering ,Tools ,Computer Science - Software Engineering ,Software ,Perception ,Phenomenon ,Reliability (statistics) ,media_common ,computer.programming_language ,business.industry ,Reliability ,Software Engineering (cs.SE) ,Engineering management ,System recovery ,Software testing ,Technical debt ,business ,computer - Abstract
Architectural Technical Debt (ATD) is considered as the most significant type of TD in industrial practice. In this study, we interview 21 software engineers and architects to investigate a specific type of ATD, namely architectural smells (AS). Our goal is to understand the phenomenon of AS better and support practitioners to better manage it and researchers to offer relevant support. The findings of this study provide insights on how practitioners perceive AS and how they introduce them, the maintenance and evolution issues they experienced and associated to the presence of AS, and what practices and tools they adopt to manage AS., Submitted and accepted to IEEE Software special issue on Technical Debt. This is a preprint
- Published
- 2021
22. Exploiting dynamic analysis for architectural smell detection: a preliminary study
- Author
-
Di Nucci, Dario, Pigazzini, Ilaria, Fontana, Francesca Arcelli, Belotti, Marco, Callico, GM, Hebig, R, Wortmann, A, Pigazzini, I, Di Nucci, D, Fontana, F, and Belotti, M
- Subjects
dynamic analysi ,architectural debt ,architectural smell detection ,ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI - Abstract
Architectural anomalies, also known as architectural smells, represent the violation of design principles or decisions that impact internal software qualities with significant negative effects on maintenance, evolution costs and technical debt. Architectural smells, if early removed, have an overall impact on reducing a possible progressive architectural erosion and architectural debt. Some tools have been proposed for their detection, exploiting different methods, usually based only on static analysis. This work analyzes how dynamic analysis can be exploited to detect architectural smells. We focus on two smells, Hub-Like Dependency and Cyclic Dependency, and we extend an existing tool integrating dynamic analysis. We conduct an empirical study on ten projects. We compare the results obtained comparing a method featuring dynamic analysis and the original version of Arcan based only on static analysis to understand if dynamic analysis can be successfully used. The results show that dynamic analysis helps identify missing architectural smells instances, although its usage is hindered by the lack of test suites suitable for this scope.
- Published
- 2022
23. Hints on Designing and Running Project-based Exams for a Software Engineering Course
- Author
-
Raibulet, Claudia, Fontana, Francesca Arcelli, Pigazzini, Ilaria, Software and Sustainability (S2), Network Institute, Software Engineering, Raibulet, C, Arcelli, F, and Pigazzini, I
- Subjects
education ,project-based course ,project ,Software engineering ,software engineering course - Abstract
In this paper, we share our experience in designing and running a project-based exam for a Software Engineering course at the undergraduate level. We underline the teaching objectives and content of the course which aim to prepare students for the industrial environment, e.g., various design perspectives on the project, software quality assurance and evaluation, tools for development and software quality assessment, project management and team work. We present our project-based exam and summarize hints on its design, organization, and evaluation. Project examples are also introduced.
- Published
- 2022
24. An Overview and Comparison of Technical Debt Measurement Tools
- Author
-
Antonio Martini, Davide Taibi, Nyyti Saarimäki, Ilaria Pigazzini, Apostolos Ampatzoglou, Athanasia Moschou, Darius Sas, Saulo Soares de Toledo, Paris Avgeriou, Francesca Arcelli Fontana, Terese Besker, Angeliki Agathi Tsintzira, Alexander Chatzigeorgiou, Valentina Lenarduzzi, Avgeriou, P, Taibi, D, Ampatzoglou, A, Arcelli Fontana, F, Besker, T, Chatzigeorgiou, A, Lenarduzzi, V, Martini, A, Moschou, N, Pigazzini, I, Saarimaki, N, Sas, D, de Toledo, S, Tsintzira, A, Tampere University, Computing Sciences, and Software Engineering
- Subjects
Measure (data warehouse) ,Source Code Analysi ,Computer science ,020207 software engineering ,02 engineering and technology ,113 Computer and information sciences ,Software quality ,Software metric ,Software Quality ,Risk analysis (engineering) ,Technical debt ,0202 electrical engineering, electronic engineering, information engineering ,Tool ,Technical Debt ,Empirical evidence ,Software measurement ,Software - Abstract
There are numerous commercial tools and research prototypes that offer support for measuring technical debt. However, different tools adopt different terms, metrics, and ways to identify and measure technical debt. These tools offer diverse features, and their popularity / community support varies significantly. Therefore, (a) practitioners face difficulties when trying to select a tool matching their needs; and (b) the concept of technical debt and its role in software development is blurred. We attempt to clarify the situation by comparing the features and popularity of technical debt measurement tools, and analyzing the existing empirical evidence on their validity. Our findings can help practitioners to find the most suitable tool for their purposes, and researchers by highlighting the current tool shortcomings.
- Published
- 2020
25. Evaluating and Detecting Architecture Erosion
- Author
-
PIGAZZINI, ILARIA, Pigazzini, I, ARCELLI FONTANA, FRANCESCA, and LEPORATI, ALBERTO OTTAVIO
- Subjects
reverse engineering ,architectural smell ,debito tecnico arch ,erosione arch ,architecture erosion ,INF/01 - INFORMATICA ,arch. evolution ,evoluzione arch ,arch. technical debt - Abstract
Un'architettura software è erosa (o degradata) se mostra una progressiva perdita di integrità strutturale a causa di violazioni dei principi di progettazione. I sistemi erosi soffrono di Architectural Technical Debt (ATD), lo sforzo aggiuntivo richiesto agli sviluppatori per gestire i difetti causati dall'erosione. Un sintomo dell'accumulo di ATD è la presenza di Architectural Smells (AS), decisioni di software design che hanno un impatto negativo sulla qualità interna del sistema software. I sistemi affetti da AS soffrono di maggiori costi di manutenzione e sono più difficili da evolvere. Questa tesi indaga sei diversi tipi di AS che violano diversi principi di design in progetti Java monolitici Open-Source e industriali. Identifichiamo gli AS con il nostro strumento, Arcan, e introduciamo la sua nuova estensione per la rappresentazione dei software concerns. Discutiamo poi gli AS dal punto di vista dei professionisti, cercando di riassumere come gli AS sono percepiti e validando i risultati di Arcan. Riportiamo anche i risultati dei nostri studi empirici riguardanti l'evoluzione e la correlazione di AS e ATD. Infine, presentiamo i nostri primi risultati riguardanti la migrazione e la manutenzione di architetture a microservizi, con particolare attenzione al rilevamento degli odori dei microservizi. A software architecture is eroded (or degraded) if it shows a progressive loss of structural integrity due to design principle violations which leads to the deviation of the implemented architecture from the intended architecture. Eroded systems suffer from Architectural Technical Debt (ATD), the additional effort required by developers to manage the shortcomings caused by the erosion. A symptom of the accumulation of ATD is the presence of Architectural Smells (AS), design decisions that impact negatively on the internal system quality. Systems affected by AS suffer from higher maintenance costs and are harder to evolve. This thesis investigates six different types of AS violating different design principles in Open-Source and industrial monolithic Java projects. We identify AS with our tool, Arcan, and introduce its new extension for the representation of software concerns. We then discuss AS from the point of view of practitioners, trying to summarise how AS are perceived and validating Arcan results. We also report the results of our empirical studies concerning AS and ATD evolution and correlation. Finally, we present our first results concerning the migration and maintenance of microservices architectures, with a focus on the detection of microservices smells.
- Published
- 2022
26. On the relation between architectural smells and source code changes
- Author
-
Darius Sas, Francesca Arcelli Fontana, Paris Avgeriou, Ilaria Pigazzini, Sas, D, Avgeriou, P, Pigazzini, I, Arcelli Fontana, F, and Software Engineering
- Subjects
Architectural engineering ,Source code ,Relation (database) ,Computer science ,Architectural Smells,Technical Debt Interest,Technical debt,Architectural Technical Debt, Empirical Study, Software Repository Mining ,architectural technical debt ,media_common.quotation_subject ,020207 software engineering ,02 engineering and technology ,empirical study ,Empirical research ,technical debt interest ,technical debt ,Technical debt ,architectural smells ,020204 information systems ,0202 electrical engineering, electronic engineering, information engineering ,InformationSystems_MISCELLANEOUS ,Software ,software repository mining ,media_common - Abstract
Although architectural smells are one of the most studied type of architectural technical debt, their impact on maintenance effort has not been thoroughly investigated. Studying this impact would help to understand how much technical debt interest is being paid due to the existence of architecture smells and how this interest can be calculated. This work is a first attempt to address this issue by investigating the relation between architecture smells and source code changes. Specifically, we study whether the frequency and size of changes are correlated with the presence of a selected set of architectural smells. We detect architectural smells using the Arcan tool, which detects architectural smells by building a dependency graph of the system analyzed and then looking for the typical structures of the architectural smells. The findings, based on a case study of 31 open-source Java systems, show that 87% of the analyzed commits present more changes in artifacts with at least one smell, and the likelihood of changing increases with the number of smells. Moreover, there is also evidence to confirm that change frequency increases after the introduction of a smell and that the size of changes is also larger in smelly artifacts. These findings hold true especially in Medium–Large and Large artifacts.
- Published
- 2022
27. Impact of Opportunistic Reuse Practices to Technical Debt
- Author
-
Carlos Carrillo, Tommi Mikkonen, Valentina Lenarduzzi, Rafael Capilla, Francesca Arcelli Fontana, Ilaria Pigazzini, Department of Computer Science, Capilla, R, Mikkonen, T, Carrillo, C, ARCELLI FONTANA, F, Pigazzini, I, and Lenarduzzi, V
- Subjects
architectural debt ,Process (engineering) ,Computer science ,business.industry ,media_common.quotation_subject ,opportunistic reuse ,Exploratory research ,Reuse ,Technical debt ,113 Computer and information sciences ,MODEL ,Software ,Risk analysis (engineering) ,Quality (business) ,Architecture ,Software architecture ,business ,media_common - Abstract
Technical debt (TD) has been recognized as an important quality problem for both software architecture and code. The evolution of TD techniques over the past years has led to a number of research and commercial tools. In addition, the increasing trend of opportunistic reuse (as opposed to systematic reuse), where developers reuse code assets in popular repositories, is changing the way components are selected and integrated into existing systems. However, reusing software opportunistically can lead to a loss of quality and induce TD, especially when the architecture is changed in the process. However, to the best of our knowledge, no studies have investigated the impact of opportunistic reuse in TD. In this paper, we carry out an exploratory study to investigate to what extent reusing components opportunistically negatively affects the quality of systems. We use one commercial and one research tool to analyze the TD ratios of three case systems, before and after opportunistically extending them with open-source software.
- Published
- 2021
28. Sen4Smells: A tool for ranking sensitive smells for an architecture debt index
- Author
-
Antonela Tommasel, Francesca Arcelli Fontana, J. Andres Diaz-Pace, Ilaria Pigazzini, Diaz-Pace, J, Tommasel, A, Pigazzini, I, and Arcelli Fontana, F
- Subjects
Index (economics) ,business.industry ,Computer science ,media_common.quotation_subject ,Context (language use) ,Architectural smell ,Ranking ,Technical debt ,Debt ,Sensitivity analysi ,Systems architecture ,Debt index ,System evolution ,Quality (business) ,tool support ,Software system ,Software engineering ,business ,media_common - Abstract
Technical debt indexes are metrics for assessing the quality of a software system. Both academic and commercial tools have begun to provide computations of such indexes based on design violations and smells (e.g., cycles among system elements). When computing a debt index for a given project, a common use case is that engineers look at the index values for spotting design issues that negatively affect system evolution and quality. In this context, those smells being critical for the system architecture should be promptly identified soastoe valuate proper remediation actions. However, the interpretation of an index value in terms of problematic smells is usually a manual and labor-intensive task for engineers. To help with this task, we propose a tool called Sen4Smells that performs an automated sensitivity analysis for a given debt index based on the evolution of both the index values and the corresponding smells across (past) system versions. The Sen4Smells output is a ranking of smells that, due to their variations or instability, are major contributors to the debt index, and thus, can impact on architecture quality. Sen4Smells is designed as a pipeline that combines information from existing tools for smell detection, predefined d ebt i ndex f ormulas, and the Sobol method for sensitivity analysis. As a demonstration of the tool functionality, we briefly present implementations for the Arcan and Sonargraph tools with their respective debt indexes.
- Published
- 2020
29. Teaching Software Engineering Tools to Undergraduate Students
- Author
-
Claudia Raibulet, Francesca Arcelli Fontana, Ilaria Pigazzini, Raibulet, C, Fontana, F, and Pigazzini, I
- Subjects
Teamwork ,Engineering ,business.industry ,media_common.quotation_subject ,05 social sciences ,Software development ,INF/01 - INFORMATICA ,050301 education ,020207 software engineering ,02 engineering and technology ,GitHub, Microsoft Project, SonarQube, Software Engineering ,Education ,Tool ,Software ,ComputingMilieux_COMPUTERSANDEDUCATION ,0202 electrical engineering, electronic engineering, information engineering ,business ,Software engineering ,0503 education ,media_common ,Agile software development - Abstract
Today, software development is characterized by keywords such as collaborative, teamwork, distributed, agile, dynamic, qualitative and tool-supported among many others. In this paper, we present our experience in teaching three software development tools often used in industry in a software engineering course for undergraduate students: GitHub, SonarQube, and Microsoft Project. The main reasons behind the use of these tools during the development of a software project were: (1) students become familiar with examples of tools adopted in industry and academia, (2) students are enabled to collaborate in teams for the achievement of a common goal, and (3) students become aware of the management tasks needed by a project developed in teams. We exploited these tools in the software engineering course in the last three academic years. The students feedback on using these tools gathered through a questionnaire was positive. Students were enthusiastic in learning about new tools and their support for software development and management. In this paper we summarize the students feedback during three academic years and the lessons we have learned from their feedback.
- Published
- 2019
30. A study on correlations between architectural smells and design patterns
- Author
-
Francesca Arcelli Fontana, Ilaria Pigazzini, Bartosz Walter, Pigazzini, I, ARCELLI FONTANA, F, and Walter, B
- Subjects
Association rule learning ,Computer science ,media_common.quotation_subject ,02 engineering and technology ,Empirical research ,0502 economics and business ,0202 electrical engineering, electronic engineering, information engineering ,Quality (business) ,media_common ,Abstraction (linguistics) ,Class (computer programming) ,business.industry ,05 social sciences ,Code smell ,020207 software engineering ,Design pattern ,Architectural smell ,Hardware and Architecture ,Software design pattern ,Software design ,InformationSystems_MISCELLANEOUS ,Architectural smells and design patterns relationship ,Software engineering ,business ,050203 business & management ,Software ,Information Systems - Abstract
Design patterns are recommended solutions for typical software design problems, with an extensively studied and documented impact on various quality factors. Flaws in design at a higher levels of abstraction are manifested in architectural smells. Some of those smells, similarly to code smells, can reduce the expected advantages of design patterns or even prevent their proper implementation. In this paper we study if and how design patterns and architectural smells are related, and how this knowledge could be exploited in practice. We present an empirical study with an analysis of 16 design patterns and 3 architectural smells in 60 open source Java systems. We analyze their diffuseness and correlation, and we extract association rules that describe their presence and dependencies. We demonstrate that there exist relationships between architectural smells and design patterns, both at the class and package levels. Some smells appear falsely positive, as they result from conscious decisions made by programmers, while the application of some patterns can be a cause of certain smells. Our results provide evidence that design patterns and architectural smells are related and affect each other. With knowledge about the relationships, programmers can avoid the side effects of applying some design patterns.
- Published
- 2021
31. Automatic detection of architectural bad smells through semantic representation of code
- Author
-
Ilaria Pigazzini and Pigazzini, I
- Subjects
Computer science ,business.industry ,Separation of concerns ,Software development ,Maintainability ,Architecture erosion ,020207 software engineering ,Code embedding ,02 engineering and technology ,Semantic property ,architectural (bad) smells detection, architecture erosion, code embeddings, software concerns ,Software ,Software concern ,0202 electrical engineering, electronic engineering, information engineering ,Leverage (statistics) ,020201 artificial intelligence & image processing ,Software system ,Software engineering ,business ,Software analysis pattern ,Architectural (bad) smells detection - Abstract
Bad design decisions in software development can progressively affect the internal quality of a software system, causing architecture erosion. Such bad decisions are called Architectural Smells (AS) and should be detected as soon as possible, because their presence heavily hinders the maintainability and evolvability of the software. Many detection approaches rely on software analysis techniques which inspect the structure of the system under analysis and check with rules the presence of AS. However, some recent approaches leverage natural language processing techniques to recover semantic information from the system. This kind of information is useful to detect AS which violate "conceptual" design principles, such as the separation of concerns one. In this research study, I propose two detection strategies for AS detection based on code2vec, a neural model which is able to predict semantic properties of given snippets of code.
- Published
- 2019
32. PageRank and criticality of architectural smells
- Author
-
Ilaria Pigazzini, Claudia Raibulet, Stefano Basciano, Riccardo Roveda, Francesca Arcelli Fontana, Fontana, F, Pigazzini, I, Raibulet, C, Basciano, S, and Roveda, R
- Subjects
Relation (database) ,Computer science ,02 engineering and technology ,computer.software_genre ,law.invention ,Software ,PageRank ,Software_SOFTWAREENGINEERING ,law ,0502 economics and business ,0202 electrical engineering, electronic engineering, information engineering ,PageRank, architectural debt, architectural smells, architecture erosion, criticality, prioritization ,050208 finance ,business.industry ,05 social sciences ,INF/01 - INFORMATICA ,020207 software engineering ,Criticality ,Code refactoring ,Key (cryptography) ,InformationSystems_MISCELLANEOUS ,Software architecture ,Software engineering ,business ,computer ,Dependency (project management) - Abstract
Architectural smells represent symptoms of problems at architectural level that can negatively impact internal software qualities and lead to architectural debt. Detecting architectural smells and identifying the most critical ones is the key to prioritize refactoring efforts and prevent software architecture erosion. In this paper we focus our attention on three architectural smells based on dependency issues, called Cyclic Dependency, Unstable Dependency, and Hub-Like Dependency. Moreover, we evaluate the PageRank and Criticality of these smells through the analysis of six projects. PageRank is a measure that estimates whether an architectural smell is located in an important part of the project, where the importance is evaluated according to how many parts of a project depend on the one involved in the architectural smell. We describe a case study on the analysis of the possible relation existing between the PageRank and Criticality of the smells. The results show how the two measures can be both used to locate the architectural smells that need particular inspections and attention.
- Published
- 2019
33. Tool Support for the Migration to Microservice Architecture: An Industrial Case Study
- Author
-
Francesca Arcelli Fontana, Ilaria Pigazzini, Andrea Maggioni, Bures, T, Duchien, L, Inverardi, P, Pigazzini, I, Arcelli Fontana, F, and Maggioni, A
- Subjects
Java ,business.industry ,Computer science ,Process (engineering) ,Legacy system ,Architectural smells Architecture migration Microservices Topic detection Architecture recovery ,020207 software engineering ,Static program analysis ,02 engineering and technology ,Microservices ,Static analysis ,020204 information systems ,0202 electrical engineering, electronic engineering, information engineering ,Systems architecture ,Architecture ,Software engineering ,business ,computer ,computer.programming_language - Abstract
With the introduction of microservice architecture, many investigate how to migrate their legacy systems into this architectural paradigm. The migration process requires the recovery of the project architecture to be migrated together with the knowledge necessary to understand how to decompose the code and obtain new microservices. At the moment, this process is realized mostly manually. This paper introduces an approach to identify candidate microservices in monolithic Java projects, implemented in a tool named Arcan and the validation of the approach in an industrial setting. The approach involves static analysis of the system architecture, architectural smell detection and topic detection, a text mining method used here to model software domains starting from code analysis. We report the feedbacks we get from an experienced industrial developer who carried out the migration described in the case study. From this collaboration with industry we collected useful information to enhance the approach, improve the tool and replicate the study.
- Published
- 2019
34. Towards an Architectural Debt Index
- Author
-
Francesca Arcelli Fontana, Marco Zanoni, Riccardo Roveda, Ilaria Pigazzini, Bures T.,Angelis L., Roveda, R, Arcelli Fontana, F, Pigazzini, I, and Zanoni, M
- Subjects
History ,Index (economics) ,Dependency (UML) ,architectural smell ,Computer science ,media_common.quotation_subject ,oftware quality ,02 engineering and technology ,Electronic mail ,architectural smell detection ,architectural debt indicator ,020204 information systems ,Debt ,0202 electrical engineering, electronic engineering, information engineering ,Code (cryptography) ,Indexe ,Computer architecture ,everity index ,media_common ,software architecture ,Measurement ,business.industry ,code level issue ,INF/01 - INFORMATICA ,020207 software engineering ,Software quality ,Software metric ,oftware metric ,architectural debt index ,technical debt ,Technical debt ,Tool ,Software engineering ,business ,Estimation - Abstract
Different indexes have been proposed to evaluate software quality and technical debt. Usually these indexes take into account different code level issues and several metrics, well known software metrics or new ones defined ad hoc for a specific purpose. In this paper we propose and define a new index, more oriented to the evaluation of architectural violations. We describe in detail the index, called Architectural Debt Index, that we integrated in a tool developed for architectural smell detection. The index is based on the detection of architectural smells, their criticality and their history. Currently only dependency architectural smells have been considered, but other architectural debt indicators can be considered and integrated in the index computation.
- Published
- 2018
35. Arcan: A tool for architectural smells detection
- Author
-
Elisabetta Di Nitto, Damian A. Tamburri, Ilaria Pigazzini, Marco Zanoni, Riccardo Roveda, Francesca Arcelli Fontana, ARCELLI FONTANA, F, Pigazzini, I, Roveda, R, Tamburri, D, Zanoni, M, and Nitto, E
- Subjects
Exploit ,Programming language ,Computer science ,Architectural Smells ,Dependency graph ,Graph database ,Software architecture ,Code smell ,020207 software engineering ,tool ,02 engineering and technology ,validation Software architecture ,computer.software_genre ,arcan ,Spaghetti code ,Abstraction layer ,Architectural pattern ,Code refactoring ,Architectural Smell ,020204 information systems ,0202 electrical engineering, electronic engineering, information engineering ,computer - Abstract
Code smells are sub-optimal coding circumstances such as blob classes or spaghetti code - they have received much attention and tooling in recent software engineering research. Higher-up in the abstraction level, architectural smells are problems or sub-optimal architectural patterns or other design-level characteristics. These have received significantly less attention even though they are usually considered more critical than code smells, and harder to detect, remove, and refactor. This paper describes an open-source tool called Arcan developed for the detection of architectural smells through an evaluation of several different architecture dependency issues. The detection techniques inside Arcan exploit graph database technology, allowing for high scalability in smells detection and better management of large amounts of dependencies of multiple kinds. In the scope of this paper, we focus on the evaluation of Arcan results carried out with real-life software developers to check if the architectural smells detected by Arcan are really perceived as problems and to get an overall usefulness evaluation of the tool.
- Published
- 2017
36. Automatic Detection of Instability Architectural Smells
- Author
-
Marco Zanoni, Riccardo Roveda, Ilaria Pigazzini, Francesca Arcelli Fontana, ARCELLI FONTANA, F, Pigazzini, I, Roveda, R, and Zanoni, M
- Subjects
Graph database ,Dependency (UML) ,Java ,Computer science ,Programming language ,Maintainability ,Architectural Smell, Design Metrics, Software Architecture Evaluation ,INF/01 - INFORMATICA ,Code smell ,020207 software engineering ,02 engineering and technology ,computer.software_genre ,ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI ,020204 information systems ,0202 electrical engineering, electronic engineering, information engineering ,Code (cryptography) ,Data mining ,InformationSystems_MISCELLANEOUS ,Architecture ,Software architecture ,computer ,computer.programming_language - Abstract
Code smells represent well known symptoms of problems at code level, and architectural smells can be seen as their counterpart at architecture level. If identified in a system, they are usually considered more critical than code smells, for their effect on maintainability issues. In this paper, we introduce a tool for the detection of architectural smells that could have an impact on the stability of a system. The detection techniques are based on the analysis of dependency graphs extracted from compiled Java projects and stored in a graph database. The results combine the information gathered from dependency and instability metrics to identify flaws hidden in the software architecture. We also propose some filters trying to avoid possible false positives.
- Published
- 2016
Catalog
Discovery Service for Jio Institute Digital Library
For full access to our library's resources, please sign in.