/**
 * <copyright>
 * </copyright>
 *
 * $Id: EstimatingMetric.java,v 1.2 2006/06/23 00:01:27 jxi Exp $
 */
package org.eclipse.epf.xml.uma;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Estimating Metric</b></em>'.
 * <!-- end-user-doc -->
 *
 * <!-- begin-model-doc -->
 * A specific type of Guidance that describes a metric or measure that is associated with an element and which is used to calculate the size of the work effort as well as a range of potential labor.
 * <!-- end-model-doc -->
 *
 *
 * @see org.eclipse.epf.xml.uma.UmaPackage#getEstimatingMetric()
 * @model extendedMetaData="name='EstimatingMetric' kind='elementOnly'"
 * @generated
 */
public interface EstimatingMetric extends Guidance {
} // EstimatingMetric