English
Related papers

Related papers: Refactoring Graphs: Assessing Refactoring over Tim…

200 papers

In this work we target the problem of provably computing the equivalence between two programs represented as dataflow graphs. To this end, we formalize the problem of equivalence between two programs as finding a set of semantics-preserving…

Machine Learning · Computer Science 2021-06-07 Steve Kommrusch , Théo Barollet , Louis-Noël Pouchet

Dependencies between types in object-oriented software can be viewed as directed graphs, with types as nodes and dependencies as edges. The in-degree and out-degree distributions of such graphs have quite different forms, with the former…

Software Engineering · Computer Science 2008-02-19 G. J. Baxter , M. R. Frean

Plagiarism detection in programming education faces growing challenges due to increasingly sophisticated obfuscation techniques, particularly automated refactoring-based attacks. While code plagiarism detection systems used in education…

Software Engineering · Computer Science 2025-10-30 Robin Maisch , Larissa Schmid , Timur Sağlam , Nils Niehues

Like conventional software projects, projects in model-driven software engineering require adequate management of multiple versions of development artifacts, importantly allowing living with temporary inconsistencies. In previous work,…

Software Engineering · Computer Science 2023-07-10 Matthias Barkowsky , Holger Giese

Large language model (LLM) coding agents can generate working code, but their solutions often accumulate complexity, duplication, and architectural debt. Human developers address such issues through refactoring: behavior-preserving program…

Software Engineering · Computer Science 2026-03-05 Alex Thillen , Niels Mündler , Veselin Raychev , Martin Vechev

Annotations have been formally introduced into Java since Java 5. Since then, annotations have been widely used by the Java community for different purposes, such as compiler guidance and runtime processing. Despite the ever-growing use,…

Software Engineering · Computer Science 2019-04-16 Zhongxing Yu , Chenggang Bai , Lionel Seinturier , Martin Monperrus

Identifying the sets of operations that can be executed simultaneously is an important problem appearing in many parallel applications. By modeling the operations and their interactions as a graph, one can identify the independent…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-07-28 Ahmet Erdem Sarıyüce , Erik Saule , Ümit V. Çatalyürek

Software remodularization through clustering is a common practice to improve internal software quality. However, the true benefit of software clustering is only realized if developers follow through with the recommended refactoring…

Software Engineering · Computer Science 2023-03-14 Alvin Jian Jia Tan , Chun Yong Chong , Aldeida Aleti

There are billions of lines of sequential code inside nowadays' software which do not benefit from the parallelism available in modern multicore architectures. Automatically parallelizing sequential code, to promote an efficient use of the…

Programming Languages · Computer Science 2016-04-13 Alcides Fonseca , Bruno Cabral , João Rafael , Ivo Correia

For large software systems, refactoring activities can be a challenging task, since for keeping component complexity under control the overall architecture as well as many details of each component have to be considered. Product metrics are…

Software Engineering · Computer Science 2013-08-20 Christian Napoli , Giuseppe Pappalardo , Emiliano Tramontana

Tracking statements in the commit history of a project is in many cases useful for supporting various software maintenance, comprehension, and evolution tasks. A high level of accuracy can facilitate the adoption of code tracking tools by…

Software Engineering · Computer Science 2024-09-25 Mohammed Tayeeb Hasan , Nikolaos Tsantalis , Pouria Alikhanifard

Graphs are widespread data structures used to model a wide variety of problems. The sheer amount of data to be processed has prompted the creation of a myriad of systems that help us cope with massive scale graphs. The pressure to deliver…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-10-09 Luis M. Vaquero , Felix Cuadrado , Matei Ripeanu

Software systems continuously evolve due to new functionalities, requirements, or maintenance activities. In the context of software evolution, software refactoring has gained a strategic relevance. The space of possible software…

Software Engineering · Computer Science 2024-01-31 Vittorio Cortellessa , Daniele Di Pompeo , Michele Tucci

Although software managers are generally good at new project estimation, their experience of scheduling rework tends to be poor. Inconsistent or incorrect effort estimation can increase the risk that the completion time for a project will…

Software Engineering · Computer Science 2010-07-30 Bee Bee Chua , June Verner

We consider dataflow architecture for two classes of computations which admit taking linear combinations of execution runs: probabilistic sampling and generalized animation. We improve the earlier technique of almost continuous program…

Programming Languages · Computer Science 2016-01-12 Michael Bukatin , Steve Matthews

Software model optimization is a process that automatically generates design alternatives aimed at improving quantifiable non-functional properties of software systems, such as performance and reliability. Multi-objective evolutionary…

Software Engineering · Computer Science 2025-11-04 J. Andres Diaz-Pace , Daniele Di Pompeo , Michele Tucci

Graphs naturally appear in several real-world contexts including social networks, the web network, and telecommunication networks. While the analysis and the understanding of graph structures have been a central area of study in algorithm…

Data Structures and Algorithms · Computer Science 2019-09-17 Gramoz Goranci

Knowledge graphs have emerged as an effective tool for managing and standardizing semistructured domain knowledge in a human- and machine-interpretable way. In terms of graph-based domain applications, such as embeddings and graph neural…

Artificial Intelligence · Computer Science 2022-07-21 Franz Krause , Tobias Weller , Heiko Paulheim

We describe how to use refactoring tools to transform a Java program conforming to the Composite design pattern into a program conforming to the Visitor design pattern with the same external behavior. We also describe the inverse…

Software Engineering · Computer Science 2013-07-02 Akram Ajouli , Julien Cohen

Software systems emerge from mere keystrokes to form intricate functional networks connecting many collaborating modules, objects, classes, methods, and subroutines. Building on recent advances in the study of complex networks, I have…

Statistical Mechanics · Physics 2009-11-10 C. R. Myers