STJA 99

 

Programm - Tutorials - Produktvorträge - Ausstellung - Pressemitteilung
Program - Tutorials - Product Presentation - Exhibition - Press report

Dr. Ira Baxter Semantic Designs

Transformation Systems: Theory, Implementation, and Survey

Abstract
As software demands grow, so does the need for tools to aid software engineers in designing and building software systems. Program Transformation systems are semantically sound tools that automate the modification of programs (implement specifications, reverse engineer, change code). Such tools are especially effective for large scale software system reengineering. Commercial transformation system tools are beginning to appear (COSMOS (tm Emendo Software Group), Reasoning5 CBMS (tm Reasoning Systems, Inc.), and the DMS Reengineering Toolkit (Semantic Designs)), and there are very interesting research systems ( IP (Microsoft) and ASF+SDF (U. Amsterdam)). These tools work by capturing domain analyses as specification languages, and mechanically reusing implementation knowledge (domain engineering products). An understanding of transformation system theory and technology can provide a deep understanding of how code generation, modification, and reuse of code and other software engineering artifacts work, how to recognize opportunities to use such tools, as well as provide background for using such tools in practice. This tutorial provides an integrated view, built over a decade, of transformation systems, from concepts, vocabulary, mechanisms, key variations, and discussion of a number of existing systems from this view. We strongly believe that serious software engineering automation support will come from such semantically founded tools. Further, many tools which appear to provide significant software engineering help can be understood more effectively using a transformational perspective. An extensive bibliography will be provided.

Target Audience
This tutorial is intended for both members of the software engineering practitioner community, researchers, and technical managers trying to choose among program construction tools, be they transformation systems, CASE tools, application generators, reusable libraries or even analysis tools. We believe that a transformational perspective will help cut through much of the confusing differences between such tools to reveal the real value in each, and to more clearly identify their strengths and weaknesses using a common vocabulary. For the OO community, the perspective provided will be especially valuable, for the issues considered are the same as the aims of much OO technology: how are domain ideas captured and reused, and thus offer a competing but automatable philosophy. In particular, transformation systems show the reuse of domain analysis, domain engineering, and design, and can aid in reuse of code.

Participants need only a general background in software engineering.

Tutorial Outline
1.Theory: Motivation, Key Concepts and Transformation System Components 2.Program Representations and Transformation Mechanisms
3.Some Sample Transformation Systems: Sinapse, IP, DMS
4.Analysis: When to use a transformation system
5.Relation to Reuse, and why Code Reuse isn't everything

 

Keynote: The Design Maintenance System, Scale, and application to Refactoring

<<