Describes object characteristics. Determined by system
requirements. Types must be specified whether primitive or
class. Visibility may be given (+: public, -:
private, #: protected) or assumed public when not shown. Attribute
values are assigned at object creation. Every class scope attribute
(static in Java) has the same value for all the objects of the class;
shown underlined in the diagram. Enumeration type is shown
by a property-string: {..,..}. Syntax for attribute:
visibility name: type-expression = initial-value {property-string}
Property-string is used to show the persistence of the attribute. Attributes are elided if not needed for the particular context.