Composition patterns: an approach to designing reusable aspects
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Computer
Aspect Composition Applying the Design by Contract Principle
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Modular Software Design with Crosscutting Interfaces
IEEE Software
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying feature-based model templates against well-formedness OCL constraints
Proceedings of the 5th international conference on Generative programming and component engineering
IEEE Transactions on Computers
A Rich Services Approach to CoCoME
The Common Component Modeling Example
From sequence diagrams to Java-stairs aspects
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Runtime verification of interactions: from MSCs to aspects
RV'07 Proceedings of the 7th international conference on Runtime verification
Aspect-oriented model-driven code generation: A systematic mapping study
Information and Software Technology
Hi-index | 0.00 |
The state-of-the-art in aspect-oriented programming and modeling provides flexible querying and composition mechanisms that allow virtually unrestricted modifications to base code or models using static or dynamic weaving. There is, however, a lack of support for specifying and controlling the permitted effects of compositions with respect to the base models involved. We present model composition contracts, which govern access to the base models via aspects; in essence, the contracts control how aspect compositions may or may not access and change the models, or the underlying code reflected by models. The composition contracts define constraints in terms of pre- and post-conditions restricting the eligibility for composition. We argue that composition contracts improve reliability of model composition in software engineering, and evaluate their effects on model designs and implementations using a case study. We support the approach with a prototype tool for specifying and checking contracts.