Top-down and bottom-up are strategies of information processing
and knowledge ordering, mostly involving software, and by extension other humanistic and scientific system theories (see systemics).
In a top-down approach an overview of the system is first formulated, specifying but not detailing any first-level
subsystems. Each subsystem is then refined in yet greater detail, sometimes in many additional subsystem levels, until the entire
specification is reduced to base elements. A top-down model is often specified with the assistance of "black boxes" that make it
easier to manipulate. However, black boxes may fail to elucidate elementary mechanisms or be detailed enough to realistically
validate the model.
In a bottom-up approach the individual base elements of the system are first specified in great detail. These elements
are then linked together to form larger subsystems, which then in turn are linked, sometimes in many levels, until a complete
top-level system is formed. This strategy often resembles a "seed" model, whereby the beginnings are small, but eventually grow
in complexity and completeness. However, "organic strategies", may result in a tangle of elements and subsystems, developed in
isolation, and subject to local optimization as opposed to meeting a global purpose.
Computer science
Software development
- Part of this section is from the Perl Design Patterns Book.
In the software development process, the top-down and
bottom-up approaches play a key role.
Top-down approaches emphasise planning and a complete understanding of the system. It is inherent that no coding can begin
until a sufficient level of detail has been reached in the design of at least some part of the system. The Top-Down Approach is
done by attaching the stubs in place of the module. This, however, delays testing of the ultimate functional units of a system
until significant design is complete. Bottom-up emphasizes coding and early testing, which can begin as soon as the first module
has been specified. This approach, however, runs the risk that modules may be coded without having a clear idea of how they link
to other parts of the system, and that such linking may not be as easy as first thought. Re-usability of code is one of the main
benefits of the bottom-up approach.[citation needed]
Top-down design was promoted in the 1970s by IBM researcher Harlan
Mills and Niklaus Wirth. Mills developed structured programming concepts for practical use and tested them in a 1969 project to automate
the New York Times morgue index. The engineering and management success of
this project led to the spread of the top-down approach through IBM and the rest of the computer industry. Niklaus Wirth, among
other achievements the developer of Pascal programming language, wrote the
influential paper Program Development by Stepwise Refinement. Top-down methods were favored in software engineering until the rise of object-oriented programming in the late 1980s.
Modern software design approaches usually combine both top-down and bottom-up approaches. Although an understanding of the
complete system is usually considered necessary for good design, leading theoretically to a top-down approach, most software
projects attempt to make use of existing code to some degree. Pre-existing modules give designs a bottom-up flavour. Some design
approaches also use an approach where a partially-functional system is designed and coded to completion, and this system is then
expanded to fulfill all the requirements for the project.
Programming
Top-down programming is a programming style, the mainstay of traditional procedural languages, in which design begins by
specifying complex pieces and then dividing them into successively smaller pieces. Eventually, the components are specific enough
to be coded and the program is written. This is the exact opposite of the bottom-up programming approach which is common in
object-oriented languages such as C++ or Java.
The technique for writing a program using top-down methods is to write a main procedure that names all the major functions it
will need. Later, the programming team looks at the requirements of each of those functions and the process is repeated. These
compartmentalized sub-routines eventually will perform actions so simple they can be easily and concisely coded. When all the
various sub-routines have been coded the program is done.
By defining how the application comes together at a high level, lower level work can be self-contained. By defining how the
lower level objects are expected to integrate into a higher level object, interfaces become clearly defined.
Advantages of top-down programming:
- Separating the low level work from the higher level objects leads to a modular design.
- Modular design means development can be self contained.
- Having "skeleton" code illustrates clearly how low level modules integrate.
- Code is easier to follow, since it is written methodically and with purpose.
Disadvantages of top-down programming:
- No functionality will exist until development of low level objects is complete.
Parsing
Parsing is the process of analyzing an input sequence (such as that read from a file or a
keyboard) in order to determine its grammatical structure. This method is used in the analysis of both natural languages and computer languages, as in a
compiler.
Bottom-up parsing is a strategy for analyzing unknown data relationships that attempts to identify the most fundamental units
first, and then to infer higher-order structures from them. Top-down parsers, on the other hand, hypothesize general
parse tree structures and then consider whether the known fundamental structures are
compatible with the hypothesis. See Top-down parsing and Bottom-up parsing.
Nanotechnology
-
Top-down and bottom-up are used as two approaches for assembling nanoscale materials and devices. Bottom-up
approaches seek to have smaller (usually molecular) components arrange themselves into more
complex assemblies, while top-down approaches seek to create nanoscale devices by using larger, externally-controlled ones to
direct their assembly.
The top-down approach often uses the traditional workshop or microfabrication methods where externally-controlled tools are
used to cut, mill and shape materials into the desired shape and order. Bottom-up approaches, in contrast, use the
chemical properites of single molecules to cause single-molecule components to automatically
arrange themselves into some useful conformation. These approaches utilize the concepts of molecular self-assembly and/or molecular
recognition. See also Supramolecular chemistry.
Such bottom-up approaches should, broadly speaking, be able to produce devices in parallel and much cheaper than top-down
methods, but could potentially be overwhelmed as the size and complexity of the desired assembly increases.
Neuroscience and psychology
This vocabulary is also employed in neuroscience and psychology. The study of visual attention provides an example. If your
attention is drawn to a flower in a field, it may be simply that the flower is more visually salient than the surrounding field.
The information which caused you to attend to the flower came to you in a bottom-up fashion -- your attention was not
contingent upon knowledge of the flower; the outside stimulus was sufficient on its own. Contrast this situation with one in
which you are looking for a flower. You have a representation of what you are looking for. When you see the object you are
looking for, it is salient. This is an example of the use of top-down information.
In cognitive terms, two thinking approaches are distinguished. "Top down" (or "big chunk") is stereotypically the visionary,
or the person who sees the larger picture and overview. Such people focus on the big picture, and from that derive the details to
support it. "Bottom up" (or "small chunk") cognition is akin to focussing on the detail primarily, rather than the landscape. The
expression "seeing the wood for the trees" references the two styles of cognition.
Management and organization
In management and organizational arenas, the terms "top down" and "bottom up" are used to indicate how decisions are made.
A "top down" approach is one where an executive, decision maker, or other person or body, makes a decision. this is
disseminated under their authority, to lower levels in the hierarchy, who are to a greater or lesser extent, bound by them. For
example, a structure in which decisions either are approved by a manager, or approved by his authorised representatives based
upon prior guidelines of the manager, is top-down management.
A "bottom up" approach is one which works from the grassroots - from a large number of
people working together, causing a decision to arise from their joint involvement. A decision by a number of activists, students,
or victims of some incident, to take action, is a "bottom-up" decision.
Architectural
Often, the École des Beaux-Arts school of design is said to have primarily
promoted top-down-design because it taught that an architectural design should begin with a parti, a basic plan drawing of the overall project. By contrast, the Bauhaus
focused on bottom-up-design. This method manifested itself in the study of translating small-scale organizational systems to a
larger, more architectural scale (as with the woodpanel carving and furniture design).
Ecological
In ecology, top down control referes to when a top predator controls the structure/population
dynamics of the ecosystem. The classic example is of kelp forest ecosystems. In such
ecosystems, sea otters are a keystone predator. They prey on urchins which in turn eat
kelp. When otters are removed, urchin populations grow and reduce the kelp forest creating urchin barrens. In other words, such
ecosystems are not controlled by productivity of the kelp but rather a top predator.
Bottom up control in ecosystems refers to ecosystems in which the nutrient supply and productivity and type of primary
producers (plants and phytoplankton) control the ecosystem structure. An example would be how plankton populations are controlled
by the availability of nutrients. Plankton populations tend to be higher and more complex in areas where upwelling brings
nutrients to the surface.
There are many different examples of these concepts. It is not uncommon for populations to be influenced by both types of
control.
References
J. A. Estes, M. T. Tinker, T. M. Williams, D. F. Doak "Killer Whale Predation on Sea Otters Linking Oceanic and Nearshore
Ecosystems", Science 16 October 1998: Vol. 282. no. 5388, pp. 473 - 476
Malone, T. C., D. J. Conley, T. R. Fisher, P. M. Glibert, L.W. Harding & K.G. Sellner, 1996. Scales of nutrient-limited
phytoplankton productivity in Chesapeake Bay. Estuaries 19: 371–385.
External links
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)