Dr. Ira Baxter Semantic Designs (USA)

Dr. Baxter started designing program manipulation tools such as operating systems and compilers in 1969, and spent a decade wondering at their similarity and frustrated by their differences. This motivated his study of software engineering and reusability at the University of California at Irvine. He has worked on or with a number of transformation systems, including REFINE (a commercial offering currently popular for reengineering), Draco (multiple domain notations and source of the term "domain analysis"), Sinapse (generation of PDE solvers for supercomputers), and IP (Microsoft Research's transformation tool). Dr. Baxter is presently the principal architect of Semantic Design's transformational Design Maintenance System (DMS), a NIST Advanced Technology Program funded project to use software componentry to enhance software maintenance. He is the principal designer and compiler implementer of PARLANSE, SD's parallel programming language for Wintel Symmetric Multiprocessors. He acts as the consulting architect on a factory-control program generation system for Rockwell Automation (Allen-Bradley) using transformational methods. Dr. Baxter was Program CoChair of the 1996 and 1997 Working Conference on Reverse Engineering (WCRE3/4), CoGeneral chair of the 5th International Conference on Software Reuse (June, 1998), and invited speaker at the Symposium on Software Reusability at ICSC98.

Ira Baxter, Ph.D. email: idbaxter@semdesigns.com
Semantic Designs, Inc. voice: 512-250-1018 x140
12636 Research Blvd. #C-214 FAX: 512-250-1191
Austin, Texas 78759-2200

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

Software modification and maintenance account for some 80% of the cost of a software system over its lifetime. Much of that cost is invested in rediscovery of lost design information, and carrying out complex changes. The Design Maintenance System is a vision and a set of evolving tools for automating change to software. The DMS vision is based on capturing DMS's unique model of designs based on transformational synthesis, and reusing domain specific knowledge in the form of correctness preserving program transformations and generators, essentially composed sets of such transformations. DMS is designed to handle large scale codes (millions of lines) as well as carrying out domain-specific synthesis.

This talk will sketch the DMS vision, discuss how the DMS model of design differs fundamentally from conventional software designs, and show what is meant by DMS domains. We will describe the current state of DMS (the DMS reengineering toolkit), including both Java and IBM VS COBOL II domains and transformations.

Lastly, we will examine a few possible applications of DMS, including working automated code clone detection/removal on scale, and the potential of automated refactoring of large class frameworks, which should be of special interest to the OO community.

Download

Tutorial: 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

Download