Program |
 |
|
|
Find in Program |
 |
|
|
Page |
 |
|
|
Basket |
 |
|
view, help
"Program Transformation Systems: Theory and Practice for Software Generation, Maintenance and Reengineering"
|
|
|
|
Program Transformation Systems: Theory and Practice for Software Generation, Maintenance and Reengineering
Pan Pacific Boardroom Monday, 8:30, full day 7 | · | 8 | · | 9 | · | 10 | · | 11 | · | 12 | · | 13 | · | 14 | · | 15 | · | 16 | · | 17 | · | 18 | · | 19 | · | 20 | · | 21 |
Ira Baxter, Semantic Designs, Inc.: Ira Baxter has been building system software since 1969. He acquired his Ph.D. with emphasis on software engineering and reuse from the University of California at Irvine in 1990. He has worked with a number transformation systems starting with Draco in 1975, and is presently the architect of the DMS, and designer of the PARLANSE parallel programming language in which DMS is implemented. Dr. Baxter has been invited speaker at SSR99, co-Chair of the 1997 International Conference on Software Reuse, Program co-Chair of the Working Conference on Reverse Engineering, and Program co-Chair of the 2002 International Conference on Software Maintenance, and has been a PC member of the International Conference on Software Maintenance for a number of years. Hongjun Zheng, Semantic Designs, Inc.: Hongjun Zheng, received Ph.D. on computer science at Peking University in 1997, M.S. on computer science at Jilin University in 1994. He is an active professional in R&D of software engineering. He played inseparable roles in diverse projects. Dr. Zheng, at Semantic Designs, is performing research on generalized compiler framework for programming languages used in large-scale software evolution and maintenance environment. He is member of ACM and senior member of IEEE. Dr. Zheng has served as committee member for computer-science conferences, especially those focused on software engineering and formal methods: International Conference on Formal Engineering Methods (2003, 2004), International Workshop on Source Code Analysis and Manipulation (2004), International Colloquium on Theoretical Aspects of Computing (2004).
Tutorial number: GP4
As software demands grow, so does the need for tools to aid software
engineers in designing, building and
maintaining software systems. Software maintenance costs dominate
software engineering costs, partly
because most such engineering is done manually. Program transformation
systems are semantically sound
tools that modify programs (implement specifications, reverse engineer,
change/modify/maintain code).
These tools work by applying a knowledge base of software modification
components called
transformations that capture software system implementation knowledge.
The transformations
mechanically reuse domain engineering products to provide domain-specific
automated analysis,
modification, and generation of software, therefore enhancing
productivity and quality over conventional
methods.
Program transformation systems can capture software system
implementation knowledge, as well as
mechanically reuse domain-engineering products to provide domain-specific
program generation. Because
they provide automation, they can carry out massive changes to large-scale
legacy systems that would be
impractical by hand, such as Y2K remediation, system porting,
refactoring, etc. The implementation
knowledge available to a transformation system is key to carrying out
reverse engineering, by explaining
how code can implement proposed abstractions. Lastly, from the proper
perspective, these systems can
unify specification, design, and maintenance lifecycle phases.
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 can work.
This tutorial provides a complete overview of transformation systems,
from theory to implementation to
application. The tutorial progresses from introductory to intermediate,
all the necessary background will be
provided, so attendees need only have basic software engineering
knowledge and motivating experience
modifying software.
|