Modularity

Modularity refers to the extent to which a software/Web application may be divided into smaller modules. Software modularity indicates that the number of application modules are capable of serving a specified business domain. Allows typical applications to be divided into modules, as well as integration with similar modules, which helps developers use prewritten code. Modules are divided based on functionality, and programmers are not involved with the functionalities of other modules. Thus, new functionalities may be easily programmed in separate modules. It is a practical application of the principle of "Separation of Concerns" by dividing a complex system into simpler and more manageable modules that will work together Modularization can take place in two ways: The Composition or bottom-up approach takes modules and puts them together to form a larger system The alternative approach is to take a complete system and decompose it into its modules. This approach is known as the decomposition or top-down approach. Modules are technically connected to one another. The measure of inter-module relation is known as coupling. Design goals require modules to have low-coupling and high cohesion. Cohesion is a measure of the inter-relatedness of elements (statements, procedures, declarations) within a module. A module is said to have high cohesion if all the elements in the module are strongly connected with one another. Tight coupling of modules makes analysis, understanding, modification and testing of modules difficult. Reuse of modules is also hindered. Modularity enhances the understandability of software systems and change process. Developers need not have to understand the entire system for changes to be made as details are localized into components; modularity separates concerns down to the modules and is thus a direct realization of the principle of "Separation of Concerns"

Topic
Integration
EA: Application Architecture