《可行性研究》
.2.1 可行性研究的任务2.2 可行性研究过程 2.3 系统流程图2.4 数据流图 2.5 数据字典2.6 成本/效益分析第2章 可行性研究.数据流图 (DFD) :1.是系统逻辑功能的图形表示,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。2.它用于描述系统功能的分解过程,即描述软件系统的功能组成部分及各部分之间的联系。2.4 数据流图.3.在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。4.设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。2.4 数据流图.数据流图具有三个重要属性:u 可以表示任何 一个系统(人工的、自动的或混合的)的数据流动过程。u 每个圆圈代表数据的一个加工处理过程,这个过程 可以很简单,也可以非常的复杂,以至于需要进一步分解其处理过程,以求得对问题的全面理解。u 数据流图着重强调 的是数据流(数据在加工之间的流动)而不是控制流(具体对数据实施操作的条件动作控制).2.4.1 符号2.4.2 例子2.4.3 命名2.4.4 用途2.4 数据流图 .基本符号:2.4.1 符号数据处理数据处理 ( (数据变换数据变换) )数据源点或终点数据源点或终点 ( (外部实体外部实体) )数据流数据流数据存储数据存储或或或或.数据流图的附加符号.1. 1. 数据处理数据处理 ( (数据变换、数据加工)数据变换、数据加工)u 是对数据进行的操作,它把流入的数据流转换为流出的数据流。一个处理框可以代表一系列程序、单个程序或程序的一个模块、甚至可以代表人工处理过程;u 数据处理的取名:功能描述,意义 明确,用动词或动名词、动宾短语等。例如删除、修改库存等。u 用顺序数字,加工分解时保留 一层的编号。 1.1,1.2,1.3 1.11,1.12,1.131,2,3, 1.21,1.22,1.23 2.1,2.2,2.3 或.u 一个数据加工(数据处理)至少要有一个输入流和一个输出流。如:u 也可以有多输入、多输出的情况,如:.2. 2. 数据源点或终点数据源点或终点 ( (外部实体外部实体) )源点:提供原始数据的实体源点:提供原始数据的实体终点:最终输出数据的接收实体终点:最终输出数据的接收实体u表示数据的外部来源和去处。不属于系统的组成部分。但它对于系统有直接的影响,如:人、组织、其他系统。u标明源点和终点有助于对系统的理解和分析。u有时有些报表输出亦可作为外部项,其表示形式如下:或.3. 3. 数据存储数据存储u 数据存储是处于静止状态的数据,通常指存储在介质中的数据文件或数据库。u 数据存储名应与它的内容一致。可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等。u 编号用字母表示,如:A1、A2等; u 有以下几种表示形式:或.4. 4. 数据流数据流u 用带有名字的具有箭头的线段表示,沿箭头方向表示数据的流向。它是数据在处理之间的流动,不表示控制流。u 在横线上方标明数据流的名字,如: ,名字用名词。u 名字里隐含了数据流的组成,它可能是单个数据元素,也可能是由某种数据结构 的数据组成。如:.说明:数据流图的基本要点是描绘“做什么”,而不考虑“怎么做”。在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。若数据的源点和终点相同,通常是再重复画一个同样的符号表示终点。为避免引起误解,如果代表同一事物的同样符号在图中出现在n个地方,则在这个符号的一个角上画(n-1)条斜线做标记。应该对数据处理和数据存储进行编号。.构造数据流图的基本原则:1. 数据流图的顶层中,数据流必须封闭在数据源和终点之间,源与终点可以是一个,也可以是多个。2. 一个数据处理至少应该有一个输入流和一个输出流。3. 父、子图的层次关系:子图是父图中的一个处理,父、子图的输入流与输出流要保持一致。即所谓“父、子平衡”、“数据流守恒”。4. 遵守分层处理的编号原则。5. 数据流图中的每个元素必须有名,并符合意义。.画数据流图的步骤:1. 从问题描述中提取数据流图的4种成分2. 根据1. 的结果画出基本系统模型(任何系统的基本模型都是由若干个数据源点/终点以及一个处理组成,这个处理代表了系统对数据加工变换的基本功能。)3. 把基本系统模型细化,描绘系统的主要功能,得到功能级数据流图4. 对功能级数据流图中描绘的系统主要功能进一步细化。当一步分解将涉及如何具体地实现一个功能时就不应该再分解了。.定货系统: 假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件,应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于库存量的临界值时,就应该再次定货。2.4.2 例子.画数据流图的步骤:1. 从问题描述中提取数据流图的4种成分数据的源点/终点“通过放在仓库中的CRT终端把事务报告给定货系统”仓库管理员是数据源点;“采购部每天需要一张定货报表”采购员是数据终点。处理“采购部需要报表”,产生报表;事务的后果是改变零件库存量,因此对事务进行的加工是另一个处理处理事务。.数据流:“系统把定货报表送给采购部”定货报表;“事务需要从仓库送到系统中”事务。数据存储:处理事务和产生报表这两个处理在时间上明显不匹配,用来产生定货报表的定货信息必须存放一段时间定货信息;零件库存量和库存量临界值需要存储库存清单。.源点:仓库管理员终点:采购员处理:产生报表、处理事务数据流:定货报表事务零件编号零件名称定货数量目前价格主要供应者次要供应者零件编号事务类型数量数据存储:定货信息同定货报表库存清单零件编号库存量库存量临界值.2. 画基本系统模型(顶层数据流图)由若干个数据源点/终点和一个处理组成。仓 库管理员定货系统采购员定货系统的基本系统模型事务定货报表.3. 细化(功能分解)定货系统=“处理事务”+“产生报表”D1: 库存清单仓 库管理员1处理事务2产生报表采购员D2: 定货信息事务定货报表定货信息定货信息库存清单图2.6 定货系统的功能级数据流图.4. 重复第3步,进行逐层分解及细化,直到所有的处理成为基本处理(可以实现的软件元素)为止。“处理事务”=“接收事务”+“更新库存清单”+“处理定货”仓 库管理员1.1接收事务1.2更新库存清单1.3处理定货2产生报表采购员D1: 库存清单D2: 定货信息事务事务库存信息定货信息定货信息定货报表库存清单图2.7 把处理事务的功能进一步分解后的数据流图.1. 为数据流(或数据存储)命名完整性;具体性;起名字遇到了困难时,试试重新分解。 2.4.3 命名 .2. 为处理命名通常先为数据流命名,然后再为与之相关联的处理命名;完整性;及物动词+宾语,具体性;通常名字中仅包括一个动词,否则进行分解;命名时遇到困难,应考虑重新分解。3. 为数据源点/终点命名采用它们在问题域中习惯的名字。 .作为交流信息的工具供有关人员审查确认供用户理解和评价数据流图应该分层,超过9个时应该画分图 作为分析和设计的工具辅助物理系统的分析时,描绘系统所完成的功能 辅助物理系统的设计时,以定时要求为指南,画出许多组自动化边界,对应不同的物理系统。 导出更详细的设计步骤面向数据流的设计方法 2.4.4 用途 .图2.8 这种划分自动化边界的方法暗示以批量方式更新库存清单.图2.8 这种划分自动化边界的方法暗示以联机方式更新库存清单、处理定货.例2:高考录取统分子系统 功能如下: (1) 计算标准分根据考生原始分计算标准分,存入考生分数文件; (2) 计算录取线分根据标准分和招生计划文件中的招生人数,计算录取线分,存入录取线文件。 .1. 提取数据流图的四种成分数据源点和终点:考生处理:(1) 计算标准分 (2) 计算录取线分数据存储:(1) 考生分数文件 (2) 招生计划文件 (3) 录取线文件数据流:原始分;标准分; 招生人数;录取线分 .2. 画基本数据流图.3. 画功能级数据流图 .例3:教材销售系统人工:先找系办公室开购书申请,凭申请找教材科开购书证明,向出纳员交付书款获得领书单,然后到书库找保管员领书。计算机:包括销售和采购两大功能。销售时,根据学生用书表和教材库存清单对购书单进行有效性审查,通过审查后得到有效购书单,并将缺书信息写入缺书表。交完款后开领书单,根据领书单更新教材库存清单。采购时,将缺书表中的信息汇总生成采购单,新书进库时更新教材库存清单。.基本数据流图.人工教材销售系统的数据流图.功能级数据流图.销售功能细化的数据流图.采购功能细化的数据流图.习题2.2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。.数据流图只描述了系统的“分解”,它并没有表达出每个数据和加工的具体含义,对数据流图上各项含义的不同理解将给以后的开发和维护工作造成不便。这些信息需要在“数据字典” 中表达出来。.2.5 数据字典 数据字典是对数据流图中包含的所有元素的格式与内容进定义的数据集合。元素:数据元素、数据结构、数据文件、数据流等.2.5 数据字典 数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。数据流图和数据字典共同构成系统的逻辑模型。没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。.2.5.1 数据字典的内容2.5.2 定义数据的方法2.5.3 数据字典的用途2.5.4 数据字典的实现2.5 数据字典 .数据字典的组成:数据流数据流分量(即数据元素)数据存储处理处理用其他工具描述更好,数据字典中使用较少。数据字典主要描述前三类,特别是数据元素。 2.5.1 数据字典的内容 .在数据字典中记录数据元素的下列信息:一般信息(名字、别名、描述等)定义(数据类型、长度、结构等)使用特点(取值范围、使用频率、使用方式)控制信息(来源、用户、使用它的程序等)分组信息 (父结构、从属结构、物理位置等).方法:对数据自顶向下分解。当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,这时分解过程就结束了。 组成数据的方式(四种类型):1.顺序 以确定次序连接两个或多个分量;2.选择 从两个或多个可能的元素中选取一个;3.重复 即把指定的分量重复零次或多次。4.可选 即一个分量是可有可无的。 2.5.2 定义数据的方法.通常使用下列符号来定义数据:u意思是等价于u+意思是和(即顺序连接两个分量)u意思是或(即从方括号内列出的若干个分量中选择一个),通常用“|”号分隔开供选择的分量u意思是重复(即重复花括号内的分量)通常使用上限和下限进一步注释表示重复的花括弧。一种注释方法是在开括弧的左边用上角标和下角标分别表示重复的上限和下限;另一种注释方法是在开括弧左侧标明重复的上限,在闭括弧右侧标明重复的下限u()意思是可选(即圆括号内的分量可有可无).例子:标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。标识符 = 字母字符 + 字母数字串字母数字串 = 0字母或数字7字母或数字 =字母字符数字字符 .习题2.5北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拔0,若是本市电话则接着拨8位数字(第一位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。电话号码=校内电话|校外电话校内电话=非零数字+3数字非零数字=1|2|3|4|5|6|7|8|9数字=数字零|非零数字数字零=0校外电话