In this ever changing business environment, business processes are constantly being customized to reflect the up-to-date organizational structure and business objectives. Technolo...
Large-scale legacy programs take long time to compile, thereby hampering productivity. This paper presents algorithms that reduce compilation time by analyzing syntactic dependenc...
Yijun Yu, Homayoun Dayani-Fard, John Mylopoulos, P...
Several rapid-feedback-based quality assurance mechanisms are used to manage the quality of continuously evolving software. Even though graphical user interfaces (GUIs) are one of...
To aid software analysis and maintenance tasks, a number of software clustering algorithms have been proposed to automatically partition a software system into meaningful subsyste...
Regression testing is a widely-used method for checking whether modifications to software systems have adversely affected the overall functionality. This is potentially an expens...
There can be no doubt that risk management is an important activity in the software engineering area. One proof of this is the large body of work existing in this area. However, w...
This paper presents the Xrefactory project. Xrefactory is a plugin to editors and Integrated Development Environments (IDE) providing a variety of source understanding and refacto...
The documentation of a program often falls behind the evolution of the program source files. When this happens it may be attractive to shift the documentation mode from updating ...
Adding distributed capabilities to existing programs has come to the forefront of software evolution. As a standard Java distributed technology, applets offer the advantages of be...
Aspect oriented programming has been proposed as a way to improve modularity of software systems by allowing encapsulation of cross-cutting concerns. To do so, aspects specify whe...