Scopes

Every metric has a scope:

Definition -- Scope of a metric:
The scope of a metric is defined as follows:
- For a raw product metric, the type of product over which the metric is counted, such as: a feature, a class, a group, an archive built for a given system to make it possible to compare systems.
- For a raw process metric, the type of process on which the metric is measured, such as analysis, documentation, entire project etc.
- For a derived metric (recursively), the scope of the raw metric from which it is derived.
- For a composite metric (recursively), the largest of the scopes of all its constituent metrics, where cluster is "larger than" class and so on.

This notion also applies to measures:

Definition -- Scope of a measure:
The scope of a measure is defined as follows:
- For an elementary measure (the application of an elementary metric, raw or derived), the set of products or processes to which the associated metric has been applied to yield the measure.
- For a composite measure, the union of (recursively) the scopes of its constituent measures.

For both metrics and measures, the notion of scope will help us compare our quantitative assessments to some already on record. For example you may compare the value of a certain metric, such as number of invariant clauses in each class, with the values that have been archived for your project, for a reference project such as the EiffelBase library, for the previous projects of your company, or for a global set of previous projects maintained at some central location. You may also, with appropriate permissions, update such a shared archive with the values from your own measurements.

In the environment, the notion of scope will be handled by defining an input domain. If the input domain contains a duplicated elements, the computation is done twice on the duplicated elements.