Understanding frameworks by exploration of exemplars

A framework is designed to cover a family of applications or subsystems in a given domain and is typically delivered as a collection of interdependent abstract classes, together with their concrete subclasses. The abstract classes and their interdependencies describe the architecture of the framework. Developing a new application reusing classes of a framework requires a thorough understanding of the framework architecture. We introduce the notion of an exemplar for documenting framework, and propose exploration of exemplars as a means for architecture understanding. An exemplar is a executable visual model consisting of instances of concrete classes together with explicit representation of their collaborations. For each abstract class in the framework, at least one of its concrete subclasses must be instantiated in the exemplar. Model level exploration of exemplars is unique among the prevalent approaches to framework based development; existing approaches still emphasize different class browsing and retrieval technologies, active cookbooks, or code tracing.<<ETX>>