- Software Engineering Research
- Advanced Software Engineering Methodologies
- Software System Performance and Reliability
- Software Engineering Techniques and Practices
- Software Reliability and Analysis Research
- Software Testing and Debugging Techniques
- Open Source Software Innovations
- Advanced Malware Detection Techniques
- Topic Modeling
- Natural Language Processing Techniques
- Scientific Computing and Data Management
- Service-Oriented Architecture and Web Services
- Data Visualization and Analytics
- Logic, programming, and type systems
- Personal Information Management and User Behavior
- Web Data Mining and Analysis
- Model-Driven Software Engineering Techniques
- Business Process Modeling and Analysis
- Online Learning and Analytics
- Computational Physics and Python Applications
- Advanced Database Systems and Queries
- Semantic Web and Ontologies
- Usability and User Interface Design
- Data Mining Algorithms and Applications
- Multi-Agent Systems and Negotiation
Free University of Bozen-Bolzano
2017-2024
Laboratoire Bordelais de Recherche en Informatique
2023-2024
Université de Bordeaux
2023-2024
Institut Polytechnique de Bordeaux
2023-2024
Centre National de la Recherche Scientifique
2023-2024
Polytechnique Montréal
2018
William & Mary
2018
University of Chile
2010-2017
Laboratoire d'Informatique de Paris-Nord
2014
Università della Svizzera italiana
2005-2009
Reliably predicting software defects is one of engineering's holy grails. Researchers have devised and implemented a plethora bug prediction approaches varying in terms accuracy, complexity the input data they require. However, absence an established benchmark makes it hard, if not impossible, to compare approaches. We present for defect prediction, form publicly available set consisting several systems, provide extensive comparison explanative predictive power well-known approaches,...
Software visualization is a popular program comprehension technique used in the context of software maintenance, reverse engineering, and evolution analysis. While there broad range approaches, only few have been empirically evaluated. This detrimental to acceptance both academic industrial world.
E-mails concerning the development issues of a system constitute an important source information about high-level design decisions, low-level implementation concerns, and social structure developers.
When the Application Programming Interface (API) of a framework or library changes, its clients must be adapted. This change propagation---known as ripple effect---is problem that has garnered interest: several approaches have been proposed in literature to react these changes.
Code completion is a widely used productivity tool. It takes away the burden of remembering and typing exact names methods or classes: As developer starts name, it provides progressively refined list candidates matching name. However, candidate always comes in alphabetic order, i.e., environment only second-guessing name based on pattern matching. Finding correct can be cumbersome slower than full We present an approach to improve code with program history. define benchmark measuring...
Change coupling is the implicit relationship between two or more software artifacts that have been observed to frequently change together during evolution of a system. Researchers studied this dependency and it points design issues such as architectural decay. It still unknown whether correlates with tangible effect issues, i.e., defects.In paper we analyze defects on three large systems. We investigate defects, if performance bug prediction models based metrics can be improved information.
Statistical language modeling techniques have successfully been applied to large source code corpora, yielding a variety of new software development tools, such as tools for suggestion, improving readability, and API migration. A major issue with these is that introduces vocabulary at far higher rate than natural language, identifier names proliferate. Both vocabularies out-of-vocabulary issues severely affect Neural Language Models (NLMs) code, degrading their performance rendering them...
Empirical Standards are natural-language models of a scientific community's expectations for specific kind study (e.g. questionnaire survey). The ACM SIGSOFT Paper and Peer Review Quality Initiative generated empirical standards research methods commonly used in software engineering. These living documents, which should be continuously revised to reflect evolving consensus around best practices, will improve quality make peer review more effective, reliable, transparent fair.
OpenAI's Codex, a GPT-3 like model trained on large code corpus, has made headlines in and outside of academia. Given short user-provided description, it is capable synthesizing snippets that are syntactically semantically valid most cases. In this work, we want to investigate whether Codex able localize fix bugs, two important tasks automated program repair. Our initial evaluation uses the multi-language QuixBugs benchmark (40 bugs both Python Java). We find that, despite not being for APR,...
Software evolution research is limited by the amount of information available to researchers: Current version control tools do not store all generated developers. They record every intermediate system issued, but only snapshots taken when a developer commits source code into repository. Additionally, most software analysis are part day-to-day programming activities, because resource intensive and integrated in development environments. We propose model as change operations that we retrieve...
In large software systems, knowing the dependencies between modules or components is critical to assess impact of changes.To recover dependencies, fact extractors analyze system as a whole and build dependency graph, parsing down statement level.At level ecosystems, which are collections projects, that need be recovered reside not only within individual but also libraries, frameworks, entire systems make up complete ecosystem; scaling issues arise.In this paper we present evaluate several...
When developers use Application Programming Interfaces (APIs), they often rely on documentation to assist their tasks. In previous studies, we reported evidence indicating that static type systems acted as a form of implicit documentation, benefiting developer productivity. Such is easier maintain, given it enforced by the compiler, but experiments tested users without any explicit documentation. this paper, report controlled experiment and an exploratory study comparing impact using or...
Software engineering research now considers that no system is an island, but it part of ecosystem involving other systems, developers, users, hardware, ... When one (e.g., a framework) evolves, its clients often need to adapt. Client developers might adapt functionalities, client systems be adapted new API, users User Interface. The consequences such changes are yet unclear, what proportion the expected react, how long take for change diffuse in ecosystem, do all react same way? This paper...
This paper presents our experience in implementing a chatbot for expert recommendation tasks. The was developed the Pharo software ecosystem, and is integrated with Discord chat service, which used by Community. We also report on preliminary evaluation which; system welcomed, though conversational behavior not; users expected fully chatbot, capable of following conversation flow that user handles. discuss such expectations might be hard to meet because uncanny valley effect.
Pre-trained models of code built on the transformer architecture have performed well software engineering (SE) tasks such as predictive generation, summarization, among others. However, whether vector representations from these pre-trained comprehensively encode characteristics source enough to be applicable a broad spectrum downstream remains an open question.One way investigate this is with diagnostic called probes. In paper, we construct four probing (probing for surface-level, syntactic,...
Our research is driven by the motivation that change must be put in center, if one wants to understand complex processes of software evolution. We built a toolset named SpyWare which, using monitoring plug-in for integrated development environments (IDEs), tracks changes developer performs on program as they happen. stores these first-class repository and offers plethora productivity-enhancing IDE extensions exploit recorded information.
Static type systems play an essential role in contemporary programming languages. Despite their importance, whether static influence human software development capabilities remains open question. One frequently mentioned argument for is that they improve the maintainability of - often used claim which there no empirical evidence. This paper describes experiment tests systems. The results show rigorous evidence are indeed beneficial to these activities, except fixing semantic errors.
Abstract Although the study of static and dynamic type systems plays a major role in research, relatively little is known about impact on software development. Perhaps one more common arguments for languages such as Java or C++ that they require developers to annotate their code with names, which thus claimed improve documentation software. In contrast, argument against decrease flexibility, may make them harder use. While these are found literature, rigorous empirical evidence lacking. We...
Application Programming Interfaces (APIs) are a tremendous resource—that is, when they stable. Several studies have shown that this is unfortunately not the case. Of those, large-scale study of API changes in Pharo Smalltalk ecosystem documented several findings about deprecations and their impact on clients. We extend study, by analyzing clients both popular third-party Java APIs JDK API. This results dataset consisting more than 25,000 five GitHub, 60 from Maven Central. work addresses...