Software applications typically have many features that vary in their similarity. We define a measurement of similarity between pairs of features based on their underlying implem...
Jay Kothari, Trip Denton, Spiros Mancoridis, Ali S...
In the last years, as object-oriented software systems became more and more complex, the need of performing automatically reverse engineering upon these systems has increased sign...
The effective reverse engineering of biochemical networks is one of the great challenges of systems biology. The contribution of this paper is two-fold: 1) We introduce a new meth...
The goal of obfuscation is to transform a program, without affecting its functionality, such that some secret information within the program can be hidden for as long as possible...
Anirban Majumdar, Stephen Drape, Clark D. Thombors...
The EvoSpaces reverse-engineering tool represents the architecture and metrics of complex software systems as 3D software cities. By navigating and interacting with this world, th...
Legacy applications can be difficult and time-consuming to understand and update due to the lack of modern abstraction mechanisms in legacy languages, as well as the gradual dete...
When trying to understand the evolution of a software system it can be useful to visualize the evolution of the system’s architecture. Existing tools for viewing architectural e...
Dynamic protocol recovery tries to recover a component’s sequencing constraints by means of dynamic analysis. This problem has been tackled by several automaton learning approac...
Gaining an understanding of software systems is an important discipline in many software engineering contexts. It is essential that software engineers are assisted as much as poss...
The notion of functional or modular dependency is fundamental to understand the architecture and inner workings of any software system. In this paper, we propose to extend that no...