Attributes are properties of managed objects. An attribute has one or more associated values, each of which may have a simple or complex structure. When an attribute has more than one value, no ordering of the values is implied. The value of an attribute is, in general, observable (at the managed object boundary). It may determine or reflect the behavior of the managed object. The value of an attribute is observed or modified by requesting a managed object to read or write the value. Additional operations are defined for set- valued attributes; these are attributes whose value is a set of elements, of variable size and which may be empty, of a given data-type. Operations on attributes are defined to be performed on the managed object that contains the attributes and not directly upon the attributes. The managed object is able to enforce constraints on attribute values to ensure internal consistency or to enforce access limitations, The definition of a managed object class may specify relationships among the values of its individual attributes. Attributes ma a managed object class may be mandatory ( they must be always appear in an instance of that class) or optional (they may appear). An attribute may be defined to disallow reading or writing of its value(s).