一个大而复杂的软件系统若想简单化,就要分解,这就引入了模块化的概念,模块化:把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。那么与模块化相对应的就是抽象化了,抽象化:软件系统进行模块设计时,可有不同的抽象层次。
模块(Module)一般具有如下三个基本属性:
功能:描述该模块实现什么功能;
逻辑:描述模块内部怎么做;
状态:该模块使用时的环境和条件。
模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能。一般采用两个准则度量模块独立性,即模块间耦合和模块内聚。
(一)模块耦合
功能内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分,是不可分割的。
信息内聚:这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能都有一个唯一的入口点。
通信内聚:如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。
过程内聚:使用流程图做工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。即:模块内上一部的结果就是下一步的数据。
时间内聚:时间内聚模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。
逻辑内聚:这种模块把几种相关的功能组合在一起。
巧合内聚:巧合内聚模块内各部分之间没有联系,或者即使有联系,这种联系也很松散。
那么整个的原则是:低耦合高内聚。
科学有序的设计一款软件需要使用结构化的设计方法。
首先研究、分析和审查数据流图,然后根据数据流图决定问题的类型。数据处理问题典型的类型有两种:变换型和事务型。针对两种不同的类型分别进行分析处理。
在系统结构图中的模块具体有:传入模块、传出模块、变换模块、协调模块。每一种模块在软件开发中占有重要的地位。
小编对于模块的耦合和内聚理解的还不到位,若有错误,请各位大神指正,小编将感激不尽。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!