The concept of patterns has gained popularity within the object-oriented
community as a technique for increasing development productivity through reuse. Architect
Christopher Alexander applies the concept of patterns to building and town design. Drawing
on his work, proponents of object-oriented design patterns, such as the authors of Design
Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley, 1994), say that
design patterns help you to choose design alternatives that make a system reusable
and avoid alternatives that compromise reusability.... Put simply, design patterns help a
designer get the design right faster.
Patterns exist in most engineering disciplines, whether the discipline involves
building design, application development, or business analysis. Martin Fowler, author of
Analysis Patterns: Reusable Object Models (Addison-Wesley, 1996), defines a
pattern as an idea that has been useful in one practical context and
will probably be useful in others. Applying patterns can be just as beneficial to
business analysis as to physical design. Within the business analysis domain, the patterns
represent the constructs required for a business to operate. There is a long list of
business concepts for which patterns exist, including: finance and accounting; business
planning; product development; manufacturing and inventory control; sales and marketing;
customer service; human resource management; capital asset management; and managing
relationships with other business parties such as customers, suppliers, regulators,
competitors, and shareholders. Some patterns apply to any organization, regardless of its
industry or business endeavor, including not-for-profit and government agencies, and
profit-oriented
business
concerns. Additional patterns exist to support specific industries. For example, the
patterns for managing customer relationships within the fast food industry are quite
different from those in the financial services industry.
The dynamic business model provides an integrated set of patterns that you can apply to
any business organization. When an organization uses the dynamic business model as its
enterprise model, it has a powerful framework for analyzing each business area and
achieving an integrated view of its lines of business across the
enterprisewithout sacrificing each business areas uniqueness and
individuality.
We can explore selected patterns in the dynamic business model to demonstrate how we
can adapt it to support the business rules of any organization. So far, we have examined
the business party pattern that represents the people and organizations of which your
enterprise must be aware, independent of how they do business with you (see my February 16
column to refresh your memory). To complete the pattern, we must extend it to accommodate
the interrelationships among business parties, such as a households members, an
organizations reporting structures and employees, or a legal entitys owners.
business party relationship has three components: the two business parties
involved, the nature of the relationship, and the role each party assumes. The business
rule statements that identify a relationship in which an enterprise is interested are
normally stated from the perspective of one of the business parties involved. For example,
the statement Mary is the mother of Sam identifies that we are interested in
the family relationship between two people. Mother is the role assumed by one
of the business parties. To understand fully the nature of the relationship between Mary
and Sam, we must identify the role that Sam assumes. Is it sufficient to know that
Sam is the child of Mary, or does your organization need to know whether Sam
is a son or a daughter? When defining the business rules associated with business party
relationships, you must examine the nature of the relationship from the perspective of
both business parties.
Business rules as stated by the subject matter experts (SMEs)
frequently identify only one role of interest to the organization, implying the full
nature of the relationship and business parties involved. This is particularly true
when the organization you are analyzing is a participant in the relationship.
Therefore, we use the terms customer, supplier,
employee, regulator,or shareholder alone with the
implication that the organization is on the other
side of the relationship. Although the SMEs will state that Mary is a customer
or Sam is an employee, the actual business statements are Mary is a
customer of my organization and Sam is an employee of my organization.
When searching for business party relationships that are meaningful to your
organization, look for business statements that follow one of these patterns:
<business party category> is a <noun>, <business
party category> is the <noun> of <business party category>, or
<business party category> <verb statement> <business party
category>. The business party category identifies what kind of business party can
assume the role, while the noun states the role
that business parties of that category can assume in the relationship. In the third
template, the verb statement defines the nature of the role.
For example, you can restate the business rules individuals can be
employees or employees are individuals as individuals can be
employees of legal entities. Now the business rule statement identifies a single
business party category that has the ability to assume a specific role with respect to
another business party category. We still need to uncover the nature of the relationship
and the reciprocal role. To complete the business party relationship pattern for
employees, you must probe for business rule statements from the other business party
categorys perspective in this case, the legal entity. In many situations, you
can easily discover the inverse role by simply turning the business rule statement around.
For example, we employ individuals or legal entities are the employers
of individuals.
The relationship can be so weighted toward one role that your SMEs may never discuss
the reciprocal role, however. In these cases, the other role usually emerges when you
develop a good definition of the known role. For example, the definition of shareholder is
a business party that holds an equity position in a legal entity. If the legal
entity is a corporation, its stock represents the equity. Therefore, for a corporation, a
shareholder is any business party that has purchased the corporations stock. In this
situation, the nature of the business party relationship is ownership: one party owns and
the other is owned. Shareholder is the special business term that connotes the
owners role. However, no special business term exists for the role of the
owned. Role definitions are also useful in identifying different business terms
referring to the same business concept. For example, a subsidiary is a legal entity that
is fully owned by another legal entity. To fully own a corporation, the parent
company must own 100 percent of the subsidiarys available stock. The
parent-subsidiary business party relationship is just a specialization of the ownership
relationship: Parent identifies the legal entity in the owner (shareholder)
role and subsidiary identifies the legal entity assuming the owned role. Table
1 presents some commonly used business terms that meet the business party relationship
pattern.
| Role | Nature of Relationship |
Reciprocal Role |
| Employee | agrees to perform specific services, in exchange for money and other benefits under the IRS guidelines for "employees," for | Employer |
| Shareholder | holds an equity position in | Legal Entity |
| Subordinate Unit | reports to | Parent Unit |
| Subsidiary | is owned by | Parent Company |
| Parent | conceived or adopted | Child |
| Sibling | has the same parents as | Sibling (or Brother, Sister) |
| Spouse | is married to | Spouse (or Husband, Wife) |
| Lawyer | represents the legal interests of | Business Party |
| Doctor | is responsible for health of | Person |
| Accountant | represents the financial interests of | Business Party |
Table 1 Business party relationship examples
Although any organization can adopt the business party relationship pattern, the
relationships are usually different from one organization to the next, dictated by the
culture and values of each. In many cases, the relationships of interest can vary from one
line of business to another within the same organization. One organization may be
interested in all aspects of the family relationships among people, whereas another may
need to know only that a household exists. The latter will maintain only enough
information to identify which people are members of the same household, but the former is
interested in the interrelationships among the family members: the mothers and fathers,
sons and daughters, and even grandparents, aunts, and uncles.
As an alternative to establishing business party relationships for each family
variation, you can generalize the nature of relationships into spousal and parental. Use
other information about the business parties to derive the specific roles that each
assumes in the family. For example, you can use a persons gender to determine
whether a spouse is the wife or the husband.Likewise, you can infer a sibling relationship
when two entities have the same parent.
The only data we maintain about a business party relationship is the relationships beginning and ending dates, the date when the organizations recognized the relationship, and the date when the enterprise was no longer interested in the relationship. You can maintain additional information about the relationship through the agreement. For example, a lawyer would establish a prenuptial agreement to hold information about the clients marriage terms. Likewise, details about an employee salary, title, position, and date of last promotion are held as part of an employment agreement. Agreement is one of the essential customer relationship building blocks that specifies the details about the products and services your organization is providing to your customers.
FIGURE 1 BUSINESS PARTY RELATIONSHIP DATA MODEL.
The data model for the business party relationship pattern (see Figure 1) contains the
now familiar split between the category entities that are used to
specify an organizations business rules and the actual details about the
relationships that exist among specific business parties. All the generalization
hierarchies for the category entities are incomplete, indicating that they can be extended
to meet the specific relationships required by your organization. The category subtypes
will become rows in the supporting tables. Finally, the allowable business
party relationship role identifies a role that a specific business party category
can assume with respect to a specific relationship category. When a relationship begins
between two real-world business parties, the allowable table ensures that
business parties assume only the roles appropriate for their category.
The category and allowable entities are just two components that make the dynamic
business model so flexible. This highly generalized model becomes
the model for your organization when you populate it with your unique business
rules. As Ive discussed, incorporating the category and allowable constructs into
the business party and relationship patterns provides the flexibility to support a diverse
set of relationships, including households, families, and organizational reporting
structures. To fully appreciate how these patterns and constructs enable business change,
you need to understand how to populate these entities with some business rules, which will
be the topic of the next article in this series.
RESOURCES
Fowler, Martin. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1996.
Gamma, Erich; Richard Helm; Ralph Johnson; and John Vlissides. Design Patterns:
Element of Reusable Object-Oriented Software, Addison-Wesley, 1994.
Terry Moriarty, president of Inastrol, a San Francisco-based information
management consultancy, specializes in customer relationship information and metadata
management. She authored Enterprise View (originally the Repository Report and later the
Data Architect) column for Database Programming & Design. You can reach her via
email at terry@inastrol.com.