developers thought worthy of note. In
this article I focus on how modeling
the various system components can be
used to gain a greater understanding
and provide a foundation for evaluating possible changes.
VisuaLiZation by richard aLMond
This type of modeling is not just a
whiteboard or paper exercise. It is the
creation of drivers and components
to emulate various aspects of the sys-
tem. The drivers are used to invoke the
various parts of the system to mimic
its normal behavior. The idea is to ex-
ercise the architecture without the
“burden” of ensuring functional cor-
rectness. At times these drivers may be
scripts written with established tools
(for example, WinRunner, JMeter), but
oping programs specific to the compo-
nent to be driven. These have allowed
me to get the information I needed to
make quality decisions. It is important
to understand that the model compo-
nents and the associated drivers are
not just simple test programs but are
to be used as the basis for exploration
and discovery.
These could span from code changes
to infrastructure changes to hardware
changes. With the right drivers and
component modeling it may become
practical to address redesigning some
of the components.
Sometimes the functionality contained within a component is so intertwined with the architecture that
it’s necessary to create a lightweight
replica. It is not unusual for some functional aspects of the system to mask
the behavior of the underlying technology or infrastructure in responding to
the requesting applications. In these
cases having a lightweight model can
allow the architectural interactions to
be explored and better understood. If
you discover architectural solutions,