Capabilities Patterns express and communicate process knowledge for a key area of interest such as a Discipline
or a practice and can be directly used by process practitioners to guide their work. They are also used as
building blocks to assemble Delivery Processes or larger Capability Patterns ensuring optimal reuse and
application of the key practices they express.
Examples for Capability Pattern could be 'use case-based requirements management', 'use case analysis', or 'unit
testing'. Typically but not necessarily, Capability Patterns have the scope of one Discipline providing a breakdown of
reusable complex Activities, relationships to the Roles which perform Tasks within these Activities, as well as to the
Work Products that are used and produced. Generally, a Capability Pattern does not relate to any specific phase
or iteration of a development lifecycle, and should not imply any. In other words, a pattern should be designed
in a way that it is applicable anywhere in a Delivery Process. This enables its Activities to be flexibly
assigned to whatever phases there are in the Delivery Process to which it is being applied. An exception to this
would be capability patterns that are intended to provide a template for quickly creating an iteration or portion of an
iteration for a particular phase in a Delivery Process.
Key applications or areas of reuse for Capability Patterns are:
-
To serve as building blocks for assembling Delivery Processes or larger Capability Patterns. Normally
developing a Delivery Process is not done from scratch but by systematically applying and binding patterns.
-
To support direct execution in a development project that does not work following a well-defined process, but works
based on loosely connected process fragments of practices in a flexible manner (for example, Agile Development).
-
To support process education by describing knowledge for a key area such as practices on how to perform the work
for a Discipline (for example, Requirements Management), for a specific development technique (aspect-oriented
development), or a specific technical area (for example, relational database design), which is used for education
and teaching.
The workflow of a Capability Pattern is usually represented using the UML Activity Diagram notation.
Sample activity diagram, from the requirements Discipline in RUP, showing workflow and transitions.
|