Browse by Author "Johnson, Ralph"

Refactoring has become a popular technique for the development and maintenance of object-oriented systems. We have been working on the refactoring of C programs, including the C preprocessor (Cpp), and we have built ...

One of the costs of reusing software components is migrating applications to use the new version of the components. Migrating an application can be error-prone, tedious, and disruptive of the development process. Our ...

This paper presents a catalog of code refactorings that are intended to improve the different quality attributes of Fortran programs. We classify the refactorings according to their purpose, that is, the internal or ...

Security requirements change, but the typical way of improving system security by patches is ad hoc and has not produced good results. Security improvements should be systematic, just as new features can be added to software ...

Security requirements change, but the typical way of improving system security by patches is ad hoc and has not produced good results. Security improvements should be systematic, just as new features can be added to software ...

Effect systems are important for reasoning about the side effects of a program. Although effect systems have been around for decades, they have not been widely adopted in practice because of the large number of annotations ...

Although in theory the APIs of software libraries and frameworks should be stable, they change in practice. This forces clients of the library API to change as well, making software maintenance expensive. Changing a client ...

Current text based Software Configuration Management (SCM) systems have trouble with refactorings. Refactorings result in global changes and lead to merge conflicts. A refactoring-aware SCM system reduces merge conflicts, ...

Refactoring tools allow programmers to change source code much quicker than before. However, the complexity of these changes cause versioning tools that operate at a file level to lose the history of components. This problem ...

In the multicore era, sequential programs need to be refactored for parallelism. The next version of Java provides ParallelArray, an array data structure that supports parallel operations over the array elements. For ...

Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and disrupts the development process. Although some tools and ideas [5, 14, 23, 26] have been proposed to solve the evolution ...