Parties

Objective

Business concerns are multiple and overlapping, stakeholders may cross boundaries, and interests may conflict. Hence the importance of comprehensive and consistent representations of agents involvement.

Stake Holders with Cross Concerns (H. Bosch)

Objectives & Pitfalls

Considering that business requirements are by nature partial, biased and prone to changes, it is safe to assume that business objects and agents may be identified differently across organizations and business units. Nonetheless, persistency units must be identified consistently and continuously independently of the execution units that may target them.

A common proposition is to specialize a base type into subtypes for persons, organizations, etc. Unfortunately such a solution contravenes the substitution principle when checked for external consistency: contrary to persons, organizations are not physical entities and, as a consequence, a base representation of occurrences of both cannot be substituted to a specialized one. Defining the base type as abstract would remove the consistency contention but it would greatly limit its practicality in supporting accounting applications for which parties are meant to be created and managed independently of persons or organization?

Hence, based upon representation patterns, the objective should be to define a customary object with a consistent identification mechanism to be applied to individual entities across business domains and processes. Context identification could then be delegated depending on party’s nature, physical or social.

It’s worth to note that, contrary to parties, contracts can be fully identified as customary entities.

Archetypes

A party is a customary object identified by the organization considered. It stands locally for a social entity whose identity is managed independently of any specific business organization and used by all of them.

Parties and organizations are symbolic entities, persons are physical ones. Parties are necessarily identified from outside; users may be anonymous.

The next step is to introduce patterns of partitions and connectors; for instance:

  • Since connectors from Party to Person and Organization are identifying (#) that makes them mutually exclusive.
  • Occupation is an overlapping partition, individual status is exclusive but can be modified, legal status is used to identify organizations and therefore cannot be modified.
  • Partitions may (individual and legal status) or may not (occupation) be associated with subtypes.

Using delegation, partitions and connectors to describe parties (UML with No Magic MD).

As noted above, sub-typing parties into organizations or persons would imply a single identification mechanism managed under a single authority. Since that is not usually the case, introducing subtypes at this stage would probably put external consistency at risk.

There is no such risk  for persons and organizations which can be identified as such (#); subtypes may be introduced providing they are supported by exclusive (individual status) or identifying (legal status) partitions.

Whereas an abstract class may be introduced for party roles (e.g customers/suppliers), it should not be directly associated with contracts or accounts because roles are usually multiple and overlapping.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.

Join 296 other followers

%d bloggers like this: