- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[软件工程]CH05-概要设计-32-精品.ppt
* 设计良好的软件通常具有瓮型结构,两头小,中间大。 应该避免使用饼型结构,也就是平铺结构,所有的模块都”平铺”在单个控制模块下。 如果出现了饼型结构,也应该通过增加中间层的方法变为塔型结构。 因此,我们通常说:提倡瓮型,宁要塔型,不要饼型。 至于为什么这样要求,我们在后面讲到。 * 观察软件结构中各个模块的耦合与内聚。 有时可以通过分解或合并模块以减少控制信息的传递及对全局数据的引用,降低接口的复杂程度。 如,图中两个模块中存在共同的处理构件,可以将该构件重新定义成一个内聚的模块,由这两个模块调用。 * 下面,我们来看以下软件结构中的几个概念。 深度:软件结构中控制的层数。 用“深度”往往能粗略地标志一个系统的大小和复杂程度 * 宽度:软件结构内同一个层次上的模块总数的最大值。 宽度越大系统越复杂。 对宽度影响最大的因素是模块的扇出。 下面,我们开看模块“扇出”的概念。 * 扇出:一个模块直接控制的模块数量。 扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块; 扇出过小(例如总是1)也不好。 经验表明:一个设计得好的典型系统的平均扇出是3或4(扇出的上限通常是5~9个) 扇出太大:因为缺乏中间层次,应该适当增加中间层次的控制模块。 扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。 * 一个模块的扇入表明有多少个上级模块直接调用它。 扇入越大,则共享该模块的上级模块数目越多,这是有好处的。 * 观察大量软件系统后发现,设计得好的软件结构通常顶层扇出比较高,中间层扇出较少,底层模块扇入高。 也就是我们前面一开始就提到的(瓮型结构) * 模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合. 例如,图中模块A的控制域是A,B,C,D,E,F,G,H,I,J,K; G的控制域是G,J,K * 模块的作用域:定义为受该模块内一个判断影响的所有模块的集合. 例如,模块C中有一个判断,受该判断的影响的模块有E,F,G,I,J,K * 下面,我们给出这样一个软件结构,其中模块B2中有一个判断,该判断影响到了另外一个模块A。 这样一种结构主要有两个方面的问题: 1、这样的结构使得软件难于理解 2、为了使B中的判断能影响到能影响到A中的处理过程,通常需要在B中给一个标记设置状态以指示判断的结果,并且应该把这个标记经过路径B-Y-A传递给模块A。这个标记是控制信息而不是数据,因此将使模块间出现控制耦合。 通常有两中方法解决: 1、把做判断的点往上移,例如,把判断从模块B移到模块Y。但B1的传递路径仍然比较长 2、把那些在作用域内但不在控制域内的模块移到控制域内。 * 下面,我们给出这样一个软件结构,其中模块B中有一个判断,该判断影响到了另外一个模块A。 这样一种结构主要有两个方面的问题: 1、这样的结构使得软件难于理解 2、为了使B中的判断能影响到能影响到A中的处理过程,通常需要在B中给一个标记设置状态以指示判断的结果,并且应该把这个标记经过路径B-Y-A传递给模块A。这个标记是控制信息而不是数据,因此将使模块间出现控制耦合。 通常有两中方法解决: 1、把做判断的点往上移,例如,把判断从模块B移到模块Y。但B1的传递路径仍然比较长 2、把那些在作用域内但不在控制域内的模块移到控制域内。 * 例如:在Excel里面用替换编辑功能, *代表所有内容,一般用户不清楚 * * 本节我们介绍在总体设计阶段可能会使用的几种图形工具. HIPO图是由美国IBM公司发明的”层次图加输入/处理/输出图”的英文缩写. 事实上,HIPO图是由两部分构成的——层次图(H图)和IPO图 首先来看一下,什么是层次图。 层次图也成为H图,用来描绘软件的层次结构。 在前面介绍启发式规则时已经非正式地使用了层次图。 层次图中使用 矩形——模块 方框间的连线表示调用关系。 为了能使HIPO图具有可追踪性,在H图里除了最顶层的方框之外,每个方框都加了编号。 编号规则和数据流图的编号规则相同。 * 和“层次图”中的每个方框对应,应该有一张IPO图描绘这个方框代表的模块的处理过程。 前面我们已经已经详细介绍过了IPO图,我们就不在重复了。 但有一点应该着重指出,那就是HIPO图中的每张IPO图都应该明显地标出它所描绘的模块在H图中的编号,以便追踪了解这个模块在软件结构中的位置。 * 以上介绍的是结构图的基本符号,也就是最经常使用的符号。 此外还有一些附加的符号,可以表示模块的选择调用或循环调用。 选择调用——表示当模块A中某个判断为真时调用模块B,为假时调用模块c。 循环调用——表示模块A循环调用模块B、C、D。 在使用”层次图“和”结构图“时,有几点需要说明: 1、层次图和结构图并不严格表示模块的调用次序。因此出于某些方面的
有哪些信誉好的足球投注网站
文档评论(0)