- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下课了。。。 休息一会儿。。。 * 对好的软件来说也是同样的,所谓坚固,是指程序应该不含任何对其功能有障碍的缺陷,适用是要程序符合开发的目标,赏心悦目则是要求使用程序的体验应是愉快的。 软件工程 主讲:陈利平 计算机与信息科学学院 2015 一、主要内容 讲述软件设计的概念和原则。 二、目的与要求 了解软件设计的基本概念,理解软件设计的基本原则。 三、重点与难点 软件设计的原则。 概述: 思考: 提问: 1)什么是软件软件设计? 2)软件工程的基本原则是什么? 4.1 软件设计的概念及原则 软件设计的概念 设计是一项核心的工程活动。 在20世纪90年代早期,Lotus 1-2-3的发明人Mitch Kapor在Dr. Dobbs杂志上发表了“软件设计宣言”,其中指出: “什么是设计?设计是你站在两个世界——技术世界和人类的目标世界——而你尝试将这两个世界结合在一起……”。 4.1 软件设计的概念及原则 软件设计的概念 罗马建筑批评家Vitruvius提出了这样一个观念: “设计良好的建筑应该展示出坚固、适用和令人赏心悦目”。 4.1 软件设计的概念及原则 软件设计的原则 (1) 分而治之 分而治之是将大型复杂的问题分解为许多容易解决的小问题,原来的问题也就容易解决了。 软件的体系结构设计、模块化设计都是分而治之策略的具体表现。 4.1 软件设计的概念及原则 (1) 分而治之 尽管模块分解可以简化要解决的问题,但模块分解并不是越小越好。 当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确实减少了;但是,随着模块数目增加,模块之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增加,如图所示。 图4.2 模块化和软件成本 4.1 软件设计的概念及原则 (2) 模块独立性 模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。例如,若一个模块只具有单一的功能且与其他模块没有太多的联系,那么,我们则称此模块具有模块独立性。 一般采用两个准则度量模块独立性。即模块间的耦合和模块的内聚。 1) 耦合 耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。 在软件设计中应该追求尽可能松散耦合的系统。在这样的系统中可以研究、测试或维护任何一个模块,而不需要对系统的其他模块有很多了解。此外,由于模块间联系简单,发生在一处的错误传播到整个系统的可能性就很小。因此,模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。 耦合性与模块属性的关系 ? 对修改的敏感性 可重用性 可修改性 可理解性 内容耦合 很强 很差 很差 很差 公共耦合 强 很差 中 很差 控制耦合 一般 差 差 差 数据耦合 不一定 好 好 好 耦合性 耦合性应采取下述设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。 2)内聚 内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。 设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。 内聚与模块属性的关系 ? 内部联系 清晰性 可复用性 可修改性 可理解性 偶然内聚 很差 差 很差 很差 很差 逻辑内聚 很差 很差 很差 很差 差 时间内聚 差 中 很差 中 中 过程内聚 中 好 差 中 中 通信内聚 中 好 差 中 中 顺序内聚 好 好 中 好 好 功能内聚 好 好 好 好 好 内聚性 内聚性设计内聚原则:设计时应力争做到高内聚,并且能够辨认出低内聚的模块,并采取措施进行修改,以提高模块的内聚程度、降低模块间的耦合程度,从而获得较高的模块独立性。 内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。内聚和耦合都是进行模块化设计的有力工具,但是实践表明内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。 事实上,没有必要精确确定内聚的级别。重要的是设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度降低模块间的耦合程度,从而获得较高的模块独立性。 4.1 软件设计的概念及原则 (3) 提高抽象层次 抽象是指忽视一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。 当我们进行软件设计时,设计开始时应尽量提高软件的抽象层
文档评论(0)