1、最小成本区M模块成本接口成本总成本软件开发工作量 模块数 Magical Number Seven,Plus or Minus Two,Some Limits on Our Capacity for Processing Information The Psychological Review,1956 G.A. Miller奇妙的数字奇妙的数字 7+2,人类,人类信息处理能力的限度信息处理能力的限度 模块的独立性模块的独立性是指软件系统中每个模块只是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。中其他模块的接口
2、是简单的。模块的独立程度可以由两个定性标准度量模块的独立程度可以由两个定性标准度量 耦合性是程序结构中各个模块之间相互关联的度量耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。式以及那些信息通过接口。低低 高高弱弱 强强耦合性耦合性模块独立性模块独立性模块模块1 1模块模块2 2模块模块3 3模块模块4 4开发票开发票计算水费计算水费单价单价数量数量金金额额计算水电费计算水电费计算水费计算水费计算电费计算电费住户情况住户情况水费水费 电费电费住户情况住户情况“住户情况住户情况”是
3、一个数据结构是一个数据结构, ,图中图中模块都与此数据结构有关模块都与此数据结构有关. .“计算水计算水费费”和和“计算电费计算电费”本无关本无关, ,由于引由于引用了此数据结构产生依赖关系用了此数据结构产生依赖关系, ,它们它们之间也是标记偶合之间也是标记偶合. . A 模块flagf1Bf2fn 如果一个模块通过传送开关、标志、名字如果一个模块通过传送开关、标志、名字 等控等控制信息,明显地控制选择另一模块的功能制信息,明显地控制选择另一模块的功能 就是就是控制耦合。控制耦合。ABC公共数据区公共数据区 公共耦合存在的问题:公共耦合存在的问题: (1)软件可理解性降低软件可理解性降低 (2
4、)诊断错误困难诊断错误困难 (3)软件可维护性差,软件可维护性差, (4)软件可靠性差软件可靠性差(公共数据区及全程变量无保护措施公共数据区及全程变量无保护措施) 慎用公共数据区和全程变量慎用公共数据区和全程变量!A B一模块直接一模块直接访问另一模访问另一模块的内部信块的内部信息息 ( (程序代程序代码或数据)码或数据) A B 模块代码重叠模块代码重叠Entry1 Entry2 多入口模块多入口模块不正常转入另一模块不正常转入另一模块最不好的耦合形式!最不好的耦合形式!以上给出了以上给出了 7 7种耦合类型,这只是从耦合的机制上所种耦合类型,这只是从耦合的机制上所做的分类,按耦合的强弱程度
5、的排列只是相对的关系做的分类,按耦合的强弱程度的排列只是相对的关系。但它给设计人员在设计程序结构时提供了一决策准。但它给设计人员在设计程序结构时提供了一决策准则。实际上,开始时两个模块之间的耦合不只是一种则。实际上,开始时两个模块之间的耦合不只是一种类型,而是多种类型的混合。这就要求设计人员按照类型,而是多种类型的混合。这就要求设计人员按照实际情况进行分析、比较和分析,逐步加以改进,以实际情况进行分析、比较和分析,逐步加以改进,以提高模块的独立性。提高模块的独立性。总之,耦合是影响软件复杂程度的一个重要因素。应总之,耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:该采取下述设计原则
6、:尽量使用数据耦合,少用控制耦合和特征耦合,限制尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。公共环境耦合的范围,完全不用内容耦合。设计目标:高内聚,模块在软件过程中完成单一的任务设计目标:高内聚,模块在软件过程中完成单一的任务读入读入成绩单成绩单审查审查成绩单成绩单统计统计成绩成绩打印打印成绩成绩读入并审查读入并审查成绩单成绩单统计并打印统计并打印成绩单成绩单SXYZWABCDSXYZW ABCD模块模块MM中的三个语句没有任何联系中的三个语句没有任何联系缺点:可理解性差,缺点:可理解性差, 可修改性差可修改性差耦合、内聚与模块独立性关系:耦合、内聚与模
7、块独立性关系:耦合与内聚都是模块独立性的定性标准,都反映模耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。但耦合是直接的主导因素,块独立性的良好程度。但耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性进行衡量。内聚则辅助耦合共同对模块独立性进行衡量。正文加工系统的层次图正文加工系统的层次图目标系统的DFD SD目标系统的SC在在 图上标出逻辑输入、逻辑输出和变换中心的分界图上标出逻辑输入、逻辑输出和变换中心的分界abdvrp变换中心变换中心c,e 逻逻辑输入辑输入w,u 逻逻辑输出辑输出- 具有变换型数据流图具有变换型数据流图完成第一级分解完成第一级分解abvrpdeMcM
8、AMTMEC,eC,eU,wU,w变换中心变换中心 顶顶 层层第一层第一层 第一级分解后的第一级分解后的 SC 图(含协调、传入、变换、传出模块)图(含协调、传入、变换、传出模块)第一级分解后的 SC 图(另一种画法)McMA1ME1C eU MA2QPRME2e c,p pr r w,uwabvrpde变换中心变换中心MA对逻辑输入的分解CEBADabdecabvrpde变换中心变换中心ME对输出的分解WUVvuwMTQPR eC,prU,w对变换中心加工的分解 prw,u完成第二级分解MACBAEDMTQPR从变换分析导出的初始 SC 图MEWUVMCc, eW,uW,uC,e获得完整的获
9、得完整的 图图运用变换分析方法建立系统的运用变换分析方法建立系统的SCSC时需注意以下几点:时需注意以下几点:运用变换分析方法建立系统的运用变换分析方法建立系统的SCSC时需注意以下几点:时需注意以下几点:事务分析事务分析- - 是将具有是将具有事务型事务型的的DFD图导出图导出SC图图事务中心事务中心事务源事务源主模块给出H取得ALMNA GHBECF D p 经常不断地学习,你就什么都知道。你知道得越多,你就越有力量p Study Constantly, And You Will Know Everything. The More You Know, The More Powerful You Will Be写在最后感谢聆听不足之处请大家批评指导Please Criticize And Guide The Shortcomings结束语讲师:XXXXXX XX年XX月XX日