Automated Software Synthesis: An Application in Mechanical CAD
IEEE Transactions on Software Engineering
Reuse R&D: gap between theory and practice
SSR '99 Proceedings of the 1999 symposium on Software reusability
Using transformation systems for software maintenance and reengineering
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
DMS: program transformations for practical scalable software evolution
Proceedings of the International Workshop on Principles of Software Evolution
Design-code traceability for object-oriented systems
Annals of Software Engineering
Evolving Object-Oriented Designs with Refactorings
Automated Software Engineering
Transformation in Intentional Programming
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Automated Software Engineering
Language convergence infrastructure
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Agile parsing to transform web applications
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Hi-index | 0.00 |
Conventional software engineering tends to focus on a small part of the software life cycle: the design and implementation of a product. The bulk of the lifetime cost is in the maintenance phase, where one must live with the product previously developed. Presently, we have little theory and fewer tools to help us manage the maintenance activity. We contend that a fundamental cause of the difficulty is the failure to preserve design information. This results from an over preoccupation with the synthesis and maintenance of code. We offer an alternative paradigm: * make the design the central focus of the construction process-get code as a byproduct; * make the design the central focus of the maintenance process-preserve revised designs and get code as a byproduct. A transformational scheme for accomplishing this is presented. We call it the Design Maintenance System. The programming roles change radically from coding instances for ill-defined specifications to specifiers of functionality and (compiler-like) implementation methods. Specification and implementation method debugging would then become prominent activities. The design scheme and change management procedures are illustrated with a simple data processing application. We sketch an ongoing implementation.