2012软件学院C语言4.ppt_第1页
2012软件学院C语言4.ppt_第2页
2012软件学院C语言4.ppt_第3页
2012软件学院C语言4.ppt_第4页
2012软件学院C语言4.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程导论,天津市大学软件园,第4章 总体设计, 4.1 总体设计的目标及任务 4.2 软件结构设计原理 4.3 软件结构设计工具 4.4 软件结构设计启发式规则 4.5 结构化设计方法,第4章 总体设计, 4.1 总体设计的目标及任务 4.2 软件结构设计原理 4.3 软件结构设计工具 4.4 软件结构设计启发式规则 4.5 结构化设计方法,总体设计的基本目的: 解决“系统应该如何实现”的问题 总体设计的两个阶段: 系统设计阶段:确定系统的具体实现方案 结构设计阶段:确定系统的软件结构,4.1总体设计的目标及任务,1、设计软件结构 (1)通过需求分析阶段得到的数据流图设想各种可能方案。将一

2、个复杂的系统按功能划分为若干模块; (2)确定每个模块的功能; (3)确定模块之间的调用关系; (4)确定模块之间的接口,即模块之间传递的消息; (5)评价模块结构的质量。,4.1总体设计的目标及任务,2数据结构及数据库设计 数据结构的设计采用逐步细化的方法。在需求分析阶段可通过数据字典对数据的组成、操作约束和数据之间的关系等方面进行描述,确定数据的结构特性。在总体设计阶段要加以细化,详细设计阶段则规定具体的实现细节。,4.1总体设计的目标及任务,3确定测试要求并制定测试计划 4、编写总体设计文档概要设计说明书 5、评审,4.1总体设计的目标及任务,第4章 总体设计, 4.1 总体设计的目标及

3、任务 4.2 软件结构设计原理 4.3 软件结构设计工具 4.4 软件结构设计启发式规则 4.5 结构化设计方法,4.2 软件结构设计原理,4.2.1 模块化 模块: 由边界元素限定的相邻程序元素的序列,而且由一个总体标识符代表它。 模块化: 把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,模块集成起来构成一个整体可完成用户指定的功能。,4.2 软件结构设计原理,4.2.1 模块化 “由大化小,各个击破” 优点: 提高可靠性、可修改性 错误一般出现在接口中,4.2 软件结构设计原理,4.2.2 抽象 抽出事物本质特性而不考虑细节 软件设计:从抽象概括到具体实现的过程 具体 抽象

4、 具体,(系统功能),(数学建模),(程序代码),4.2 软件结构设计原理,4.2.2 逐步求精 为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。 Miller法则:一个人在任何时候都只能把注意力集中在(72)个知识块上。,4.2 软件结构设计原理,4.2.3 信息隐藏和局部化 信息隐藏原理:设计和确定模块时,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。 局部化:把一些关系密切的软件元素物理地放得彼此靠近。 优点:防止错误的扩大与传播。,4.2 软件结构设计原理,4.2.4 模块独立性 模块独立是模块化、抽象、信息隐藏和局部化概念的直接结果。 模块独立:每个模块完

5、成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。 重要性:模块化使得软件能够分割功能且接口简化;独立的模块容易测试和维护。,4.2 软件结构设计原理,4.2.4 模块独立性 耦合:一个软件结构内不同模块间的互连程度,耦合强弱取决于接口的复杂程度、调用方式及传递的信息。 数据耦合特征耦合控制耦合公共耦合内容耦合 低高 设计原则: 尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。,4.2 软件结构设计原理,4.2.4 模块独立性 内聚:模块内各元素彼此结合的紧密程度 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚 低内聚 中内聚 高内聚 设

6、计原则: 力争做到高内聚,并且能辨认出低内聚的模块,通过修改设计提高模块的内聚程度并降低模块间的耦合程度。,第4章 总体设计, 4.1 总体设计的目标及任务 4.2 软件结构设计原理 4.3 软件结构设计工具 4.4 软件结构设计启发式规则 4.5 结构化设计方法,4.3.1 层次图,4.3 软件结构设计工具,左图中, 矩形框:模块 连线:调用关系,层次图:适于在自顶向下设计软件的过程中使用。,4.3.2 HIPO图=H图+每个模块的IPO图 (H图:带编号的层次图),4.3 软件结构设计工具,Note: 和H图中每个方框相对应,应都有一张IPO图来描绘其代表的模块处理过程。,4.3 软件结构

7、设计工具,4.3.3 软件结构图 主要内容: 模块方框表示 模块的调用关系单向箭头或直线 模块间的信息传递带注释的短箭头 选择调用菱形 循环调用弧形箭头,4.3 软件结构设计工具,结构图的形态特征 (1)深度指软件结构中模块的层次数,它表示控制的层数,在一定意义上能粗略地反映系统的规模和复杂程度。 (2)宽度指同一层次中最大的模块个数,它表示控制的总分布。 (3)扇出指一个模块直接调用的模块数目。经验证明,良好的系统结构的平均扇出数一般是3-4,不能超过5-9。 (4)扇入指有多少个上级模块直接调用它。,4.3 软件结构设计工具,如图4.12所示,结构图的深度为5;宽度为8;模块M的扇出为3;

8、模块T的扇入为4,第4章 总体设计, 4.1 总体设计的目标及任务 4.2 软件结构设计原理 4.3 软件结构设计工具 4.4 软件结构设计启发式规则 4.5 结构化设计方法,4.4 软件结构设计启发式规则,1模块独立性准则:通过模块分解或合并,力求做到降低耦合提高内聚,保持模块相对独立性。,(1)如图4.13(a)所示,若多个模块公有的一个子功能(使用阴影部分表示),则可以将这个子功能独立成一个模块,由这些模块调用。,4.4 软件结构设计启发式规则,(2)若有多个功能相关的模块,如图4.13(b)所示B、C、D三个模块耦合度较高,E、F两个模块耦合度较高,应考虑对它们进行合并以减少控制信息的

9、传递,降低接口的复杂程度。,4.4 软件结构设计启发式规则,2模块的作用域应该在控制域内 作用域:指受该模块内一个判断影响的所有模块的集合。 控制域:指模块本身以及其所有直接或者间接从属于它的模块集合。,4.4 软件结构设计启发式规则,(a) (b) (c) 图4.14 模块的作用域和控制域 (a) 差的结构图 (b) 不理想的结构图 (c) 理想的结构图,4.4 软件结构设计启发式规则,改进方法: (1)上移判断点。如图4.14 (a)所示,将模块D中的判断点上移到它的上层模块B中,或者将整个模块D合并到模块B中,使该判断的层次升高,以扩大它的控制域。 (2)下移受判断影响的模块。将受判断影

10、响的模块下移到判断所在模块的控制域内,如图4.14 (a)所示,将模块C下移到模块D的下层。,4.4 软件结构设计启发式规则,3软件结构的形态特征准则 设计时考虑使深度、宽度、扇出和扇入数适当: (1)深度能粗略地反映系统的规模和复杂程度,宽度也能反映系统的复杂情况。宽度与模块的扇出有关,如果一个模块的扇出太多,说明本模块过分复杂,缺少中间层。 (2)单一功能模块的扇入数大比较好,说明本模块为上层几个模块共享的公用模块,重用率高。 (3)不能把彼此无关的功能凑在一起形成一个通用的超级模块,虽然它扇入高,但内聚低。因此非单一功能的模块扇入高时应考虑重新分解,以消除控制耦合的情况。,4.4 软件结

11、构设计启发式规则,4模块大小准则 在考虑模块的独立性时,为了增加可理解性,模块的大小最好在50-150条语句左右,可以用1-2页纸打印,便于人们阅读与研究。 5模块的接口准则 (1)模块接口设计要简单,以便降低复杂程度和冗余度。 (2)设计功能可预测并能得到验证的模块。 (3)适当划分模块规模,以保持其独立性。,4.5 结构化设计方法,结构化设计方法(简称SD方法),就是基于数据流的设计方法。 基于数据流的设计方法 :将数据流图变换成软件结构。,4.5 结构化设计方法,4.5.1 数据流图的类型 1变换型数据流图,4.5 结构化设计方法,2变换型数据流图,4.5 结构化设计方法,4.5.2 结构化设计方法过程 1复查并精化数据流图 2确定数据流图类型 3确定数据流的边界 4完成“第一级分解” 5完成“第二级分解” 6优化,4.5 结构化设计方法,4.5.3 变换型分析设计 1. 确定DFD中的变换中心、逻辑输入和逻辑输出 2. 设计软件结构的顶层和第一层变换结构 3. 设计中、下层模块 4设计的优化,4.5 结构化设计方法,4.5 结构化设计方法,4.5.4 事务型分析设计 1确定DF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论