InvoiceNumber : Numeric Here, an attribute named InvoiceNumber contains a numeric value.

J.E.D.I Below are some examples of specifying attributes.

1. InvoiceNumber : Numeric Here, an attribute named InvoiceNumber contains a numeric value.

2. Temperature : Numeric { 4 decimal precisions } Here, an attribute name Temperature contains a numeric value with a format of four decimal precisions. 3. SequenceNumber : Integer = 0 {assigned sequentially by the system} Here, an attribute name SequenceNumber contains an integer with a default value of 0. Later on, it will be assigned a number sequentially assigned by the system. To help in discovering and specifying attributes, one can use the guideline below. 1. Sources of possible attributes are system domain knowledge, requirements and glossary. 2. Attributes are used instead of classes when: • Only the value of the information, not its location, is important. • The information is uniquely owned by the object to which it belongs; no other objects refer to the information. • The information is accessed by operations which only get, set or perform simple transformations on the information; the information has no real behavior other than providing its value. 3. If the information has complex behavior, or is shared by two or more objects the information should be modeled as a separate class. 4. Attributes are domain dependent. 5. Attributes should support at least one use case. Software Engineering 104 J.E.D.I In our example, the following attributes identified are shown in Figure 3.28. Similar to the previous step, all attributes seen in the collaboration diagrams should be compiled into a single analysis class. As an example, the :Athlete analysis class has the following attributes: id, lastname, firstname, mi, address, postalCode, telephone, bday, gender, and status. Software Engineering 105 Figure 3.28 Attribute Identification J.E.D.I Step 6: For each resulting analysis classes, identify associations. An association represents the structural relationships between objects of different classes. It connects instances of two or more classes together for some duration. It may be: 1. Unary Association which is a relationship of objects of the same class. 2. Binary association which is a relationship of two objects of different classes.

3. Ternary association which is a relationship of three or more objects of