Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Three steps to views: extending the object-oriented paradigm
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
The annotated C++ reference manual
The annotated C++ reference manual
Object oriented design with applications
Object oriented design with applications
Lessons from the design of the Eiffel libraries
Communications of the ACM
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Object-oriented modeling and design
Object-oriented modeling and design
Incremental testing of object-oriented class structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Efficient implementation of adaptive software
ACM Transactions on Programming Languages and Systems (TOPLAS)
Subject-oriented composition rules
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Evolution of object behavior using context relations
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
Object-Oriented Software Evolution
IEEE Transactions on Software Engineering
TAPSOFT '95 Proceedings of the 6th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Minimizing Dependency on Class Structures with Adaptive Programs
Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
Reflection and semantics in LISP
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Extending object oriented programming in Smalltalk
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Contextual programming (doctoral symposium—extended abstract)
Proceedings of the 21st international conference on Software engineering
PIROL: a case study for multidimensional separation of concerns in software engineering environments
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Implicit context: easing software evolution and reuse
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Generation of visitor components that implement program transformations
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
Dynamic and selective combination of extensions in component-based applications
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Research Frontiers in Object Technology
Information Systems Frontiers
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
Reflective Analysis and Design for Adapting Object Run-Time Behavior
OOIS '02 Proceedings of the 8th International Conference on Object-Oriented. Information Systems
Dynamically Composable Collaborations with Delegation Layers
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Modeling with Filter Objects in Distributed Systems
EDO '00 Revised Papers from the Second International Workshop on Engineering Distributed Objects
Software—Practice & Experience
Language support for incremental integration of independently developed components in Java
Proceedings of the 2004 ACM symposium on Applied computing
Traversals of object structures: Specification and Efficient Implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Controlling the Complexity of Software Designs
Proceedings of the 26th International Conference on Software Engineering
Method driven model: a unified model for an object composition language
ACM SIGPLAN Notices
Self-configuring object-to-relational mapping queries
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Exploring implicit parallelism in class diagrams
Journal of Systems and Software
Dimensions of composition models for supporting software evolution
SC'06 Proceedings of the 5th international conference on Software Composition
Design and implementation of an aspect instantiation mechanism
Transactions on Aspect-Oriented Software Development I
Hi-index | 0.00 |
A collection of design patterns was described by Gamma, Helm, Johnson, and Vlissides in 1994. Each pattern ensures that a certain system aspect can vary over time, for example the operations that can be applied to an object or the algorithm of a method. The patterns are described by constructs such as the inheritance and reference relations, attempting to emulate more dynamic relationships. As a result, the design patterns demonstrate how awkward it is to program natural concepts of evolution when using a traditional object-oriented language. In this paper, we present a new relation between classes: the context relation. It directly models dynamic evolution, and it is meaningful at both the design and implementation level. At the design level we extend the Unified Modeling Language (UML) to include the context relation as a new form of arrow between classes. At the implementation level we present a small extension of Java. The context relation introduces a new form of dynamic binding that serves as a replacement to delegation. We demonstrate how the context relation can be used to easily model and program numerous design patterns.