Developing UML standards is an important first
step in achieving consistency and efficiency in an enterprise.
Consistent modelling means consistent understanding between the
modellers and their audience. Consistent modelling practices also
make for easy movement of resources between teams without extended
learning curves. Some of the lessons Xpdian has learned in
developing standards are:
Lesson 1. Decide what standards must be
developed.
Different groups within the organization will use
different parts of the UML to model a part of the enterprise
architecture. The following standards need to be explored (as a
minimum) for use in enterprise architecture:
-
-
Meta
models - The meta-models are probably the most important models,
and yet the least documented. They describe the structures and
rules around the standards and constructs in the models. It
prescribes certain rules about how modelling should take place and
identifies reusable patterns in both the business and systems
environments. Modelling standards developed for the organization
should be modelled and tested against a meta-model first before it
is deployed as a standard.
-
Business
models - These are models that are created by business analysts and
focuses on the business operation. They are often on a higher level
of abstraction and focus more on what is accomplished in the
business. This includes both business and systems activities
although systems activities are only modelled as far as it impacts
on the business environment. The functioning of the systems are
normally described in the analysis models and then mapped to the
business models in order to establish trace
ability.
-
Analysis
models - The analysis models contain systems descriptions as
perceived and defined by the primary users of the system. They are
normally closely linked to the business models and are modelled
using business concepts and terminology.
-
Design
models - the design models includes systems models that are
specific to the physical implementation of the system. They are
described using systems and technology specific terminology and
would specify technical components and rules to be
implemented.
Depending on the different types of software
engineered in the enterprise, different standards may need to be
defined for each type. For example: embedded software systems
standards will be different to run of the mill transaction
processing systems; standards for a COTS based environment will be
different from a pure software engineering
environment.
The approach for all types of software engineering
and system implementation could follow a similar approach to the
one described in this case study.
Lesson 2. Involve the right people.
The development of your standards can be given a
head start by involving people that are passionate about and
committed to learning. Adoption of new knowledge in an enterprise
depends on people seeking it out, experimenting with it, learning
through use, and then expanding that learning trough further
research into the UML.
Another consideration is to include into the team
people that are well respected in the enterprise and who may act as
active change agents. Typically you would be looking for energetic
enthusiastic people that are self driven and can grasp concepts
quickly. They should typically be influencers, who can convince
others of the benefits of the UML standards and the necessity of
adopting it.
Lesson 3. Develop UML champions.
Successful and widespread adoption of the UML in
the enterprise is dependent on having enough champions and mentors
to assist the modelling community when they are introduced to the
concepts. As with almost anything else, people tend to adopt new
technologies more readily when the adoption cycle is relatively
painless.
The team of UML champions should be developed from
the first day of the UML project, or very soon after. They do not
have to have 100% mastery of the UML by the time the modelling
community is taught the UML, but they need to know enough to give
first line support. Their major role should be to assist the
modelling community with simple UML problems, modelling tool
problems and generally be a shoulder to cry on.
The UML champions will be, by being the first line
support, a good feedback mechanism. Their feedback will enable the
project team to understand, what problems are experienced, what
skills gaps need to be addressed, how the UML standards may be
refined and what pockets of modellers need closer support and
assistance.
Second line support may initially be provided by
external consultants and over time as their skills develop by the
UML champions themselves.
Lesson 4. Develop formal standards
documents
When implementing the UML, nothing is more
important than presenting all modellers with a formal standards
document. The purpose of the standards document is
twofold:
Firstly, it should serve as a training manual.
This means that all of the diagrams and notation should be
described well enough as to be self explanatory. It should contain
good examples applicable to the industry of the enterprise so that
modellers can relate to the examples when being taught the
concepts.
Secondly, it must be the guideline according to
which modellers can create their own models. It must be
comprehensive enough to guide without being too
prescriptive.
Note. Sometimes you may wish to enforce certain
ways of modelling. When designing standards, or parts of standards,
designed to constrain, or restrict, it should be because of good
business or modelling reasons. Restrictive standards almost always
lead to artificial models that restrict
implementation.
Lesson 5. Develop formal standards
training.
Key to the success of an UML implementation is
good standards. Good standards are implemented by exhaustive
training. Over the shoulder training of the standards are not good
enough. Modellers need to be trained formally in a classroom
environment, where the quality of education can be consistent and
measurable.
Formal training is almost always better received
and depending on the level of personal measurement may be worked
into the formal resource evaluation metrics.
By having formal courses, new modellers or staff
transferred from elsewhere in the enterprise, may be assimilated
quickly into the modelling community. Formal courses also form the
basis of a solid and predictable education
path.
Over and above the initial standards training,
refresher courses are necessary to reinforce the UML standards and
to update the concepts as it evolves over time. Refresher courses
should be run after major reviews of the standards, or at least
annually should major revisions not occur.
Lesson 6. Develop lots of examples.
Good UML standards form the foundation of UML
understanding in the enterprise. To reinforce this foundation the
UML forum and the UML champions need to develop plenty of examples
outside of the standards as references for more elaborate
models.
Examples may include full project modelling life
cycles, trace ability between different levels, or dimensions, of
models and examples of atypical models that move outside of the UML
standards. Atypical models need to be accompanied by descriptions
of why it was necessary to deviate from the
standards.
Lesson 7. Review the standards
constantly
To ensure that the UML standards stay current and
appropriate it is imperative that a process of review, assessment
and continuous improvement are implemented. A typical UML standards
life will begin with a basis that is constantly reviewed and
updated. As it matures and start to fit into the needs of the
enterprise these review cycles may become less
frequent.
The lower frequency of review does not mean that
review should stop completely. It is important to keep the UML
forum alive and have formal review meetings at least quarterly.
Over time as business and its practices change there will be leaps
and bounds of evolution. If the forum is removed these changes may
not be dealt with in a pro-active manner when they
occur.