English
Related papers

Related papers: On Preserving the Behavior in Software Refactoring…

200 papers

The primary value of AI agents in software development lies in their ability to extend the developer's capacity for reasoning and action, not to supplant human involvement. To showcase how to use agents working in tandem with developers, we…

Tool-assisted refactoring transformations must be trustworthy if programmers are to be confident in applying them on arbitrarily extensive and complex code in order to improve style or efficiency. We propose a simple, high-level but…

Programming Languages · Computer Science 2016-07-11 Dániel Horpácsi , Judit Kőszegi , Simon Thompson

Aspect oriented programming aims at achieving better modularization for a system's crosscutting concerns in order to improve its key quality attributes, such as evolvability and reusability. Consequently, the adoption of aspect-oriented…

Software Engineering · Computer Science 2016-08-31 Arie van Deursen , Marius Marin , Leon Moonen

Program tracing, or mentally simulating a program on concrete inputs, is an important part of general program comprehension. Programs involve many kinds of virtual state that must be held in memory, such as variable/value pairs and a call…

Human-Computer Interaction · Computer Science 2021-01-19 Will Crichton , Maneesh Agrawala , Pat Hanrahan

Refactoring is a constant activity in software development and maintenance. Scale and maintain software systems are based on code refactoring. However, this process is still labor intensive, as it requires programmers to analyze the…

Programming requires much more than just writing code in a programming language. It is usually done in the context of a stateful environment, by interacting with a system through a graphical user interface. Yet, this wide space of…

Programming Languages · Computer Science 2023-02-21 Joel Jakubovic , Jonathan Edwards , Tomas Petricek

Software systems are complex, and behavioral comprehension with the increasing amount of AI components challenges traditional testing and maintenance strategies.The lack of tools and methodologies for behavioral software comprehension…

Software Engineering · Computer Science 2019-12-19 Hannes Thaller , Lukas Linsbauer , Rudolf Ramler , Alexander Egyed

Modular and well-written software is an ideal that programmers strive to achieve. However, real-world project constraints limit the amount of reusable and modular code that programmers can produce. Many techniques exist that refactor code…

Software Engineering · Computer Science 2018-12-05 Mohammad Raji , Behzad Montazeri

Determining whether a given program terminates is the quintessential undecidable problem. Algorithms for termination analysis are divided into two groups: (1) algorithms with strong behavioral guarantees that work in limited circumstances…

Programming Languages · Computer Science 2021-09-16 Shaowei Zhu , Zachary Kincaid

In recent years, many studies have applied wearable devices to capture psychophysiological data from software developers. However, the current literature lacks investigations that classify the studies and point out gaps to be explored. This…

Software Engineering · Computer Science 2021-06-01 Roger Vieira , Kleinner Farias

Modern software development without reactive programming is hard to imagine. Reactive programming favors a wide class of contemporary software systems that respond to user input, network messages, and other events. While reactive…

Software Engineering · Computer Science 2017-04-03 Stefan Ramson , Robert Hirschfeld

When solving long-horizon tasks, it is intriguing to decompose the high-level task into subtasks. Decomposing experiences into reusable subtasks can improve data efficiency, accelerate policy generalization, and in general provide promising…

Machine Learning · Computer Science 2024-10-30 Yiwen Qiu , Yujia Zheng , Kun Zhang

Membrane systems are a biologically-inspired computational model based on the structure of biological cells and the way chemicals interact and traverse their membranes. Although their dynamics are described by rules, encoding membrane…

Logic in Computer Science · Computer Science 2024-01-17 Rubén Rubio , Narciso Martí-Oliet , Isabel Pita , Alberto Verdejo

Computer systems can be found everywhere: in space, in our homes, in our cars, in our pockets, and sometimes even in our own bodies. For concerns of safety, economy, and convenience, it is important that such systems work correctly.…

Logic in Computer Science · Computer Science 2019-05-22 Mathias Ruggaard Pedersen

The rules in a shape grammar apply in terms of embedding to take advantage of the parts that emerge visually in the appearance of shapes. While the shapes are kept unanalyzed as a computation moves forward, part-structures for shapes can be…

Formal Languages and Automata Theory · Computer Science 2022-03-15 Alexandros Haridis , George Stiny

Testing has become an indispensable activity of software development, yet writing good and relevant tests remains a quite challenging task. One well-known problem is that it often is impossible or unrealistic to test for every outcome, as…

Programming Languages · Computer Science 2017-08-18 Dimitri Racordon , Didier Buchs

Automated source code refactoring, particularly extract method refactoring, is a crucial and frequently employed technique during software development. Despite its importance and frequent use by practitioners, current automated techniques…

Software Engineering · Computer Science 2024-12-25 Indranil Palit , Tushar Sharma

Cyber-physical systems are inherently complex due to their connection between software and the physical world. Iterative design reduces their complexity, but increases the need to repeatedly recheck their safety in full after every change.…

Logic in Computer Science · Computer Science 2026-05-15 Enguerrand Prebet , André Platzer

Programming languages and platforms improve over time, sometimes resulting in new language features that offer many benefits. However, despite these benefits, developers may not always be willing to adopt them in their projects for various…

Programming Languages · Computer Science 2018-03-29 Raffi Khatchadourian , Hidehiko Masuhara

Context: Change mining enables organizations to understand the changes that occurred in their business processes. This allows them to enhance their business processes and adapt to dynamic environments. Therefore, change mining is becoming a…

Software Engineering · Computer Science 2025-09-03 Arash Yadegari Ghahderijani , Hande Naz Turgay , Dimka Karastoyanova