ImageVerifierCode 换一换
格式:PPT , 页数:92 ,大小:811.54KB ,
资源ID:1143490      下载积分:20 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1143490.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(软件设计思路.ppt)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

软件设计思路.ppt

1、第5章总体设计5.15.1设计过程设计过程5.25.2设计原理设计原理5.35.3启发规则启发规则5.45.4描绘软件结构的图形工具描绘软件结构的图形工具5.55.5面向数据流的设计方法面向数据流的设计方法5.65.6小结小结2021/5/271软件设计软件设计 需求分析需求分析:软件系统必须软件系统必须“做什么做什么”;软件设计:软件设计:“如何做如何做”才可以满足需求规格说明中才可以满足需求规格说明中规定的各项需求。规定的各项需求。从工程管理的角度来看,软件设计通常分为两步,从工程管理的角度来看,软件设计通常分为两步,即概要设计和详细设计。即概要设计和详细设计。2021/5/272概要设计

2、的基本目的是回答概要设计的基本目的是回答“概括地说,软件系统应概括地说,软件系统应如何实现如何实现”这一问题。因此,概要设计有时称为这一问题。因此,概要设计有时称为初步初步设计或总体设计设计或总体设计。这个阶段的工作将划分出组成系统的这个阶段的工作将划分出组成系统的物理元素物理元素程序、文件、数据库、人工过程和文档等,每个物理元素仍处在黑盒子级,具体内容将在以后仔细设计。概要设计的关键是确定软件的总体结构,即确定软件概要设计的关键是确定软件的总体结构,即确定软件系统的组成成份(子系统或模块)以及各组成成份之系统的组成成份(子系统或模块)以及各组成成份之间的相互关系。间的相互关系。软件设计软件设

3、计(续)续)2021/5/273详细设计是对概要设计结果的进一步细化,其主要任详细设计是对概要设计结果的进一步细化,其主要任务是确定软件系统各组成成份内部的数据结构和算法务是确定软件系统各组成成份内部的数据结构和算法过程过程方法:结构化方法、面向对象方法方法:结构化方法、面向对象方法 软件设计软件设计(续)续)2021/5/274总体设计过程l首先寻找实现目标系统的各种不同的方案(需求分析阶段得到的数据流图是设想各种可能方案的基础)。l然后分析员从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本效益/分析,并且制定实现出一个最佳

4、方案的进度计划。l系统分析员推荐最佳方案,用户接受后,为这个最佳方案设计软件结构。进行必要的数据库设计,确定测试要求并制定测试计划。2021/5/275总体设计的必要性可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。2021/5/276q总体设计过程由两个主要阶段总体设计过程由两个主要阶段总体设计过程由两个主要阶段总体设计过程由两个主要阶段(包括包括包括包括9 9 9 9个步骤个步骤个步骤个步骤)组成:组成:组成:组成:(1)(1)(1)(1)系统设计阶段,确定系统的具体实现方

5、案;系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;(2)(2)(2)(2)结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。q设计原理设计原理设计原理设计原理:模块化、抽象、信息隐藏和局部化、模块独立模块化、抽象、信息隐藏和局部化、模块独立模块化、抽象、信息隐藏和局部化、模块独立模块化、抽象、信息隐藏和局部化、模块独立q模块的独立程度度量:模块的独立程度度量:模块的独立程度度量:模块的独立程度度量:内聚和耦合,在软件设计中应该追内聚和耦合,在软件设计中应该追内聚和耦

6、合,在软件设计中应该追内聚和耦合,在软件设计中应该追求尽可能求尽可能求尽可能求尽可能松耦合、高内聚松耦合、高内聚松耦合、高内聚松耦合、高内聚的系统。的系统。的系统。的系统。q启发规则:启发规则:启发规则:启发规则:7 7 7 7条规则条规则条规则条规则q描绘软件结构的图形工具:描绘软件结构的图形工具:描绘软件结构的图形工具:描绘软件结构的图形工具:层次图、层次图、层次图、层次图、HIPOHIPOHIPOHIPO图、结构图图、结构图图、结构图图、结构图q面向数据流的设计方法:面向数据流的设计方法:面向数据流的设计方法:面向数据流的设计方法:变换流分析、事务流分析变换流分析、事务流分析变换流分析、

7、事务流分析变换流分析、事务流分析2021/5/2775.1 设计过程总体设计过程通常由两个主要阶段组成:总体设计过程通常由两个主要阶段组成:总体设计过程通常由两个主要阶段组成:总体设计过程通常由两个主要阶段组成:(1)(1)(1)(1)系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;(2)(2)(2)(2)结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。典型的总体设计过程包括下述典型的总体设计过程包括下述典型的总体设计过程包括下

8、述典型的总体设计过程包括下述9 9 9 9个步骤:个步骤:个步骤:个步骤:1.1.1.1.设想供选择的方案设想供选择的方案设想供选择的方案设想供选择的方案2.2.2.2.选取合理的方案选取合理的方案选取合理的方案选取合理的方案3.3.3.3.推荐最佳方案推荐最佳方案推荐最佳方案推荐最佳方案4.4.4.4.功能分解功能分解功能分解功能分解5.5.5.5.设计软件结构设计软件结构设计软件结构设计软件结构6.6.设计数据库设计数据库设计数据库设计数据库7.7.制定测试计划制定测试计划制定测试计划制定测试计划8.8.书写文档书写文档书写文档书写文档9.9.审查和复审审查和复审审查和复审审查和复审202

9、1/5/278在总体设计阶段分析员应该考虑各种可能的实现方案,在总体设计阶段分析员应该考虑各种可能的实现方案,在总体设计阶段分析员应该考虑各种可能的实现方案,在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。在总体设计阶段开始时只有并且力求从中选出最佳方案。在总体设计阶段开始时只有并且力求从中选出最佳方案。在总体设计阶段开始时只有并且力求从中选出最佳方案。在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物系统的逻辑模型,分析员有充分的自由分析比较不同的物系统的逻辑模型,分析员有充分的自由分析比较不同的物系统的逻辑模型,分析员有充分的自由分析比较不

10、同的物理实现方案,一旦选出了最佳的方案,将能大大提高系统理实现方案,一旦选出了最佳的方案,将能大大提高系统理实现方案,一旦选出了最佳的方案,将能大大提高系统理实现方案,一旦选出了最佳的方案,将能大大提高系统的性能的性能的性能的性能/价格比。价格比。价格比。价格比。需求分析阶段得出的数据流图是总体设计的极好的出需求分析阶段得出的数据流图是总体设计的极好的出需求分析阶段得出的数据流图是总体设计的极好的出需求分析阶段得出的数据流图是总体设计的极好的出发点。设想供选择的方案的一种常用的方法是,发点。设想供选择的方案的一种常用的方法是,发点。设想供选择的方案的一种常用的方法是,发点。设想供选择的方案的一

11、种常用的方法是,设想把数设想把数设想把数设想把数据流图中的处理分组的各种可能的方法,抛弃在技术上行据流图中的处理分组的各种可能的方法,抛弃在技术上行据流图中的处理分组的各种可能的方法,抛弃在技术上行据流图中的处理分组的各种可能的方法,抛弃在技术上行不通的分组方法不通的分组方法不通的分组方法不通的分组方法(例如,组内不同处理的执行时间不相容例如,组内不同处理的执行时间不相容例如,组内不同处理的执行时间不相容例如,组内不同处理的执行时间不相容),余下的分组方法代表可能的实现策略,并且可以启示供,余下的分组方法代表可能的实现策略,并且可以启示供,余下的分组方法代表可能的实现策略,并且可以启示供,余下

12、的分组方法代表可能的实现策略,并且可以启示供选择的物理系统。选择的物理系统。选择的物理系统。选择的物理系统。1.设想供选择的方案2021/5/279应该从前一步得到的一系列供选择的方案中选取若干应该从前一步得到的一系列供选择的方案中选取若干个合理的方案,个合理的方案,通常至少选取低成本、中等成本和高成本通常至少选取低成本、中等成本和高成本的三种方案的三种方案。在判断哪些方案合理时应该考虑在问题定义。在判断哪些方案合理时应该考虑在问题定义和可行性研究阶段确定的工程规模和目标,有时可能还需和可行性研究阶段确定的工程规模和目标,有时可能还需要进一步征求用户的意见。要进一步征求用户的意见。对每个合理的

13、方案分析员都应该准备下列对每个合理的方案分析员都应该准备下列4 4份资料:份资料:(1)(1)系统流程图;系统流程图;(2)(2)组成系统的物理元素清单;组成系统的物理元素清单;(3)(3)成本成本/效益分析;效益分析;(4)(4)实现这个系统的进度计划。实现这个系统的进度计划。2.选取合理的方案2021/5/2710分析员应该综合分析对比各种合理方案的利弊,推荐一分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。制个最佳的方案,并且为推荐的方案制定详细的实现计划。制定详细实现计划的关键技术是本书第定详细实现计划的关键技术是本书第1313章中将要

14、介绍的工程章中将要介绍的工程网络。网络。用户和有关的技术专家应该认真审查分析员所推荐的最用户和有关的技术专家应该认真审查分析员所推荐的最佳系统,如果该系统确实符合用户的需要,并且是在现有条佳系统,如果该系统确实符合用户的需要,并且是在现有条件下完全能够实现的,则应该提请使用部门负责人进一步审件下完全能够实现的,则应该提请使用部门负责人进一步审批。在使用部门的负责人也接受了分析员所推荐的方案之后,批。在使用部门的负责人也接受了分析员所推荐的方案之后,将进入总体设计过程的下一个重要阶段将进入总体设计过程的下一个重要阶段结构设计。结构设计。3.推荐最佳方案2021/5/2711为了最终实现目标系统,

15、必须设计出组成这个系统的所有为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件程序和文件(或数据库或数据库)。对程序。对程序(特别是复杂的大型程序特别是复杂的大型程序)的设的设计,通常分为两个阶段完成:计,通常分为两个阶段完成:首先进行结构设计,然后进行过首先进行结构设计,然后进行过程设计程设计。结构设计确定程序由哪些模块组成,以及这些模块之。结构设计确定程序由哪些模块组成,以及这些模块之间的关系;过程设计确定每个模块的处理过程。结构设计是总间的关系;过程设计确定每个模块的处理过程。结构设计是总体设计阶段的任务,过程设计是详细设计阶段的任务。体设计阶段的任务,过程设计是详细设计阶段的

16、任务。为确定软件结构,首先需要从实现角度把复杂的功能进一为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。步分解。分析员结合算法描述仔细分析数据流图中的每个处理,分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。一般说来,经过分解之后应该使每个一系列比较简单的功能。一般说来,经过分解之后应该使每个功能对大多数程序员而言都是明显易懂的。功能分解导致数据功能对大多数程序员而言都是明显易懂的。功能分解导致数据流图的进一步细化,同时还应该用流图的进一步细化,同时还应该

17、用IPOIPO图或其他适当的工具简要图或其他适当的工具简要描述细化后每个处理的算法。描述细化后每个处理的算法。4.功能分解2021/5/2712通常程序中的一个模块完成一个适当的子功能。通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统,顶层模块调用应该把模块组织成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能能,最下层的模块完成最具体的功能。软件结构。软件结构(即即由模块组成的层次系

18、统由模块组成的层次系统)可以用层次图或结构图来描可以用层次图或结构图来描绘,第绘,第5.45.4节将介绍这些图形工具。节将介绍这些图形工具。如果数据流图已经细化到适当的层次,则可以如果数据流图已经细化到适当的层次,则可以直接从数据流图映射出软件结构,这就是第直接从数据流图映射出软件结构,这就是第5.55.5节中节中将要讲述的面向数据流的设计方法。将要讲述的面向数据流的设计方法。5.设计软件结构2021/5/2713对于需要使用数据库的那些应用系统,软件工程师应该对于需要使用数据库的那些应用系统,软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设在需求分析阶段所确定的系统数据需求

19、的基础上,进一步设计数据库。计数据库。在数据库课中已经详细讲述了设计数据库的方法,本书在数据库课中已经详细讲述了设计数据库的方法,本书不再赘述。不再赘述。6.设计数据库2021/5/2714在软件开发的早期阶段考虑测试问题,能促使软在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。本书件设计人员在设计时注意提高软件的可测试性。本书第第7 7章将仔细讨论软件测试的目的和设计测试方案的章将仔细讨论软件测试的目的和设计测试方案的各种技术方法。各种技术方法。7.制定测试计划2021/5/2715应该用正式的文档记录总体设计的结果,在这个阶段应该应该用正式的文档记录总体

20、设计的结果,在这个阶段应该完成的文档通常有下述几种:完成的文档通常有下述几种:(1)(1)系统说明系统说明主要内容包括用系统流程图描绘的系统构成方案,主要内容包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本组成系统的物理元素清单,成本/效益分析;对最佳方案的概效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用用IPOIPO图或其他工具图或其他工具(例如,例如,PDLPDL语言语言)简要描述的各个模块的算简要描述的各个模块的算法,模块间的接口关系,以及需求、功能和模块三者之间的交法,模块间的接

21、口关系,以及需求、功能和模块三者之间的交叉参照关系等等。叉参照关系等等。(2)(2)用户手册用户手册根据总体设计阶段的结果,修改更正在需求分析根据总体设计阶段的结果,修改更正在需求分析阶段产生的初步的用户手册。阶段产生的初步的用户手册。(3)(3)测试计划测试计划包括测试策略,测试方案,预期的测试结果,测包括测试策略,测试方案,预期的测试结果,测试进度计划等等。试进度计划等等。(4)(4)详细的实现计划详细的实现计划(5)(5)数据库设计结果数据库设计结果8.书写文档2021/5/2716最后应该对总体设计的结果进行严格的技术审查,最后应该对总体设计的结果进行严格的技术审查,在技术审查通过之后

22、再由使用部门的负责人从管理角度在技术审查通过之后再由使用部门的负责人从管理角度进行复审。进行复审。9.审查和复审2021/5/27175.2 设计原理模块可以是过程、函数、子程序和宏、对象内的方法。模块可以是过程、函数、子程序和宏、对象内的方法。模块可以是过程、函数、子程序和宏、对象内的方法。模块可以是过程、函数、子程序和宏、对象内的方法。5.2.1 5.2.1 模块化模块化C(P1)C(P2)C(P1)C(P2)C(P1)C(P2)C(P1)C(P2)显然显然显然显然E(P1)E(P2)E(P1)E(P2)E(P1)E(P2)E(P1)E(P2)而且而且而且而且C(P1+P2)C(P1)+C

23、P2)C(P1+P2)C(P1)+C(P2)C(P1+P2)C(P1)+C(P2)C(P1+P2)C(P1)+C(P2)故故故故E(P1+P2)E(P1)+E(P2)E(P1+P2)E(P1)+E(P2)E(P1+P2)E(P1)+E(P2)E(P1+P2)E(P1)+E(P2)其中,其中,其中,其中,C(x)C(x)C(x)C(x)问题问题问题问题x x x x的复杂程度;的复杂程度;的复杂程度;的复杂程度;模块化和软件成本模块化和软件成本模块化和软件成本模块化和软件成本当模块数目增加时每个模块的规模将减当模块数目增加时每个模块的规模将减当模块数目增加时每个模块的规模将减当模块数目增加时每

24、个模块的规模将减小,开发单个模块需要的成本小,开发单个模块需要的成本小,开发单个模块需要的成本小,开发单个模块需要的成本(工作量工作量工作量工作量)确实减少了确实减少了确实减少了确实减少了;但是随着模块数目增加,设但是随着模块数目增加,设但是随着模块数目增加,设但是随着模块数目增加,设计模块间接口所需要的工作量也将增加。计模块间接口所需要的工作量也将增加。计模块间接口所需要的工作量也将增加。计模块间接口所需要的工作量也将增加。2021/5/2718 虽然目前还不能精确地决定虽然目前还不能精确地决定虽然目前还不能精确地决定虽然目前还不能精确地决定M M M M的数值,但是在考的数值,但是在考的数

25、值,但是在考的数值,但是在考虑模块化的时候总成本曲线确实是有用的指南。虑模块化的时候总成本曲线确实是有用的指南。虑模块化的时候总成本曲线确实是有用的指南。虑模块化的时候总成本曲线确实是有用的指南。采用模块化原理可以使软件结构清晰,不仅容易采用模块化原理可以使软件结构清晰,不仅容易采用模块化原理可以使软件结构清晰,不仅容易采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。因为程序错误通常局限在有设计也容易阅读和理解。因为程序错误通常局限在有设计也容易阅读和理解。因为程序错误通常局限在有设计也容易阅读和理解。因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容关的模

26、块及它们之间的接口中,所以模块化使软件容关的模块及它们之间的接口中,所以模块化使软件容关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,因而有助于提高软件的可靠性。因为易测试和调试,因而有助于提高软件的可靠性。因为易测试和调试,因而有助于提高软件的可靠性。因为易测试和调试,因而有助于提高软件的可靠性。因为变动往往只涉及少数几个模块,所以模块化能够提高变动往往只涉及少数几个模块,所以模块化能够提高变动往往只涉及少数几个模块,所以模块化能够提高变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性。模块化也有助于软件开发工程的组软件的可修改性。模块化也有助于软件开发工程的组软件的可

27、修改性。模块化也有助于软件开发工程的组软件的可修改性。模块化也有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工织管理,一个复杂的大型程序可以由许多程序员分工织管理,一个复杂的大型程序可以由许多程序员分工织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程编写不同的模块,并且可以进一步分配技术熟练的程编写不同的模块,并且可以进一步分配技术熟练的程编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。序员编写困难的模块。序员编写困难的模块。序员编写困难的模块。2021/5/27195.2.2 抽象 抽象就是抽出事物的本质特性而

28、暂时不考虑它抽象就是抽出事物的本质特性而暂时不考虑它们的细节。们的细节。软件工程过程的每一步都是对软件解法的抽象层次软件工程过程的每一步都是对软件解法的抽象层次的一次精化。在可行性研究阶段,软件作为系统的一个的一次精化。在可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉的方式描述的;当由总体设计向详细设计过渡境内熟悉的方式描述的;当由总体设计向详细设计过渡时,抽象的程度也就随之减少了;最后,当源程序写出时,抽象的程度也就随之减少了;最后,当源程序写出来以后,也就达到了抽象的最低层。来以后,也就达到了抽象的

29、最低层。2021/5/27205.2.3 逐步求精逐步求精:逐步求精:为了能集中精力解决主要问题而尽量推为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。迟对问题细节的考虑。人类的认知过程遵守人类的认知过程遵守MillerMiller法则:一个人在任法则:一个人在任何时候都只能把注意力集中在(何时候都只能把注意力集中在(7272)个知识块上。)个知识块上。逐步求精方法的强大作用就在于,它能帮助软逐步求精方法的强大作用就在于,它能帮助软件工程师把精力集中在与当前开发阶段最相关的那件工程师把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说虽然是些方面上,而忽略那些对整体

30、解决方案来说虽然是必要的,然而目前还不需要考虑的细节,这些细节必要的,然而目前还不需要考虑的细节,这些细节将留到以后再考虑。将留到以后再考虑。2021/5/27215.2.4 信息隐藏和局部化 信息隐藏原理指出:应该这样设计和确定模块,信息隐藏原理指出:应该这样设计和确定模块,信息隐藏原理指出:应该这样设计和确定模块,信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息使得一个模块内包含的信息使得一个模块内包含的信息使得一个模块内包含的信息(过程和数据过程和数据过程和数据过程和数据)对于不需对于不需对于不需对于不需要这些信息的模块来说,是不能访问的。要这些信息的模块来说,是不能访

31、问的。要这些信息的模块来说,是不能访问的。要这些信息的模块来说,是不能访问的。局部化是指把一些关系密切的软件元素物理地局部化是指把一些关系密切的软件元素物理地局部化是指把一些关系密切的软件元素物理地局部化是指把一些关系密切的软件元素物理地放得彼此靠近。放得彼此靠近。放得彼此靠近。放得彼此靠近。2021/5/27225.2.5 模块独立模块独立化有如下优点:模块独立化有如下优点:1.1.有效的模块化有效的模块化(即具有独立的模块即具有独立的模块)的软件比较容易开发出的软件比较容易开发出来。来。2.2.独立的模块比较容易测试和维护。独立的模块比较容易测试和维护。模块的独立程度可以由内聚和耦合两个定

32、性标准度量模块的独立程度可以由内聚和耦合两个定性标准度量:耦合耦合衡量不同模块彼此间互相依赖衡量不同模块彼此间互相依赖(连接连接)的紧密程度;的紧密程度;内聚内聚衡量一个模块内部各个元素彼此结合的紧密程度。衡量一个模块内部各个元素彼此结合的紧密程度。2021/5/2723耦合是对一个软件结构内不同模块之间互连程度的度量。耦合耦合是对一个软件结构内不同模块之间互连程度的度量。耦合耦合是对一个软件结构内不同模块之间互连程度的度量。耦合耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,

33、强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。以及通过接口的数据。以及通过接口的数据。以及通过接口的数据。在软件设计中应该追求尽可能在软件设计中应该追求尽可能在软件设计中应该追求尽可能在软件设计中应该追求尽可能松散耦合松散耦合松散耦合松散耦合的系统。的系统。的系统。的系统。模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。性和可维护

34、性。性和可维护性。性和可维护性。如果两个模块中的每一个都能独立地工作而不需要另一个模块如果两个模块中的每一个都能独立地工作而不需要另一个模块如果两个模块中的每一个都能独立地工作而不需要另一个模块如果两个模块中的每一个都能独立地工作而不需要另一个模块的存在,那么它们彼此完全独立,这意味着模块间无任何连接,的存在,那么它们彼此完全独立,这意味着模块间无任何连接,的存在,那么它们彼此完全独立,这意味着模块间无任何连接,的存在,那么它们彼此完全独立,这意味着模块间无任何连接,耦合程度最低。但是,在一个软件系统中不可能所有模块之间都耦合程度最低。但是,在一个软件系统中不可能所有模块之间都耦合程度最低。但

35、是,在一个软件系统中不可能所有模块之间都耦合程度最低。但是,在一个软件系统中不可能所有模块之间都没有任何连接。没有任何连接。没有任何连接。没有任何连接。1.耦合2021/5/2724数据耦合:数据耦合:数据耦合:数据耦合:如果两个模块彼此间通过参数交换信息,而且交如果两个模块彼此间通过参数交换信息,而且交如果两个模块彼此间通过参数交换信息,而且交如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。换的信息仅仅是数据,那么这种耦合称为数据耦合。换的信息仅仅是数据,那么这种耦合称为数据耦合。换的信息仅仅是数据,那么这种耦合称为数据耦合。控制耦合:控制耦合:控制耦

36、合:控制耦合:如果传递的信息中有控制信息如果传递的信息中有控制信息如果传递的信息中有控制信息如果传递的信息中有控制信息(尽管有时这种控尽管有时这种控尽管有时这种控尽管有时这种控制信息以数据的形式出现制信息以数据的形式出现制信息以数据的形式出现制信息以数据的形式出现),则这种耦合称为控制耦合。,则这种耦合称为控制耦合。,则这种耦合称为控制耦合。,则这种耦合称为控制耦合。特征耦合:特征耦合:特征耦合:特征耦合:当把整个数据结构作为参数传递而被调用的模块当把整个数据结构作为参数传递而被调用的模块当把整个数据结构作为参数传递而被调用的模块当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数

37、据元素时,就出现了特征耦合。只需要使用其中一部分数据元素时,就出现了特征耦合。只需要使用其中一部分数据元素时,就出现了特征耦合。只需要使用其中一部分数据元素时,就出现了特征耦合。公共环境耦合:公共环境耦合:公共环境耦合:公共环境耦合:当两个或多个模块通过一个公共数据环境相当两个或多个模块通过一个公共数据环境相当两个或多个模块通过一个公共数据环境相当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。互作用时,它们之间的耦合称为公共环境耦合。互作用时,它们之间的耦合称为公共环境耦合。互作用时,它们之间的耦合称为公共环境耦合。2021/5/2725内容耦合:内容耦合:内容

38、耦合:内容耦合:如果出现下列情况之一,两个模块间就发生了内容如果出现下列情况之一,两个模块间就发生了内容如果出现下列情况之一,两个模块间就发生了内容如果出现下列情况之一,两个模块间就发生了内容耦合:耦合:耦合:耦合:一个模块访问另一个模块的内部数据;一个模块访问另一个模块的内部数据;一个模块访问另一个模块的内部数据;一个模块访问另一个模块的内部数据;一个模块不通过正常入口而转到另一个模块的内部;一个模块不通过正常入口而转到另一个模块的内部;一个模块不通过正常入口而转到另一个模块的内部;一个模块不通过正常入口而转到另一个模块的内部;两个模块有一部分程序代码重叠两个模块有一部分程序代码重叠两个模块

39、有一部分程序代码重叠两个模块有一部分程序代码重叠(只可能出现在汇编程序中只可能出现在汇编程序中只可能出现在汇编程序中只可能出现在汇编程序中);一个模块有多个入口一个模块有多个入口一个模块有多个入口一个模块有多个入口(这意味着一个模块有几种功能这意味着一个模块有几种功能这意味着一个模块有几种功能这意味着一个模块有几种功能)。总之,耦合是影响软件复杂程度的一个重要因素。应该采取下总之,耦合是影响软件复杂程度的一个重要因素。应该采取下总之,耦合是影响软件复杂程度的一个重要因素。应该采取下总之,耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:述设计原则:述设计原则:述设计原则:尽量使用数据

40、耦合,少用控制耦合和特征耦合,限制公共环境尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。耦合的范围,完全不用内容耦合。耦合的范围,完全不用内容耦合。耦合的范围,完全不用内容耦合。2021/5/2726内聚标志一个模块内各个元素彼此结合的紧密内聚标志一个模块内各个元素彼此结合的紧密程度,简单地说,理想内聚的模块只做一件事情。程度,简单地说,理想内聚的模块只做一件事情。设计时应该力求做到高内聚,内聚和耦合是密切相设计时应该力求做到高内聚,内聚和耦合是密切

41、相关,模块内的高内聚往往意味着模块间的松耦合。关,模块内的高内聚往往意味着模块间的松耦合。2.内聚2021/5/2727低内聚有如下几类:低内聚有如下几类:低内聚有如下几类:低内聚有如下几类:偶然内聚:偶然内聚:偶然内聚:偶然内聚:如果一个模块完成一组任务,这些任务彼如果一个模块完成一组任务,这些任务彼如果一个模块完成一组任务,这些任务彼如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内此间即使有关系,关系也是很松散的,就叫做偶然内此间即使有关系,关系也是很松散的,就叫做偶然内此间即使有关系,关系也是很松散的,就叫做偶然内聚。聚。聚。聚。逻辑内聚:逻辑内聚:逻辑

42、内聚:逻辑内聚:如果一个模块完成的任务在逻辑上属于相如果一个模块完成的任务在逻辑上属于相如果一个模块完成的任务在逻辑上属于相如果一个模块完成的任务在逻辑上属于相同或相似的一类,则称为逻辑内聚。同或相似的一类,则称为逻辑内聚。同或相似的一类,则称为逻辑内聚。同或相似的一类,则称为逻辑内聚。时间内聚:时间内聚:时间内聚:时间内聚:如果一个模块包含的任务必须在同一段时如果一个模块包含的任务必须在同一段时如果一个模块包含的任务必须在同一段时如果一个模块包含的任务必须在同一段时间内执行,就叫时间内聚。间内执行,就叫时间内聚。间内执行,就叫时间内聚。间内执行,就叫时间内聚。2021/5/2728中内聚主要

43、有两类:中内聚主要有两类:中内聚主要有两类:中内聚主要有两类:过程内聚:过程内聚:过程内聚:过程内聚:如果一个模块内的处理元素是相关的,如果一个模块内的处理元素是相关的,如果一个模块内的处理元素是相关的,如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。而且必须以特定次序执行,则称为过程内聚。而且必须以特定次序执行,则称为过程内聚。而且必须以特定次序执行,则称为过程内聚。(使用程序流程图作为工具设计软件时,常常通过使用程序流程图作为工具设计软件时,常常通过使用程序流程图作为工具设计软件时,常常通过使用程序流程图作为工具设计软件时,常常通过研究流程图确定模块的划分,这样得

44、到的往往是过研究流程图确定模块的划分,这样得到的往往是过研究流程图确定模块的划分,这样得到的往往是过研究流程图确定模块的划分,这样得到的往往是过程内聚的模块程内聚的模块程内聚的模块程内聚的模块)通信内聚:通信内聚:通信内聚:通信内聚:如果模块中所有元素都使用同一个输入如果模块中所有元素都使用同一个输入如果模块中所有元素都使用同一个输入如果模块中所有元素都使用同一个输入数据和数据和数据和数据和(或或或或)产生同一个输出数据,则称为通信内聚。产生同一个输出数据,则称为通信内聚。产生同一个输出数据,则称为通信内聚。产生同一个输出数据,则称为通信内聚。2021/5/2729高内聚也有两类:高内聚也有两

45、类:高内聚也有两类:高内聚也有两类:顺序内聚:顺序内聚:顺序内聚:顺序内聚:如果一个模块内的处理元素和同一个功如果一个模块内的处理元素和同一个功如果一个模块内的处理元素和同一个功如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行能密切相关,而且这些处理必须顺序执行能密切相关,而且这些处理必须顺序执行能密切相关,而且这些处理必须顺序执行(通常一个通常一个通常一个通常一个处理元素的输出数据作为下一个处理元素的输入数处理元素的输出数据作为下一个处理元素的输入数处理元素的输出数据作为下一个处理元素的输入数处理元素的输出数据作为下一个处理元素的输入数据据据据),则称为顺序内聚。,则称

46、为顺序内聚。,则称为顺序内聚。,则称为顺序内聚。功能内聚:功能内聚:功能内聚:功能内聚:根据数据流图划分模块时,通常得到顺根据数据流图划分模块时,通常得到顺根据数据流图划分模块时,通常得到顺根据数据流图划分模块时,通常得到顺序内聚的模块,这种模块彼此间的连接往往比较简序内聚的模块,这种模块彼此间的连接往往比较简序内聚的模块,这种模块彼此间的连接往往比较简序内聚的模块,这种模块彼此间的连接往往比较简单。如果模块内所有处理元素属于一个整体,完成单。如果模块内所有处理元素属于一个整体,完成单。如果模块内所有处理元素属于一个整体,完成单。如果模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功

47、能内聚。功能内聚是最一个单一的功能,则称为功能内聚。功能内聚是最一个单一的功能,则称为功能内聚。功能内聚是最一个单一的功能,则称为功能内聚。功能内聚是最高程度的内聚。高程度的内聚。高程度的内聚。高程度的内聚。2021/5/2730耦合和内聚的概念是耦合和内聚的概念是耦合和内聚的概念是耦合和内聚的概念是Constantine,Yourdon,MyersConstantine,Yourdon,MyersConstantine,Yourdon,MyersConstantine,Yourdon,Myers和和和和StevensStevensStevensStevens等人提出来的。按照他们的观点,如果

48、给上述七等人提出来的。按照他们的观点,如果给上述七等人提出来的。按照他们的观点,如果给上述七等人提出来的。按照他们的观点,如果给上述七种内聚的优劣评分,将得到如下结果:种内聚的优劣评分,将得到如下结果:种内聚的优劣评分,将得到如下结果:种内聚的优劣评分,将得到如下结果:功能内聚功能内聚功能内聚功能内聚10101010分分分分时间内聚时间内聚时间内聚时间内聚3 3 3 3分分分分顺序内聚顺序内聚顺序内聚顺序内聚9 9 9 9分分分分逻辑内聚逻辑内聚逻辑内聚逻辑内聚1 1 1 1分分分分通信内聚通信内聚通信内聚通信内聚7 7 7 7分分分分偶然内聚偶然内聚偶然内聚偶然内聚0 0 0 0分分分分过程

49、内聚过程内聚过程内聚过程内聚5 5 5 5分分分分事实上,没有必要精确确定内聚的级别。重要的是设计时事实上,没有必要精确确定内聚的级别。重要的是设计时事实上,没有必要精确确定内聚的级别。重要的是设计时事实上,没有必要精确确定内聚的级别。重要的是设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力力争做到高内聚,并且能够辨认出低内聚的模块,有能力力争做到高内聚,并且能够辨认出低内聚的模块,有能力力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度降低模块间的耦合程度,通过修改设计提高模块的内聚程度降低模块间的耦合程度,通过修改设计提高模块的内聚程度降低模块间的耦合

50、程度,通过修改设计提高模块的内聚程度降低模块间的耦合程度,从而获得较高的模块独立性。从而获得较高的模块独立性。从而获得较高的模块独立性。从而获得较高的模块独立性。2021/5/27315.3 启发规则1.1.1.1.改进软件结构提高模块独立性改进软件结构提高模块独立性改进软件结构提高模块独立性改进软件结构提高模块独立性2.2.2.2.模块规模应该适中模块规模应该适中模块规模应该适中模块规模应该适中3.3.3.3.深度、宽度、扇出和扇入都应适当深度、宽度、扇出和扇入都应适当深度、宽度、扇出和扇入都应适当深度、宽度、扇出和扇入都应适当4.4.4.4.模块的作用域应该在控制域之内模块的作用域应该在控

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服