Searched for: subject%3A%22Engineering%22
(1 - 19 of 19)
document
Aniche, Maurício (author), Treude, Christoph (author), Zaidman, A.E. (author)
One of the main challenges that developers face when testing their systems lies in engineering test cases that are good enough to reveal bugs. And while our body of knowledge on software testing and automated test case generation is already quite significant, in practice, developers are still the ones responsible for engineering test cases...
journal article 2021
document
van der Leij, David (author), Binda, J.R. (author), van Dalen, Robbert (author), Vallen, Pieter (author), Luo, Yaping (author), Aniche, Maurício (author)
The sound identification of refactoring opportunities is still an open problem in software engineering. Recent studies have shown the effectiveness of machine learning models in recommending methods that should undergo different refactoring operations. In this work, we experiment with such approaches to identify methods that should undergo an...
conference paper 2021
document
Schröder, C.J. (author), van der Feltz, Adriaan (author), Panichella, A. (author), Aniche, Maurício (author)
Deciding what constitutes a single module, what classes belong to which module or the right set of modules for a specific software system has always been a challenging task. The problem is even harder in large-scale software systems composed of thousands of classes and hundreds of modules. Over the years, researchers have been proposing...
conference paper 2021
document
Sellik, Hendrig (author), van Paridon, Onno (author), Gousios, G. (author), Aniche, Maurício (author)
Mistakes in binary conditions are a source of error in many software systems. They happen when developers use, e.g., < or > instead of <= or >=. These boundary mistakes are hard to find and impose manual, labor-intensive work for software developers. While previous research has been proposing solutions to identify errors in boundary...
conference paper 2021
document
Langhout, Chris (author), Aniche, Maurício (author)
Although writing code seems trivial at times, problems arise when humans misinterpret what the code actually does. One of the potential causes are "atoms of confusion", the smallest possible patterns of misinterpretable source code. Previous research has investigated the impact of atoms of confusion in C code. Results show that developers make...
conference paper 2021
document
Grent, Henk (author), Akimov, Aleksei (author), Aniche, Maurício (author)
Web APIs may have constraints on parameters, such that not all parameters are either always required or always optional. Moreover, the presence or value of one parameter could cause another parameter to be required, or parameters could have restrictions on what kinds of values are valid. Having a clear overview of the constraints helps API...
conference paper 2021
document
Harty, Julian (author), Zhang, Haonan (author), Wei, Lili (author), Pascarella, L. (author), Aniche, Maurício (author), Shang, Weiyi (author)
Software logs are of great value in both industrial and open-source projects. Mobile analytics logging enables developers to collect logs remotely from their apps running on end user devices at the cost of recording and transmitting logs across the Internet to a centralised infrastructure.This paper makes a first step in characterising...
conference paper 2021
document
Larios Vargas, E. (author), Aniche, Maurício (author), Treude, Christoph (author), Bruntink, Magiel (author), Gousios, G. (author)
The selection of third-party libraries is an essential element of virtually any software development project. However, deciding which libraries to choose is a challenging practical problem. Selecting the wrong library can severely impact a software project in terms of cost, time, and development effort, with the severity of the impact depending...
conference paper 2020
document
Aniche, Maurício (author), Maziero, Erick (author), Durelli, Rafael (author), Durelli, Vinicius (author)
Refactoring is the process of changing the internal structure of software to improve its quality without modifying its external behavior. Empirical studies have repeatedly shown that refactoring has a positive impact on the understandability and maintainability of software systems. However, before carrying out refactoring activities,...
journal article 2020
document
Arnar Briem, Jón (author), Smit, Jordi (author), Sellik, Hendrig (author), Rapoport, Pavel (author), Gousios, G. (author), Aniche, Maurício (author)
Mistakes in boundary conditions are the cause of many bugs in software. These mistakes happen when, e.g., developers make use of '<' or '>' in cases where they should have used '<=' or '>='. Mistakes in boundary conditions are often hard to find and manually detecting them might be very time-consuming for developers. While...
conference paper 2020
document
Tómasdóttir, Kristín (author), Aniche, Maurício (author), van Deursen, A. (author)
A linter is a static analysis tool that warns software developers about possible code errors or violations to coding standards. By using such a tool, errors can be surfaced early in the development process when they are cheaper to fix. For a linter to be successful, it is important to understand the needs and challenges of developers when using...
journal article 2020
document
Aniche, Maurício (author), Hermans, F.F.J. (author), van Deursen, A. (author)
Software testing is an important topic in software engineering education, and yet highly challenging from an educational perspective: students are required to learn several testing techniques, to be able to distinguish the right technique to apply, to evaluate the quality of their test suites, and to write maintainable test code. In this paper,...
conference paper 2019
document
Aniche, Maurício (author), Yoder, Joseph W. (author), Kon, Fabio (author)
According to the extensive 50-year-old body of knowledge in object-oriented programming and design, good software designs are, among other characteristics, lowly coupled, highly cohesive, extensible, comprehensible, and not fragile. However, with the increased complexity and heterogeneity of contemporary software, this might not be enough. This...
conference paper 2019
document
Schipper, Daan (author), Aniche, Maurício (author), van Deursen, A. (author)
Logs are widely used as a source of information to understand the activity of computer systems and to monitor their health and stability. However, most log analysis techniques require the link between the log messages in the raw log file and the log statements in the source code that produce them. Several solutions have been proposed to solve...
conference paper 2019
document
Winter, J. (author), Aniche, Maurício (author), Cito, Jürgen (author), van Deursen, A. (author)
Engineering modern large-scale software requires software developers to not solely focus on writing code, but also to continuously examine monitoring data to reason about the dynamic behavior of their systems. These additional monitoring responsibilities for developers have only emerged recently, in the light of DevOps culture. Interestingly,...
conference paper 2019
document
Goularte Carvalho, Suelen (author), Aniche, Maurício (author), Veríssimo, Júlio (author), Durelli, Rafael (author), Gerosa, Marco Aurélio (author)
Software developers, including those of the Android mobile platform, constantly seek to improve their applications’ maintainability and evolvability. Code smells are commonly used for this purpose, as they indicate symptoms of design problems. However, although the literature presents a variety of code smells, such as God Class and Long...
journal article 2019
document
Aué, J. (author), Aniche, Maurício (author), Lobbezoo, Maikel (author), van Deursen, A. (author)
Service-oriented architectures are more popular than ever, and increasingly companies and organizations depend on services offered through Web APIs. The capabilities and complexity of Web APIs differ from service to service, and therefore the impact of API errors varies. API problem cases related to Adyen's payment service were found to have...
conference paper 2018
document
Castelein, J. (author), Aniche, Maurício (author), Soltani, M. (author), Panichella, A. (author), van Deursen, A. (author)
Database-centric systems strongly rely on SQL queries to manage and manipulate their data. These SQL commands can range from very simple selections to queries that involve several tables, subqueries, and grouping operations. And, as with any important piece of code, developers should properly test SQL queries. In order to completely test a SQL...
conference paper 2018
document
Spadini, D. (author), Aniche, Maurício (author), Bruntink, Magiel (author), Bacchelli, A. (author)
When testing software artifacts that have several dependencies, one has the possibility of either instantiating these dependencies or using mock objects to simulate the dependencies’ expected behavior. Even though recent quantitative studies showed that mock objects are widely used both in open source and proprietary projects, scientific...
journal article 2018
Searched for: subject%3A%22Engineering%22
(1 - 19 of 19)