Information Technology Reference
In-Depth Information
the problem lies with getting the right set of possible models (with the
appropriate amount of detail) to choose the simplest solution.
One sees examples of Occam's razor in everyday conversation. When
asked about the distance between, say, Los Angeles and San Francisco,
one would say 450 miles. This distance is generally the direct driving
distance. You do not think of this distance via Denver or via New York,
which is obviously more than 450 miles. Why are those options automat-
ically eliminated? It is because the mind always tends to choose the
simplest distance model that satisfies the question. In the same vein, if
one sees standing water on one's lawn in the mor ning, the simplest
explanation could be that someone left open the garden tap. One does
not jump to the conclusion that the town is flooded.
This principle is equally applicable in debugging. When encountering
an error, the developer must test the simplest possible cause for it, before
moving on to more complex causes. It would make sense to look for a
programming error within the developer's program, then move on to other
interacting functions or modules, then if necessary to other software layers
such as libraries, rather than beginning with the assumption that the
compiler, or the hardware, has some problem.
Summary
A good system builds on the foundations of good architecture and design.
Architecture differs from design — one is global while the other is more
local. If an application is complex, it should be built using a pr oper
architecture. Proper architectures help manage the complexity of the system.
Architectures exist at various levels; there are enterprise architectures and
information architectures. These can be of various types: client/server,
service oriented, and others.
The key to successful software design is to recognize and respect the
media that is being used — digital, electronic in this case. It is under-
standable that initial efforts in software design imitated the manual systems
that were being automated through software. But as software matures,
one needs to take the design to a different, more potent level.
We also need to look at data and information , terms familiar to all
of us. They constitute the basis for the existence of many computer
applications.
Search WWH ::




Custom Search