A 15 Year Perspective on Automatic Programming
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
Automating the Transformational Development of Software
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
Research on Knowledge-Based Software Environments at Kestrel Institute
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
A rational design process: How and why to fake it
IEEE Transactions on Software Engineering
On merging software extensions
Acta Informatica
The Munich Project CIP: Volume I: the wide spectrum language CIP-L
The Munich Project CIP: Volume I: the wide spectrum language CIP-L
A survey and classification of some program transformation approaches and techniques
The IFIP TC2/WG 2.1 Working Conference on Program specification and transformation
Readings in artificial intelligence and software engineering
Readings in artificial intelligence and software engineering
A Prototyping Language for Real-Time Software
IEEE Transactions on Software Engineering
Formal Program Construction by Transformations-Computer-Aided, Intuition-Guided Programming
IEEE Transactions on Software Engineering
Constructing Specifications by Combining Parallel Elaborations
IEEE Transactions on Software Engineering
The/Munich Project CIP
The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
Integrating noninterfering versions of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Software engineering with abstractions
Software engineering with abstractions
Building an evolution transformation library
ICSE '90 Proceedings of the 12th international conference on Software engineering
Normal forms for algebraic specifications of reusable Ada packages
TRI-Ada '91 Proceedings of the conference on TRI-Ada '91: today's accomplishments; tomorrow's expectations
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Program Transformation Systems
ACM Computing Surveys (CSUR)
A System for Assisting Program Transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program developments: formal explanations of implementations
Communications of the ACM
On the inevitable intertwining of specification and implementation
Communications of the ACM
A Discipline of Programming
A Computer-Aided Prototyping System
IEEE Software
An Introduction to the Specification Language SPEC
IEEE Software
Software merge: semantics of combining changes to programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM SIGSOFT Software Engineering Notes
A methodology for high-level software specification construction
ACM SIGSOFT Software Engineering Notes
Specification-based prototyping for embedded systems
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Programming languages and systems for prototyping concurrent applications
ACM Computing Surveys (CSUR)
Towards quality requirements via animated formal specifications
Annals of Software Engineering
Evolutionary modelling of software systems: its application to agent-based and hypermedia systems
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Status Report: Computer-Aided Prototyping
IEEE Software
Test-Suite Reduction for Model Based Tests: Effects on Test Quality and Implications for Testing
Proceedings of the 19th IEEE international conference on Automated software engineering
A Case for Specification Validation
Verified Software: Theories, Tools, Experiments
Schema changes and historical information in conceptual models in support of adaptive systems
Active conceptual modeling of learning
Hi-index | 0.00 |
The authors explore the use of software transformations for software evolution. Meaning-preserving program transformations have been widely used for program development from a fixed initial specification. They consider a wider class of transformations to support development in which the specification evolves, rather than being fixed in advance. A new and general classification of transformations based on their effect on system interfaces, externally observable behavior, and abstraction level of a system description is presented. This classification is used to rearrange chronological derivation sequences containing meaning-changing transformations into lattices containing only meaning-preserving transformations. A process model for software evolution that utilizes prototyping techniques is described. Ways in which this class of transformations can be used to support such a process are considered. A set of examples are presented to illustrate the ideas. Software tool support and directions for future research are discussed.