第4节 总体设计.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
为何要采用模块化这种设计方法呢? 在软件开发过程中,大型软件系统的设计往往是非常复杂的,而采用模块化的设计方法,能将一个大的复杂的问题,分解成若干小的简单的问题逐一解决。 对一个大的系统分解成若干小的功能模块,有利于我们对各具体问题的解决,使得程序的结构更加清晰,便于阅读、理解。另外,模块化也使得软件的测试和维护人员更易于进行软件测试及维护。 通过对软件系统的不断细分可以将系统开发的工作量不断减小,工作量的大小将随着模块化程度的加大而不断减小。 但能不能说把系统划分的越细,开发的工作量就越小? 不能,因为还有一些因素不容我们忽视,那就是接口的开发成本。 模块化程度与软件成本的关系 从图中我们可以看出,在进行模块化设计时,既要尽量的细分模块,又要考虑设计接口所带来的成本,设计中尽量使模块化程度接近于图中的最小成本区域。 2、抽象与逐步求精 抽象是人们认识复杂事物的一种强有力的思维工具。 抽象,即抽出事物固有的本质的共同属性,而忽略其他不重要、存在差异的细节。 在软件开发的过程中,每前进一步实际上就是对软件解法抽象层次的进一步细化,即为我们所说的逐步求精。 抽象与逐步求精之间事实上是一种互补关系,逐步求精即为抽象的细化过程,由抽象的最高层次,经历软件工程中需求分析、总体设计和详细设计的过渡过程,不断的一步步细化,最后结束于代码的编写,也即达到抽象的最低层。 3、信息屏蔽与局部化 信息隐蔽的思想主要是强调模块的独立特性及其信息的隐蔽,即对于一个整体的程序划分为若干模块,而每个模块隐藏、封装一定功能的程序成分,并尽可能少地显露其内部实现细节。 局部化则是指把一些关系密切的软件元素彼此间靠近,使关系密切的元素位于同一局部范围之内。 内聚实例 要求在系统运行的同一时间内处理的元素组成一个模块。图中关闭文件、报警、保留现场等任务必须无间断地同时处理。 时间内聚 关闭文件 紧急意外故障处理 报警 保留现场 ··· 内聚实例 几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入 。 内聚实例 模块T MOV A TO B READ Card file MOV C TO D P Q R S 巧合性内聚 此例中每条语句之间各不相干,只因为P、Q、R、S都要用到它们,为了节省一些存储空间,将它们放在一个模块中。 问题:这种模块不易取名,模块含义不易理解,难以测试,不易修改。当P、Q有不同要求(如P要求MOVE A TO E)时 T的修改会很复杂。因为它们本来互不相关,所以变动的可能性很大。 当存储空间不是很紧张时,应尽量避免巧合性内聚。 软件结构的设计优化准则: 1、划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性。模块划分的准则:“将相关的各部分放在一起,无关的东西不要放在一起。” 2、模块的大小要适中。 3、软件结构的深度、宽度、扇入、扇出应适当。 深度表示控制的层数。 宽度表示控制的总分布。 扇出是对由某一模块直接控制的模块数目的度量。 扇入指出有多少个模块直接控制一个给定的模块。 设计优化准则 软件结构的设计优化准则: 4、降低接口复杂性。 例如:QRoot(T,X) 和 QRoot(a,b,c,root1,root2) 其中T,X为数组,a,b,c,root1,root为一般变量。 5、力求设计单入口和单出口的模块。 6、设计功能可预测的模块(即相同的输入应有相同的输出)。 设计优化准则 面向数据流的设计方法 面向数据流的设计方法,又称结构化设计即SD(Structured Design) 。 结构化设计的目标:将软件设计为多个结构合理、功能单一的模块,建立系统的模块结构图。它的主要表示方法是一种分层次的结构图。 面向数据流的设计方法 SD设计方法的主要思想: 认为一个程序、一组程序或一个系统,是由一组功能模块来构成的。 软件设计者首先必须无视程序、模块或过程的内部情况,而只对它们之间的关系进行分析。将系统看作是逻辑功能的抽象集合——功能模块的集合。 面向数据流的设计方法 结构化设计的优点:

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档