
 
This is achieved by analysing the collected 
documents one by one. Such an analysis enables us 
to identify a number of identity attributes which 
belong to a set of object classes.  
In our experience, it is better to start with a complex 
document, which later plays an important role in 
integrating other analyses (see the fourth step).  
Hospitalization: Let us start with the document 
TEMPSHEET. Carrying out the first step on this 
document leads us to identify the following identity 
attributes:  TempSheet#, Patient#, Diagnosis#, Doc#, 
Surgery#, Medication#, and Intervention#, which 
belong to the following classes:  TempSheet, Patient, 
Diagnosis, Doctor, Surgery, Medication, and 
Intervention. 
4.2  Identify Functional Dependence 
The second step identifies the functional 
dependencies existing between identity attributes 
and  non-identity attributes in the framework of each 
of the collected documents. 
- for each identity attributes (say A, B) identified in 
the framework of a certain document (say 
DOCUMENT1) 
- for each of the document’s non-identity 
attributes (say X, Y, Z)  
- if each value of the chosen identity attribute 
is associated with one and only one value 
of the non-identity attributes then the non-
identity attribute is functionally dependent 
on the chosen identity attribute. 
After completing the analysis of DOCUMENT1, the 
process goes on by analysing another document until 
all the documents are analysed. 
Hospitalization: To implement this, we start by 
analysing the relationships existing between the 
identity and non-identity attributes of the document 
TEMPSHEET. 
Figure 3 shows that the attributes RoomNo, 
AcceptDate and ReleaseDate are functionally 
dependent on attribute TempSheet#, because each 
TempSheet# value determines one value of 
RoomNo, AcceptDate and ReleaseDate.  
Attributes PatientName, Address and BirthDate are 
functionally dependent on attribute Patient#, because 
every Patient# value identifies one value of each of 
the attributes Patient, Address and Birthdate.  
Attributes DiagName, SurgeryName and DocName, 
MedName and Description  are functionally 
dependent on identity attributes Diagnosis#, 
Surgery#, Doc#, Medication# and Intervention# 
sequentially. 
 
TempSheet#      RoomNo 
        AcceptDate 
        ReleaseDate 
 Patient#      PatientName 
        BirthDate 
        Address 
 Diagnosis#     DiagName 
 Surgery#      SurgName 
 Doc#       DocName 
 Medication#     MedName 
 Intervention#     Description 
 TempSheet#,Date/Time     Temperature 
        Pulse 
        Presure  
 TempSheet#,Medication#    Dose 
 TempSheet#,Intervention#    InterDate 
 
Figure 3: Functional dependencies of Document 
TEMPSHEET. 
In addition to this, we find that attributes Doc# and 
DocName occur again in  the lower part of the 
document and their  values are repeated in the rows 
of this part. The functional dependence between 
these two attributes has already been defined and 
there is no need to define it again. The presence of 
the identity attribute Doc# in these rows means that 
an association has to be defined to link these rows 
with Doc#, as will be shown in step 3.  
Furthermore, attributes Temperature, Pulse and 
Presure are functionally dependent only on a 
combination of the attributes TempSheet# and 
Date/Time, because every value of the combination 
of these attributes determines only one value of each 
of the attributes Temperature, Pulse and Pressure.  
For the same reason, attributes Dose and Times/Day 
are functionally dependent on a combination of the 
attributes TempSheet# and Medication#. Finally, we 
find that attribute InterDate is functionally 
dependent on a combination of attributes 
TempSheet# and Intervention#. 
4.3  Define Associations 
The third step of the approach deals with defining 
the associations existing between the identified 
identity attributes of the document analysed.  
In general we may define an association as follows: 
An association is a relationship that exists between 
objects of two classes. An object is represented by 
its identity attribute. Therefore, we may say that an 
association is a relationship between identity 
attributes.  
An association could be one-to-one, one-to-many or 
many-to-many. A one-to-one association exists 
between identity attributes of objects of two classes, 
where every value of one identity attribute is related 
to only one value of the other identity attribute. A 
AN APPROACH FOR CLASS MODEL DEVELOPMENT
417