[Modeling] Modeling an Agent Class- change of classes
Wagner, G.R.
G.R.Wagner@tm.tue.nl
Thu, 26 Jun 2003 20:27:44 +0200
>> But you cannot use an Employee subclass of Person in such
>> an external (company-independent) model.
>>
>> Maybe that's what you wanted to suggest:
>>
>> Person isSuperClassOf Employee isPartOf Company
>>
>
> Yes, exactly.
>
>> But that's not a correct model, because you would need
>> several Employee instances for the same person (one for
>> each employment of that person), which is not consistent
>> with the isSubclassOf relationship.
>>
> However, I do not fully understand yous reasons here for why
> the model is not correct. Why we need several Enployee
> instances for the same person?
It's quite simple: if the person Hong is employed both by
Enron and by Oxford University, then there need to be two
links in the association class isEmployedBy/Employment,
one between Hong and Enron (say with EmpNo=123) and another
one between Hong and Oxford University (say, with EmpNo=007).
However, if you use a Person subclass Employee, how can you
have two different Employee instances denoting the same
Person instance?
> My problem with the model is that, according to existing definition
> of part-whole relations, we cannot get the person remain as an
> instance of Persons class and at the same time not a member of the
> Employee class when the company is destroyed.
The simple solution is: when Enron is shut down, the Employment
instance Enron-Hong is deleted, while the other Employment
instance OxfordUniversity-Hong survives (and the person Hong
survives anyway!).
-Gerd