What is modularity? And how to achieve modularity?

1. What is modularity?

Modularity in software engineering refers to the process of dividing software into various components that work together to form a single functioning item. In modular programming, modularity refers to the compartmentalization and interrelation of the parts of a software package. Modularity specifies the separation of concerned ‘components’ of the software which can be addressed and named separately. These separated components are referred to as ‘modules’. These modules can be integrated to satisfy the requirement of other software.


2. The importance of modularity.

Modularity is important in software engineering because it helps in reducing the complexity of software or projects. The basic principle of modularity is that “Systems should be built from cohesive, loosely coupled components (modules)” which means a 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.

  • Modular decomposability is the process of breaking down a 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 means to assemble the modules into a new system that means to connect the combine the components into a new system.

  • 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.


3. How to achieve modularity?

  • To achieve modularity, software needs to be divided into different components that can work independently, have a well-defined function, and can be named separately. These components are called ‘modules’ and can be integrated to satisfy the requirement of other software. Modularization is the process of breaking down software into multiple independent modules where each module is developed separately.

  • To achieve modularity, the internal implementation details of a module must be shielded from the module’s external environment. The external environment being the aggregate of all other modules, the underlying runtime and higher-level services. The only permissible interactions between the module and its host ‘environment’ are then via the module’s public interfaces.

  • To achieve modularity, you have to be conscious at all the stages of software development such as the architectural design phase where the large-scale structure of the software is determined. You have to be very careful while creating modularity at this phase as you have to understand the entire logical structure of the software. If you have created modularity in the architectural design of the software it becomes easy to figure out and design the individual components. The modular components have a well-defined purpose and they have a few connections with the other components.


4. Summary

In summary, modularity in software engineering refers to the process of dividing software into various components that work together to form a single functioning item. It helps in reducing the complexity of software or projects and allows development of software to be divided into several components that can be implemented simultaneously by the team of developers. While modularity can reduce the cost required to develop software, it is important to be careful while modularizing the software. Modularity can improve manageability, coherence, flexibility and reusability of software.

What is modularity And how to achieve modularity相关推荐

  1. php7 电子书 下载,PHP 7: Real World Application Development

    [作者]Doug Bierer,Altaf Hussain,Branko Ajzele [出版社]电脑/网络 [出版日期]1481854190000 Use new features of PHP 7 ...

  2. 建立可扩展的silverlight应用框架 step-4

    通过外部配置文件加载模块module 在上一节中为项目引入了"Prism"框架,并建立了一个Hello Prism做测试.这里要把项 目好好的整理一下.使其更加的合理和具有可扩展性 ...

  3. Prism学习笔记(三):对Prism中模块化程序的理解。

    这几天学习Prism,看了下帮组文档和程序.在Prism中专门讲解模块化程序开发的有俩个列子,一个是用Unity解耦实现Prism的依赖注入,另一个列子是用MEF解耦是实现Prism的依赖注入. 案例 ...

  4. 《王者荣耀》强制实名;联想打脸雷军;HTC 拍 VR 版《笑傲江湖》| 极客头条

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 快讯速知 & ...

  5. prism v2之旅(7)

    这篇继续介绍Module的功能. 第5篇已经介绍过模块的一些基本功能了,这篇介绍模块在silverlight的特殊应用. silverlight的项目生成文件是xap文件,其提供了一个非常方便的功能, ...

  6. cs224w(图机器学习)2021冬季课程学习笔记16 Community Detection in Networks

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Community Detection in Networks 2. Network Com ...

  7. PRISM 扩展Mef 的Export属性为ViewExport

    1.新建Infrastructure项目 A.新建IViewRegionRegistration类 using System; using System.Collections.Generic; us ...

  8. 【igraph实例】Commmunity 识别

    作者简介: 本文作者系大学统计学专业教师,多年从事统计学的教学科研工作,在随机过程.统计推 断.机器学习领域有深厚的理论积累与应用实践.个人主页 本文使用python实现的igraph库,识别网络中的 ...

  9. Neo4J入门笔记[2]---Neo4J GDS 图数据科学库

    Neo4J 提供了GDS的库,里面包括了很多算法.GDS的英语全称是Graph Data Science(图数据科学库),其句法流程如下: stream Returns the result of t ...

最新文章

  1. VoIP败家子的游戏
  2. 基于产生式的动物识别专家系统_基于5G的智慧养殖方案--漫途科技
  3. 高档名片设计:12款专业的名片设计欣赏
  4. 地市级地铁数据管理信息系统解决方式
  5. 第八章 PX4-SDlog解析
  6. 云端的SRE发展与实践
  7. Nature发布第一张人类造血干细胞发育的全面路线图
  8. mysql存储过程自定义结构体_(转)MySQL存储过程/存储过程与自定义函数的区别...
  9. DeFIL.org的资金池规模达168万枚FIL 已借出105万枚FIL
  10. 【BZOJ2388】—旅行规划(分块+凸包)
  11. Android6.0之AMS启动
  12. 颜色及图片识别原理,颜色识别传感器介绍
  13. 13个免费资源网站,你想要的全都有!【各类宝藏资源,建议收藏】
  14. 崩溃,执行DELETE没加WHERE条件,该怎么办?
  15. 差示光谱法的测定原理_完整版||绝对21张图谱解析21种仪器原理及应用
  16. 姿态估计(人体关键点检测)之CPN
  17. 【源码阅读】GAT:GRAPH ATTENTION NETWORKS
  18. 微软常用运行库合集(3264位)
  19. 公交IC卡刷卡数据分析
  20. 怎么压缩图片文件大小?小白都能学会的方法分享

热门文章

  1. ROS学习总结一:talker and listener
  2. 什么是数据类型?数据类型有什么用?
  3. DDD微服务架构设计第四课 DDD指导微服拆分和落地实现
  4. 【系统之家首发】Ghost_Windows7_sp1_Ultimate_x86V2011.10.10 【OEM 通用版】Windows7旗舰版好人一个出品
  5. Android Apk 签名方案
  6. 关于 intell IDEA 的代码自动提示功能没有,删了导包也不报红 (已解决)
  7. go语言比java高级在哪里
  8. 大数据架构师拿年薪50W的方法诀窍
  9. 微信小程序使用百度地图api
  10. 计算机的键盘分别代表什么,键盘中的三个指示灯分别代表什么意思