第4节 结构化设计方法.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文档。上传文档
查看更多
第4章 结构化设计方法 软件设计的概念及原则 结构化设计 体系结构设计 接口设计 数据设计 过程设计 软件设计规格说明 在软件生存期中,软件设计处于需求分析阶段和编码阶段的中间,它的任务是回答“怎么做”。 结构化设计方法是在模块化、自顶向下逐步细化及结构化程序设计技术基础之上发展起来的。分为两类:面向数据流的设计(过程驱动);面向数据结构的设计(数据驱动) 4.1 软件设计的概念及原则 软件设计的概念 设计是一项核心的工程活动。 在20世纪90年代早期,Lotus 1-2-3的发明人Mitch Kapor在Dr. Dobbs杂志上发表了“软件设计宣言”,其中指出: “什么是设计?设计是你站在两个世界——技术世界和人类的目标世界——而你尝试将这两个世界结合在一起……”。 4.1 软件设计的概念及原则 软件设计的概念 罗马建筑批评家Vitruvius提出了这样一个观念: “设计良好的建筑应该展示出坚固、适用和令人赏心悦目”。 4.1 软件设计的概念及原则 软件设计的原则 (1) 分而治之 分而治之是人们解决大型复杂问题时通常采用的策略。将大型复杂的问题分解为许多容易解决的小问题,原来的问题也就容易解决了。 软件的体系结构设计、模块化设计都是分而治之策略的具体表现。 4.1 软件设计的概念及原则 尽管模块分解可以简化要解决的问题,但模块分解并不是越小越好。 当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确实减少了;但是,随着模块数目增加,模块之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增加,如图所示。 4.1 软件设计的概念及原则 (2) 模块独立性 模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。例如,若一个模块只具有单一的功能且与其他模块没有太多的联系,那么,我们则称此模块具有模块独立性。 一般采用两个准则度量模块独立性。即模块间的耦合和模块的内聚。 ⒈耦合性:又称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。 ⑴ 非直接耦合:无直接联系。独立性最高。 ⑵ 数据耦合:有调用关系(值传递)。独立性较高。 ⑶ 标记耦合:传递的是数据结构。降低了可理解性。 ⑷ 控制耦合:有控制信息的传递。属中等程度的耦合,增加了系统复杂程度。 ⑸ 外部耦合:一组模块都访问同一全局简单变量。 ⑹ 公共耦合:通过公共数据环境相互作用。复杂程度随耦合模块的个数增加而增加。 ⑺ 内容耦合:是最高程度耦合,也是最差的耦合。 一个模块访问另一个模块的内部数据。 一个模块不通过正常入口转到另一个模块。 一个模块有多个入口 应该坚决避免内容耦合。许多高级语言不允许出现内容耦合。   以下措施可降低耦合度: ⑴ 在耦合方式上降低模块间接口的复杂性。 ⑵ 在传递信息类型上尽量使用数据耦合,避免控制耦合,慎用公共耦合。 ⒉内聚性:又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。 ⑴ 偶然内聚:模块内各元素间无任何联系。是最差的内聚情况。 ⑵ 逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。降低系统效率。 ⑶ 时间内聚:把需要同时执行的动作组合在一起。 ⑷ 过程内聚:块内处理相关且须以特定次序执行。 ⑸ 通信〔信息〕内聚:块内元素在同一个数据结构上操作,或指各处理使用相同的输入数据或产生相同的输出数据。内聚性高于前几种,可达到信息隐蔽。 ⑹ 顺序内聚:块内各元素都密切相关于同一功能且必须顺序执行。 ⑺ 功能内聚:是最强的内聚,指块内元素共同完成一个功能,缺一不可。有利于实现软件的重用,提高软件的开发效率。   模块划分应该尽量高内聚低耦合。 4.1 软件设计的概念及原则 (3) 提高抽象层次 抽象是指忽视一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。 当我们进行软件设计时,设计开始时应尽量提高软件的抽象层次,按抽象级别从高到低进行软件设计。 4.1 软件设计的概念及原则 (4) 复用性设计 复用是指同一事物不做修改或稍加修改就可以多次重复使用。将复用的思想用于软件开发,称为软件复用。 我们将软件的重用部分称为软构件。 也就是说,在构造新的软件系统时不必从零做起,可以直接使用已有的软构件即可组装(或加以合理修改)成新的系统。 4.1 软件设计的概念及原则 (5) 灵活性设计 保证软件灵活性设计的关键是抽象。 面向对象系统中的类结构类似一座金字塔,越接近金字塔的顶端,抽象程度就越高。 “抽象”的反义词是“具体”。理想情况下,一个系统的任何代码、逻缉、概念在这个系统中都应该是唯一的,也就是说不存在重复的代码。 4.1 软

文档评论(0)

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

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

1亿VIP精品文档

相关文档