1、抽象
抽象主要用来将复杂的现象简化到可以分析、实验或者可以理解的程度。抽象的最低层就是实现该软件的源程序代码。在进行模块化设计也可以有多个抽象层次,最高抽象层次的模块用概括的方式描述问题的解决方案。较低层次的模块是对更高抽象层次模块对问题描述的细化。
2、模块化
模块在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素。比如高级语言的函数、子程序等。在软件的体系结构中,模块是可组合、分解、更换的单元。
模块化就是将一个待开发的项目系统分解成若干个简单模块。每个模块可以独立的开发、测试,最后组装成完整程序。采用分而治之的原则。模块化的目的是使程序的结构清晰,容易阅读、理解、测试、修改。
3、信息隐蔽
信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。在设计时首先列出一些可能发生变化的因素,在划分模块时将一个可能发生变化的因素隐蔽在个某个模块的内部,使其他模块与这个因素无关。在这个因素发生变化时,只需修改含有这个因素的模块。而与其他模块无关。
信息隐蔽原则对提高软件的可修改性、可测试性、可移植性都有重要的作用。
4、模块独立
模块独立是指每个模块完成一个相对的特定子功能、并且与其他模块之间的联系简单。衡量模块独立程度标准有两个:耦合性、内聚性。
4.1 耦合
耦合性是指模块之间联系的紧急程度。耦合性越高,则模块的独立性越差。模块间耦合的高低取决于模块间接口的复杂性、调用的方式及传递的信息。
无直接耦合:指两个模块间没有直接的关系,它们分别从属于不同模块的控制与调用它们之间不传递任何信息。模块间耦合性最弱,模块独立性最高。
数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,类似于高级语言中的值传递。耦合度较低、模块间的独立性较高。
标记耦合:指两个模块之间传递的数据结构。如高级编程语言中的数据组名、记录名、文件名等这些名字即为标记,其实传递的是这个数据结构的地址。
控制耦合:指一个模块调用另一个模块时,传递的是控制变量,被调模块通过该控制变量的指有选择地执行块内的某一功能。
公共耦合:通过一个公共数据环境相互作用的那些模块之间的耦合。
内容耦合:属于程度最高的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部,这种模块之间的耦合为内容耦合,常常会出现在汇编程序设计当中。
4.2 内聚
内聚是指模块内部各元素之间联系的紧密程度。内聚度越低,模块的独立性越差。
偶然内聚:指一个模块内的各个处理元素之间没有任何联系。
逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
时间内聚:把需要同时执行的动作组合在一起形式的模块。
通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或产生相同的输出数据。
顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前者的元素的输出是下一个元素的输入。
功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。
系统划分模块时,尽量做到高内聚、低耦合从而提高软件模块的独立性。
IT技术分享社区
个人博客网站:https://programmerblog.xyz
文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识