mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2026-04-05 17:49:26 +02:00
Author:admin
Date:2008-09-19T07:55:09.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@27 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Attributes, metrics and measures]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|4e35583c-25e8-63e7-2c11-ea4d3ed2e2a3]]
|
||||
The most general notion is "attribute":
|
||||
|
||||
{{note| '''Attribute''': An '''attribute''' is a property, qualitative or quantitative, of software products or processes. }}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Criterion References]]
|
||||
[[Property:weight|12]]
|
||||
[[Property:uuid|52790486-55e8-86dc-67d7-5530d1b342a3]]
|
||||
==Text Criterion==
|
||||
|
||||
'''name_is'''<br/>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Domains]]
|
||||
[[Property:weight|9]]
|
||||
[[Property:uuid|128ecc21-9d82-d590-fc3e-d0fe52991ac1]]
|
||||
A domain is a list of code elements, it can contain different kinds of code elements. A domain is used as input to a metric, as output of a metric to review some details, and as an argument passed to some criteria. Domain is used to specify scope.
|
||||
|
||||
==Domain Convention==
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Elementary and composite metrics]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|ef89f3c3-180e-3390-74b5-d6d537921453]]
|
||||
Some of our metrics will be elementary and some composite. An elementary metric is measured directly from the product or a project record:
|
||||
|
||||
{{note| '''Elementary_metric''': <br/>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Definitions]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|a562c37f-843c-cbbc-def5-32cda604f269]]
|
||||
* [[Definitions: Introduction|Introduction]]
|
||||
* [[Attributes, metrics and measures|Attributes, metrics and measures]]
|
||||
* [[Units|Units]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Measurement archive]]
|
||||
[[Property:weight|10]]
|
||||
[[Property:uuid|e1e3e779-e4ca-faee-12b5-f47c8adde174]]
|
||||
If you want to perform measurements on a system that you are building, the scopes of interest are the first four listed: Feature, Class, Cluster and System. Information on either of these scopes will be provided by the development environment (as with EiffelStudio 5.x); alternatively, you could get it simply by parsing the source of your system. But what if you also need quantitative data on other systems, if only for purposes of seeing how your results compare to the quantitative properties of other people's work?
|
||||
|
||||
It would be impractical in this case to require tools that have access to as much information on external systems as on your own. All we really need is a record of previous measurements on these systems. This explains the fifth scope type, Archive: beyond the scope of the current system, all we require to define a scope is a '''measurement archive''', or just "archive" for short. This is simply a file (or part of a file) that retains, in a suitable format (XML-based), the results of measurements made earlier on one system. The file can be local or accessible as a URL on the Internet.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Metric framework and theory]]
|
||||
[[Property:weight|3]]
|
||||
[[Property:uuid|5e76bd87-b7a7-8307-0e9e-ca9bb31db0f9]]
|
||||
You will want to rely not on a single metric but on a combination of metrics:
|
||||
|
||||
{{note| '''Metric framework''': A '''metric framework''' is a set of definitions of metrics. }}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Predefined raw metrics]]
|
||||
[[Property:weight|7]]
|
||||
[[Property:uuid|12906fea-78e3-3539-27d7-83662829b59e]]
|
||||
The environment should make it possible, for any project, to apply the elementary metrics in the following table, each with an associated unit and a one-identifier name. Each of the major divisions of the table starts with a raw metric, for example Classes, and, when appropriate, continues with selection criteria that yield derived metrics based on that raw metric, for example Deferred_classes.
|
||||
{|
|
||||
|-
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Raw metrics and selection criteria]]
|
||||
[[Property:weight|5]]
|
||||
[[Property:uuid|99f51fd0-4439-08f5-9419-53c8771b50f8]]
|
||||
Elementary metrics measure patterns whose occurrences (in a product or process) can be counted. We need to decompose this notion further to avoid an explosion of the number of elementary metrics. For example the features of a class can be classified along several lines:
|
||||
* Some are attributes (object fields), others are routines (algorithms).
|
||||
* Some are inherited from a parent, others immediate (defined in the class).
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Scopes]]
|
||||
[[Property:weight|8]]
|
||||
[[Property:uuid|303fb469-9f2b-d7cc-55e7-d657fb87b8fe]]
|
||||
Every metric has a scope:
|
||||
|
||||
{{note| '''Scope of a metric''': <br/>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Selection Criteria]]
|
||||
[[Property:weight|6]]
|
||||
[[Property:uuid|d492c7f5-71ec-ae04-c62b-6845f30ed762]]
|
||||
A selection criterion is used to filter out candidate code elements and only leave and count those satisfied elements. For example, criterion is_deferred in a basic class metric is only satisfied when a candidate class is deferred. A selection criterion can have modifiers which indicate how the associated criterion will perform its filtering task. There are four kinds of modifiers, shown as follows:
|
||||
* Text modifier - String text, and this text is called criterion text
|
||||
* Domain modifier - Domain, and this domain is called criterion domain
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Under the Hood - How metrics work]]
|
||||
[[Property:weight|11]]
|
||||
[[Property:uuid|4b81b16a-0c46-8d5a-c5b5-346ea01c58ee]]
|
||||
This part explains how a product basic metric is calculated.
|
||||
|
||||
==Domain Transformation==
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Units]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|fa08d5aa-7ea4-e7bb-bb59-e4982a583976]]
|
||||
Metrics will be expressed in units, such as Line (numbers of source lines) or Feature (number of features).
|
||||
|
||||
{{note| '''Unit rule:''' The definition of any metric must specify an associated unit. }}
|
||||
|
||||
Reference in New Issue
Block a user