总体设计PPT课件_第1页
总体设计PPT课件_第2页
总体设计PPT课件_第3页
总体设计PPT课件_第4页
总体设计PPT课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、.,1,第四章 总体设计 4.1 设计过程 4.2 设计原理 4.3 软件结构的设计方法 4.4 启发规则,.,2,总体设计又称为概要设计或初步设计,它的基本目的就是回答“概括地说,系统应该如何实现?”这个问题。 在总体设计阶段,应划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等,并确定系统中每个程序由哪些模块组成以及这些模块相互间的关系。,.,3,4.1 设计过程,总体设计通常由系统设计和结构设计两个阶段组成。系统设计阶段确定系统的具体实现方案,结构设计阶段确定软件的结构。,.,4,实施总体设计的过程如下:,(1)设想可能的方案 (2)选取合理的方案 (3)推荐最佳方案 (4)功

2、能分解 (5)设计软件结构 (6)数据库设计 (7)制定测试计划 (8)编写文档 (9)审查与复审,.,5,4.2.1模块化设计 把大型软件按照规定的原则划分为一个个较小的、相对独立但又相关的模块的设计方法,叫做模块化设计(modular design)。 模块(module)是数据说明和可执行语句等程序对象的集合,每个模块单独命名并且可以通过名字对模块进行访问。 实现模块化设计的重要指导思想是模块化(分解)、信息隐藏和模块独立性。,4.2 设计原理,.,6,如果一个大型程序仅由一个模块组成,它将很难被人理解。 设函数C(x)定义问题x的复杂程度,函数E(x)确定解决问题x所需要的工作量(时间

3、)。 对于两个问题Pl和P2,如果 C(P1)C(P2),显然 E(P1)E(P2)根据人类解决一般问题的经验,如果一个问题由Pl和P2两个问题组合而成,那么它的复杂程序大于分别考虑每个问题时的复杂程度之和, 即C(PlP2)C(P1)C(P2) 综上所述,可得到下面的不等式 E(PlP2)E(Pl)E(P2) 结论:把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了,.,7,模块与软件耗费,成 本,模块数目,最小成本 M,软件总成本,接口成本,成本模块,.,8,4.2.2 抽象与逐步求精,抽象就是抽出事物的本质特性而暂时不考虑它们的细节。 由于人类思维能力的限制,如果每次考虑的

4、因素太多,就不可能作出精确的思维。处理复杂系统的唯一有效的方法就是用层次的方式构造和分析它。一个复杂的动态系统首先可以用一些高级的抽象概念构造和理解,这些高级概念又可以用一些较低级的概念构造和理解,如此进行下去,直至最低层次的具体元素。 逐步求精与抽象是紧密相关的。随着软件开发工程的进展,在软件结构每一层中的模块,表示了对软件抽象层次的一次精化。,.,9,4.2.3 信息隐藏,模块内部的数据与过程,应该对不需要了解这些数据与过程的模块隐藏起来。只有那些为了完成软件的总体功能而必需在模块间交换的信息,才允许在模块间进行传递。 实际上,隐藏的不是有关模块的一切信息,而是模块的实现细节。有人主张把这

5、条原理称为“细节隐藏”。,.,10,4.2.4 模块独立性,模块独立性(module independence)概括了把软件划分为模块时要遵守的准则,也是判断模块构造是否合理的标准。一般地,坚持模块的独立性是获得良好设计的关键。 模块独立的概念是模块化、抽象、信息隐藏概念的直接结果。 模块的独立性可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合用于衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚用于衡量一个模块内部各个元素间彼此结合的紧密程度。,.,11,耦合,耦合:是对模块间相互关联程度的一种度量。它表现了模块的外部特征。模块间的耦合越低,模块的独立性越好。 模块的耦合有以下几种

6、: 低耦合:包括非直接耦合、数据耦合、特征耦合。 中耦合:包括控制耦合、外部耦合。 高耦合:包括公共耦合、内容耦合。,.,12,耦合, 非直接耦合 是指两个模块能彼此独立地工作,没有直接的关系。它们的关系是非直接的,仅通过主程序的控制和调用来实现。所以两者之间也不传递任何信息。这样的模块间的关系,称为非直接耦合或称为独立耦合。,.,13,耦合, 数据耦合 是指一个模块带参数A调用另一个模块,而被调用模块执行后返回调用模块为参数B,并且参数A和B为单个数据项。或者说被调用模块的输入和输出都是数据项参数。 例如:某进程A调用“分配主存”模块,A传送一个参数给分配主存模块是数据项参数要求的主存大小,

7、返回A的参数是分给的主存的起始地址。,.,14,耦合,特征耦合 是指一个模块调用另一个模块时,不是传送数据A本身,而是存放数据A的变量名或文件名(是数据的特征,故称特征耦合)等。这种耦合比数据耦合具有更多的出错可能性,因为数据本身和特征(变量名和文件名等)两者都可能出错。,.,15,耦合, 控制耦合 是指一个模块调用另一个模块时,传送的不是数据参数,而是控制变量,开关变量等用来控制被调用模块的功能。也就是被调用模块内的逻辑控制的走向,受控于调用模块。 在控制耦合情况下,模块内具有多个功能,根据控制参数的值而选用相应的功能部分执行。,.,16,耦合, 外部耦合 是指与计算机外部设备有关的模块,例

8、如输入、输出及数据交换的模块,只有当需要的设备正常联机时,这些模块才能正常工作。,.,17,耦合,公共耦合 又称公共数据区耦合,是指若干个模块共同享有对公用数据区的读和写的访问权。 公共数据区可以是全程变量、共享的通信区、内存的公共覆盖区等。 当只有两个模块共享公共数据区,那么这种耦合有两种可能: 一是:一个模块往公共数据区送数据,另一个模块从公共数据区取数据,这是数据偶合的一种情形,是比较松散的耦合。 另一种是:两个模块都是既往公共数据区送数据,又从里面取数据,这种耦合比较紧密,介于数据耦合和控制耦合之间。,.,18,耦合,模块间公共耦合是一个非常不好的耦合情况,模块的独立性极差。这种耦合存

9、在以下问题: 这种耦合使软件的可理解性降低,模块间存在错综复杂的联系。多个模块共用大量的数据,使用的方式往往是隐含的,不需要显示本模块要用公用数据区中的那些数据,因而往往搞不清某个模块究竟用了那些数据,而某个数据又有哪几个模块在使用。 公共耦合使软件可维护性也很差。例如要修改一个变量的名称或属性时,由于每个模块都可能隐式地使用这个变量,所以只有彻底检查系统每个模块后,才能确定要对哪些模块做相应修改。反过来,如果修改了一个模块,则很难确定还有哪些数据也必须予以修改。 公共耦合使软件的可靠性大大降低。其原因在于,公共数据区没有任何保护措施,哪个模块都可以随意地读写其中的数据,所以某个模块的错误可以

10、扩散,导致某些变量错误,而这些错误又能通过使用这些数据的模块出错,最终使系统无法运行。,.,19,耦合, 内容耦合 是指一个模块直接访问另一模块的内部信息(程序代码或内部数据)。这是最不好的耦合形式,它对模块独立性破坏最大,造成软件的可维护性、可理解性和可靠性最为恶劣。,.,20,内聚,内聚:是指一个模块内部的各成分之间(如语句之间或语句段之间)的联系。内聚性越高,模块的性能越好。 内聚分为: 低内聚包括:偶然内聚、逻辑内聚、时间内聚; 中等程度内聚包括:过程内聚、通讯内聚; 高内聚包括:顺序内聚、功能内聚。 内聚程度由高到底:,.,21,内聚, 偶然内聚 偶然内聚是指模块内各成分之间并不存在

11、有意义的联系。属于低内聚 偶然内聚的缺点是: 可理解性差。任何人都难以理解这个模块究竟干什么,为什么存在,甚至难以命名。 可修改性差。假定A模块要求把语句“MOVE O TO R”改为“MOVE N TO R”,而其它模块不想改。诸如此类,可见模块的修改相当困难。,.,22,内聚, 逻辑内聚 逻辑内聚是指把几个在逻辑上具有相似功能的模块合并,而形成一个新的模块,包含有若干个在逻辑上具有相似功能段的模块,由传送给模块的参数来确定该模块完成那一种功能。 逻辑内聚也属于低内聚。,.,23,内聚, 时间内聚 时间内聚是指一软件运行中有几个动作经常需要在同一个时间段内完成。例如为各种变量置初值的动作和打

12、开文件的动作经常在系统初始化时进行。因此,把这些在时间上同时进行的动作组合起来形成一个模块,该模块的内聚称为时间内聚。,.,24,内聚, 过程内聚 过程内聚是指一个模块内的各成分是相关的,并且必须以特定次序执行。过程内聚的内部结构通常是用程序流程图作为工具,通过研究程序流程图来确定模块划分。 过程内聚是属于中等程度的内聚,模块内各成分的联系紧密程度优于前面讲述的几种,也比它们好理解和维护。,.,25,内聚, 通信内聚 通信内聚是指模块内各成分有公用的数据区,或者说模块中所有成分都使用相同的输入或产生相同的输出。 例如:“查询模块”中有两个功能成分:“产生教师学生表”与“产生学生选课表”都要用到

13、库文件“学生课程教师”,显然,这种内聚使模块中各功能成分关系密切多了,因为它们使用或产生关于同一数据区中的相应数据,说明功能是密切相关的,所以理解性和维护性都较好。,.,26,内聚, 顺序内聚 顺序内聚是指模块内各成分的执行顺序是以确定的顺序进行,不能任意改变。往往前一功能成分的输出就是后一功能成分的输入。并且这些功能成分是与同一功能密切相关的。,.,27,内聚, 功能内聚 功能内聚是指模块内包括并仅包括为完成某个功能所必须的所有成分。或者说模块内的所有成分共同完成一个功能,缺一不可。 这种模块的聚合程度最高,结构化设计的目标就是获得这种模块。,.,28,设计时应力争做到高内聚,并且能够辨认出

14、低内聚的模块,并采取措施进行修改,以提高模块的内聚程度、降低模块间的耦合程度,从而获得较高的模块独立性。,.,29,4.3 软件结构的设计方法,一、结构化的设计方法 面向数据流设计方法是结构化设计的方法的重要组成部分。它是在数据流图的基础上进行设计工作的。 该方法的实施要点是: 1. 首先研究、分析和审查数据流图。 2. 然后根据数据流图决定问题的类型。 3. 由数据流图推导出系统的初始结构图。 4. 运用一些优化原则来改进系统的初始结构图,直到得到符合要求的结构图为止。 5. 然后进入详细设计阶段并制定测试计划。,.,30,二、结构图(SC Structure Chart),编辑学生记录,读

15、学生记录,学生数据,无此学生,学号,模块,数据信息,控制信息,成分:,.,31,结构图(SC)举例,医院管理系统,门诊 管理,药房 管理,药库 管理,病房 管理,财务 管理,处,方,挂号 处理,挂,号,费,总,计,挂 号 单,挂 号 费 总 计,出库 处理,进药 管理,病历 管理,处方 管理,常规 处理,.,32,SC中的选择调用,A,C,B,D,A根据内 部判断决定是否调用B,A按另一判 定结果选择调用C或D,.,33,SC中的循环调用,A,B,C,A根据内在的循环重 复调用B、C等模块,.,34,酒店管理信息系统功能结构图,H M I S,收银管理子系统,收银管理子系统,收银管理子系统,客

16、人登记,预定登记,客房处理,历史记录,客房查询,预定查询,餐桌安排,菜单作业,营业结帐,汇总打印,各类查询,初始设置,客帐处理,退房处理,夜审处理,客帐查询,报表打印,.,35,三、 面向数据流的设计方法 (结构化设计方法SD),1. 面向数据流设计方法的基本概念 SD以数据流图为基础,它定义了把DFD变换成软件结构的不同映射方法,映射,DFD (问题结构),软件系统的结构 (程序结构),.,36,数据流图可分为两种类型: 变换型数据流 事务型数据流,.,37,.,38,变换型数据流举例,输入 信息,物理 输入,格式 检查,处理,显示,正确 信息,结果,物理 输出,数据,变换中心,逻辑 输入,

17、逻辑 输出,传入部分,传出部分,特点:具有明确的传入、变换(或称主加 工) 和传出界面的DFD,.,39,变换流示意图,信息,时间,信息流,输入流,输出流,交换流,外部 表示,内部 表示,.,40,事务型数据流图举例,I,M,L,N,O,A,B,C,D,F,E,G,H,.,41,大型系统DFD中,变换型和事务型 结构往往共存:,.,42,2.面向数据流方法的设计过程,精化数据流图,区分事务中心 和数据接收路径,映射成变换结构,流类型,区分输入和 输出分支,映射成事务结构,用启发式设计规则精化软件结构,导出接口描述和全程数据结构,复查,详细设计,“事务”,“变换”,事务分析,变换分析,.,43,

18、初始的SC,主模块,输入模块,主加工模块,输入模块,事务控制模块,接受模块,动作发送模块,动作1模块,动作2模块,动作3模块,由变换分析产生,由事务分析产生,.,44,变换分析设计方法,步骤: (1)区分传入、变换中心、传出部分,在DFD上标明分界线 (2)第一级分解(建立初始SC框架) 设计顶层和第一层模块 (3)第二级分解(分解SC各分支) 自顶向下分解,设计出每个分支的中、下层模块,.,45,(1)区分传入、变换中心、传出部分,在DFD上标明分界线 变换中心的任务就是通过计算或者处理,把系统的逻辑输入变换(或加工)为系统的逻辑输出。 所谓逻辑输入,是指离物理输入端(输入始端)最远,但仍可

19、以被看作系统输入的那些数据流。 所谓逻辑输出,是指离物理输出端(输出末端)最远,但仍可以被看作系统输出的那些数据流。,.,46,传入部分,.,47,(2)第一级分解(建立初始SC框架)设计顶层和第一层模块,MC,MT,MA,ME,.,48,第一级分解后的SC,第一层,顶层,.,49,(3)第二级分解(分解SC各分支)自顶向下分解,设计出每个分支的中、下层模块传入分支的分解,A,b,a,MA,C,B,c,E,D,d,e,c,e,.,50,传出分支的分解,W,v,ME,U,w,u,w,u,V,(1),.,51,中心加工分支的分解,MT,P,Q,R,e,c,p,r,u,w,p,r,.,52,(2)

20、事务分析设计方法,步骤: (1)在DFD上确定事务中心、接收部分和发送部分。 (2)画出SC框架,把DFD上的三部分分别映射为事务控制模块、接收模块和动作发送模块。 (3)分解细化接收分支和发送分支,完成初始SC。,.,53,事务分析的映射方法,总控,调度,B路径,C路径,接收 路径,.,54,事务流设计举例 (另一种画法),输入 A,XX系统,变换控制,A,L,M,A,G,D,B,C,F,E,输出 E、F、G,E、F、G,E、F、G,输出H,O,E、F、G,H,H,N,.,55,3,4,1,2,6,7,5,8,10,9,11,变换中心,传入,传出,事务型,(3) 混合流设计举例,.,56,混

21、合流设计举例,T,事务 中心,传入,变换,传出,接收部分,发送 部 分,.,57,AB,T1,变换中心,传入,传出,T2,T3,a,b,b1,b2,b3,c1,c2,c3,d,e,g,f,j,m,事务流子系统,BC,CD,DE,EH,HK,FJ,KL,LM,h,混合流设计举例,k,.,58,混合流设计举例,输入D,XX系统,变换控制,输出K,输入C,d,c,输出L,CD,DE,FJ,EH,HK,KL,c,d,d,k,k,k,L,L,输出M,LM,m,m,L,事务子系统,.,59,4.4 启发规则,将初始SC根据模块独立性原则进行精化,对模块进行合并、分解修改、调整,得到高内聚、低耦合模块,得到易于实现、易于测试和易于维护的软件结构,产生设计文档的最终SC。,.,60,改进软件结构设计的指导原则 (软件结构设计的启发式规则),(1)模块功能的完善化 (2)消除重复功能 (3)将模块的影响限制在模块的控制范围内 (4)深度、宽度、扇出和扇入适中 (5)模块大小适中 (6)降低模块接口的复杂性 (7)模块功能可预测,.,61,(1) 模块功能的完善化,完整的模块应包括三部分: (1)执行规定功能部分 (2)出错处理部分

温馨提示

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

评论

0/150

提交评论