OPF Metamodel


Topics:  Definitions  Overview  Relationships_Between_Method_Components  Core_Method_Components  Method_Component_Sets  Guidelines

Metaclasses:  Endeavors  Languages  Producers  Stages  Work_Products  Work_Units

Understanding the OPEN Process Framework (OPF) Metamodel is critical to understanding OPF, this website, and the repository of over 1,100 free, open-source reusable method components (i.e., classes of process components) that it contains. The metamodel defines the different method components and provides the organizational structure to the repository and this website. For example, the OPF Components part of the primary navigation frame on the left side of this webpage provides links to the core OPF classes of process components. If you understand this webpage, then you will go a long way towards understanding OPF and being able to easily navigate this website.

Definitions

The following terms and definitions form the foundational concepts of the OPEN Process Framework (OPF) Metamodel:

Term Definition / Description Modeling
Layer
Process the actual performance of work units by real producers to produce work products and provide servicers during the stages of an actual endeavor
  • an integrated set of process components and the relationships between them
  • Also known as an enacted method
  • For example, any OPF-complient, enacted (“as performed”) method
Process
Process Model a model of one or more processes
  • a set of selected, tailored, and integrated, abstract and concrete classes and subclasses of process components and the relationships between them
  • Also known as a method or methodology
  • For example, an OPF-compliant industry (eXtreme Programming or RUP), organizational, or endeavor-specific method
Method
Process MetaModel a model of process models
  • a process framework consisting of an industry de facto standard class library of consistent, abstract, core classes and subclasses of process components, the relationships between them, and any constraints (i.e., well-formedness rules) that constrain the classes and their relationships
  • Also known as a process repository or process class library
  • For example, the OPF Repository
Framework
Process Component a component (i.e., cohesive part) of a process that when integrated with other such components results in an actual process
  • For example, the actual way of analyzing requirements on a specific project and the resulting actual requirements specification
Process
Process Component Class
---
Method Component
a class of process components that can be tailored (subclassed) to construct a method and instantiated when producing a process
  • Also known as a method component, method fragment, and method chunk
  • For example, Work Unit, Requirements Analysis, and Requirements Specification
Framework,
Class Library, and
Method

Overview

By definition, a metamodel is a model of a model. Because a development method is a model that describes a process (how development actually takes place), a process metamodel is a model that describes process models (i.e., methods). A good process metamodel must have the flexibility to describe all common development methods (from small, simple, agile methods to large and complex development methods) as well as produce appropriate endeavor-specific methods. A good process metamodel should also do this in a consistent standardized way in terms of common concepts and associated terminology. Thus, the key to a good process metamodel is the ability to provide an optimal compromise between flexibility and standardization.


Modeling Levels and Partition

As illustrated in the preceding figure, OPEN views process metamodeling and the associated storage of process component classes and methods as involving the following four horizontal levels and one vertical partition:

Relationships Between Classes

The preceding discussion is primarily of interest to methodologists and vendors of process modeling tools. For the average process engineer, the distinction between approaches is of little consequence. The important thing is to understand the following standard core classes of process components and the general relationships between them that help clarify their meanings.

Inheritance relationships between core classes of process components

As illustrated in the preceding figure, the OPF class library of reusable method components forms an inheritance hierarchy of abstract core classes of process components.

Association relationships between core classes of process components

As illustrated in the preceding figure, the core process component classes have standard association relationships between them that help to clarify their meanings.

Core Method Components

As illustrated in the previous figure, OPF recognizes the following reusable core method components (i.e., classes of process components), which are further subclassed in the following subsections:

Endeavors

Endeavors

As illustrated in the preceding figure, the OPF Metamodel classifies Endeavors as follows:

Languages

Languages

As illustrated in the preceding figure, the OPF Metamodel classifies Languages as follows:

Producers

Producers

As illustrated in the preceding figure, the OPF Metamodel classifies Producers as follows:

Stages

Stages

As illustrated in the preceding figure, the OPF Metamodel classifies Stages as follows:

Work Products

Work Products

As illustrated in the preceding figure, the OPF Metamodel classifies Work Products as follows:

For the sake of practicality, this website and repository also organizes work products by the activities that produce them (e.g., requirements work products, architecture work products).

Work Units

Work Units

As illustrated in the preceding figure, the OPF Metamodel classifies Work Units as follows:

Method Component Sets

It is often important to be able to deal with cohesive sets of method components instead of just individual method components. For example, there are so many work products that it is very useful to be able to group them by activity (e.g., management work products and requirements work products). Similarly, individual engineering disciplines (as opposed to the associated activities) such as the discipline of requirements engineering involve not only requirements engineering tasks but also the requirements team, the requirements engineer role, and all of the requirements work products. And producers are often interested in knowing all of the method components with which they are directly involved. In all these cases, we use method component sets consisting of cohesive collections of relevent method components.


Method Component Sets
Method Component Set
a method element consisting of a cohesive collection of two or more method components
Activity-Based Method Component Set
a method component set containing method components related to a single activity
Discipline
an activity-based method component set containing all method components (e.g., producers, work products, work units) that comprise a single field of study and associated body of knowledge
Producer Set
a method component set consisting of the cohesive collection of all method components (e.g., producers, work products, work units) associated with a single kind of producer
Task Set
an activity-based method component set consisting of the cohesive collection of all tasks performed as part of a single activity
Work Product Set
an activity-based method component set containing the cohesive collection of all work products produced during the performance of a single activity’s tasks

A method component set is used to create a named cohesive collection of method components. Although several subclasses of method component sets (e.g., disciplines, producer sets, task sets, and work product sets) are commonly used, methodologists are free to create their own method component sets as needed.

Organized around a single activity, a discipline typically consists of the activity, its associated tasks and techniques, the producers (e.g., teams, roles, tools) that perform them, and the associated work products that they primarily produce. Different disciplines tend to have their own terminologies, books, and conferences.

A producer set consists of all method components of direct interest to a single kind of producer. This includes component producers, tools used, work units performed, and work products manipulated. Producer sets are subclassed into organization sets, team sets, role sets, and tool sets. These can be further subclassed (e.g., into the requirements team set and requirements engineer set).

A task set is used to group all of the tasks related by the single activity. Although some tasks are common to multiple activities (and therefore belong to the common task set, most tasks are unique to a single activity.

A work product set is typically used to group the work products related by the single activity during which they are produced. Most roles performed by people on an endeavor are specific to a single activity (and discipline), persons performing a role are typically interested in only those work products within a single work product set.

Guidelines