Book a Demo

Author Topic: Attribute Values on a Domain Model  (Read 12482 times)

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Attribute Values on a Domain Model
« Reply #15 on: December 29, 2009, 06:27:54 pm »
Dorian,

I still see some issues with the model you created.

  • Why do both the contact as the contact role have a relation to things like phone number, address etc..?
  • Why do you have attributes like age (should be derived), birthdate, gender, marital status,... on the Employee class? Aren't those attributes of an Individual? I'm guessing you whish to express the contstraint that those attributes should be filled in when the individual is playing the role of employee. If that is the case you better model that as a constraint I think.
  • What is the relation between organisation and individual for? Does it represent the employer/employee relationship? If that is the case, shouldn't it use the contact role of type employee?
  • There is a bizar mix of values in your "Contact Role Type". There are actual types of roles like the caller, employee, or Claimant, but then there are values like "Hospital" or "Law Firm". Aren't those last two types of organisations rather then types of contact roles?
  • Why are you treating "Vendor" in another way then the other contact roles? Shouldn't that be in the list of "Contact Role Type"?

As for the relations between the values of the "Contact Role Type" and the classes Employee and "Responsible Party", I wouldn't express it that way. Try to add the attributes to the entities they naturally belong to. Things like birthdate and gender are typically attributes of an individual, Wage, and "Existing Nature of Job" are attributes of something like a "Job" or "Employment".

If certain Contact Role Types require that some attributes are filled, then express that in constraints.

That's about it...

Geert

Dorian Workman

  • EA User
  • **
  • Posts: 194
  • Karma: +0/-0
    • View Profile
Re: Attribute Values on a Domain Model
« Reply #16 on: December 30, 2009, 03:28:58 am »
Thanks for the detailed reply Geert.  I have a question, and some answers for you.

Question:

Quote
As for the relations between the values of the "Contact Role Type" and the classes Employee and "Responsible Party", I wouldn't express it that way. Try to add the attributes to the entities they naturally belong to. Things like birthdate and gender are typically attributes of an individual, Wage, and "Existing Nature of Job" are attributes of something like a "Job" or "Employment".

If certain Contact Role Types require that some attributes are filled, then express that in constraints.
Assuming I move those attributes from Employee to Individual (thanks), would you then put the constraint on the Contact Role class, the specific enumeration literal in that class (e.g. Employee), or on the Individual class/attribute?

Also, let me answer your questions one-by-one:
  • Why do both the contact as the contact role have a relation to things like phone number, address etc..?  Because we want to be able to have a different phone number, address, etc for each Contact Role distinct from those on the Contact.



  • Why do you have attributes like age (should be derived), birthdate, gender, marital status,... on the Employee class? Aren't those attributes of an Individual? I'm guessing you whish to express the contstraint that those attributes should be filled in when the individual is playing the role of employee. If that is the case you better model that as a constraint I think.  Done.

  • What is the relation between organisation and individual for? Does it represent the employer/employee relationship? If that is the case, shouldn't it use the contact role of type employee?  These are different.  Indviduals are associated with an Organization for Vendor Management purposes.  Employee information is relevant only when they are making a Workers Compensation Claim.  I guess this is not obvious so I will clear this up.

  • There is a bizar mix of values in your "Contact Role Type". There are actual types of roles like the caller, employee, or Claimant, but then there are values like "Hospital" or "Law Firm". Aren't those last two types of organisations rather then types of contact roles?  These are only a draft and haven't been validated yet.

  • Why are you treating "Vendor" in another way then the other contact roles? Shouldn't that be in the list of "Contact Role Type"?  I did it this way because any given Contact Role may or may not be a Vendor.  Would you model it differently?
Thanks Geert I really appreciate your input.
« Last Edit: December 30, 2009, 12:18:41 pm by dworkman »
<a href="http://www.linkedin.com/in/dorianworkman" ><img src="http://www.linkedin.com/img/webpromo/btn_liprofile_blue_80x15.gif" width="80" height="15" border="0" alt="View Dorian Workman

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Attribute Values on a Domain Model
« Reply #17 on: December 30, 2009, 05:50:06 pm »
Dorian,

I would put the constraint on the Contact Role class.
I would also create an association (composition) between the Contact role and whatever is left on Employee and Responsible Party. These seem like more or less the same thing as the Vendor Period.
The rest seems fine based on the responses you gave and the assumption that this is a functional model (PIM level) and not a technical database model.

Geert

Dorian Workman

  • EA User
  • **
  • Posts: 194
  • Karma: +0/-0
    • View Profile
Re: Attribute Values on a Domain Model
« Reply #18 on: December 31, 2009, 02:07:40 am »
Yes, it is a functional, not a technical database model as you surmised.

Thank you for all your input - 5 stars for you!

If you're ever in San Francisco let me know, I'd like to buy you dinner to say thanks.
<a href="http://www.linkedin.com/in/dorianworkman" ><img src="http://www.linkedin.com/img/webpromo/btn_liprofile_blue_80x15.gif" width="80" height="15" border="0" alt="View Dorian Workman

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Attribute Values on a Domain Model
« Reply #19 on: December 31, 2009, 03:46:38 am »
Quote
If you're ever in San Francisco let me know, I'd like to buy you dinner to say thanks.

Thanks, I'll hold you to that when I'm ever in the neighborhood  ;D

Geert
« Last Edit: December 31, 2009, 03:46:59 am by Geert.Bellekens »

Dorian Workman

  • EA User
  • **
  • Posts: 194
  • Karma: +0/-0
    • View Profile
Re: Attribute Values on a Domain Model
« Reply #20 on: December 31, 2009, 03:50:39 am »
Quote
Quote
If you're ever in San Francisco let me know, I'd like to buy you dinner to say thanks.

Thanks, I'll hold you to that when I'm ever in the neighborhood  ;D

Geert
Absolutely!
<a href="http://www.linkedin.com/in/dorianworkman" ><img src="http://www.linkedin.com/img/webpromo/btn_liprofile_blue_80x15.gif" width="80" height="15" border="0" alt="View Dorian Workman