2012-2013 第5节 总体设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
总体设计的基本目的就是回答: “概括地说系统应该怎样做?” 总体设计阶段的一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。 5.1 总体设计过程 1、根据逻辑模型构想可实现的系统方案 2、筛选合理的方案(系统流程图、开发计划等) 3、推荐最佳方案(实现计划、各方面得到确认) 4、功能分解(进一步分解数据流图并加以说明) 5、设计软件结构(设计模块组织的层次结构) 6、设计数据库(根据数据库的结构、定义) 7、制定测试计划 8、书写文档(系统说明、用户手册、测试及实现计划、数据库设计说明书) 9、审查与复查 简化后的设计过程 1.功能分解 结构设计确定程序由哪些模块组成,以及这些模块之间的关系 2.设计软件结构 软件结构(即由模块组成的层次系统)可以用层次图或结构图来描绘。 3.设计数据库 4.书写文档 6.审查和复审 5.2 设计原理 模块是由边界元素限定的相邻程序元素的序列。按照模块的定义,过程、函数、子程序和宏等,都可作为模块。 ●模块是构成程序的基本构件。 通俗地讲、模块化就是将程序划分成独立命名且可独立访问的模块,每个模块可独立完成一个子功能,将若干个模块组合在一起,构成一个系统来完成系统的整体功能。 模块具有以下属性: 接口:指模块的输入和输出; 功能:指模块的作用; 逻辑:指模块执行的逻辑和数据; 状态:指模块所处地位,如调用或被调用状态; 模块化设计就是把大型软件按照一定的原则分解成若干相对独立又相互关联的较小模块的过程。 问题的复杂度 问题的整体复杂度大于分解小问题复杂度之和 设P是一个复杂问题,P分解成P1和P2; 假设: C(P)代表问题P的复杂度, E(P)代表完成P所需要的工作量。 大量的经验表明存在如下规律: 复杂度 C(P1+P2) C(P1)+C(P2) 工作量 E(P1+P2) E(P1)+E(P2) 由上面的不等式似乎得出下述结论: 如果无限地分割软件,最后的工作量也就小得可以忽略了? 但事实上,参看下图中看到,当模块数目增加时,开发单个模块需要的成本确实减少了;但设计模块间接口所需要的工作量也将增加。根据这两个因素,得出了图中的总成本曲线。每个程序都相应地有一个最适当的模块数目M,使得系统的开发成本最小。 图5.1 模块化和软件成本 5.2.3 逐步求精 逐步求精是人类解决复杂问题时所采用的最为朴素也最为直接的方法。可以把逐步求精定义为: “为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。” 逐步求精之所以如此重要,是因为人类的认知过程遵守Miller法则:一个人在任何时候都只能把注意力集中在(7±2)个知识块数量之下。 因此,必须考虑整体后再关注考虑细节。 对抽象和求精的策略把握: 辩证地看,抽象与求精是一对互补。 抽象使得设计者能够说明过程和数据,同时却忽略低层细节。 求精则帮助设计者在设计过程中逐步揭示出低层细节,从而完善及验证整体的正确性和可行性。 5.2.4 信息隐藏和局部化 信息隐藏原理指出:应该这样设计模块,使一个模块内包含的信息对于不需要了解这些信息的模块来说,是不能访问的。 所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用局部变量是局部化的一个例子。 如果在软件维护期间需要修改软件,那么使用信息隐藏原理作为模块化系统设计的标准就会带来极大好处。 5.2.5 模块独立性 模块独立性的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。 模块的独立程度可以有两个度量标准, 分别称为内聚和耦合。 1.耦合 耦合是对一个软件结构内不同模块之间互连程度的度量。 有以下几种模块的耦合等级: 1)无直接耦合 模块之间无任何连接,耦合程度最低。 但是,在一个软件系统中不可能所有模块之间都没有任何连接。 2)数据耦合(这是理想、常见的耦合方式) 如果模块调用之间相互传递的参数仅仅是传递数据,那么这种耦合称为数据耦合。 3)特征耦合 如果模块调用之间相互传递的参数为数据结构,则它们称为特征耦合。 4)控制耦合 如果传递的信息中有控制信息,则这种耦合称为控制耦合。 5)公共环境耦合 当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。 例如:如两个模块之间共享的数据很多,都通过参数传递可能很不方便,这时可以利用公共环境耦合。 6)内容耦合 如果出现下列情况之一,两个模块间就发生了内容耦合: 一个

文档评论(0)

189****6140 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档