第4章总体设计.pptx

  1. 1、本文档共111页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章总体设计精要

;;需求分析;总体设计的主要任务;总体设计的过程;功能分解后,可以用层次图(HC)、结构图来描绘模块组成的层次系统,即反映软件结构。当数据流图细化到适当的层次时,由结构化的设计方法可以直接映射出结构图。;(1) 系统说明,主要内容包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本/效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用IPO图模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系等等。 (2) 用户手册,根据总体设计阶段的结果,修改更正在需求分析阶段产生的初步的用户手册。 (3) 测试计划,包括测试策略,测试方案,预期的测试结果,测试进度计划等等。 (4) 详细的实现计划。 (5) 数据库设计结果。;模块化; 因此,一个模块具有四个特征:输入/输出(接口)、功能、内部数据和程序代码。 模块的输入/输出和功能构成了模块的外部特征。 模块的内部数据和程序代码反映的是模块的内部特征。 ;模块化;可对问题复杂性、开发工作量和模块数之间的关系进行以下推理 首先, 设C(x)为问题x所对应的复杂度函数,E(x)为解决问题x所需要的工作量函数。对于两个问题P1和P2,如果: C(P1) C(P2) 即问题P1的复杂度比P2高,则显然有: E(P1) E(P2) 即解决问题P1比P2所需的工作量大。; 发现其中存在有另一个有趣的规律: C(P1+P2) C(P1)+C(P2) 即解决由多个问题复合而成的大问题的复杂度大于单独解决各个问题的复杂度之和。 由此推出: E(P1+P2) E(P1)+E(P2) 即将复杂问题分解成若干个小问题,所需要的工作量小于直接解决复杂问题所需的工作量。;理想模式:如果把软件无限细分,那么最后开发软件所需要的工作量就小得可以忽略了。;随着模块数目的增加,虽然开发单个模块需要的成本确实减少了,但是模块之间接口的复杂程度和接口所需的工作量也成倍增加,如右图所示。; 优点: 1、模块化 可以降低软件开发的难度,而且可以使程序结构清晰,增加易读性和易修改性。 2、模块化有利于提高代码的可重用性及团队合作开发大型软件的可行性。 ;模块独立性;; 标记耦合;数据耦合的例子如下所示:; 公共耦合;公共耦合会引起下列问题: 1、所有公共耦合模块都与某一个公共数据环境内部各项的物理安排有关,若修改某个数据的大小,将会影响到所有的模块。 2、无法控制各个模块对公共数据的存取,严重影响软件模块的可靠性和适应性。 3、公共数据名的使用,明显降低了程序的可读性。;公共耦合的复杂程度随耦合模块的个数增加而显着增加。若只是两个模块之间有公共数据环境,则公共耦合有两种情况。 1、若一个模块只是往公共数据环境里传送数据,而另一个模块只是从公共数据环境中取数据,则这种公共耦合叫做松散公共耦合。 2、若两个模块都从公共数据环境中取数据,又都向公共数据环境里送数据,则这种公共耦合叫做紧密公共耦合。 只有在模块之间共享的数据很多,且通过参数表传递不方便时,才使用公共耦合。否则,还是使用模块独立性比较高的数据耦合好些。;void output(flag) {if (flag) printf(OK! ); else printf(NO! ); } main() { int flag; output(flag); }/*主函数与output函数之间即为控制耦合关系*/; 内容耦合;;“;; 通信内聚; 过程内聚; 时间内聚; 逻辑内聚;偶然内聚;功能单一;面向对象设计中的内聚;“;抽象;;;CAD软件任务: “用户交互”任务: “二维图形创建”任务: “图形显示任务”: “图形文件管理”任务: 结束。;PROCEDURE 二维图创建 REPEAT 下列操作 UNTIL 图形创建完毕 DO WHILE 出现与数字化仪交互时 数字化仪接口处理任务; CASE 绘图请求 OF 直线:画直线任务; 矩形:画矩形任务; 圆:画圆形任务; 曲线:画曲线任务; ENDCASE END DO;逐步求精;逐步求精之所以如此重要,是因为人类的认知过程遵守Miller法则:一个人在任何时候都只能把注意力集中在(7±2)个知识块上。 逐步求精方法的强大作用就在于,它能帮助软件工程师把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说虽然是必要的,然而目前还不需要考虑的细节,这些细节将留到以后再考虑。;信息隐藏;体系结构设计的原则有如下6点。 (1) 降低模块的耦合性,提高模块的内聚性。 (2) 保持适中的模块规模。

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档