Modularity and its Properties
The module simply means the software components that are been created by dividing the software. The software is divided into various components that work together to form a single functioning item but sometimes they can perform as a complete function if not connected with each other. This process of creating software modules is known as Modularity in software engineering. It simply measures the degree to which these components are made up than can be combined. Some of the projects or software designs are very complex that it’s not easy to understand its working and functioning. In such cases, modularity is a key weapon that helps in reducing the complexity of such software or projects. The basic principle of Modularity is that “Systems should be built from cohesive, loosely coupled components (modules)” which means s system should be made up of different components that are united and work together in an efficient way and such components have a well-defined function. To define a modular system, several properties or criteria are there under which we can evaluate a design method while considering its abilities. These criteria are defined by Meyer. Some of them are given below:
- Modular Decomposability – Decomposability simply means to break down something into smaller pieces. Modular decomposability means to break down the problem into different sub-problems in a systematic manner. Solving a large problem is difficult sometimes, so the decomposition helps in reducing the complexity of the problem, and sub-problems created can be solved independently. This helps in achieving the basic principle of modularity.
- Modular Composability – Composability simply means the ability to combine modules that are created. It’s actually the principle of system design that deals with the way in which two or more components are related or connected to each other. Modular composability means to assemble the modules into a new system that means to connect the combine the components into a new system.
- Modular Understandability – Understandability simply means the capability of being understood, quality of comprehensible. Modular understandability means to make it easier for the user to understand each module so that it is very easy to develop software and change it as per requirement. Sometimes it’s not easy to understand the process models because of its complexity and its large size in structure. Using modularity understandability, it becomes easier to understand the problem in an efficient way without any issue.
- Modular Continuity – Continuity simply means unbroken or consistent or uninterrupted connection for a long period of time without any change or being stopped. Modular continuity means making changes to the system requirements that will cause changes in the modules individually without causing any effect or change in the overall system or software.
- Modular Protection – Protection simply means to keep something safe from any harms, to protect against any unpleasant means or damage. Modular protection means to keep safe the other modules from the abnormal condition occurring in a particular module at run time. The abnormal condition can be an error or failure also known as run-time errors. The side effects of these errors are constrained within the module.
Example to understand modularity better:
In the object-oriented approach, the concept of modularity revolves around the concept of well-organized interactions between different components. Modularity refers to an organizing structure in which different components of a software system are divided into separate functional units.
For example, a house or apartment can be viewed as consisting of several interacting units; electrical, heating, cooling, plumbing, structure, etc. Rather than viewing it as one giant jumble of wires, vents, pipes, and boards, the organized architect designing a house or apartment will view them as separate modules that interact in well-defined ways. In doing so, he/she is using the concept of modularity to bring clarity of thought that provides a natural way of organizing functions into distinct manageable units. Likewise, using modularity in a software system can also provide a powerful organizing framework that brings clarity to an implementation.
Share your thoughts in the comments
Please Login to comment...