Automating software analysis and testing using a program transformation system
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
Program Concept Recognition and Transformation
IEEE Transactions on Software Engineering - Special issue on software maintenance
Role-based refactoring of crosscutting concerns
Proceedings of the 4th international conference on Aspect-oriented software development
Refactoring support for class library migration
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Beyond refactoring: a framework for modular maintenance of crosscutting design idioms
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A framework for the checking and refactoring of crosscutting concepts
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Programmers resort to design patterns, micro-architectures, and other idioms when their design ideas can't be expressed directly in the programming language. The crosscutting code that appears as a result makes it harder to ensure a correct implementation of the idiom, and complicates software evolution when the idiom's implementation cannot be modularly substituted or extended like a method or class. We propose Concepts, an IDE-based mechanism for declaring, checking, and evolving crosscutting design idioms. Programmers code their design idioms as before, but also declare their fundamental properties in supplemental files. A concept's behavior and implementation are described separately. This separation permits describing a new implementation for a concept and then having the concept tool mechanically transform the concept's current implementation into the new one. As a result we aim to get many of the same benefits for concepts that we get for classes: checking of key behaviors and substitutability.