第4章总体设计课件.ppt
《第4章总体设计课件.ppt》由会员分享,可在线阅读,更多相关《第4章总体设计课件.ppt(70页珍藏版)》请在课桌文档上搜索。
1、软件工程导论,第4章-总体设计,1,第4章 总体设计,理解总体设计的目的与任务 掌握总体设计的设计原理 掌握总体设计的启发式规则 熟练掌握结构化设计方法,第4章-总体设计,2,第4章 总体设计,4.1 总体设计的目标及任务 4.2 软件结构设计原理 4.3 软件结构设计工具 4.4 软件结构设计启发式规则 4.5 结构化设计方法,第4章-总体设计,3,第4章 总体设计,4.1 总体设计的目标及任务 4.2 软件结构设计原理 4.3 软件结构设计工具 4.4 软件结构设计启发式规则 4.5 结构化设计方法,第4章-总体设计,4,总体设计:应用各种技术和原理,对设备、过程或系统做出足够详细的定义,
2、使之能够在物理上得以实现。过程:将“做什么”的逻辑模型转变为“怎么做”的物理模型,即将前期工程中的软件需求转换为软件表示的过程。,4.1 总体设计的目标及任务,第4章-总体设计,5,总体设计的基本目的:解决“系统应该如何实现”的问题 总体设计的两个阶段:系统设计阶段:确定系统的具体实现方案 结构设计阶段:确定系统的软件结构,4.1总体设计的目标及任务,第4章-总体设计,6,1、设计软件结构(1)通过需求分析阶段得到的数据流图设想各种可能方案。将一个复杂的系统按功能划分为若干模块;(2)确定每个模块的功能;(3)确定模块之间的调用关系;(4)确定模块之间的接口,即模块之间传递的消息;(5)评价模
3、块结构的质量。,4.1 总体设计的目标及任务,第4章-总体设计,7,2数据结构及数据库设计 数据结构的设计采用逐步细化的方法。在需求分析阶段可通过数据字典对数据的组成、操作约束和数据之间的关系等方面进行描述,确定数据的结构特性。在总体设计阶段要加以细化,详细设计阶段则规定具体的实现细节。,4.1 总体设计的目标及任务,第4章-总体设计,8,3确定测试要求并制定测试计划 软件开发早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。4、编写总体设计文档概要设计说明书,4.1 总体设计的目标及任务,第4章-总体设计,9,5、评审 对设计部分是否完整地实现需求中规定的功能、性能等要
4、求,设计方案的可行性、关键的处理及内外部接口定义正确性、有效性,及各部分之间的一致性等进行评审。,4.1 总体设计的目标及任务,第4章-总体设计,10,第4章 总体设计,4.1 总体设计的目标及任务 4.2 软件结构设计原理 4.3 软件结构设计工具 4.4 软件结构设计启发式规则 4.5 结构化设计方法,第4章-总体设计,11,4.2 软件结构设计原理,软件结构设计(结构化方法):在系统设计中分析信息流程,绘制数据流程图;根据数据的规范,编制数据字典;根据概念结构的设计,确定数据文件的逻辑结构;选择系统执行的结构化语言,以及采用控制结构作为软件的设计工具。,第4章-总体设计,12,4.2 软
5、件结构设计原理,4.2.1 模块化“由大化小,各个击破”优点:提高可靠性、可修改性 错误一般出现在模块或接口中,第4章-总体设计,13,4.2 软件结构设计原理,4.2.1 模块化模块:数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素(如函数、子程序)等。模块化:解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。,第4章-总体设计,14,4.2 软件结构设计原理,4.2.1 模块化模块的基本属性:接口:模块的输入与输出。功能:模块实现什么功能。逻辑:描述内部如何实现要
6、求的功能及所需的数据。状态:指该模块的运行环境,是模块的调用与被调用的关系。功能、状态、接口反映模块的外部特性,逻辑反映它的内部特性。,第4章-总体设计,15,4.2 软件结构设计原理,4.2.2 抽象 抽出事物本质特性而不考虑细节软件设计:从抽象概括到具体实现的过程具体 抽象 具体,(系统功能),(建模),(程序代码),第4章-总体设计,16,问题定义阶段:(具体)用户给出对目标系统的实际需求。系统定义阶段:(抽象)软件可作为整个计算机系统的一个元素来看待。软件需求分析阶段:(抽象)软件的解决方案是使用问题环境中的术语来描述。总体设计详细设计阶段:(抽象具体)将面向问题的术语与面向实现的术语
7、结合起来来描述解决方法,直到产生源程序时到达最低抽象层次。,4.2 软件结构设计原理,第4章-总体设计,17,4.2 软件结构设计原理,4.2.2 逐步求精为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。Miller法则:一个人在任何时候都只能把注意力集中在(72)个知识块上。,第4章-总体设计,18,4.2 软件结构设计原理,4.2.3 信息隐藏和局部化信息隐藏原理:设计和确定模块时,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。局部化:把一些关系密切的软件元素物理地放得彼此靠近。优点:防止错误的扩大与传播。,第4章-总体设计,19,4.2 软件结构设计原理,4.
8、2.4 模块独立性 模块独立是模块化、抽象、信息隐藏和局部化概念的直接结果。模块独立:每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。,第4章-总体设计,20,4.2 软件结构设计原理,4.2.4 模块独立性良好的模块独立性的重要性:能使开发的软件具有较高的质量。设计的模块可理解性、可维护性及可测试性好,必然导致软件的可靠性高。接口简单、功能独立的模块易开发,且可并行工作,有效地提高了软件的生产率。,第4章-总体设计,21,4.2 软件结构设计原理,4.2.4 模块独立性 耦合:软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独
9、立性则越差。模块间总是相互关联的,很少是相互独立的,完全独立的模块是无法构成系统的。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。,第4章-总体设计,22,4.2 软件结构设计原理,4.2.4 模块独立性 耦合类型无直接耦合数据耦合控制耦合特征耦合公共耦合内容耦合 低高,第4章-总体设计,23,4.2 软件结构设计原理,4.2.4 模块独立性 无直接耦合:指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。这种耦合程度较低,模块的独立性较高。控制耦合:指一
10、个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能。,第4章-总体设计,24,4.2 软件结构设计原理,4.2.4 模块独立性 特征耦合:当模块之间传递的是某些数据结构,但是目标模块只是使用了数据结构中的部分内容时,这种耦合方式称为特征耦合。公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。公共数据环境可以是全程变量或数据结构、共享的通信区、内存的公共覆盖区及存储介质上的文件和物理设备等。内容耦合:当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部时,这种模块之间的耦合便为内容耦合。,第4章-总体设
11、计,25,4.2 软件结构设计原理,4.2.4 模块独立性设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。,第4章-总体设计,26,4.2 软件结构设计原理,4.2.4 模块独立性 内聚:一个模块内部各个元素彼此结合的紧密程度的度量。偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚 低内聚 中内聚 高内聚,第4章-总体设计,27,4.2 软件结构设计原理,4.2.4 模块独立性 偶然内聚:指一个模块内的各处理元素之间没有任何联系。逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。时间内聚:把需要同时执行的动作组合
12、在一起形成的模块为时间内聚模块。时间内聚模块中的各部分都要在同一时间内完成。过程内聚:如果一个模块内部的处理是相关的,而且这些处理必须以特定的次序执行,则称过程内聚。,第4章-总体设计,28,4.2 软件结构设计原理,4.2.4 模块独立性 通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或指各处理使用相同的输入数据或者产生相同的输出数据。顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。功能内聚:最强的内聚形式,指模块内所有元素共同完成一个功能,缺一不可。模块不能再分割。,第4章-总体设计,29,4.2 软件结构设计原理,
13、4.2.4 模块独立性设计原则:力争做到高内聚,并且能辨认出低内聚的模块,通过修改设计提高模块的内聚程度并降低模块间的耦合程度。【注】耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分成模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。但也有内聚性与耦合性发生矛盾的时候,为了提高内聚性而可能使耦合性变差。在这种情况下,建议给予内聚性以更高的重视。,第4章-总体设计,30,第4章 总体设计,4.1 总体设计的目标及任务 4.2 软件结构设计原理 4.3 软件结构设计工具 4.4 软件结构设计启发式规则 4.5 结构化设计方法,第4章-总体设计,31,4.4 软
14、件结构设计启发式规则,1模块独立性准则:通过模块分解或合并,力求做到降低耦合提高内聚,保持模块相对独立性。,(1)如图4.13(a)所示,若多个模块公有的一个子功能(使用阴影部分表示),则可以将这个子功能独立成一个模块,由这些模块调用。,第4章-总体设计,32,4.4 软件结构设计启发式规则,(2)若有多个功能相关的模块,如图4.13(b)所示B、C、D三个模块耦合度较高,E、F两个模块耦合度较高,应考虑对它们进行合并以减少控制信息的传递,降低接口的复杂程度。,第4章-总体设计,33,4.4 软件结构设计启发式规则,2模块的作用域应该在控制域内 作用域:指受该模块内一个判断影响的所有模块的集合
15、。控制域:指模块本身以及其所有直接或者间接从属于它的模块集合。,第4章-总体设计,34,4.4 软件结构设计启发式规则,(a)(b)(c)图4.14 模块的作用域和控制域(a)差的结构图(b)不理想的结构图(c)理想的结构图,第4章-总体设计,35,4.4 软件结构设计启发式规则,改进方法:(1)上移判断点。如图4.14(a)所示,将模块D中的判断点上移到它的上层模块B中,或者将整个模块D合并到模块B中,使该判断的层次升高,以扩大它的控制域。(2)下移受判断影响的模块。将受判断影响的模块下移到判断所在模块的控制域内,如图4.14(a)所示,将模块C下移到模块D的下层。,第4章-总体设计,36,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 总体 设计 课件

链接地址:https://www.desk33.com/p-740534.html