Friday, February 4, 2011

Modularization in software projects

Modularization is very important in software system designs since it provides a great flexibility to the extreme extent that no parts are relying upon any other parts. But still facilitating the communication among the modules in order to achieve the intended task.

Specially in consideration of an organization developing a large scale software solutions, in project management aspect, it allows breaking down the project in to smaller components which might have separate component boundaries and targets. No coordination among project teams would be necessary unless it is the integration phase. Well defined interfaces to pass data, communicate, will do the final task at the end, executing functions.

When it comes to the expansion, software being modularized provide flexibility and option to the developers and architects to add, edit, delete the modules with less effect to the other modules. Expansions would made a lot easier. It would be an addition of modules with it's new functions. No extra overhead would have to bear to integrate with the existing system.


There are many general advantages of achieving modularization
  • Separation of concerns - Easier o limit the knowledge about the internals and the contents of classes on different levels or different tasks if they are organized into separate modules.
  • Easier to maintain smaller components - In actual development it allows proper organized structure of folder structure, files naming etc providing less time consuming management and maintenance.
  • Prevention of damages - A lot easier to manage and avoid potential damages to the software system. An error affecting one module would have least effect on other modules providing less damage to the end system.

There are some disadvantages as well in modularization
  • Complexity - Especially in small projects, it increases the complexity making the design unnecessary complex with many overhead items
  • Difficulty of understanding - Later referring of the codes would make it extremely difficult to understand if not proper naming conventions are used. Even though this factor depends on the programmer mostly, modularization could have an effect.

No comments:

Post a Comment