好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

自考软件工程第4章知识点总结.ppt

39页
  • 卖家[上传人]:人***
  • 文档编号:606022973
  • 上传时间:2025-05-23
  • 文档格式:PPT
  • 文档大小:466.50KB
  • / 39 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第4章 软件概要设计,4.1 软件概要设计的基本任务,4.2 软件设计的基本原理,4.3 软件结构优化准则,4.4 面向数据流的设计方法,4.5 基于IDEF,O,图的设计方法,4.6 表示软件结构的另一种图形工具HIPO图,第 4 章 软件概要设计,返回主目录,1,4.1软件概要设计的基本任务,基本任务,1.设计软件系统结构(简称软件结构,),(1)采用某种设计方法,将一个复杂的系统按功能划分成模块2)确定每个模块的功能3)确定模块之间的调用关系4)确定模块之间的接口,即模块之间传递的信息5)评价模块结构的质量2,软件结构的设计是以模块为基础的软件结构的设计是概要设计关键的一步,直接影响到详细设计与编码的工作软件系统的质量及整体特性都在软件结构的设计中决定2.,数据结构及数据库设计,1),数据结构的设计,2),数据库的设计:概念设计、逻辑设计、物理设计数据库的“概念设计”与“逻辑设计”分别对应于系统开发中的“需求分析”与“概要设计”,而数据库的“物理设计”与模块的“详细设计”相对应3,3,.编写概要设计文档,编写概要设计文档的内容如下:,(1)概要设计说明书。

      2)数据库设计说明书3)用户手册4)修订测试计划4,.评审,软件概要设计文档,4,4.2 软件设计的基本原理,模块化,模块在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数和子程序等模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能5,模块化的依据:,设问题,x,表示它的复杂性函数为,C(x),解决它所需的工作量函数为,E(x),对于问题,P1,和,P2,;,C(P1+P2),C(P1)+C(P2),E(P1+P2),E(P1)+E(P2),在划分模块时,模块数目要适度并减少接口的代价,提高模块的独立性图 4.1 模块与开发软件成本,6,抽象,抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同特性而暂不考虑它的细节,不考虑其他因素信息隐蔽,所谓信息隐蔽,是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的有效的模块化通过定义一组相互独立的模块来实现,这些独立的模块彼此之间仅仅交换那些为了完成系统功能所必需的信息,而将那些自身的实现细节与数据“隐藏”起来。

      7,模块独立性,模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单只有符合和遵守模块化、抽象及信息隐蔽这些软件工程基本原理,才能得到高度独立的模块良好的模块独立性能使开发的软件具有较高的质量由于模块独立性强,信息隐藏性能好,并完成独立的功能,且它的可理解性、可维护性及可测试性好,必然导致软件的可靠性高另外,接口简单、功能独立的模块易开发,且可并行工作,有效地提高了软件的生产率8,模块独立性度量的两个定性标准,耦合性和内聚性1.,耦合性,(Coupling),耦合性也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量模块之间联系越紧密,其耦合性就越强,模块的独立性则越差模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息9,模块的耦合性由低到高有以下,6,种类型:,(1),无直接耦合:指两个模块之间没有直接的关系这种耦合性最弱,模块独立性最高2),数据耦合:指两个模块之间有调用关系,传递的是简单的数据值这种耦合程度较低,模块的独立性较高3),标记耦合:指两个模块之间传递的是数据结构的地址,如高级语言中的数组名、记录名和文件名等这些名字即为标记。

      标记耦合是不可避免的4),控制耦合:指一个模块调用另一个模块时,传递的是控制变量,(,如开关、标志等,),,被调模块通过该控制变量的值有选择地执行块内某一功能通常将控制耦合改变为数据耦合10,(5)公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合公共数据环境可以是全程变量或数据结构等公共耦合有两种情况:松散的公共耦合;紧密的公共耦合6)内容耦合:是最高程度的耦合,也是最差的耦合模,块化设计的目标:提高模块独立性、建立模块间尽可能松散的系统为了降低模块间的耦合度,可采取以下几点措施:,(1),在耦合方式,上降低模块间接口的复杂性2),在传递信息类型上尽量使用数据耦合,避免控制耦合,慎用或有控制地使用公共耦合11,2.内聚性(Cohesion),内聚性也称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量若一个模块内各元素(语句之间、程序段之间)联系的越紧密,则它的内聚性就越高内聚性从低到高有以下几种类型:,(1),偶然内聚:指一个模块内的各处理元素之间没有任何联系是最差的内聚情况2),逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

      内聚性较差3),时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块时间内聚比逻辑内聚程度高12,(4)通信内聚:指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据通信内聚的模块内聚性较高,可达到信息隐藏5)顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入6),功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性13,4.3 软件结构优化准则,软件结构图,软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系软件结构往往用树状或网状结构的图形来表示结构图的主要内容有:,(1),模块2),模块的控制关系3),模块间的信息传递4),两个附加符号:表示模块有选择调用或循环调用14,4.3 选择调用和循环调用的表示,(a)选择调用;(b)循环调用,图 4.2 模块间的控制关系及信息传递,15,(5)结构图的形态特征结构图的形态特征包括:,深度,:指结构图控制的层次,也是模块的层数。

      宽度,:指一层中最大的模块个数扇出:,一个模块直接下属模块的个数图 4.4 结构图示例,16,扇入:,指一个模块直接上属模块的个数,如图 3.4 所示,模块T的扇入为 46)画结构图应注意的事项如下:,同一名字的模块在结构图中仅出现一次调用关系只能从上到下不严格表示模块的调用次序,习惯上从左到右17,软件结构设计优化准则,1.模块独立性准则,划分模块时,,尽量做到高内聚,低耦合,保持模块相对独立性,,并以此原则优化初始的软件结构2.控制范围与作用范围之间的准则,一个模块的作用范围应在其控制范围之内,且条件判定所在的模块应与受其影响的模块在层次上尽量靠近一个模块的作用范围指受该模块内一个判定影响的所有模块的集合一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合18,图 4.5模块的判定作用范围,(a)差的结构图;(b)不理想的结构图;(c)理想的结构图,如果在设计过程中,发现模块作用范围不在其控制范围之内,可以用以下方法加以改进:,(1)上移判断点2)下移受判断影响的模块19,3.软件结构的形态特征准则,软件结构的深度、宽度、扇入及扇出应适当4.模块的大小准则,在考虑模块的独立性同时,为了增加可理解性,模块的大小最好在50150条语句左右,便于人们阅读与研究。

      5.模块的接口准则,模块的接口要简单、清晰及含义明确,便于理解,易于实现、测试与维护20,4.4 面向数据流的设计方法,数据流的类型,1.变换型数据流图,变换型的DFD是由输入、变换(或称处理)和输出三部分组成,,如图4-6所示变换型数据处理的工作过程一般分为取得数据、变换数据和给出数据这三步体现了变换型DFD的基本思想变换是系统的主加工,变换输入端的数据流为系统的,逻辑输入,,输出端为,逻辑输出,而直接从外部设备输入的数据称为,物理输入,,反之称为,物理输出变换型的DFD是一个顺序结构21,图 4-6 变换型DFD,22,2.事务型的数据流图,若某个加工将它的输入流分离成许多发散的数据流,形成许多平行的加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为事务型的数据流图,这个加工称为事务处理中心,,如图4-7所示图 4-7 事务型DFD,23,设计过程,结构化设计方法的过程如下:,(1)精化DFD2)确定DFD类型3)分解上层模块,设计中下层模块结构4)根据优化准则对软件结构求精5)描述模块功能、接口及全局数据结构6)复查,如果有错,转(2)修改完善,否则进入详细设计。

      24,4.4.3 变换分析设计,当DFD具有较明显的变换特征时,则按照下列步骤设计1.,确定DFD中的变换中心、逻辑输入和逻辑输出,2.设计软件结构的顶层和第一层变换结构,变换中心确定以后,就相当于决定了主模块的位置,这就是软件结构的顶层,如图8.14 所示其功能是主要完成所有模块的控制,它的名称是系统名称,以体现完成整个系统的功能主模块确定之后,设计软件结构的第一层第一层至少要有输入、输出和变换三种功能的模块25,图 8.14,变换分析设计举例,26,3.设计中、下层模块,对第一层的输入、变换及输出模块自顶向下、逐层分解1)输入模块的下属模块的设计,每个输入模块可以设计成两个下属模块:一个接收,一个转换用类似的方法一直分解下去,直到物理输入端2)输出模块的下属模块的设计,每个输出模块可以设计成两个下属模块:一个转换,一个发送,一直到物理输出端3)变换模块的下属模块的设计,根据DFD中变换中心的组成情况,按照模块独立性的原则来组织其结构,一般对DFD中每个基本加工建立一个功能模块27,4.设计的优化,(1)输入部分的求精:对每个物理输入设置专门模块,以体现系统的外部接口;其他输入模块并非真正输入,当它与转换数据的模块都很简单时,可将它们合并成一个模块。

      2)输出部分的求精:为每个物理输出设置专门模块,同时注意把相同或类似的物理输出模块合并在一起,以减低耦合度3)变换部分的求精:根据设计准则,对模块进行合并或调整28,4.4.4 事务分析设计,对于具有事务型特征的DFD,则采用事务分析的设计方法结合图4-9,说明该方法的设计过程1)确定DFD中的事务中心和加工路径,当DFD中的某个加工具有明显地将一个输入数据流分解成多个发散的输出数据流时,该加工就是事务中心从事务中心辐射出去的数据流为各个加工路径2)设计软件结构的顶层和第一层事务结构,设计一个顶层模块,它是一个主模块,有两个功能,一是接收数据,二是根据事务类型调度相应的处理模块事务型软件结构应包括接收分支和发送分支两个部分29,图4.9,事务分析设计举例,30,(1)接收分支:负责接收数据,它的设计与变换型DFD的输入部分设计方法相同2)发送分支:通常包含一个调度模块,它控制管理所有的下层的事务处理模块当事务类型不多时,调度模块可与主模块合并3)事务结构中、下层模块的设计、优化等工作同变换结构31,4.4.5 综合型数据流图与分层数据流图映射成软件结构的设计,1.综合DFD的映射,一个大型系统的DFD中,既有变换流,又有事务流,属于综合的数据流图,其软件结构设计方法如下:,(1)确定DFD整体上的类型。

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