Providing consistent, instant, and detailed feedback to students has been a big challenge in teaching Web based computing, given the complexity of project assignments and the comp...
Xiang Fu, Boris Peltsverger, Kai Qian, Lixin Tao, ...
Refactorings are behavior-preserving program transformations that automate design evolution in object-oriented applications. Three kinds of design evolution are: schema transformat...
In the software engineering literature, many works claim that the use of design patterns improves the comprehensibility of programs and, more generally, their maintainability. Yet...
The maintenance and evolution of critical software with high requirements for reliability is an extremely demanding, time consuming and expensive task. Errors introduced by ad-hoc ...
Most design recovery approaches start from analysing source code. Nonetheless, it is very difficult to get adequate design information only depending on source code. Additional av...