Page-8 [Back][Next] up.gif (995 bytes)

A Framework is a template model (of business, specs, design,...). It is defined in a Package; the parameters of that template, and any assumptions made in that model about the intended substitutions for those parameters, can be made explicit. Other than those couple of bits of extra information, a framework package can contain anything a normal package can: types, actions, collaborations, refinements, scenarios, ...

You use a framework via Framework Application, which corresponds to importing the package containing the framework definition, substituting your specific model elements for its parameters. When you substitute element A for an imported element B, you are relying on the predefined rules of composition for combining the properties known about the imported element B with the properties you have defined on your element A.

There are shorthand notations for showing this, including the UML dashed "pattern" oval, a stereotype, a template class, and even custom notations which abbreviate the imported framework and intended substitutions.

Frameworks are useful for many sorts of patterns at all levels of modeling.