《第5章-面向数据流的软件设计方法课件.ppt》由会员分享,可在线阅读,更多相关《第5章-面向数据流的软件设计方法课件.ppt(42页珍藏版)》请在三一办公上搜索。
1、第五章面向数据流的软件设计方法,内容,5.1数据流图与数据字典5.2实体关系图5.3面向数据流的分析过程5.4面向数据流的设计过程5.5启发式设计策略,2,(1)数据流图,3,数据流图的层次,数据流图就是用来刻画数据流和转换的信息系统建模技术。它提供层次结构让分析人员能够方便地表示任意抽象级别上的信息系统或其子部分,并支持问题分解、逐步求精的分析方法。初始时,整个信息处理系统可以用顶级(第级)数据流图表示。在数据流方法中,对数据(数据流)的精化是伴随着对转换的精化而同步进行的。,4,顶级数据流图,5,数据流图的精化,在进行逐层精化的过程中,必须维持层间数据流图的平衡,即,被精化的转换的输入、输
2、出流必须与精化它的数据流子图的初始输入流和最终输出流严格一致。要注意逐层精化必须适可而止,因为设计之前的分析活动只求对问题的全面、清晰的理解,并不关心软件的设计细节。,6,(2)数据字典,数据流图机制并不足以完整地描述软件需求,因为没有描述数据流的内容。数据流图必须与描述并组织数据条目的数据字典配套使用。数据条目的定义必须遵循以下原则:精确、简洁,并且能为用户方和软件开发方共同理解。,7,数据字典的内容,在数据流图中标识数据流、数据源或外部实体的名称与别名;数据类型;所有以它作为输入流或输出流的转换的列表;如何使用该数据条目的简要说明;数据条目的解释性说明;其它补充说明,例如取值范围与缺省值,
3、有关的设计约束等。,8,数据字典示例电话号码,电话号码分机号外线号码分机号350135023599外线号码2(市话号码长话号码)长话号码(区号市话号码)区号 任何长度为2或3的数字串市话号码局号分局号局号455448888552分局号=任何长度为4的数字串,9,内容,5.1数据流图与数据字典5.2实体关系图5.3面向数据流的分析过程5.4面向数据流的设计过程5.5启发式设计策略,10,引入实体关系图的原因,在数据密集型应用问题中,对复杂数据及数据之间复杂关系的分析和建模将成为需求分析的重要任务。显然,这项任务是简单的数据字典机制无法胜任的。所以,有必要在数据流分析方法中引进适宜于复杂数据建模的
4、实体关系图。,11,数据对象、属性与关系,数据对象是现实世界中实体的数据侧面;或者说,数据对象是现实世界中省略了功能和行为的实体。数据对象由其属性刻画。通常,属性包括:命名性属性 描述性属性 引用性属性 应用问题中的任何数据对象都不是孤立的,它们与其它数据对象一定存在各种形式的关联。,12,实体关系图,实体关系图是表示数据对象及其关系的图形语言机制,具体包括标识系统输入/输出的数据对象、定义对象的属性、描述对象间的关系。,13,建立实体关系图的过程,1)客户列出业务过程中的事物,它对应一组输入/输出数据对象,及生产/消费信息的外部实体。2)系统分析员和客户逐个定义对象及对象间的连接。3)根据对
5、象间的连接标识对象-关系偶。4)确定对象-关系偶的数量关系。5)重复2)4)直至创建所有的对象-关系偶。6)描述实体属性。7)复审实体-关系图。8)重复1)7)完成数据建模。,14,内容,5.1数据流图与数据字典5.2实体关系图5.3面向数据流的分析过程5.4面向数据流的设计过程5.5启发式设计策略,15,(1)建立数据流模型,在创建用户需求的数据流模型的过程中,分析人员应遵循以下规则:首先建立顶级数据流图,其中只含有一个代表目标软件系统整体处理功能的转换。对用户需求的文字描述进行语法分析,其中的名词和名词短语构成潜在的外部实体、数据源或数据流,动词构成潜在的处理功能。采用通常的功能分解方法,
6、按照“强内聚、低耦合”原则逐个对处理功能进行精化;与此同时逐步完成对数据流的精化,并针对被精化的处理功能生成下一级数据流图。在精化过程中必须维持各级数据流图的平衡。精化过程应适可而止,避免涉及软件设计细节。,16,示例:ATM顶级数据流图,17,示例:一级数据流图,18,示例:二级数据流图,19,(2)过程规格说明,对于数据流图中不再分解的处理功能,分析人员要借助结构化的自然语言对其功能进行精确、简洁的描述。例如,余额比较:(1)参数:取款数额;类别:整数(2)处理步骤:(a)从银行系统中获取账户的余额信息;(b)比较账户余额和取款金额之间的大小;(c)如果账户余额大于等于取款金额,则进入“正
7、常取款处 理”(d)如果账户余额小于取款金额,则进入“余额不足处理”;(3)约束条件:每次的取款金额不能超过2000元。,20,内容,5.1数据流图与数据字典5.2实体关系图5.3面向数据流的分析过程5.4面向数据流的设计过程5.5启发式设计策略,21,(1)基本概念和设计过程,面向数据流的方法能方便地将数据流图转换为软件结构,其过程分为五步:确定信息流的类型;划定流界;将数据流图映射为程序结构;提取层次控制结构;通过设计复审和使用启发式策略进一步精化所得到的结构。,22,变换流,入信息流沿传入路径进入系统,同时由外部形式变换为内部形式,经系统变换中心加工、处理,作为输出信息流又沿传出路径离开
8、系统,并还原为外部形式。,23,事务流,单个数据项称为事务(Transaction)沿传入路径(也称接受通道)进入系统,由外部形式变换为内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条继续执行。,24,设计过程,25,变换分析的步骤,步骤一:复审基本系统模型 步骤二:复审和精化软件数据流图步骤三:确定数据流图的特性,判定它为变换流还是事务流 步骤四:通过划定输入流和输出流的边界来孤立变换中心,26,确定变换中心,27,变换分析的步骤,步骤五:执行“一级分解”,28,变换分析的步骤,步骤六:执行“二级分解”,29,“存款”子系统的程序结构“雏形”,30,变换分析的步骤,
9、步骤七:采用启发式设计策略,精化所得程序结构雏形,以求改良软件质量,31,(3)事务分析,事务分析法的步骤与变换分析方法基本类似,主要差别在于从数据流图到程序结构的映射。事务分析法可概括为七个步骤,其中前三个步骤与变换分析法相同,即:步骤一:复审基本系统模型步骤二:复审并精化软件数据流图步骤三:确定数据流图的特性,判定它为变换流还是事务流,32,事务分析的过程,步骤四:指出事务中心,确定由事务中心发出的每一动作路径的数据流特性,33,事务分析的过程,步骤五:把数据流图映射为事务处理型的程序结构,34,“命令处理”的一级分解,35,事务分析的过程,步骤六:分解并精化事务结构以及每条动作路径所对应
10、的结构,36,事务分析的过程,步骤七:使用启发式设计策略,精化所得程序结构雏形,改良软件质量,37,内容,5.1数据流图与数据字典5.2实体关系图5.3面向数据流的分析过程5.4面向数据流的设计过程5.5启发式设计策略,38,启发式设计策略是人们从长期的大量软件开发过程中积累总结的经验:改造程序结构,减小耦合度,提高内聚度。改造程序结构,减少高扇出,在增加程序深度的前提下追求高扇入。改造程序结构,使任一模块的作用域在其控制域之内。改造程序结构,减少接口的复杂性和冗余程度,提高协调性。模块功能应该可预言,避免对模块施加过多限制。改造程序结构,追求单入口单出口的模块。为满足设计或可移植性的要求,把某些软件用包的形式封装起来。,39,本章完,人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。,