Static and dynamic structure in design patterns
Eric Eide, Alastair Reid, John Regehr, Jay Lepreau
University of Utah
[pdf]
[doi]
Proceedings of the 24th International Conference on Software Engineering (ICSE 2002)
Orlando, Florida, USA
May 2002
Abstract
Design patterns are a valuable mechanism for emphasizing
structure, capturing design expertise, and facilitating restructuring of
software systems. Patterns are typically applied in the context of an
object-oriented language and are implemented so that the pattern
participants correspond to object instances that are created and
connected at run-time. This paper describes a complementary
realization of design patterns, in which many pattern participants
correspond to statically instantiated and connected components.Our
approach separates the static parts of the software design from the
dynamic parts of the system behavior. This separation makes the
software design more amenable to analysis, thus enabling more
effective and domain-specific detection of system design errors,
prediction of run-time behavior, and more effective optimization. This
technique is applicable to imperative, functional, and
object-oriented languages: we have extended C, Scheme, and Java with
our component model. In this paper, we illustrate our approach in the
context of the OSKit, a collection of operating system components
written in C.
BibTeX
@inproceedings{DBLP:conf/icse/EideRRL02
, abstract = {
Design patterns are a valuable mechanism for emphasizing
structure, capturing design expertise, and facilitating restructuring of
software systems. Patterns are typically applied in the context of an
object-oriented language and are implemented so that the pattern
participants correspond to object instances that are created and
connected at run-time. This paper describes a complementary
realization of design patterns, in which many pattern participants
correspond to statically instantiated and connected components.Our
approach separates the static parts of the software design from the
dynamic parts of the system behavior. This separation makes the
software design more amenable to analysis, thus enabling more
effective and domain-specific detection of system design errors,
prediction of run-time behavior, and more effective optimization. This
technique is applicable to imperative, functional, and
object-oriented languages: we have extended C, Scheme, and Java with
our component model. In this paper, we illustrate our approach in the
context of the OSKit, a collection of operating system components
written in C.
}
, acceptance = {15}
, affiliation = {University of Utah}
, ar_file = {ICSE_02}
, ar_shortname = {ICSE 02}
, author = {Eric Eide and
Alastair Reid and
John Regehr and
Jay Lepreau}
, booktitle = {Proceedings of the 24th International Conference on Software Engineering
(ICSE 2002)}
, day = {19-25}
, doi = {10.1145/581339.581367}
, editor = {Will Tracz and
Michal Young and
Jeff Magee}
, file = {knit-icse02.pdf}
, location = {Orlando, Florida, USA}
, month = {May}
, pages = {208--218}
, png = {knit-icse02.png}
, publisher = {ACM}
, title = {{S}tatic and dynamic structure in design patterns}
, year = {2002}
}