Coupling:
Two modules are considered independent if one can function completely
without the presence of other. Obviously, if two modules are
independent, they are solvable and modifiable separately. However, all
the modules in a system cannot be independent of each other, as they
must interact so that together they produce the desired external
behavior of the system.
The
more connections between modules, the more dependent they are in the
sense that more knowledge about one module is required to understand or
solve the other module. Hence, the fewer and simpler the connections
between modules, the easier it is to understand one without
understanding the other. Coupling between modules is the strength of
interconnection between modules or a measure of independence among
modules.
To
solve and modify a module separately, we would like the module to be
loosely coupled with other modules. The choice of modules decides the
coupling between modules. Coupling is an abstract concept and is not
easily quantifiable. So, no formulas can be given to determine the
coupling between two modules. However, some major factors can be
identified as influencing coupling between modules.
Among
them the most important are the type of connection between modules, the
complexity of the interface, and the type of information flow between
modules. Coupling increase with the complexity and obscurity of the
interface between modules. To keep coupling low we would like to
minimize the number of interfaces per module and the complexity of each
interface. An interface of a module is used to pass information to and
from other modules. Complexity of the interface is another factor
affecting coupling.
The
more complex each interface is, higher will be the degree of coupling.
The type of information flow along the interfaces is the third major
factor-affecting coupling. There are two kinds of information that can
flow along an interface: data or control, Passing or receiving control
information means that the action of the module will depend on this
control information, which makes it more difficult to understand the
module and provide its abstraction. Transfer of data information means
that a module passes as input some data to another module and gets in
return some data as output.
0 comments:
Post a Comment