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 ...
Model-driven development is the process of creating models of a software system and transforming them into source code. Since the stepwise transformations can be done automaticall...
—Automatic and advanced merging algorithms help programmers to merge their modifications in main development repositories. However, there is little support to help release maste...
Many tools designed to help programmers view and manipulate source code exploit the formal structure of the programming language. Language-based tools use information derived via ...
The evolution of complex software systems is promoted by software engineering principles and techniques like separation of concerns, encapsulation, stepwise refinement, and reusab...