《第5章软件工程总体设计精选文档.ppt》由会员分享,可在线阅读,更多相关《第5章软件工程总体设计精选文档.ppt(109页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5章软件工程总体设计章软件工程总体设计本讲稿第一页,共一百零九页03 十月 20222西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计1软件概要设计概述软件概要设计概述 一、概要设计基本任务一、概要设计基本任务(P81P81P83P83,9 9条)条)1.1.设计软件系统结构设计软件系统结构(简称软件结构简称软件结构)为为了了实实现现目目标标系系统统,最最终终必必须须设设计计出出组组成成这这个个系系统统的的所所有有程程序序和和数数据据库库(文文件件),对对于于程序,则首先进行结构设计,具体方法如下:程序,则首先进行结构设计,具体方法如下:本讲稿第二页,共一百零九页03 十
2、月 20223西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 (1)(1)采采用用某某种种设设计计方方法法,将将一一个个复复杂杂的的系系统统按功能划分成模块。按功能划分成模块。(2)(2)确定每个模块的功能。确定每个模块的功能。(3)(3)确定模块之间的调用关系。确定模块之间的调用关系。(4)(4)确确定定模模块块之之间间的的接接口口,即即模模块块之之间间传传递递的信息。的信息。(5)(5)评价模块结构的质量。评价模块结构的质量。本讲稿第三页,共一百零九页03 十月 20224西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 从从以以上上内内容容看看,软软
3、件件结结构构的的设设计计是是以以模模块块为为基基础础的的,在在需需求求分分析析阶阶段段,通通过过某某种种分分析析方方法法把把系系统统分分解解成成层层次次结结构构。在在设设计计阶阶段段,以以需需求求分分析析的的结结果果为为依依据据,从从实实现现的的角角度度划划分分模模块块,并组成模块的层次结构。并组成模块的层次结构。本讲稿第四页,共一百零九页03 十月 20225西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 软件结构的设计是概要设计关键的一步,软件结构的设计是概要设计关键的一步,直接影响到详细设计与编码的工作。软件系统直接影响到详细设计与编码的工作。软件系统的质量及一些整体
4、特性都在软件结构的设计中的质量及一些整体特性都在软件结构的设计中决定。决定。因此,应由经验丰富的软件人员担任,因此,应由经验丰富的软件人员担任,采用一定的设计方法,选取合理的设计方案。采用一定的设计方法,选取合理的设计方案。本讲稿第五页,共一百零九页03 十月 20226西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计2.2.数据结构及数据库设计数据结构及数据库设计 对对于大型数据处理的软件系统,除了系统结构设计外,于大型数据处理的软件系统,除了系统结构设计外,数据结构数据结构与数据库设计也是重要的。与数据库设计也是重要的。1)1)数据结构的设数据结构的设计计 逐步细化逐步细
5、化的方法也适用于数据结构的设计。在需求分析阶段,可的方法也适用于数据结构的设计。在需求分析阶段,可通过数据字典对数据的组成、通过数据字典对数据的组成、操作约束和数据之间的关操作约束和数据之间的关系等方面进行描述,确定数据的结构特性,在概要设计系等方面进行描述,确定数据的结构特性,在概要设计阶段要加以细化,详细设计则规定具体的实现细节。阶段要加以细化,详细设计则规定具体的实现细节。本讲稿第六页,共一百零九页03 十月 20227西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计2)2)数据库的设计数据库的设计 数数据据库库的的设设计计指指数数据据存存储储文文件件的的设设计计,其主
6、要包括以下几方面的设计:其主要包括以下几方面的设计:(1)(1)概概念念设设计计。在在数数据据分分析析的的基基础础上上,从从用用户角度采用自底向上的方法进行视图设计。户角度采用自底向上的方法进行视图设计。一一般般用用ERER模模型型来来表表示示数数据据模模型型,这这是是一一个个概概念念模模型型。ERER模模型型既既是是设设计计数数据据库库的的基基础础,也是设计数据结构的基础。也是设计数据结构的基础。本讲稿第七页,共一百零九页03 十月 20228西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计(2)(2)逻逻辑辑设设计计。ERER模模型型是是独独立立于于数数据据库库管管理理系
7、系统统(DBMS)DBMS)的的,要要结结合合具具体体的的DBMSDBMS特特征征来来建建立立数数据据库库的的逻逻辑辑结结构构。对对于于关关系系型型的的DBMSDBMS来来说说,将将概概念念结结构构转转换换为为数数据据模模式式、子子模模式式并并进进行行规规范范,要要给给出出数数据据结结构构的的定定义义,即即定定义义所所含含的的数数据据项项、类类型型、长长度度及及它它们们之之间间的的层层次次或或相相互互关关系系的的表表格等。格等。本讲稿第八页,共一百零九页03 十月 20229西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 (3)(3)物理设计。对于不同的物理设计。对于不同的
8、DBMSDBMS,物理环境不物理环境不同,提供的存储结构与存取方法各不相同。物同,提供的存储结构与存取方法各不相同。物理设计就是设计数据模式的一些物理细节,如理设计就是设计数据模式的一些物理细节,如数据项存储要求、存取方式和索引的建立等。数据项存储要求、存取方式和索引的建立等。本讲稿第九页,共一百零九页03 十月 202210西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 数数据据库库技技术术是是一一项项专专门门的的技技术术,本本书书不不作作详详细细的的讨讨论论。但但开开发发人人员员应应注注意意到到,在在大大型型数数据据处处理理系系统统的的功功能能分分析析与与设设计计中中,
9、同同时时要要进进行行数数据据分分析析与与数数据据设设计计。数数据据库库的的“概概念念设设计计”与与“逻逻辑辑设设计计”分分别别对对应应于于系系统统开开发发中中的的“需需求求分分析析”与与“概概要要设设计计”,而而数数据据库库的的“物理设计物理设计”与模块的与模块的“详细设计详细设计”相对应。相对应。本讲稿第十页,共一百零九页03 十月 202211西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计3.3.编写概要设计文档编写概要设计文档 编写概要设计文档的内容如下:编写概要设计文档的内容如下:(1)(1)概要设计说明书。概要设计说明书。(2)(2)数数据据库库设设计计说说明明书
10、书:主主要要给给出出所所使使用用的的DBMSDBMS简简介介,数数据据库库的的概概念念模模型型、逻逻辑辑设设计计和和结结果。果。本讲稿第十一页,共一百零九页03 十月 202212西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 (3)(3)用用户户手手册册:对对需需求求分分析析阶阶段段编编写写的的用用户户手册进行补充。手册进行补充。(4)(4)修修订订测测试试计计划划:对对测测试试策策略略、方方法法和和步步骤提出明确要求。骤提出明确要求。4.4.评审评审 在在该该阶阶段段,对对设设计计部部分分是是否否完完整整地地实实现现了了需需求求中中规规定定的的功功能能、性性能能等等要要
11、求求,设设计计方方案案的的可可行行性性、关关键键的的处处理理及及内内外外部部接接口口定定义义正正确确性性、有有效效性性以以及及各各部部分分之之间间的的一一致致性性等等,都都一一进行评审。一一进行评审。本讲稿第十二页,共一百零九页03 十月 202213西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计二、软件概要设计文档二、软件概要设计文档 概概要要设设计计说说明明书书是是概概要要设设计计阶阶段段结结束束时时提提交交的的技技术术文文档档。按按国国标标GB8576-88GB8576-88的的计计算算机机软软件件产产品品开开发发文文件件编编制制指指南南规规定定,软软件件设设计计文文
12、档档可可分分为为“概概要要设设计计说说明明书书”、“详详细细设设计说明书计说明书”和和“数据库设计说明书数据库设计说明书”。本讲稿第十三页,共一百零九页03 十月 202214西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计概要设计说明书的主要内容如下:概要设计说明书的主要内容如下:(1)(1)引言:引言:编写目的,背景,编写目的,背景,定义,参考资料。定义,参考资料。(2)(2)总总体体设设计计:需需求求规规定定,运运行行环环境境,基基本本设设计计 概念和处理流程,结构。概念和处理流程,结构。(3)(3)接口设计:用户接口,外部接口,内部接口接口设计:用户接口,外部接口,内
13、部接口(4)(4)运运行行设设计计:运运行行模模块块组组合合,运运行行控控制制,运运行行时间。时间。本讲稿第十四页,共一百零九页03 十月 202215西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计(5)(5)系统数据结构设计:系统数据结构设计:逻逻辑辑结结构构设设计计,物物理理结结构构设设计计,数数据据结结构构与与程程序的关系。序的关系。(6)(6)系统出错处理设计:系统出错处理设计:出错信息,出错信息,补救措施,补救措施,系统恢复设计。系统恢复设计。本讲稿第十五页,共一百零九页03 十月 202216西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计2
14、2 软件设计的基本原理软件设计的基本原理一、模块化一、模块化 模模块块化化的的概概念念在在程程序序设设计计技技术术中中就就出出现现了了。何何为为模模块块?模模块块在在程程序序中中是是数数据据说说明明、可可执执行行语语句句等等程程序序对对象象的的集集合合,或或者者是是单单独独命命名名和和编编址址的的元元素素,如如高高级级语语言言中中的的过过程程、函函数数和和子子程程序序等等。在在软软件件的的体体系系结结构构中中,模模块块是是可可组组合合、分分解解和和更更换换的的单单元元。模模块块具具有有以以下下几几种基本属性:种基本属性:本讲稿第十六页,共一百零九页03 十月 202217西北师大物电学院 授课
15、教师:宋海声 第五章第五章 总体设计总体设计(1)(1)接口:接口:指模块的输入与输出。指模块的输入与输出。(2)(2)功能:功能:指模块实现什么功能。指模块实现什么功能。(3)(3)逻逻辑辑:描描述述内内部部如如何何实实现现要要求求的的功功能能及及所所需的数据。需的数据。(4)(4)状状态态:指指该该模模块块的的运运行行环环境境,即即模模块块的的调调用与被调用关系。用与被调用关系。本讲稿第十七页,共一百零九页03 十月 202218西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 功能、状态与接口反映模块的外部特性,功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。
16、模块化是指解决一个逻辑反映它的内部特性。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功干模块的过程。每个模块完成一个特定的子功能,能,所有的模块按某种方法组装起来,成为所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。一个整体,完成整个系统所要求的功能。本讲稿第十八页,共一百零九页03 十月 202219西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 在面向对象设计中,模块和模块化的概念在面向对象设计中,模块和模块化的概念将进一步扩充将进一步扩充(详见第详见第 1
17、11112 12 章章)。模块化模块化是软件解决复杂问题所具备的手段,是软件解决复杂问题所具备的手段,为了说为了说明这一点,可用问题的复杂性和工作量的关系明这一点,可用问题的复杂性和工作量的关系进行推理说明。进行推理说明。本讲稿第十九页,共一百零九页03 十月 202220西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 设设问问题题x,x,表表示示它它的的复复杂杂性性函函数数为为C(x),C(x),解解决决它它所所需需的的工工作作量量函函数数为为E(x)E(x)。对对于于问问题题P1P1和和P2P2;如果如果 C(PC(P1 1)C(PC(P2 2)即即P P1 1比比P
18、P2 2复杂,复杂,那么那么 E(PE(P1 1)E(PE(P2 2)即问题越复杂,即问题越复杂,所需要的工作量越大。所需要的工作量越大。本讲稿第二十页,共一百零九页03 十月 202221西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 根据解决一般问题的经验,根据解决一般问题的经验,规律为:规律为:C(PC(P1 1+P+P2 2)C(PC(P1 1)+C(P)+C(P2 2)即即一一个个问问题题由由两两个个问问题题组组合合而而成成的的复复杂杂度度大大于于分分别别考考虑虑每每个个问问题题的的复复杂杂度度之之和和。这这样样,可可以以推出:推出:E(PE(P1 1+P+P2
19、2)E(PE(P1 1)+E(P)+E(P2 2)本讲稿第二十一页,共一百零九页03 十月 202222西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 由由此此可可知知,开开发发一一个个大大而而复复杂杂的的软软件件系系统统,将将它它进进行行适适当当的的分分解解,不不但但可可降降低低其其复复杂杂性性,还还可可减减少少开开发发工工作作量量,从从而而降降低低开开发发成成本本,提高软件生产率,这就是模块化的依据。提高软件生产率,这就是模块化的依据。本讲稿第二十二页,共一百零九页03 十月 202223西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 但是否将系统无
20、限制分割,最后开发软件但是否将系统无限制分割,最后开发软件的工作量就会趋于零的工作量就会趋于零?事实上模块划分越多,事实上模块划分越多,块内的工作量减少,块内的工作量减少,但模块之间接口的工作但模块之间接口的工作量增加了,如图量增加了,如图 5.1 5.1 所示(所示(P84P84)。)。从图看出,从图看出,存在着一个使软件开发成本最小区域的模块数存在着一个使软件开发成本最小区域的模块数M M,虽然目前还不能确定虽然目前还不能确定M M的准确数值,但在划的准确数值,但在划分模块时,避免数目过多或过少,一个模块的分模块时,避免数目过多或过少,一个模块的规模应当取决于它的功能和用途。同时,应减规模
21、应当取决于它的功能和用途。同时,应减少接口的代价,提高模块的独立性。少接口的代价,提高模块的独立性。本讲稿第二十三页,共一百零九页03 十月 202224西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计二、抽象二、抽象 抽抽象象是是认认识识复复杂杂现现象象过过程程中中使使用用的的思思维维工工具具,即即抽抽出出事事物物本本质质的的共共同同特特性性而而暂暂不不考考虑虑它它的的细细节节,不不考考虑虑其其他他因因素素。抽抽象象的的概概念念被被广广泛泛应应用用于于计计算算机机软软件件领领域域,在在软软件件工工程程学学中中更更是是如如此此。软软件件工工程程实实施施中中的的每每一一步步都都
22、可可以以看看作是对软件抽象层次的一次细化。作是对软件抽象层次的一次细化。本讲稿第二十四页,共一百零九页03 十月 202225西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 在系统定义阶段,软件可作为整个计算机系在系统定义阶段,软件可作为整个计算机系统的一个元素来对待;在软件需求分析阶段,统的一个元素来对待;在软件需求分析阶段,软件的解决方案是使用问题环境中的术语来描软件的解决方案是使用问题环境中的术语来描述;从概要设计到详细设计阶段,提象的层次述;从概要设计到详细设计阶段,提象的层次逐步降低,将面向问题的术语与面向实现的术逐步降低,将面向问题的术语与面向实现的术语结合起来
23、描述解决方法,直到产生源程序时语结合起来描述解决方法,直到产生源程序时到达最低的抽象层次。这是软件工程整个过程到达最低的抽象层次。这是软件工程整个过程的抽象层次。的抽象层次。本讲稿第二十五页,共一百零九页03 十月 202226西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 具体到软件设计阶段,又有不同的抽象层具体到软件设计阶段,又有不同的抽象层次,在进行软件设计时,抽象与逐步求精、模次,在进行软件设计时,抽象与逐步求精、模块化密切相关,可帮助定义软件结构中模块的块化密切相关,可帮助定义软件结构中模块的实体,由抽象到具体地分析和构造出软件的层实体,由抽象到具体地分析和构造出
24、软件的层次结构,提高软件的可理解性。次结构,提高软件的可理解性。本讲稿第二十六页,共一百零九页03 十月 202227西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计三、信息隐蔽三、信息隐蔽 通通过过抽抽象象,可可以以确确定定组组成成软软件件的的过过程程实实体体。通通过过信信息息隐隐蔽蔽,可可以以定定义义和和实实施施对对模模块块的的过过程程细细节节和和局局部部数数据据结结构构的的存存取取限限制制。所所所所谓谓谓谓信信信信息息息息隐隐隐隐蔽蔽蔽蔽,是是是是指指指指在在在在设设设设计计计计和和和和确确确确定定定定模模模模块块块块时时时时,使使使使得得得得一一一一个个个个模模模模块
25、块块块内内内内包包包包含含含含的的的的信信信信息息息息(过过过过程程程程或或或或数数数数据据据据),对对对对于于于于不不不不需需需需要要要要这这这这些些些些信信信信息息息息的的的的其其其其他他他他模模模模块块块块来来来来说说说说,是是是是不不不不能能能能访访访访问问问问的的的的;“隐隐蔽蔽”的的意意思思是是,有有效效的的模模块块化化通通过过定定义义一一组组相相互互独独立立的的模模块块来来实实现现,这这些些独独立立的的模模块块彼彼此此之之间间仅仅仅仅交交换换那那些些为为了了完完成成系系统统功功能能所所必需的信息,而将那些自身的实现细节与数据必需的信息,而将那些自身的实现细节与数据“隐藏隐藏”起来
26、。起来。本讲稿第二十七页,共一百零九页03 十月 202228西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 一个软件系统在整个生存期中要经过多次一个软件系统在整个生存期中要经过多次修改,信息隐蔽为软件系统的修改、测试及以修改,信息隐蔽为软件系统的修改、测试及以后的维护都带来好处。因此,在划分模块时要后的维护都带来好处。因此,在划分模块时要采取措施,如采用局部数据结构,采取措施,如采用局部数据结构,使得大多使得大多数过程数过程(即实现细节即实现细节)和数据对软件的其他部分和数据对软件的其他部分是隐藏的,这样,修改软件时偶然引入的错误是隐藏的,这样,修改软件时偶然引入的错误所
27、造成的影响只局限在一个或少量几个模块内所造成的影响只局限在一个或少量几个模块内部,不波及其他部分。部,不波及其他部分。本讲稿第二十八页,共一百零九页03 十月 202229西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计四、模块独立性四、模块独立性 为为了了降降低低软软件件系系统统的的复复杂杂性性,提提高高可可理理解解性性、可可维维护护性性,必必须须把把系系统统划划分分成成为为多多个个模模块块,但但模模块块不不能能任任意意划划分分,应应尽尽量量保保持持其其独独立立性性。模模块块独独立立性性指指每每个个模模块块只只完完成成系系统统要要求求的的独独立立的的子子功功能能,并并且且与
28、与其其他他模模块块的的联联系系最最少少且且接接口口简简单单。模模块块独独立立性性概概念念是是模模块块化化、抽抽象象及及信信息息隐隐蔽蔽这这些些软软件件工工程程基基本本原原理理的的直直接接产产物物。只只有有符符合合和和遵遵守守这这些些原原则则才才能能得得到到高高度度独独立立的的模模块块。良良好好的的模模块块独独立立性性能能使使开开发发的的软软件件具具有较高的质量。有较高的质量。本讲稿第二十九页,共一百零九页03 十月 202230西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 为什么模块的独立性很重要呢为什么模块的独立性很重要呢?主要有两主要有两条理由:第一,有效的模块化条理
29、由:第一,有效的模块化(即具有独立的即具有独立的模块模块)的软件比较容易开发出来。这是由于能的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化,当许多人分工够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。合作开发同一个软件时,这个优点尤其重要。第二,独立的模块比较容易测试和维护。这是第二,独立的模块比较容易测试和维护。这是因为相对说来,修改设计和程序需要的工作量因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能比较小,错误传播范围小,需要扩充功能时能够够“插入插入”模块。总之,模块独立是好设计的模块。总之,模块独立是好设计
30、的关键,而设计又是决定软件质量的关键环节。关键,而设计又是决定软件质量的关键环节。本讲稿第三十页,共一百零九页03 十月 202231西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 由由于于模模块块独独立立性性强强,信信息息隐隐藏藏性性能能好好,并并完完成成独独立立的的功功 能能,且且它它的的可可理理解解性性、可可维维护护性性及及可可测测试试性性好好,必必然然导导致致软软件件的的可可靠靠性性高高。另另外外,接接口口简简单单、功功能能独独立立的的模模块块易易开开发发,且且可可并并行行工工作作,有有效效地地提提高高了了软软件件的的生生产产率率。如如何何衡衡量量软软件件的的独独立
31、立性性呢呢?根根据据模模块块的的外外部部特特征征和和内内部部特特征征,提提出出了了两两个个定定性性的的度度量量标标准准耦合性和内聚性耦合性和内聚性。本讲稿第三十一页,共一百零九页03 十月 202232西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计1.1.耦合性耦合性(Coupling)Coupling)耦耦合合性性也也称称块块间间联联系系,指指软软件件系系统统结结构构中中各各模模块块间间相相互互联联系系紧紧密密程程度度的的一一种种度度量量。模模块块之之间间联联系系越越紧紧密密,其其耦耦合合性性就就越越强强,模模块块的的独独立立性性则则越越差差。模模块块间间耦耦合合高高低低
32、取取决决于于模模块块间间接接口口的的复复杂杂性性、调调用用的的方方式式及及传传递递的的信信息息。模块的耦合性有以下几种类型:模块的耦合性有以下几种类型:本讲稿第三十二页,共一百零九页03 十月 202233西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计无无 直直 接接 耦耦 合合 数数 据据 耦耦 合合 特特 征征 耦耦 合合 控控 制制 耦耦 合合 公公 共共 耦耦 合合 内内 容容 耦耦 合合 低低 偶合性偶合性 高高(1)(1)无直接耦合:指两个模块之间没有直接的关系,无直接耦合:指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之它们分别从属于不
33、同模块的控制与调用,它们之间不传递任何信息。间不传递任何信息。因此,因此,模块间的这种耦合模块间的这种耦合性最弱,模块独立性最高。性最弱,模块独立性最高。本讲稿第三十三页,共一百零九页03 十月 202234西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 (2)(2)数数据据耦耦合合:指指两两个个模模块块之之间间有有调调用用关关系系,传传递递的的是是简简单单的的数数据据值值,相相当当于于高高级级语语言言中中的的值值传传递递。这这种种耦耦合合程程度度较较低低,模模块块的的独独立立性性较高。较高。(3)(3)标标记记耦耦合合:指指两两个个模模块块之之间间传传递递的的是是数数据据
34、结结构构,如如高高级级语语言言中中的的数数组组名名、记记录录名名和和文文件件名名等等这这些些名名字字即即为为标标记记,其其实实传传递递的的是是这这个数据结构的地址。个数据结构的地址。本讲稿第三十四页,共一百零九页03 十月 202235西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计(4)(4)控控制制耦耦合合:指指一一个个模模块块调调用用另另一一个个模模块块时时,传传递递的的是是控控制制变变量量(如如开开关关、标标志志等等),被被调调模模块块通通过过该该控控制制变变量量的的值值有有选选择择地地执执行行块块内内某某一一功功能能。因因此此被被调调模模块块内内应应具具有有多多个个
35、功功能能,哪个功能起作用受其调用模块的控制。哪个功能起作用受其调用模块的控制。控控制制耦耦合合增增加加了了理理解解与与编编程程及及修修改改的的复复杂杂性性,调调用用模模块块必必须须知知道道被被调调模模块块内内部部的的逻逻辑辑关关系系,即即被被调调模模块块处处理理细细节节不不能能“信信息息隐隐藏藏”,降低了模块的独立性。降低了模块的独立性。本讲稿第三十五页,共一百零九页03 十月 202236西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 在大多数情况下,在大多数情况下,模块间的控制耦合并不模块间的控制耦合并不是必需的,是必需的,可以将被调模块内的判定上移到可以将被调模块内的
36、判定上移到调用模块中去,同时将被调模块按其功能分解调用模块中去,同时将被调模块按其功能分解为若干单一功能的模块,将控制耦合改变为数为若干单一功能的模块,将控制耦合改变为数据耦合。据耦合。本讲稿第三十六页,共一百零九页03 十月 202237西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计(5)(5)公公共共耦耦合合:指指通通过过一一个个公公共共数数据据环环境境相相互互作作用用的的那那些些模模块块间间的的耦耦合合。公公共共数数据据环环境境可可以以是是全全程程变变量量或或数数据据结结构构、共共享享的的通通信信区区、内内存存的的公公共共覆覆盖盖区区及及任任何何存存储储介介质质上上的
37、的文文件件和和物物理理设设备备等等(也也有有将将共共享享外外部部设设备备分分类类为为外外部部耦耦合合的的)。公公共共耦耦合合的的复复杂杂程程度度随随耦耦合合模模块块的的个个数数增增加加而而增增加加。如如果果只只有有两两个个模模块块之之间间有有公公共共数数据据环境,那么这种公共耦合就有两种情况:环境,那么这种公共耦合就有两种情况:本讲稿第三十七页,共一百零九页03 十月 202238西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 一一个个模模块块只只是是给给公公共共数数据据环环境境送送数数据据,另另一一个个模模块块只只是是从从公公共共环环境境中中取取数数据据,这这只只是是数数
38、据据耦合的一种形式,是比较松散的公共耦合;耦合的一种形式,是比较松散的公共耦合;两两个个模模块块都都既既往往公公共共数数据据环环境境中中送送数数据据,又又从里面取数据,这是紧密的公共耦合。从里面取数据,这是紧密的公共耦合。如如果果在在模模块块之之间间共共享享的的数数据据很很多多,且且通通过过参参数数的的传传递递很很不不方方便便时时,才才使使用用公公共共耦耦合合,因因为公共耦合会引起以下问题:为公共耦合会引起以下问题:本讲稿第三十八页,共一百零九页03 十月 202239西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 耦耦合合的的复复杂杂程程度度随随模模块块的的个个数数增增加
39、加而而增增加加,无无法法控控制制各各个个模模块块对对公公共共数数据据的的存存取取,若若某某个个模模块块有有错错,可可通通过过公公共共区区将将错错误误延延伸伸到到其其他他模模块,块,则会影响到软件的可靠性。则会影响到软件的可靠性。使使软软件件的的可可维维护护性性变变差差。若若某某一一模模块块修修改改了了公公共共区区的的数数据据,则则会会影影响响到到与与此此有有关关的的所所有有模块。模块。降降低低了了软软件件的的可可理理解解性性。因因为为各各个个模模块块使使用用公公共共区区的的数数据据,使使用用方方式式往往往往是是隐隐含含的的,某某些数据被哪些模块共享,些数据被哪些模块共享,不易很快搞清。不易很快
40、搞清。本讲稿第三十九页,共一百零九页03 十月 202240西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计(6)(6)内内容容耦耦合合:是是最最高高程程度度的的耦耦合合,也也是是最最差差的的耦耦合合。当当一一个个模模块块直直接接使使用用另另一一个个模模块块的的内内部部数数据据,或或通通过过非非正正常常入入口口而而转转入入另另一一个个模模块块内内部部时时,这这种种模模块块之之间间的的耦耦合合便便为为内内容容耦耦合合。这种情况往往出现在汇编程序设计中。这种情况往往出现在汇编程序设计中。以以上上 6 6 种种由由低低到到高高的的耦耦合合类类型型,为为设设计计软软件件、划划分分模模
41、块块提提供供了了决决策策准准则则。提提高高模模块块独独立立性性、建建立立模模块块间间尽尽可可能能松松散散的的系系统统,是是模模块块化化设设计计的的目目标标。为为了了降降低低模模块块间间的的耦耦合合度度,可采取以下几点措施:可采取以下几点措施:本讲稿第四十页,共一百零九页03 十月 202241西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计(1)(1)在耦合方式上降低模块间接口的复杂性。模在耦合方式上降低模块间接口的复杂性。模块间接口的复杂性包括模块的接口方式、接口块间接口的复杂性包括模块的接口方式、接口信息的结构和数量。接口方式不采用直接引用信息的结构和数量。接口方式不采用
42、直接引用(内容耦合内容耦合),而采用调用方式而采用调用方式(如过程语句调如过程语句调用方式用方式)。接口信息通过参数传递且传递信息。接口信息通过参数传递且传递信息的结构尽量简单,不用复杂参数结构的结构尽量简单,不用复杂参数结构(如过程、如过程、指针等类型参数指针等类型参数),参数的个数也不宜太多,参数的个数也不宜太多,如果很多,可考虑模块的功能是否庞大复杂。如果很多,可考虑模块的功能是否庞大复杂。本讲稿第四十一页,共一百零九页03 十月 202242西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计(2)(2)在在传传递递信信息息类类型型上上尽尽量量使使用用数数据据耦耦合合,避
43、避免免控控制制耦耦合合,慎慎用用或或有有控控制制地地使使用用公公共共耦耦合合。这这只只是是原原则则,耦耦合合类类型型的的选选择择要要根根据据实实际际情情况况综合地考虑。综合地考虑。本讲稿第四十二页,共一百零九页03 十月 202243西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计2.2.内聚性内聚性(Cohesion)Cohesion)内内聚聚性性也也称称块块内内联联系系,指指模模块块的的功功能能强强度度的的度度量量,即即一一个个模模块块内内部部各各个个元元素素彼彼此此结结合合的的紧紧密密程程度度的的度度量量。若若一一个个模模块块内内各各元元素素(语语句句之之间间、程程序序
44、段段之之间间)联联系系的的越越紧紧密密,则则它它的的内聚性就越高。内聚性就越高。内聚性有以下几种类型:内聚性有以下几种类型:偶然内聚逻辑内聚时间内聚通信内聚顺序内聚功能内聚偶然内聚逻辑内聚时间内聚通信内聚顺序内聚功能内聚 低低 内聚性内聚性 高高本讲稿第四十三页,共一百零九页03 十月 202244西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 (1)(1)偶偶然然内内聚聚:指指一一个个模模块块内内的的各各处处理理元元素素之之间间没没有有任任何何联联系系。例例如如,有有一一些些无无联联系系的的处处理理序序列列在在程程序序中中多多次次出出现现或或在在几几个个模模块块中中都都出
45、出现,如:现,如:Read disk File;Read disk File;Calculate current values;Calculate current values;Produce user output;Produce user output;为为了了节节省省存存储储,把把它它们们抽抽出出来来组组成成一一个个新新的的模模块块,这这个个模模块块就就属属于于偶偶然然内内聚聚。这这样样的的模模块块不不易易理理解解也也不不易易修修改,这是最差的内聚情况。改,这是最差的内聚情况。本讲稿第四十四页,共一百零九页03 十月 202245西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计
46、总体设计(2)(2)逻逻辑辑内内聚聚:指指模模块块内内执执行行几几个个逻逻辑辑上上相相似似的的功功能能,通通过过参参数数确确定定该该模模块块完完成成哪哪一一个个功功能能。如如产产生生各各种种类类型型错错误误的的信信息息输输出出放放在在一一个个模模块块,或或从从不不同同设设备备上上的的输输入入放放在在一一个个模模块块,这这是是一一个个单单入入口口多多功功能能模模块块。这这种种模模块块内内聚聚程程度度有有所所提提高高,各各部部分分之之间间在在功功能能上上有有相相互互关关系系,但但不不易易修修改改;当当某某个个调调用用模模块块要要求求修修改改此此模模块块公公用用代代码码时时,而而另另一一些些调调用用
47、模模块块又又不不要要求求修修改改。另另外外,调调用用时时需需要要进进行行控控制制参参数数的的传传递递,造造成成模模块块间间的的控控制制耦耦合合,调调用用此此模模块块时时,不不用用的部分也占据了主存,的部分也占据了主存,降低了系统效率。降低了系统效率。本讲稿第四十五页,共一百零九页03 十月 202246西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计(3)(3)时时间间内内聚聚:把把需需要要同同时时执执行行的的动动作作组组合合在在一一起起形形成成的的模模块块为为时时间间内内聚聚模模块块。如如初初始始化化一一组组变变量量,同同时时打打开开若若干干文文件件,同同时时关关闭闭文文件
48、件等等,都都与与特特定定时时间间有有关关。时时间间内内聚聚比比逻逻辑辑内内聚聚程程度度高高一一些些,因因为为时时间间内内聚聚模模块块中中的的各各部部分分都都要要在在同同一一时时间间内内完完成成。但但是是由由于于这这样样的的模模块块往往往往与与其其他他模模块块联联系系的的比比较较紧紧密密,如如初初始始化化模模块块对对许许多多模模块块的的运运行行有有影影响响,因因此此和和其其他他模模块块耦合的程度较高。耦合的程度较高。本讲稿第四十六页,共一百零九页03 十月 202247西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 (4)(4)通通信信内内聚聚:指指模模块块内内所所有有处处理
49、理元元素素都都在在同同一一个个数数据据结结构构上上操操作作(有有时时称称之之为为信信息息内内聚聚),或或者者指指各各处处理理使使用用相相同同的的输输入入数数据据或或者者产产生生相相同同的的输输出出数数据据。如如一一个个模模块块完完成成“建建表表”、“查查表表”两两部部分分功功能能,都都使使用用同同一一数数据据结结构构名名字字表表。又又如如一一个个模模块块完完成成生生产产日日报报表表、周周报报表表和和月月报报表表,都都使使用用同同一一数数据据日日产产量量。通通信信内内聚聚的的模模块块各各部部分分都都紧紧密密相相关关于于同同一一数数据据(或或者者数数据据结结构构),所所以以内内聚聚性性要要高高于于
50、前前几几种种类类型型。同同时时,可可把把某某一一数数据据结结构构、文文件件及及设设备备等等操操作都放在一个模块内,可达到信息隐藏。作都放在一个模块内,可达到信息隐藏。本讲稿第四十七页,共一百零九页03 十月 202248西北师大物电学院 授课教师:宋海声 第五章第五章 总体设计总体设计 (5)(5)顺顺序序内内聚聚:指指一一个个模模块块中中各各个个处处理理元元素素都都密密切切相相关关于于同同一一功功能能且且必必须须顺顺序序执执行行,前前一一功能元素的输出就是下一功能元素的输入。功能元素的输出就是下一功能元素的输入。例例如如,某某一一模模块块完完成成求求工工业业产产值值的的功功能能,前前面面部部