
Silverston c03.tex V2 - 11/21/2008 2:59am Page 122
122 Chapter 3 ■ Using Roles: How Parties Are Involved
generalized PROJECT ROLE/ROLE TYPE structure, for example, ‘‘Technical
Writer’’ as seen in Table 3-15. If you capture ROLE TYPE(s) of ‘‘Project
Worker’’ and ‘‘Project Sponsor’’ in the generalized PROJECT ROLE/ROLE
TYPE structure, we recommend you don’t also maintain these in the specific
PROJECT WORKER, PROJECT SPONSOR structure. Our feeling is that you
should not redundantly capture contextual roles in both the specific way as
well as in the generalized way. You could end up double counting the amount
of people working on a project, for example. Or, if implemented, you would
have the questions of which is the correct way for programmers to code
selecting, inserting, and updating project workers and which is the correct
semantic view for the business as a whole.
The strength of the pattern lies in the fact that you get the benefits of both the
specific Level 2 modeling style and the generalized modeling style of the Level
3 type pattern. When we needed to capture the specific involvement of ‘‘Neena
Davies,’’ she was declared as a WORKER and involved in the PROJECT as a
PROJECT WORKER. When we discovered a new role of ‘‘Technical Writer,’’
we wanted to capture this, but did not want to add new declarative role
entities because that role was not core to XYZ Corporation business. ‘‘Neena
Davies’’ became ...