Abstract
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.
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.
Original language | English |
---|---|
Title of host publication | Lecture Notes in Computer Science : Proceedings of the 5th European Conference on Software Architecture |
Number of pages | 16 |
Volume | 6903 |
Publisher | Springer |
Publication date | 2011 |
Pages | 422 - 437 |
DOIs | |
Publication status | Published - 2011 |