Software Evolution through TransformationsBusinesses, organisations and society at large are increasingly reliant on software at all levels. An intrinsic characteristic of software addressing a real-world application is the need to evolve. Such evolution is inevitable if the software is to remain satisfactory to its stakeholders. Changes to software artifacts and related entities tend to be progressive and incremental, driven, for example, by feedback from users and other stakeholders. Changes may be needed for a variety of reasons, such as bug reports, requests for new features or, more generally, changes of functional requirements, or by the need to adapt to new technology, e.g., to interface to other systems.In general, evolutionary characteristics are inescapable when the problem to be solved or the application to be addressed belongs to the real world. Transformations of artifacts like models, schemata, data, program code, or software architectures provide a uniform and systematic way to express and reason about the evolution of software systems. Literally, all activities that lead to the creation or modification of documents have a transformational aspect, i.e., they change a given structure into a new one according to pre-defined rules. In most cases, these rules manifest themselves as user-invoked operations in CASE tools or program editors. More abstract examples include rules for model refinement, for translating models to code, for recovering designs from legacy systems, or for refactoring and restructuring software. Workshop ObjectivesThis workshop aimed at providing a forum for the discussion of transformational techniques in software evolution with particular focus on approaches that are generally applicable throughout the software development life-cycle. Thereby, we have distinguished two co-existing, complementary and mutually reinforcing views of the evolution theme. The more widespread view focuses on the how of software evolution, emphasising the methods and means by which software is evolved. The other focuses on the what and why of the evolution phenomenon, its nature and underlying drivers. Being mutually supportive, both views are required. A better understanding of the phenomenon leads to more appropriate ways of achieving evolution. Both views are supported through the general concept of transformation, i.e., the manual, interactive, or automatic manipulation of artifacts according to pre-defined rules, either as a conceptual abstraction of human software engineering activities, or as the implementation of mappings on and between modelling and programming languages. Workshop ProgramThe workshop was scheduled for two half days and included one invited talk by Stuart Kent as well as presentations of contributed papers in two regular sessions on different Transformation Techniques and on the mutual Compatibility of Transformations. In addition, the workshop featured a special session on Case Studies for Visual Modelling Techniques held jointly with the Workshop on Graph Transformation and Visual Modelling Techniques (GT-VMT 2002) as part of the work carried out under the European research training network SegraVis (for Syntactic and Semantic Integration of Visual Modelling Techniques). AcknowledgementThis workshop has been supported by the following projects: the scientific research network Foundations of Software Evolution, funded by the Fund for Scientific Research - Flanders (Belgium), the scientific research network RELEASE (for REsearch Links to Explore and Advance Software Evolution) funded by the European Science Foundation, and the European research training network SegraVis.Reiko Heckel, Universität Paderborn, GermanyTom Mens, Vrije Universiteit Brussel, BelgiumMichel Wermelinger, Universidade Nova de Lisboa and ATX Software SA, Lisbon, Portugal
Read full abstract