A modular architecture can be characterized by factors such as the following:
Among other things, developing a modular system design involves specifying:
Compatibility among modules is often ensured by “design rules” that govern the architecture, the interfaces, and the standardized tests of the system. Thus “modularizing” a system involves specifying its architecture or what its modules are; specifying its interfaces or how the modules interact; and specifying tests which establish that the modules will work together and how well each module performs its job.
Modular design typically demands well-defined design rules governing how the modules interface to each other and work in harmony to achieve the system objective. Interface design rules should be based on internal or industry standards to minimize effort, cost and risk. These design rules or interface specifications usually cover such things as:
There are many examples of modular design. For example, computer systems are generally modular in design. For example, a computer server, desktop computer or notebook computer are typically comprised of modules such as a computer processor, memory modules, graphics processor, disk drives, power supplies, etc. The interfaces between these modules can include data buses or other types of communication or control links.