Despite the automated refactoring support provided by today's IDEs many program transformations that are easy to conceptualize-such as improving the implementation of a desig...
Software systems have to be flexible in order to cope with evolving requirements. However, since it is impossible to predict with certainty what future requirements will emerge, i...
Software often needs to be modified for accommodating requirements changes through the software life cycle. To deal with several accidental requirements changes related to softwa...
Agile methodologies employ light-weight development practices emphasizing a test-driven approach to the development of software systems. Modern agile development environments supp...
Automating the generation of object-oriented unit tests is a challenging task. This is mainly due to the complexity and peculiarities that the principles of object-orientation imp...