电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

软件工程—第4章 软件设计概述1

  • 资源ID:75315951       资源大小:521.50KB        全文页数:84页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

软件工程—第4章 软件设计概述1

第四章 软件设计概述,讨论要点,如何将分析模型转换成软件设计? 作为软件工程师在软件设计方面应使用哪些基本原则和概念?,§4.1 软件设计的目标和任务 §4.2 软件设计基本概念 §4.3 模块化设计 §4.4 其他设计问题的处理 §4.5 设计文档及其复审,教学内容:,教学目的及要求:,深刻理解软件设计阶段的概念和任务; 掌握模块化设计的思想;,§4.1 软件设计的任务,软件需求:解决“做什么” 软件设计:解决“怎么做”,软件设计的任务,问题结构(软件需求) 从软件需求规格说明书出发,形成软件的具体设计方案。,映射,软件结构,1.软件的总体结构主要回答的问题,软件的组成部分 软件的层次关系 模块的内部处理逻辑 模块之间的界面,2. 软件设计的问题,工具 如何描述软件的总体结构 方法 用什么方法从问题结构导出软件结构 评估准则 什么样的软件结构是“最优的”,3. 软件设计方法,结构化设计方法(SD) 面向数据结构的设计方法(JSD方法) 面向对象的设计方法(OOD),4. 软件设计分为两个阶段:,(1)概要设计(总体设计) 确定软件的结构以及各组成成分(子系统或模块) 之间的相互关系。 (2)详细设计 确定模块内部的算法和数据结构,产生描述各模 块程序过程的详细文档。,§4.2 软件设计的基本概念,1.模块与构件 2.抽象与细化 3.信息隐蔽 4.软件复用,1.模块与构件,模块化:把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,满足问题的功能。,模块:一个拥有明确定义的输入、输出和特性的程序实体。,1.模块与构件,构件:可重复使用的软件组件。,经过适当设计和实现的类也可以称为构件,他们在某个领域中具有一定的通用性,可以在不同的计算机软件系统中复用。将这些构件储存起来变成一个构件库,就为基于构件的软件开发模型提供了技术基础。,模 块,模块是具有一定功能的可以用名词调用的程序语句集合,如: 独立的汇编程序 COBOL的段和节 Pascal过程 FORTRAN的子程序,概要设计的基本概念,将系统划分成模块 决定每个模块的功能 决定模块的调用关系 决定模块的界面,即模块间传递的数据,2. 抽象(Abstraction)与细化 抽象:解决问题时只考虑与问题有关的方面,不考虑与问题无关的方面。即抽出事物的本质特性而不考虑细节。,抽象(Abstraction),抽象原则应用举例 Windows NT一体化的I/O系统设计,文件管理 网络管理 设备管理 高速缓冲存储器, ,对虚拟文件的字节流,虚拟文件可为任何设备和实体,抽象,在逐步细化中,特别强调这种分解的“逐步”性质,即每一部分仅较其前一部增加“少量”的细节。这样,在相邻两部之间就只有微小的变化,不难验证它们的内容是否等效。,细化:即分解。,3.信息隐蔽(Information Hiding),信息隐蔽的含义:有效的模块化可以通过定义一组独立模块来实现,这些模块相互之间只交流软件功能必需的信息。 换句话说:模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。,信息隐蔽:对模块内部信息访问的约束,信息隐蔽的基本原则: 功能独立,高内聚且低耦合,高可复用性的期望: 功能复用是代码级的,它基于必要的功能理解,而功能的语义是不一致的、多理解的。 希望软件复用是全方位的,不但是代码级的复用,还应该有源程序级的复用。,面向对象方法的高可复用性: 对象的语义表示是唯一的,这使得代码级的复用简单且自然。 类的继承性是源程序级的复用机制 ,它允许用已有的程序构架来简单地构造新的应用。并且仍保持高维护性,这种技术带来复用概念的新突破。,4.软件复用: 利用已有的现成构件,不必一切都从头做起。,§4.3 模块化设计,1.分解 2.模块独立性 内聚 耦合 自顶向下与自底向上设计,模块化(Modularity),模块化是好的软件设计的一个基本准则 高层模块 从整体上把握问题,隐蔽细节 复杂问题 较小问题 分解 可减小解题所需的总的工作,分解,C(p1)C(p2) 则 E(p1)E(p2) 其中: p1和p2是两个问题 C(x)是由x问题决定的复杂性 E(x)是解决x问题所需要的工作量,C(p1+p2) C(p1) +C(p2) E(p1+p2) E(p1) +E(p2),试验发现,模块划分得越小成本越低 ,但是 集成成本却随着模块划分得越小成本越高。,如何确定模块化分的最小成本区,并保证模块的最佳性能,是设计活动中的主要任务之一。,1.分解,各个击破理论,模块数与开发工作量的关系,成本或工作量,模块数量,软件总成本,集成成本,成本/模块,M,最小成本区域,2. 模块的独立性,模块独立性的概念 模块完成独立的功能 符合信息隐蔽和信息局部化原则 模块间关连和依赖程度尽量小,模块独立性的度量,模块独立性取决于模块的内部和外部特征。 SD方法提出的定性的度量标准: 模块自身的内聚性 模块之间的耦合性, 内容耦合:一个模块直接修改另一个模块的内容 公共耦合:两个以上的模块共同引用一个全局数据 外部耦合:若允许一组模块访问同一个全局变量 控制耦合:接收模块的动作依赖于控制信号 标记耦合:两个模块接口的参数包含相同的内部结构 数据耦合:仅是模块之间的数据传递 非直接耦合:模块之间没有消息传递,低,高,耦合-模块之间的依赖程度, 偶然内聚:各成分之间并没有关系,只是把分散在多处的功能合在一起 逻辑内聚:仅仅是逻辑功能相关成分合在一起 时间内聚:必须在同一时间执行,并无功能逻辑的成分合在一起 过程内聚:过程顺序相关的功能成分合在一起 通讯内聚:需要对相同的外部数据进行操作的成分合在一起 顺序内聚:一个内部成分的输出是另一个内部成分的输入,将它们合起来 功能内聚:只完成单一的功能,低,高,内聚-模块内部各成分之间的关联程度,2. 模块独立性的度量之一:内聚性,一个模块内部各成分之间相互关联的强度 设计目标:高内聚(一模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的),软件设计的概念和原理,内聚:一个模块内各个元素彼此结合的紧密程度。 偶然内聚:一个模块完成一组任务,任务之间的关系很松散。公共语句。 逻辑内聚:若干个逻辑功能类似的任务组成一个模块。 时间内聚:若干个任务必须在同一段时间内执行。如初始化工作。,低内聚,中内聚,高内聚,过程内聚:模块内的处理元素是相关的,且必须以特定次序执行。 通信内聚:模块中所有元素都使用同一个输入数据,和/或产生同一个 输出数据。,顺序内聚:模块中所有处理元素和同一个功能密切相关,且这些处理必 须顺序执行。 功能内聚:所有处理元素属于一个整体,完成一个单一的功能。,模块A,模块B,模块C,S1; S2;,模块A,模块B,模块C,模块A,模块B,模块C,模块D,模块的内聚性类型,模 块 独 立 性,弱(功能分散),强(功能单一),巧合内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 信息内聚 功能内聚,低,高,内聚性,(1) 巧合内聚(偶然内聚),模块内各部分间无联系,A,B,C,M,MOVE O TO R READ FILE F MOVE S TO T,模块M中的三个语句没有任何联系 缺点:可理解性差, 可修改性差。,例:,(2) 逻辑内聚,把几种相关功能(逻辑上相似的功能)组合在一 模块内,每次调用由传给模块的参数确定执行 哪种功能。,逻辑内聚模块,A,B,C,E,F,G,A,B,C,EFG,A1,B1,C1,EFG模块内部逻辑,E、F、G逻辑 功能相似,组 成新模块EFG,公用代码段,公用代码段,缺点:增强了耦合程度(控制耦合)不易修改,效率低。,(3) 时间内聚,模块完成的功能必须在同一时间内执行,这些功能只 因时间因素关联在一起。 例如:初始化系统模块、 系统结束模块、 紧急故障处理模块等。,(4) 过程内聚,模块内各处理成分相关,且必须以特定次序执行。,过程内聚模块,建立方程组系数矩阵,全部任务纳入一个 模块,得到一过程 性模块,高斯消去法,回 代,高斯消去法解题流程,过程内聚模块,读入 成绩单,读入并审查 成绩单,审查 成绩单,统计 成绩,打印 成绩,统计并打印 成绩,(5) 通信内聚,模块内各部分使用相同的输入数据,或产生 相同的输出结果。,通信内聚模块例,产生工 资报表,计算平 均工资,职工工资记录,职工工资报表,平均工资,产生职工工资报表并计算平均工资模块,通信内聚模块例,开领 书单,登记 售书,发票,领书单,售 书 登记表,文件,删除,修改,(6)顺序内聚,一个内部成分的输出是另一个内部成分的输入,将它们合起来。,建立方程组系数矩阵,高斯消去法,回 代,高斯消去法解题流程,(7) 功能内聚,模块仅包括为完成某个功能所必须的所有成分。( 模块所有成分共同完成一个功能,缺一不可 ) 内聚性最强,模块独立性的度量之二,耦合性是模块间相互依赖程度的度量,耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。 耦合性越高,模块独立性越弱,软件设计的概念和原理 - 耦合,非直接耦合 数据耦合 特征耦合 控制耦合 外部耦合 公共耦合 内容耦合,弱耦合,中耦合,较强耦合,强耦合,模块1,模块2,模块3,模块4,数据耦合 通过简单变量交换数据,特征耦合 通过数据结构交换数据,非直接耦合 模块之间没有信息传递,模块A,模块B,模块C,模块D,模块L,模块N,全局性数据结构 公共耦合,Flag=1?,S1,S2,模块1,控制耦合 模块之间传递的是控制信息,T,F,全 局 性简单变量 外部耦合,模块A,模块B,内容耦合 访问其它模块的内部数据 直接跳到其他模块内部执行,无耦合没有依赖关系,松散耦合有 少量依赖关系,紧密耦合有 很多依赖关系,耦合强度依赖的因素,一模块对另一模块的引用 一模块向另一模块传递的数据量 一模块施加到另一模块的控制的数量 模块间接口的复杂程度,(1) 非直接耦合,两个模块没有直接关系(模快1和模快2),模块独立性最强。,模块1,模块2,模块3,模块4,(2) 数据耦合,一模块调用另一模块时,被调用模块的输入、输出都是简单的数据,属松散耦合。,开发票,计算水费,单价 数量,金额,数据耦合举例,计算水电费,计算水费,计算电费,用水量,用电量,水费,电费,(3) 标记耦合(特征耦合),如两个模块通过传递数据结构(不是简单数据, 而是记录、数组等)加以联系,或都与一个数据 结构有关系, 则称这两个模块间存在标记偶合。,标记耦合举例,计算水电费,计算水费,计算电费,住户情况,水费,电费,住户情况,“住户情况”是一个数据结构,图中模块都与此数据结构有关。 “计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合。,将标记耦合修改为数据耦合举例,计算水电费,计算水费,计算电费,本月 用水量,本月 用电量,水费,电费,(4) 控制耦合,一模块通过开关量、标志、名字等控制信息,明显地控制另一模块的功能。,A,计算平均分或最高分,B,平均/最高,成绩,控制耦合举例,读入分数,输出结果,计算平均分

注意事项

本文(软件工程—第4章 软件设计概述1)为本站会员(luoxia****01801)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.