A hybrid approach to software reuse

We describe a hybrid approach to software reuse in an ongoing project that addresses a challenging software engineering task. The approach is driven by an architectural design and makes use of both code components and program synthesis technology. We describe criteria that were used in choosing the reuse strategy for different parts of the application and argue that to be successful a reuse strategy must be driven by the needs of an application program instead of adapting a software development strategy around a reuse program.