Parameterized components provide an effective way of building scalable, reliable, flexible software. Techniques have been developed for reasoning about parameterized components in such a way that the relevant properties of a parameterized component can be predicted based on the restrictions on actual parameters. These techniques assume that the parameters are bound at compile-time. But in some cases, compile-time is just not late enough to instantiate a parameterized component; we would like to push instantiation into run-time instead. Doing this is sometimes dangerous, since we can no longer depend on the type system of the language to support our reasoning methods. In this paper, we present a specification notation and associated proof obligations, which when satisfied, allow us to extend the theories of reasoning about templates with static binding to dynamically-bound templates. We present these proof obligations in the context of the Service Facility pattern, which is a way of building templates whose parameters are dynamically bound.
[1]
MeyerBertrand,et al.
Design by Contract
,
1997
.
[2]
Bruce W. Weide,et al.
Dynamic module replacement in distributed protocols
,
2003,
23rd International Conference on Distributed Computing Systems, 2003. Proceedings..
[3]
Joseph A. Goguen,et al.
Parameterized Programming
,
1984,
IEEE Transactions on Software Engineering.
[4]
Dirk Riehle.
Composite design patterns
,
1997,
OOPSLA '97.
[5]
Mickey Williams.
Microsoft Visual C
,
2002
.
[6]
Harold W. Thimbleby,et al.
Delaying Commitment
,
1988,
IEEE Softw..
[7]
Bruce W. Weide,et al.
Service Facilities: Extending Abstract Factories to Decouple Advanced Dependencies
,
2002,
ICSR.
[8]
Stephen H. Edwards,et al.
A framework for detecting interface violations in component-based software
,
1998,
Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).