A fundamental question that people
always seem to ask about enterprise modeling, and modeling in general,
is how do various approaches such as enterprise business modeling,
enterprise architectural modeling, and design modeling for a single
project all relate to one another. The Zachman Framework (ZF), created
in the 1980s by John Zachman, describes a good approach to addressing
this very question. The ZF, depicted in Figure 1, describes a collection
of perspectives pertinent to enterprise modeling. The rows of the
framework represent the views of different types of stakeholders
and the columns represent different aspects or views of your architecture.
Traditionally, within a column the models are evolved/translated
to reflect the views of the stakeholders for each row and within
a single row should be consistent with one another. In this article
I show how the Enterprise Unified ProcessTM (EUP) extends the Rational
Unified Process (RUP) with the ZF.
Figure 1 The Zachman Framework.
The ZF has several strengths:
- It has been well accepted within the data community who considers
it the defacto standard for enterprise architecture.
- The ZF defines the perspectives that your enterprise models
should encompass, the implication being that you can apply its
guidance within a process such as the EUP.
- The ZF explicitly communicates that enterprise modeling has
several stakeholders, not just enterprise architects and developers,
whom you should involve in your modeling efforts.
However, the ZF suffers from several weaknesses:
- It can lead to a documentation-heavy approach (although this
does not have to be the case). There are 36 cells in Figure 1,
each of which could be supported by one or more models.
- It can lead to a process-heavy approach to development – you
can instantly see the opportunity to define a collection of rigorous
processes to support the ZF.
- The ZF isn’t well accepted within the development community
and few developers even seem to have even heard about it.
- The ZF seems to promote a top-down approach to development.
When people first read about the ZF, they tend to think that it
implies a top-down approach where you start with the models in
row 1, then work on row 2 models, and so on. This doesn’t have
to be the case, you can in fact start in any cell and then iterate
from there.
- The ZF appears to be biased towards traditional, data-centric
techniques (thus explaining its popularity within the data community).
My experience is that it is possible to apply the ZF successfully
within the RUP/EUP if you focus on its strengths and address its
weaknesses. Figure 2 shows how we have extended the ZF so that it
aligns with the RUP/EUP disciplines. As you can see we have made
significant changes to it:
- We replaced the six rows with the sixteen disciplines of the
EUP, providing a more finely detailed collection of views. The
enterprise management columns are listed first then the project-level
disciplines to remain consistent with the ZF’s top-down approach.
The primary benefit of showing the disciplines as rows is that
it makes it clear how to apply the questions represented by the
framework columns to each aspect of the EUP. Unfortunately this
approach could exacerbate many of the weaknesses of the ZF.
- We've introduced a cost column. At the DAMA 2004 conference
Graeme Simsion mused on a panel that the columns of the ZF reflect
single word English interrogatives and that if John Zachman had
spoken another language then the ZF may have looked different.
For example French includes "combien" which translates
as "how much" or "how many". It is very clear
that financial concerns are important within IT organizations,
hence the addition of a 7th column. The cells of this column,
for the most part, identify the potential savings which you should
achieve by implementing the discipline effectively. Yes, you will
still incur the operational costs of performing the activities
of each discipline but to simplify the chart we don't indicate
this information. Interestingly, in German all the columns can
be labelled with single word interrogatives starting with the
letter "w"[md] was, wie, wo, wer, wann, warum, and wieviel
respectively.
- We refocused the first column. We’ve indicated that the first
column, which addresses the question of “what”, is really a structural
issue and not a data issue. This simple generalization helps to
remove the data-oriented bias of the ZF, making it clear that
you have more options available to you than data-oriented artifacts.
- The cells describe the issues to address. Each cell indicates
the potential issue(s) to address, if any, as well as suggest
a potential artifact to explore those issue(s). Some cells are
left blank because the column isn’t applicable to the discipline.
Figure 2. Mapping the ZF to the disciplines of the EUP.
It’s important to recognize that using the ZF is optional within
the EUP – we believe that it provides very good guidance for your
modeling and development efforts because it reminds you of the critical
issues which you need to address. The following advice should help
you to apply this enhanced version of the ZF with your organization:
- Keep it simple. You don’t need to create artifacts
for all of the cells, the important thing is that you at least
consider the issues for that cell. You can in fact be quite agile
with the ZF if you choose. The secret is to avoid documentation-heavy,
bureaucratic processes centered around the ZF. Remember, your
goal is to develop working software not to create lots of fancy
models and documentation.
- Remember that you have choices. Each cell indicates
the required perspective, not suggested models. For example, in
the Structure column, David Hay suggests that you create a language-divergent
data model in row 2, a convergent entity/relationship model in
row 3, and a database design in row 4 of the ZF of Figure 1. Moriarty
suggests a business class diagram, a class diagram, and a schema
data model respectively in the same rows. Object developers would
probably suggest a component model, a class diagram, and another
class diagram for these rows. All three approaches are valid,
but all three represent the experiences and prejudices of the
individual methodologists. Far better advice would be to understand
the perspective represented by each box, understand the strengths
and weaknesses of each type of modeling artifact, and then apply
the right artifact(s).
Recommended Reading
|