第三章 软件设计 SD方法_第1页
第三章 软件设计 SD方法_第2页
第三章 软件设计 SD方法_第3页
第三章 软件设计 SD方法_第4页
第三章 软件设计 SD方法_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 软件设计 主要内容: 软件设计步骤 软件结构设计 软件结构设计的图形工具:HIPO图和结构图 面向数据流设计方法 过程设计工具 系统人机界面设计 数据代码设计 面向数据结构的设计方法 软件设计文档 软件设计是软件开发的关键步骤,直接影响软软件设计是软件开发的关键步骤,直接影响软件质量件质量。软件设计阶段要解决软件设计阶段要解决“如何做如何做”的问题。的问题。总体设计的任务是回答总体设计的任务是回答“概括的说,系统应该如概括的说,系统应该如何实现何实现”的问题。的问题。3.1 3.1 软件设计概述软件设计概述主要任务:主要任务: 将需求分析阶段获得的需求说明书转换为计将需求分析阶段获得的

2、需求说明书转换为计算机中可实现的系统,确定系统的软件结构,形算机中可实现的系统,确定系统的软件结构,形成软件的模块结构图,最终得到软件总体设计说成软件的模块结构图,最终得到软件总体设计说明书。明书。 即软件设计的任务是通过多项设计,构造一个即软件设计的任务是通过多项设计,构造一个高内聚低耦合的软件模型。高内聚低耦合的软件模型。过程设计过程设计系统结构设计系统结构设计数据设计数据设计界面设计界面设计软件设计软件设计具体过程: 系统设计 结构设计 数据库设计 编写总体设计文档 审查和复审3.2 软件设计基本原理 软件的模块化软件的模块化 模块独立性模块独立性 抽象和逐步求精抽象和逐步求精 信息隐蔽

3、和局部化信息隐蔽和局部化 模块:模块:构成程序的基本构件,在一个模块中,功能、构成程序的基本构件,在一个模块中,功能、状态和接口反映模块的外部特性,逻辑(即内部数据和程状态和接口反映模块的外部特性,逻辑(即内部数据和程序代码)反映它的内部特性。序代码)反映它的内部特性。 模块化:模块化:解决一个复杂问题时自顶向下逐层把软件系解决一个复杂问题时自顶向下逐层把软件系统化分成若干模块的过程。就是将系统划分成若干模块,统化分成若干模块的过程。就是将系统划分成若干模块,每个模块完成一个特定的子功能,所有的模块按某种方法每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统

4、所要求的功能。组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手段。模块化是软件解决复杂问题所具备的手段。 我们利用模块化来降低软件复杂度。注意选择分解的我们利用模块化来降低软件复杂度。注意选择分解的最佳模块数。最佳模块数。一、模块化准则模块分解的目的:模块分解的目的: 假设:假设: 函数函数C C(X X)问题问题X X的复杂性;的复杂性; 函数函数E E(X X)求解问题求解问题X X需要花费的工作量(时间);需要花费的工作量(时间); 对于问题对于问题P1P1和和P2P2,如果,如果 : C C(P1P1)CC(P2P2)则有则有 : : E E(P1P

5、1)EE(P2P2) * * 结论:解决一个复杂问题总比解决一个简单问题耗费更多结论:解决一个复杂问题总比解决一个简单问题耗费更多的工作量。的工作量。 同时同时 有:有:C C(P1+P2P1+P2)CC(P1P1)+C+C(P2P2) * * 结论:由结论:由P1P1、P2P2组合而成的问题的复杂性往往比考虑组合而成的问题的复杂性往往比考虑 单个问题复杂性的和更大。单个问题复杂性的和更大。 于是有:于是有: E E(P1+P2P1+P2)EE(P1P1)+E+E(P2P2)模块数目与开发成本间的关系模块数目与开发成本间的关系 软件结构表示软件的系统结构,它是软件模块间关系软件结构表示软件的系

6、统结构,它是软件模块间关系的表示,均表示为层次关系的表示,均表示为层次关系。软 件 结 构 示 意 图0层层1层层2层层ABCDEFGHIJKLMN深度宽度扇入为扇入为2扇出为扇出为3扇入为扇入为3宽度深度宽度3层层4层层模块间的关系模块间的关系 深度深度:表示软件结构中从顶层模块到最底层模块表示软件结构中从顶层模块到最底层模块的层数的层数。 宽度宽度:表示控制的总分布。表示控制的总分布。 扇出数扇出数:指一个模块直接控制下属的模块个数。指一个模块直接控制下属的模块个数。 扇入数扇入数:指一个模块的直接上属模块个数。指一个模块的直接上属模块个数。 一个好的软件结构的形态准则是:一个好的软件结构

7、的形态准则是:顶部宽度小,顶部宽度小,中部宽度最大,底部宽度次之;在结构顶部有较高的中部宽度最大,底部宽度次之;在结构顶部有较高的扇出数,在底部有较高的扇入数。扇出数,在底部有较高的扇入数。有有 关关 指指 标标二、软件独立性准则 模块独立性模块独立性是模块化、抽象和信息隐蔽的直接产物,是模块化、抽象和信息隐蔽的直接产物,每个模块只要完成独立的功能,与其它模块联系越小,则每个模块只要完成独立的功能,与其它模块联系越小,则模块的独立性就越强。模块的独立性就越强。独立:模块完成独立的功能独立:模块完成独立的功能 符合信息隐蔽和信息局部化原则符合信息隐蔽和信息局部化原则 模块间关联和依赖程度尽量小模

8、块间关联和依赖程度尽量小 思考回答:思考回答: 为什么模块独立性很重要?为什么模块独立性很重要?三、信息隐蔽 指在设计和确定模块时,使得一个模块内包含的信息指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。是不能访问的。 通过信息隐蔽,可以定义和实施对模块的过程细节和通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。局部数据结构的存取限制。 结构化设计方法的启发式原则n改进软件结构以提高模块独立性改进软件结构以提高模块独立性 力求降低耦合、提高内聚力求降低耦合、提高

9、内聚n软件结构的模块规模应该适中软件结构的模块规模应该适中 过大,可理解程度很低;过小,则开销大于有效操作过大,可理解程度很低;过小,则开销大于有效操作n深度、宽度、扇出和扇入都应适当深度、宽度、扇出和扇入都应适当 经验证明,经验证明,一个设计好的软件结构,通常顶层扇出比一个设计好的软件结构,通常顶层扇出比较高,中层扇出比较少,底层有高扇入。较高,中层扇出比较少,底层有高扇入。n模块接口简单清晰模块接口简单清晰模块独立程度的定性标准 内聚性内聚性 度量模块的内部特征,标志一个模块内各个元素度量模块的内部特征,标志一个模块内各个元素彼此结合的紧密程度,也称块内联系。彼此结合的紧密程度,也称块内联

10、系。 耦合性耦合性 度量模块的外部特征,是对一个软件结构内不同度量模块的外部特征,是对一个软件结构内不同模块之间互连程度的度量,也称块间联系。模块之间互连程度的度量,也称块间联系。 每个模块只要完成独立的功能,与其它模块联系每个模块只要完成独立的功能,与其它模块联系越少,则模块的独立性就越强。通过模块与模块之间越少,则模块的独立性就越强。通过模块与模块之间的耦合性和模块内部的内聚性来衡量模块的独立性。的耦合性和模块内部的内聚性来衡量模块的独立性。模块的内聚 内聚度按其高低程度可分为七级,内聚度越高越好。内聚度按其高低程度可分为七级,内聚度越高越好。内聚性:又称为块内联系,指模块的功能强度的度量

11、,即一内聚性:又称为块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。个模块内部各个元素彼此结合的紧密程度的度量。 (1 1)偶然内聚)偶然内聚 (2 2)逻辑内聚)逻辑内聚 (3 3)时间内聚)时间内聚 (4 4)过程内聚)过程内聚 (5 5)通信内聚)通信内聚 (6 6)顺序内聚)顺序内聚 (7 7)功能内聚)功能内聚 内聚按紧密程度从高到低排列:内聚按紧密程度从高到低排列: 功能内聚、顺序内聚功能内聚、顺序内聚 、通信内聚、过程内聚、时间、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚。内聚、逻辑内聚、偶然内聚。 1 1)偶然内聚)偶然内聚低级内聚低级内

12、聚 偶然内聚:是指一个模块内各成分为完成一组功能而偶然内聚:是指一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。组合在一起,它们相互之间即使有关系,也很松散。 如:如:A A、B B两个模块含有相同的一段代码两个模块含有相同的一段代码C C,程序员,程序员为了节约内存,而将为了节约内存,而将A A、B B放在同一模块内,以共享放在同一模块内,以共享C C,模块模块ABAB即为偶然内聚。即为偶然内聚。缺点:可理解性差,缺点:可理解性差, 可修改性差可修改性差 2 2)逻辑内聚)逻辑内聚低级内聚低级内聚 如果一个模块完成的任务在逻辑上属于相如果一个模块完成的任务在逻辑

13、上属于相同或相似的一类,则称之为逻辑性内聚。同或相似的一类,则称之为逻辑性内聚。 例如:把几种相关的功能(逻辑上相似的功能)组例如:把几种相关的功能(逻辑上相似的功能)组合在一模块内,每次调用时,由传给模块的判定参数来确合在一模块内,每次调用时,由传给模块的判定参数来确定该模块应执行哪一个功能。定该模块应执行哪一个功能。 3 3)时间内聚)时间内聚低级内聚低级内聚 如果一个模块包含的任务必须在同一时间段内执行,则称之为时间性内聚。 例如:系统初始化模块、系统结束模块、紧急故障处例如:系统初始化模块、系统结束模块、紧急故障处理模块等均是时间性内聚模块理模块等均是时间性内聚模块 例如:财务软件中,

14、例如:财务软件中,“年终结算年终结算”就是在年终时需就是在年终时需要做的一系列任务,如第四季度结算、年结算、年度要做的一系列任务,如第四季度结算、年结算、年度经费结余额转入下一年度的经费结余额转入下一年度的“经费来源经费来源”、“下一年下一年度度”的的“支出支出”取初始值为取初始值为0 0等,把这些任务放在同一等,把这些任务放在同一模块中。模块中。 4 4)过程内聚)过程内聚中级内聚中级内聚 过程性内聚:模块内成分彼此相关,并且必须按特过程性内聚:模块内成分彼此相关,并且必须按特定的次序执行。定的次序执行。 举例:使用流程图作为工具设计程序时,把流程图举例:使用流程图作为工具设计程序时,把流程

15、图中的某一部分划出来组成模块,就得到过程内聚模块。中的某一部分划出来组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。分成三个模块,这三个模块都是过程内聚模块。 5 5)通信内聚)通信内聚中级内聚中级内聚 通信性内聚:模块中所有元素都使用同一个输通信性内聚:模块中所有元素都使用同一个输入数据和产生同一个输出数据。入数据和产生同一个输出数据。流水账文件产生上旬统计表产生中旬统计表产生下旬统计表产生月统计表 例如,财务软件中的例如,财务软件中的流水账文件中含有某个流水账文件中含有某个月

16、内全部收支流水账记月内全部收支流水账记录,利用该文件可分别录,利用该文件可分别产生该月上旬、中旬、产生该月上旬、中旬、下旬的三种不同统计表,下旬的三种不同统计表,以及该月总统计报表。以及该月总统计报表。 6 6)顺序内聚)顺序内聚高级内聚高级内聚 顺序性内聚:若一个模块内的各处理成分均与同一功顺序性内聚:若一个模块内的各处理成分均与同一功能相关,且这些处理必须顺序执行,则称顺序内聚;能相关,且这些处理必须顺序执行,则称顺序内聚; 通常,通常,一个处理成分的输出是另一个处理成分的输入。一个处理成分的输出是另一个处理成分的输入。求一元二次方程求一元二次方程1.输入系数输入系数2.求解求解3.打印方

17、程的解打印方程的解思考:过程内聚和顺序内聚区别?思考:过程内聚和顺序内聚区别? 顺序内聚中是数据流从一个处理元流到另一个处理元;顺序内聚中是数据流从一个处理元流到另一个处理元; 过程内聚是控制流从一个动作流到另一动作。过程内聚是控制流从一个动作流到另一动作。 7 7)功能内聚)功能内聚高级内聚高级内聚 功能性内聚:如果模块内所有成分形成一个整体,完成功能性内聚:如果模块内所有成分形成一个整体,完成单个功能,则称功能内聚,功能内聚是最高程度的内聚形式。单个功能,则称功能内聚,功能内聚是最高程度的内聚形式。 例如,一个模块仅完成一个矩阵的输出,就是一个具例如,一个模块仅完成一个矩阵的输出,就是一个

18、具有功能性内聚的模块。有功能性内聚的模块。小结:小结: 设计软件时,应该能够识别内聚度的高低,设计软件时,应该能够识别内聚度的高低,并通过修改设计尽可能提高模块内聚度,并通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性。从而获得较高的模块独立性。 力求做到高内聚,尽量少用中内聚,不用力求做到高内聚,尽量少用中内聚,不用低内聚低内聚 耦合度是对软件结构中模块间关联程耦合度是对软件结构中模块间关联程度的一种度量,耦合度也可以分为七级。度的一种度量,耦合度也可以分为七级。 非直接耦合非直接耦合 数据耦合数据耦合 控制耦合控制耦合 特征耦合特征耦合 公共环境耦合公共环境耦合 内容耦合内容耦合

19、模块的耦合 1 1)非直接耦合)非直接耦合最松散的耦合最松散的耦合 如果两模块中任一个都不依赖于对方能独立如果两模块中任一个都不依赖于对方能独立工作,意味着模块间无任何连接,则称这两模工作,意味着模块间无任何连接,则称这两模块为非直接耦合,这类耦合度最低。块为非直接耦合,这类耦合度最低。 2 2)数据耦合)数据耦合 数据耦合:如果两模块间通过参数交换信息,数据耦合:如果两模块间通过参数交换信息,而信息仅限于数据,则称这两模块为数据耦合。而信息仅限于数据,则称这两模块为数据耦合。一般软件系统中都存在数据耦合,它是完成大一般软件系统中都存在数据耦合,它是完成大多数功能所必需的。多数功能所必需的。

20、3 3)特征耦合)特征耦合 两个模块通过传递数据结构(不是简单的两个模块通过传递数据结构(不是简单的数据,而是记录、数组等)加以联系。当被调数据,而是记录、数组等)加以联系。当被调用模块只使用数据结构中的一部分数据元素时,用模块只使用数据结构中的一部分数据元素时,就出现了特征耦合。就出现了特征耦合。思考:如何将特征耦合改为数据耦合?思考:如何将特征耦合改为数据耦合? 4 4)控制耦合)控制耦合 如果两模块间通过参数交换信息,此时若传递的如果两模块间通过参数交换信息,此时若传递的信息中含有控制信息,则耦合度上升为控制耦合。信息中含有控制信息,则耦合度上升为控制耦合。 例如:控制耦合通常会增加系统

21、的复杂性,有时例如:控制耦合通常会增加系统的复杂性,有时适当分解模块可消除控制耦合。适当分解模块可消除控制耦合。去除模块间控制耦合的方法:去除模块间控制耦合的方法: 将被调用模块内的判定上移到调用模块中进行;将被调用模块内的判定上移到调用模块中进行; 被调用模块分解成若干单一功能模块。被调用模块分解成若干单一功能模块。 5 5)外部耦合)外部耦合 外部耦合:一组模块都访问同一全局简单变量。外部耦合:一组模块都访问同一全局简单变量。 外部耦合必不可少外部耦合必不可少, ,但这种模块数目应尽量少但这种模块数目应尽量少。 6 6)公共耦合)公共耦合 公共耦合:一组模块引用同一个公用数据区公共耦合:一

22、组模块引用同一个公用数据区( (也称全局也称全局数据区、公共数据环境数据区、公共数据环境) )。其中,公共数据区指:全局数据结构其中,公共数据区指:全局数据结构 共享的通讯区共享的通讯区 内存的公共覆盖区等内存的公共覆盖区等公共环境耦合存在的问题:公共环境耦合存在的问题: 软件可理解性降低软件可理解性降低 诊断错误困难诊断错误困难 软件可维护性差软件可维护性差 软件可靠性差软件可靠性差 7 7)内容耦合)内容耦合 内容耦合:当一个模块使用另一个模块内部的数内容耦合:当一个模块使用另一个模块内部的数据或控制信息;一个模块直接转移到另一个模块内据或控制信息;一个模块直接转移到另一个模块内部等。部等

23、。如果发生下列情形之一,两模块之间就产生了内容耦合:如果发生下列情形之一,两模块之间就产生了内容耦合: 一个模块直接访问另一模块的内部数据;一个模块直接访问另一模块的内部数据; 一个模块不通过正常入口转到另一模块的内部;一个模块不通过正常入口转到另一模块的内部; 两个模块有部分程序代码重叠;两个模块有部分程序代码重叠; 一个模块有多个入口。一个模块有多个入口。小结:小结:模块耦合越弱,则说明模块的独立性越强模块耦合越弱,则说明模块的独立性越强与内聚度正好相反,在设计软件时应追求尽可能松散耦合与内聚度正好相反,在设计软件时应追求尽可能松散耦合的系统。因为对这类系统中任一模块的设计、测试和维护相对

24、的系统。因为对这类系统中任一模块的设计、测试和维护相对独立。由于模块间联系较少,错误在模块间传播的可能性也随独立。由于模块间联系较少,错误在模块间传播的可能性也随之变小。之变小。如何降低模块间的耦合度:如何降低模块间的耦合度:尽量使用数据耦合;尽量使用数据耦合;少用控制耦合;少用控制耦合;限制公共耦合的范围;限制公共耦合的范围;坚决避免使用内容耦合。坚决避免使用内容耦合。 耦合性耦合性 用于描述模块之间联系的紧密程度。用于描述模块之间联系的紧密程度。内聚性内聚性 用于描述模块内部联系的紧密程度。用于描述模块内部联系的紧密程度。软件独立性的度量标准是两个定性指标:软件独立性的度量标准是两个定性指

25、标:耦合性的几种类型耦合性的几种类型内容耦合内容耦合公共耦合公共耦合控制耦合控制耦合复合耦合复合耦合数据耦合数据耦合偶然型偶然型逻辑型逻辑型瞬时型瞬时型通信型通信型顺序型顺序型功能型功能型内聚性的几种类型内聚性的几种类型软件结构设计优化原则模块结构图的改进模块结构图的改进具体从以下方面改进:具体从以下方面改进:1 1)尽可能建立功能模块)尽可能建立功能模块功能模块具有最强的内聚性,应满足信息屏蔽原则:功能模块具有最强的内聚性,应满足信息屏蔽原则:一个模块内所包含的信息(过程和数据)对不需要这些一个模块内所包含的信息(过程和数据)对不需要这些信息的模块是不能访问的(黑盒)。信息的模块是不能访问的

26、(黑盒)。 按照按照“降低块间联系,提高块内联系降低块间联系,提高块内联系”的设计总则进行的设计总则进行修改,完善系统的模块图,写出模块的功能说明。修改,完善系统的模块图,写出模块的功能说明。2 2)消除重复功能)消除重复功能 若两模块含有重复的部分,应设法将重复的功能若两模块含有重复的部分,应设法将重复的功能消去。消去。(a)XYQ1Q2YQ2QXQ(b)(c)(d)Q重复部分重复部分Y YXQ1YQ2X X控制范围控制范围 结构方面的特点,包括结构方面的特点,包括模块本身以及其所有下属模块(直接模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。或间接从属于它的模块)的集合。作用

27、范围作用范围 判断所涉及的模块,指判断所涉及的模块,指受该模块内一个判定影响的所有模块受该模块内一个判定影响的所有模块的集合。的集合。3 3)模块的作用范围应在控制范围之内TOPXTBAB1B2 如果再设计过程中,发现模块作用范围不在其控如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用制范围之内,可以用“上移判点上移判点”或或“下移受判断下移受判断影响的模块,将它下移到判断所在模块的控制范围影响的模块,将它下移到判断所在模块的控制范围内内”的方法加以改进。的方法加以改进。模块模块A A的控制域:的控制域:ABCDEABCDE模块的集合模块的集合 当当A A中的判定只影响中的判定只影

28、响B B时,满足规则;时,满足规则; 若若A A中的一个判定影响中的一个判定影响F F时,则模块时,则模块A A的作用范围不在它的作用范围不在它的控制范围内。的控制范围内。解决的办法有下面两种:4 4)模块的大小适当)模块的大小适当 模块大小指其篇幅,一般模块大小为模块大小指其篇幅,一般模块大小为50-50-100100行为宜。行为宜。5 5)模块的扇入)模块的扇入/ /扇出数不宜太多扇出数不宜太多 扇出数扇出数 一个模块调用其他模块的个数。一个模块调用其他模块的个数。 扇入数扇入数 一个模块被其他模块调用的个数。一个模块被其他模块调用的个数。 除服务性模块外,模块的扇入扇出数不宜太除服务性模

29、块外,模块的扇入扇出数不宜太多,否则块间联系增加。多,否则块间联系增加。Pqrstu612345编号编号输入输入输出输出1 1飞机类型飞机类型状态标志状态标志2 2飞机零件清单飞机零件清单3 3功能代码功能代码4 4飞机零件清单飞机零件清单5 5零件编号零件编号零件制造商零件制造商6 6零件标号零件标号零件名词零件名词表 模块接口描述习题:确定模块之间的耦合类型习题:确定模块之间的耦合类型模块模块q 、t 和和u更新同一个数据库更新同一个数据库结构化设计图(SC图)1. 结构图的符号 (1)方框代表模块,框内注明模块的名字和主要功能。同一名字的模块只允许出现一次。(2)方框之间的大箭头或直线表

30、示模块的调用关系。 (3)带注释的小箭头表示模块调用时传递的信息及其传递方向。v尾部加空心圆的小箭头表示传递数据信息。v尾部加实心圆的小箭头表示传递控制信息。(4)选择结构,菱形表示有条件的调用(5)循环结构,模块 H 循环调用模块 A,B,C,由左到右顺序调用3.3 3.3 结构化设计方法结构化设计方法 SD(Structured Design)法与法与SA、SP法前后衔接,是结构法前后衔接,是结构化开发方法的核心。化开发方法的核心。它是以需求分析阶段产生的数据流图为基它是以需求分析阶段产生的数据流图为基础,根据问题域的数据流定义一组不同的映射,把数据流图变础,根据问题域的数据流定义一组不同

31、的映射,把数据流图变换成软件结构。换成软件结构。一、一、SD SD 法的基本概念法的基本概念1. SD SD 法的两个阶段法的两个阶段 总体设计总体设计 任务:任务: 解决系统的模块结构,即分解模块,解决系统的模块结构,即分解模块,确定确定模块功能模块功能及系统模块的层次结构。及系统模块的层次结构。 文档:文档:模块结构图及其模块功能说明。模块结构图及其模块功能说明。 详细设计详细设计 对模块图中每个模块的过程进行描述,常用的对模块图中每个模块的过程进行描述,常用的描述的方式有:伪代码、流程图、描述的方式有:伪代码、流程图、N-S图、图、PAD图等图等。2.作用作用 提供了方便的从数据流图到软

32、件结构的变换。提供了方便的从数据流图到软件结构的变换。3.目的目的 提出满足系统需求的最佳软件结构。提出满足系统需求的最佳软件结构。二、数据流类型二、数据流类型变换流事务流三三.SD .SD 法的设计步骤法的设计步骤 对对DFD图进行复审,必要时修改或细化;图进行复审,必要时修改或细化; 根据数据流图确定问题的类型,针对不同的根据数据流图确定问题的类型,针对不同的类型分别进行分析处理;类型分别进行分析处理; 由由DFD映射成初始映射成初始SC图;图; 改进改进SC图,直至得到符合要求的结构图。图,直至得到符合要求的结构图。注意注意:模块结构图不同于框图模块结构图不同于框图软件软件层次性层次性

33、: : 反映软件整体的性质反映软件整体的性质 ( (结构图结构图) )过程性过程性 : : 反映局部的性质反映局部的性质 ( (框图框图) )四四.DFD.DFD图的分类处理图的分类处理 中心变换型中心变换型(transform center) (transform center) 变换分析变换分析 事务处理型事务处理型(transaction) (transaction) 事务分析事务分析变换分析步骤: (1)在)在DFD上区分输入、变换中心和输出上区分输入、变换中心和输出3个部分,标出个部分,标出它们之间的边界;它们之间的边界; (2)画出初始的)画出初始的SC图框架,顶层是主控模块,下层

34、(第图框架,顶层是主控模块,下层(第一层)一般包括输入、输出、变换三个模块。沿数据调用一层)一般包括输入、输出、变换三个模块。沿数据调用线标注数据流的名称。线标注数据流的名称。 (3) 对输入、变换处理、输出这三个分支进行自顶向下对输入、变换处理、输出这三个分支进行自顶向下的分解,画出各个分支所需要的全部模块。的分解,画出各个分支所需要的全部模块。 (4) 将初始的将初始的SC图的框架和各个分支所需要的全部模块图的框架和各个分支所需要的全部模块结合起来,就构成了底层的软件结构图。结合起来,就构成了底层的软件结构图。总控模块总控模块输入模块输入模块加工模块加工模块输出模块输出模块 这类数据流图可

35、看成是对输入数据进行转换而得到输出这类数据流图可看成是对输入数据进行转换而得到输出数据的处理。数据的处理。 DFDDFD图具有较明确的输入流、变换中心和输出流可以明显图具有较明确的输入流、变换中心和输出流可以明显分为分为 “输入输入处理处理输出输出 ”三部分三部分(物理输入)(物理输入)(逻辑输入)(逻辑输入)(逻辑输出)(逻辑输出)输输 入入处理处理输输 出出(物理输出)(物理输出)中心变换型中心变换型 的的 DFD DFD 图图(物理输入)(物理输入)(逻辑输入)(逻辑输入)(物理输出)(物理输出)检查检查顺序顺序检查检查合理性合理性扩充扩充代码代码核对核对 记录记录修改修改压缩压缩代码代码格式化格式化修改修改数据数据 旧文件旧文件新文件新文件事务分析步骤:n (1) 在在DFD图上划分接收、事务中心和发送图上划分接收、事务中心和发送3个部分,标个部分,标出它们之间的分界;出它们之间的分界;n (2) 画出初始的画出初始的SC图框架,将上述图框架,将上述3个部分映射为事务个部分映射为事务控制模块、接收分支和动作发送分支。如下图。控制模块、接收分支和动作发送分支。如下图。n (3) 分解和细化接收分支和发送分支,画出各个分

温馨提示

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

评论

0/150

提交评论