author = {Verdecchia, Roberto and Malavolta, Ivano and Lago, Patricia},
year = {2018},
month = {05},
doi = {10.1145/3194164.3194176}
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 architecture of a software system. The identification 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 addressing ATD from different perspectives and with heterogeneous characteristics. In this paper we apply the systematic mapping study methodology for identifying, classifying, and evaluating 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-defined classification framework. The analysis of the obtained results supports 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 on ATD identification, and (iii) a rigorous evaluation of its potential for industrial adoption.
Conférence Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track
Pages 113-122
Description
Quickly identifying and fixing code changes that introduce regressions is critical to keep the momentum on software development, especially in very large scale software repositories with rapid development cycles, such as at Google. Identifying and fixing such regressions is one of the most expensive, tedious, and time consuming tasks in the software development life-cycle. Therefore, there is a high demand for automated techniques that can help developers identify such changes while minimizing manual human intervention …
Authors : Georgios Digkas, Mircea Lungu, Alexander Chatzigeorgiou, Paris Avgeriou
Publication date : 2017/9/11
Conference European Conference on Software Architecture
Pages 51-66
Description :
Software systems must evolve over time or become increasingly irrelevant says one of Lehman's laws of software evolution. Many studies have been presented in the literature that investigate the evolution of software systems but few have focused on the evolution of technical debt. In this paper we study sixty-six Java open-source software projects from the Apache ecosystem focusing on the evolution of technical debt. We analyze the evolution of these systems over the past five years at the temporal granularity level of weekly …
Authors : Andrea Caracciolo, Mircea Lungu, Oskar Truffer, Kirill Levitin, Oscar Nierstrasz
Publication date : 2016/3/13
Conference Empirical Software Engineering in Practice (IWESEP), 2016 7th International Workshop on
Pages 41-44
Description
Architectural rules are often defined but rarely tested. Current tools offer limited functionality and often require significant effort to be configured, automated and integrated within existing platforms. We propose a platform that is aimed at reducing the overall cost of setting up and maintaining an architectural conformance monitoring environment by decoupling the conceptual representation of a user-defined rule from its technical specification prescribed by the underlying analysis tools. The user is no longer expected …
Authors : Yangyang Zhao, Alexander Serebrenik, Yuming Zhou, Vladimir Filkov, Bogdan Vasilescu
Date de publication 2017
Conférence ASE
Description
Continuous Integration (CI) has become a disruptive innovation in software development: with proper tool support and adoption, positive effects have been demonstrated for pull request throughput and scaling up of project sizes. As any other innovation, adopting CI implies adapting existing practices in order to take full advantage of its potential, and“ best practices” to that end have been proposed. Here we study the adaptation and evolution of code writing and submission, issue and pull request closing …
Conférence Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering
Pages 95-105
Description :
Although considered one of the most important decisions in a software development lifecycle, empirical evidence on how developers perform and perceive architectural changes is still scarce. Given the large implications of architectural decisions, we do not know whether developers are aware of their changes' impact on the software's architecture, whether awareness leads to better changes, and whether automatically making developers aware would prevent degradation. Therefore, we use code review data of 4 …
Auteurs : Yun Lin, Guozhu Meng, Yinxing Xue, Zhenchang Xing, Jun Sun, Xin Peng, Yang Liu, Wenyun Zhao, Jinsong Dong
Date de publication : 2017/10
Conférence The 32nd IEEE/ACM International Conference on Automated Software Engineering
Pages 394–404
Description
In this paper, we propose an approach to detecting project-specific recurring designs in code base and abstracting them into design templates as reuse opportunities. The mined templates allow programmers to make further customization for generating new code. The generated code involves the code skeleton of recurring design as well as the semi-implemented code bodies annotated with comments to remind programmers of necessary modification. We implemented our approach as an Eclipse plugin called …
Auteurs Vincent Blondeau, Anne Etien, Nicolas Anquetil, Sylvain Cresson, Pascal Croisy, Stéphane Ducasse
Date de publication 2016
Revue Software Quality Journal
Pages 1-35
Description :
Automatic testing constitutes an important part of everyday development practice. Worldline, a major IT company, is creating more and more tests to ensure the good behavior of its applications and gains in efficiency and quality. But running all these tests may take hours. This is especially true for large systems involving, for example, the deployment of a web server or communication with a database. For this reason, tests are not launched as often as they should be and are mostly run at night. The company wishes to improve its …
Auteurs: Regina Hebig, Truong Ho Quang, Michel RV Chaudron, Gregorio Robles, Miguel Angel Fernandez
Date de publication : 2016/10/2
Conférence Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems
Pages 173-183
Description
Context: While industrial use of UML was studied intensely, little is known about UML use in Free/Open Source Software (FOSS) projects. Goal: We aim at systematically mining GitHub projects to answer the question when models, if used, are created and updated throughout the whole project's life-span. Method: We present a semi-automated approach to collect UML stored in images,. xmi, and. uml files and scanned ten percent of all GitHub projects (1.24 million). Our focus was on number and role of contributors that …
Auteurs Guilherme Avelino, Leonardo Passos, Andre Hora, Marco Tulio Valente
Date de publication 2017/5/22
Conférence IFIP International Conference on Open Source Systems
Pages 151-163
Description
Code authorship is a key information in large-scale open-source systems. Among others, it allows maintainers to assess division of work and identify key collaborators. Interestingly, open-source communities lack guidelines on how to manage authorship. This could be mitigated by setting to build an empirical body of knowledge on how authorship-related measures evolve in successful open-source communities. Towards that direction, we perform a case study on the Linux kernel. Our results show that:(a) only a small portion of …
Conférence Proceedings of the 16th ACM conference on Computer and communications security
Pages 453-462
Description : Open source software is often considered to be secure. One factor in this confidence in the security of open source software lies in leveraging large developer communities to find vulnerabilities in the code. Eric Raymond declares Linus' Law“ Given enough eyeballs, all bugs are shallow.” Does Linus' Law hold up ad infinitum? Or, can the multitude of developers become“ too many cooks in the kitchen”, causing the system's security to suffer as a result? In this study, we examine the security of an open source …
Conférence : Proceedings of the 4th International Conference on Mobile Software Engineering and Systems
Pages : 110-121
Description
With billions of app downloads, the Apple App Store and Google Play Store succeeded to conquer mobile devices. However, this success also challenges app developers to publish high-quality apps to keep attracting and satisfying end-users. In particular, taming the ever-growing complexity of mobile apps to cope with maintenance and evolution tasks under such a pressure may lead to bad development choices. While these bad choices, aka code smells, are widely studied in object-oriented software, their study …
(Non disponible en ligne…) Code review analysis of software system using machine learning techniques
Auteurs Harsh Lal, Gaurav Pahwa
Date de publication 2017/1/5
Conférence Intelligent Systems and Control (ISCO), 2017 11th International Conference on
Pages 8-13
Description
Code review is systematic examination of a software system's source code. It is intended to find mistakes overlooked in the initial development phase, improving the overall quality of software and reducing the risk of bugs among other benefits. Reviews are done in various forms such as pair programming, informal walk-through, and formal inspections. Code review has been found to accelerate and streamline the process of software development like very few other practices in software development can. In this paper we …
Beaucoup d'articles proviennent de ASE 2017, d'autres peuvent être intéressants en fonction de vos sujets d'études.
Hebig, R., Quang, T. H., Chaudron, M. R. V., Robles, G., & Fernandez, M. A. (2016). The quest for open source projects that use UML. In Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems - MODELS ’16. https://doi.org/10.1145/2976767.2976778
author = {Alimadadi, Saba and Mesbah, Ali and Pattabiraman, Karthik},
booktitle = {Proceedings of the 40th International Conference on Software Engineering - ICSE '18},
doi = {10.1145/3180155.3180216},
isbn = {9781450356381},
issn = {02705257},
year = {2018},
Program comprehension is a necessary step for performing many software engineering tasks. Dynamic analysis is effective in producing execution traces that assist comprehension. Traces are rich sources of information regarding the behaviour of a program. However, it is challenging to gain insight from traces due to their over-whelming amount of data and complexity. We propose a generic technique for facilitating comprehension by inferring recurring execution motifs. Inspired by bioinformatics, motifs are patterns in traces that are flexible to small changes in execution, and are captured in a hierarchical model. The hierarchical nature of the model provides an overview of the behaviour at a high-level, while preserving the execution details and intermediate levels in a struc-tured manner. We design a visualization that allows developers to observe and interact with the model. We implement our approach in an open-source tool, called Sabalan, and evaluate it through a user experiment. The results show that using Sabalan improves developers' accuracy in performing comprehension tasks by 54{\%}.},
“Reverse engineering reusable software components from object-oriented APIs”,
Object-oriented Application Programing Interfaces (APIs) support software reuse by providing pre-implemented functionalities. Due to the huge number of included classes, reusing and understanding large APIs is a complex task. Otherwise, software components are accepted to be more reusable and understandable entities than object-oriented ones. Thus, in this paper, we propose an approach for reengineering object-oriented APIs into component-based ones. We mine components as a group of classes based on the frequency they are used together and their ability to form a quality-centric component. To validate our approach, we experimented on 100 Java applications that used four APIs.“
More than twelve years have elapsed since the first public release of WEKA. In that time, the software has been rewritten entirely from scratch, evolved substantially and now accompanies a text on data mining [35]. These days, WEKA enjoys widespread acceptance in both academia and business, has an active community, and has been downloaded more than 1.4 million times since being placed on Source-Forge in April 2000. This paper provides an introduction to the WEKA workbench, reviews the history of the project, and …
Khatoon S, Li G, Mahmood A (2013) Comparison and Evaluation of Source Code Mining Tools and Techniques: A Qualitative Approach. Intell Data Anal 17:459–484. doi: 10.3233/IDA-130589
Ouni A, Kessentini M, Sahraoui H, Inoue K, Hamdi MS (2015) Improving Multi-objective Code-smells Correction Using Development History. J Syst Softw 105:18–39. doi: 10.1016/j.jss.2015.03.040 (63 pages)