Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Extending object-oriented systems with roles
ACM Transactions on Information Systems (TOIS)
On the representation of roles in object-oriented and conceptual modelling
Data & Knowledge Engineering
ACM Transactions on Software Engineering and Methodology (TOSEM)
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Design Patterns and Language Design
Computer
A Marriage of Class- and Object-Based inheritance Without Unwanted Children
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Abstracting Object Interactions Using Composition Filters
ECOOP '93 Proceedings of the Workshop on Object-Based Distributed Programming
Distributed Information Systems Tailorability: A Component Approach
FTDCS '99 Proceedings of the 7th IEEE Workshop on Future Trends of Distributed Computing Systems
Abstraction Techniques in Modern Programming Languages
IEEE Software
Hi-index | 0.00 |
Component-based software development focuses on building software systems by integrating existing software components. Central to component-based software development are the notions of reusability, extensibility and adaptability. Components as well as their composition must be easily reused and extended to meet new requirements. Variation-oriented programming is concerned with the incorporation of context-dependent variations in existing object-oriented systems. Based on the principle of separation of concerns, variation-oriented programming addresses - amongst other issues - behavioural evolution and behaviour composition, at runtime. We identify the limitations imposed by the use of design patterns when used for behavioural evolution, in terms of behaviour composition, while at the same time satisfying reusability and extensibility. Then we proceed to present the Atoma framework as an architecture and a means for achieving behaviour composition, as this is guided by the incorporation of context-dependent behavioural variations based on the concept of roles. Roles are considered, in this light, as pluggable behavioural adjustments of an existing object-oriented system.