- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
国防科技大学计算机学院 第九章 面向数据流的设计方法 传统的软件工程方法学采用结构化设计(Structured Design,SD)技术,完成软件设计工作,通常把软件设计工作划分为概要设计和详细设计这样两个阶段。 概要设计的主要任务是,通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定功能的模块结构。详细设计阶段详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。 面向数据流的设计方法 本章所述技术用于软件的概要设计描述 ,包括模块、界面和数据结构的定义,这是后续开发的基础。 每种软件设计方法都有长处和不足,选用哪种方法应考虑适用的范围。 任何软件系统都可以用数据流图表示,面向数据流的设计方法可用于任一种软件系统的开发。 该方法对那些顺序处理信息且不含层次数据结构的系统最为有效,如,过程控制、复杂的数值分析过程、以及科学与工程方面的应用等等。 当SD方法用于完全的数据处理时,即使系统中使用层次数 据同样行之有效。 9.1基本概念和设计过程 用SD方法将数据流图转换为软件结构 (1)确定信息流的类型; (2)划定流界; (3)将数据流图映射为程序结构; (4)提取层次控制结构; (5)通过设计复审和启发式策略精化结构。 第三步所用映射方法涉及信息流的类型。 信息流分为变换流和事务流两种类型。 基本概念和设计过程 变换流 在基本系统模型(即顶级数据流图)中信息通常以“外部世界”所具有的形式进入系统,经过处理后又以这种形式离开系统。 输入信息流沿传入路径进入系统,同时由外部形式变换为内部形式,经系统变换中心加工、处理,作为输出信息流又沿传出路径离开系统,并还原为外部形式。 基本概念和设计过程 事务流 由于基本系统模型呈变换流,故任意系统中的信息均可用变换流刻画。 若数据流具有如图9.2所示形状,称“事务流”。 单个数据项称为事务(transaction)沿传入路径(接受通道)进入系统,由外部形式变换为内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条继续执行。 基本概念和设计过程 在大系统的DFD中,变换流与事务流往往交织在一起。 在基于事务流的系统中,当信息沿动作路径流动时可能呈现变换流的特征,变换分析法与事物分析法需要交叉使用。 任何设计过程都不应该也不可能完全机械化,人的判断力和创造性往往起决定作用。 面向数据流的设计 9.2 变换分析 变换分析由一系列设计步骤组成,经过这些步骤就能把具有变换流特点的数据流图,按预先确定的模式映射成软件结构。 步骤一 复审基本系统模型 基本系统模型指顶级DFD和所有由外部提供的信息。这一设计步骤是对系统规格说明书和 软件需求规格说明书进行评估。这两个文档描述软件界面上信息的流程和结构。 图9.4和图 9.5分别为“家庭保安系统”的顶层和第一层数据流图。 “家庭保安系统”的顶级数据流图 家庭保安系统-传感器监测子系统的变换分析步骤。 变换分析 步骤二 复审和精化软件数据流图 精化软件需求规格说明书中的分析模型,直至获得足够详细的DFD。 如,由“传感器监测子系统”的第一级(图9.5的局部)和第二级(图9.6)DFD进 一步推导出第三级数据流图(图9.7)。 每个变换对应一个独立的功能,可望用一 个具有较高内聚度的模块实现,至此已有足够的信息用于设计“传感器监测子系统”的程序结构,精化过程亦可结束。 “传感器监测子系统”的第二级DFD “传感器监测子系统”的第三级DF 变换分析 步骤三 确定DFD为变换流还是事务流。 系统内部的信息流总可以用变换流表示,倘若具有明显的事务特性,还应该采用针对事务流的映射方法。设计人员首先要判定DFD中占主导地位的信息流,并确定其特性,然后孤立出具有变换特性或事务特性的支流,这些支流将用于精化由主导数据流推出的程序结构。 以图9.7所示DFD为例,数据沿一个传入路径进来,沿三个传出路径离开,无明显的事务中心,该信息流应属变换流。 变换分析 步骤四 划定输入流和输出流边界孤立变换中心。 输入、输出流边界的划分可能因人而异,不同的设计人员可能把边界沿着数据通道向前推进或后退一个处理框,这对最后的软件结构影响不大。 “传感器监测子系统”的流界在图9.7中用虚线表示。 “传感器监测子系统” 变换分析 步骤五 执行“一级分解”导出具有三个层次的程序结构。 顶层为总控模块; 底层模块执行输入、计算和输出功能; 中层模块控制、协调底层的工作。 如图9.8所示,主控模块负责协调下面几个中层控制模块: 输入流控制模块,接收所有输入数据; 变换流控制模块
文档评论(0)