Before an attempt can be made to reduce or increase
a quantity there needs to be agreement on some metric that allows measurement of
the quantity. In the absence of such a metric it will not be possible to assess
whether the quantity has increased or decreased. Therefore if complexity has to
be reduced we would need a metric that will allow us to measure
complexity.
Once a measure is available it
will at least become theoretically feasible to address the issue of how to
drive down complexity.
The definition of an IT system is a good place to
search for our complexity measure. An IT system is a collection of programs that model the behavior
of real world elements under different conditions. An IT system simulates the
real world system by changing the observable values of IT elements (behaviors)
as the inputs (conditions) are modified.
Merriam-Webster defines behavior as
“Anything that an organism does involving action
and response to stimulation”
An intuitive observable measure
of Intrinsic Complexity of a system is the number of possible behaviors that a
system can exhibit
Extrinsic complexity is more
difficult to measure and while there may not exist a good measure to compute the
absolute value of extrinsic complexity, there exists a mechanism that when
given two systems can tell which system has greater complexity.
It is intuitively clear that when
in response to an external change a programmer needs to make changes to
multiple programs then he would spend much more time to do so if he was
required to make change in just one place. The system that requires many changes to be made has greater
complexity then the system that requires fewer changes to be made.
Techniques are available for
reducing both intrinsic and extrinsic complexity.
No comments:
Post a Comment