Engineering Design Concepts
In top-down
design, system components are derived from project specifications. The main
advantage of a top-down approach is that its strong focus on specific
requirements helps to make a design responsive to its requirement. Its
disadvantage is that project and system boundaries tend to be application or
specification oriented. Thus it is more likely that the "wheel will be
reinvented" and that advantages of component reuse will be missed. It also means
that the system is likely to miss the benefits of a well structured, simple
architecture.
In bottom-up design, the emphasis is on applying general solutions to a wide
range of problems. The advantage of bottom up design is the economies that
result when general solutions can be reused. A disadvantage of bottom-up design
is that its focus is not on specific requirements. thus its results may not fit
a given need. Another disadvantage is that high quality bottom-up solutions
prove very hard to construct and thus most frameworks are to some substantial
degree under-designed.
Your position in the ideological debate
of top-down versus bottom-up approaches determines how you build a robot. For
example, suppose you are building a walking robot. The "Artificial Intelligence"
view is that the brain controls the legs in a top-down model. The alternative
view is that the dynamics of movement come not from the brain but from the
natural physics is a bottom-up model.
Suppose that a designer wants to use the
top-down approach to build a robot that will sweep the floor. The overall task
of the robot is divided into simpler subtasks: robot has to be able to move
forward, turn, move its broom up and down, turn it on, turn it off, etc. Each
subtask is divided further and further until a bottom level with only simple
tasks for which parts and programs be built and implemented. However, many
unexpected phenomena might be discovered when building small parts
independently. They will require the design of low-level tasks to be modified.
It is now very likely that the parts will not fit together and will fail to
build the robot originally planned.
Alternatively, one can use the bottom-up
approach. First the designer builds a simple robot that can do only simple
things. Next it is tested and debugged. This might require making some changes
to the design. More difficult functions of the robot are added later and their
design depends on how the robot already looks like.
In actual practice many designers use a
hybrid approach where you start at both ends.

*Constraints: Time, money, physics, knowledge, materials, abilities,
environment
**Design Options: Top-Down, Bottom-Up, Hybrid
Challenger Analysis and Richard Feynman
 |
His main complaints are about high level design
decisions being made without a proper understanding of the lower
level constraints such as material properties, and a management
culture which dismissed evidence of problems such as components that
were operating outside their intended design parameters because the
results hadn't previously proved catastrophic.
A thorough understanding of the constraints on
how things work at the lower levels, and what is going wrong when
they aren't working as designed, is an integral part of what I mean
by “feasibility” flowing back up to influence higher level design
decisions.
Feynman's book “What do you care what other
people think? Further adventures of a curious character” which talks
about his experience on the Rogers Commission and the need to
understand what is really going on in complex systems.
As always, balance is important. Nobody designs
systems in a purely top-down nor a purely bottom-up manner; finding
the optimal mix for a given project, technology and organization is
what is important.
|