Additionally, traditional structured programming techniques
should be applied in developing quality and easily maintained
software products. They are a natural progression from the top-
down structuring design techniques previously described. Like the
design specifications, strucmred application programs are easier
to develop, understand and maintain since they are divided into
subsystems, components, modules, programs, subroutines and
units. Generally, the greater extent to which each software item
described performs a single, dedicated function (cohesion) and
retains independence from other comparable items (coupling),
the easier it is to maintain and enhance a system since it is easier
to determine where and how to apply a change, and reduce the
chances of unintended consequences.