Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Relations as semantic constructs in an object-oriented language
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Software maintenance and evolution: a roadmap
Proceedings of the Conference on The Future of Software Engineering
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Programming Ruby: the pragmatic programmer's guide
Programming Ruby: the pragmatic programmer's guide
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
Object-Oriented Software Construction
Object-Oriented Software Construction
Overcoming independent extensibility challenges
Communications of the ACM
Soft-Ware 2002 Proceedings of the First International Conference on Computing in an Imperfect World
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Pattern-Oriented Software Architecture: Patterns for Resource Management
Pattern-Oriented Software Architecture: Patterns for Resource Management
Java(TM) Programming Language, The (4th Edition)
Java(TM) Programming Language, The (4th Edition)
Classbox/J: controlling the scope of change in Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The paradoxical success of aspect-oriented programming
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Rich Client Programming: Plugging into the NetBeans(TM) Platform
Rich Client Programming: Plugging into the NetBeans(TM) Platform
Hi-index | 0.00 |
Software entities should be open for extension, but closed to modification. Unfortunately, unanticipated requirements emerging during software evolution makes it difficult to always enforce this principle. This situation poses a dilemma that is particularly important when considering component-based systems: On the one hand, violating the open/closed principle by allowing for modification compromises independent extensibility. On the other hand, trying to enforce the open/closed principle by prohibiting modification precludes unanticipated dimensions of extension. Dynamic links increase the number of dimensions of extension that can be exploited without performing modification of existing types. Thus, dynamic links make it possible to enforce the open/closed principle in situations where it would otherwise not be possible. We present Decouplink - a library-based implementation of dynamic links for Java. We also present experience with the use of dynamic links during the evolution of a component-based control system.