软件工程19(结构化设计基本原则)课件.ppt

上传人(卖家):晟晟文业 文档编号:5210922 上传时间:2023-02-17 格式:PPT 页数:22 大小:1.45MB
下载 相关 举报
软件工程19(结构化设计基本原则)课件.ppt_第1页
第1页 / 共22页
软件工程19(结构化设计基本原则)课件.ppt_第2页
第2页 / 共22页
软件工程19(结构化设计基本原则)课件.ppt_第3页
第3页 / 共22页
软件工程19(结构化设计基本原则)课件.ppt_第4页
第4页 / 共22页
软件工程19(结构化设计基本原则)课件.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、软件工程软件工程主讲:陈利平主讲:陈利平计算机与信息科学学院计算机与信息科学学院20152015 一、主要内容一、主要内容 讲述软件设计的概念和原则。讲述软件设计的概念和原则。二、目的与要求二、目的与要求 了解软件设计的基本概念,理解软件设计了解软件设计的基本概念,理解软件设计的基本原则。的基本原则。三、重点与难点三、重点与难点 软件设计的原则。软件设计的原则。概述:概述:思考:思考:提问:提问:1)1)什么是软件软件设计?什么是软件软件设计?2)2)软件工程的基本原则是什么?软件工程的基本原则是什么?4.1 4.1 软件设计的概念及原则软件设计的概念及原则 软件设计的概念软件设计的概念 设计

2、是一项核心的工程活动。设计是一项核心的工程活动。在在2020世纪世纪9090年代早期,年代早期,Lotus 1-2-3Lotus 1-2-3的发明人的发明人Mitch Mitch KaporKapor在在Dr.DobbsDr.Dobbs杂志上发表了杂志上发表了“软件设计宣言软件设计宣言”,其中指出:,其中指出:“什么是设计?设计是你站在两个世界什么是设计?设计是你站在两个世界技术世技术世界和人类的目标世界界和人类的目标世界而你尝试将这两个世界而你尝试将这两个世界结合在一起结合在一起”。4.1 4.1 软件设计的概念及原则软件设计的概念及原则 软件设计的概念软件设计的概念 罗马建筑批评家罗马建筑

3、批评家VitruviusVitruvius提出了这样一个观念提出了这样一个观念:“设计良好的建筑应该展示出坚固、适用和令设计良好的建筑应该展示出坚固、适用和令人赏心悦目人赏心悦目”。4.1 4.1 软件设计的概念及原则软件设计的概念及原则 软件设计的原则软件设计的原则 (1)(1)分而治之分而治之 分而治之是将大型复杂的问题分解为许多容易分而治之是将大型复杂的问题分解为许多容易解决的小问题,原来的问题也就容易解决了。解决的小问题,原来的问题也就容易解决了。软件的体系结构设计、模块化设计都是分而治软件的体系结构设计、模块化设计都是分而治之策略的具体表现。之策略的具体表现。4.1 4.1 软件设计

4、的概念及原则软件设计的概念及原则(1)(1)分而治之分而治之 尽管模块分解可以简化要解决的问题,但模块尽管模块分解可以简化要解决的问题,但模块分解并不是越小越好。分解并不是越小越好。当模块数目增加时,每个模块的规模将减小,当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确实减少了;但是,随着开发单个模块的成本确实减少了;但是,随着模块数目增加,模块之间关系的复杂程度也会模块数目增加,模块之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增增加,设计模块间接口所需要的工作量也将增加,如图所示。加,如图所示。图4.2 模块化和软件成本4.1 4.1 软件设计的概念及原则软件设计

5、的概念及原则(2)(2)模块独立性模块独立性 模块的独立性是指软件系统中每个模块只涉及软模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。例如,若一个模块只具有模块的接口是简单的。例如,若一个模块只具有单一的功能且与其他模块没有太多的联系,那么单一的功能且与其他模块没有太多的联系,那么,我们则称此模块具有模块独立性。,我们则称此模块具有模块独立性。一般采用两个准则度量模块独立性。即模块间的一般采用两个准则度量模块独立性。即模块间的耦合和模块的内聚。耦合和模块的内聚。1 1)耦合耦合 耦合耦合是对是对

6、一个软件结构内不同模块之间互连程度的度量一个软件结构内不同模块之间互连程度的度量。耦。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。的点,以及通过接口的数据。在软件设计中应该追求尽可在软件设计中应该追求尽可能松散耦合的系统。在这样的系统中可以研究、测试或维护能松散耦合的系统。在这样的系统中可以研究、测试或维护任何一个模块,而不需要对系统的其他模块有很多了解。此任何一个模块,而不需要对系统的其他模块有很多了解。此外,由于模块间联系简单,发生在一处的错误传播到整个系外,由于模块间联系简单,发生在一处的错误传播到整

7、个系统的可能性就很小。因此,模块间的耦合程度强烈影响系统统的可能性就很小。因此,模块间的耦合程度强烈影响系统的的可理解性、可测试性、可靠性和可维护性可理解性、可测试性、可靠性和可维护性。耦合性与模块属性的关系耦合性与模块属性的关系 对修改的敏感性对修改的敏感性可重用性可重用性 可修改性可修改性 可理解性可理解性 内容耦合内容耦合很强很强很差很差很差很差很差很差公共耦合公共耦合强强很差很差中中很差很差控制耦合控制耦合一般一般差差差差差差数据耦合数据耦合不一定不一定好好好好好好耦合性耦合性 耦合性应采取下述设计原则耦合性应采取下述设计原则:尽量使用数尽量使用数据耦合,少用控制耦合,限制公共环境耦合

8、的据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。范围,完全不用内容耦合。2 2)内聚)内聚 内聚标志一个模块内各个元素彼此结合的紧密程内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。简单度,它是信息隐蔽和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。地说,理想内聚的模块只做一件事情。设计时应该力求做到高内聚,通常中等程度的内设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。但是,低内聚很坏,不要使用。内聚与模块属性的关系内

9、聚与模块属性的关系 内部联系内部联系清晰性清晰性可复用可复用性性可修改性可修改性可理解性可理解性偶然内聚偶然内聚很差很差差差很差很差很差很差很差很差逻辑内聚逻辑内聚很差很差很差很差很差很差很差很差差差时间内聚时间内聚差差中中很差很差中中中中过程内聚过程内聚中中好好差差中中中中通信内聚通信内聚中中好好差差中中中中顺序内聚顺序内聚好好好好中中好好好好功能内聚功能内聚好好好好好好好好好好内聚性内聚性内聚性设计内聚原则:内聚性设计内聚原则:设计时应力争做到高内聚,设计时应力争做到高内聚,并且能够辨认出低内聚的模块,并采取措施进行并且能够辨认出低内聚的模块,并采取措施进行修改,以提高模块的内聚程度、降低

10、模块间的耦修改,以提高模块的内聚程度、降低模块间的耦合程度,从而获得较高的模块独立性。合程度,从而获得较高的模块独立性。内聚和耦合是密切相关的,模块内的高内聚往往意内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。内聚和耦合都是进行模块化设味着模块间的松耦合。内聚和耦合都是进行模块化设计的有力工具,但是实践表明内聚更重要,应该把更计的有力工具,但是实践表明内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。多注意力集中到提高模块的内聚程度上。事实上,没有必要精确确定内聚的级别。重要的是事实上,没有必要精确确定内聚的级别。重要的是设计时力争做到高内聚,并且能够辨认出低内聚的模设

11、计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度降低模块,有能力通过修改设计提高模块的内聚程度降低模块间的耦合程度,从而获得较高的模块独立性。块间的耦合程度,从而获得较高的模块独立性。4.1 4.1 软件设计的概念及原则软件设计的概念及原则(3)(3)提高抽象层次提高抽象层次 抽象是指忽视一个主题中与当前目标无关的那抽象是指忽视一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的些方面,以便更充分地注意与当前目标有关的方面。方面。当我们进行软件设计时,设计开始时应尽量提当我们进行软件设计时,设计开始时应尽量提高软件的抽象层次,按抽象级别从高到

12、低进行高软件的抽象层次,按抽象级别从高到低进行软件设计。软件设计。4.1 4.1 软件设计的概念及原则软件设计的概念及原则(4)(4)复用性设计复用性设计 复用是指同一事物不做修改或稍加修改就可以复用是指同一事物不做修改或稍加修改就可以多次重复使用。将复用的思想用于软件开发,多次重复使用。将复用的思想用于软件开发,称为软件复用。称为软件复用。我们将软件的重用部分称为软构件。我们将软件的重用部分称为软构件。也就是说,在构造新的软件系统时不必从零做也就是说,在构造新的软件系统时不必从零做起,可以直接使用已有的软构件即可组装(或起,可以直接使用已有的软构件即可组装(或加以合理修改)成新的系统。加以合

13、理修改)成新的系统。4.1 4.1 软件设计的概念及原则软件设计的概念及原则(5)(5)灵活性设计灵活性设计 保证软件灵活性设计的关键是抽象。保证软件灵活性设计的关键是抽象。面向对象系统中的类结构类似一座金字塔,越面向对象系统中的类结构类似一座金字塔,越接近金字塔的顶端,抽象程度就越高。接近金字塔的顶端,抽象程度就越高。“抽象抽象”的反义词是的反义词是“具体具体”。理想情况下,。理想情况下,一个系统的任何代码、逻缉、概念在这个系统一个系统的任何代码、逻缉、概念在这个系统中都应该是唯一的,也就是说不存在重复的代中都应该是唯一的,也就是说不存在重复的代码。码。4.1 4.1 软件设计的概念及原则软

14、件设计的概念及原则 在设计中引入灵活性的方法有:在设计中引入灵活性的方法有:降低耦合并提高内聚(易于提高替换能力);降低耦合并提高内聚(易于提高替换能力);建立抽象(创建有多态操作的接口和父类);建立抽象(创建有多态操作的接口和父类);不要将代码写死(消除代码中的常数);不要将代码写死(消除代码中的常数);抛出异常(由操作的调用者处理异常);抛出异常(由操作的调用者处理异常);使用并创建可复用的代码。使用并创建可复用的代码。小结小结 本次课主要讲述软件设计的概念与原则。重点本次课主要讲述软件设计的概念与原则。重点掌握模块化和模块独立性度量。掌握模块化和模块独立性度量。下课了。下课了。休息一会儿。休息一会儿。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件工程19(结构化设计基本原则)课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|