《可行性报告-软件工程第二讲 可行性研究.ppt》由会员分享,可在线阅读,更多相关《可行性报告-软件工程第二讲 可行性研究.ppt(42页珍藏版)》请在第一文库网上搜索。
1、软件工程导论软件工程导论第2章 可行性研究2.1 可行性研究的任务2.2 可行性研究过程2.4 数据流图2.5 数据字典2.6 成本/效益分析目标目标理解可行性研究过程设计软件系统的数据流图定义数据字典2.1 可行性研究的任务可行性研究的任务2.1 可行性研究的任务可行性研究的任务对以后的行动方针,提出建议。需要的时间长短取决于工程的规模。技术可行性 经济可行性 操作可行性法律可行性2.2 可行性研究过程可行性研究过程(I)2.2 可行性研究过程可行性研究过程(II)2.3 系统流程图系统流程图概括地描绘物理系统的传统工具。用图形符号以黑盒子形式,描绘组成系统的每个部件(程序,文档,数据库,人
2、工过程等)。表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,是物理数据流图而不是程序流程图。2.3.1 符号符号2.3.2 例子例子某装配厂有一座存放零件的仓库,零件库存量的每一次变化称为一个事务,库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的定货信息写在磁带上。最后,每天由报告生成程序读一次磁带,并且打印出定货报告。图中每个符号用黑盒子形式定义了组成系统的一个部件,然而并没有指明每个部件的具体工作过程;图中的箭头确定了信息通过系统的逻辑路径。2.4 数据流图数据流图(Data Flow Diagram)一种图形化技术, 描绘信息流和数据
3、,从输入移动到输出的过程中,所经受的变换。 数据流图和数据字典(Data Dictionary)共同构成了系统的逻辑模型。描绘“做什么”而不考虑“怎样做”。基本元素基本元素数据流数据流(data flow)(data flow):由一组固定成分的数据组成,:由一组固定成分的数据组成,代表数据的流动方向代表数据的流动方向处理处理/ /加工加工(process)(process):描述了输入数据流到输出数:描述了输入数据流到输出数据流的变换,即将输入数据流加工成输出数据流据流的变换,即将输入数据流加工成输出数据流数据存数数据存数/ /文件文件(file)(file):使用文件、数据库等保存:使用文
4、件、数据库等保存某些数据结果供以后使用某些数据结果供以后使用源或宿源或宿(source or sink)(source or sink):由一组固定成分的数据:由一组固定成分的数据组成,代表数据的流动方向组成,代表数据的流动方向2.4.3 数据流与数据加工之间的关系数据流与数据加工之间的关系示例:图书订购系统示例:图书订购系统DFD图书库存入库单 图书代理商书库管理收费制作财务报表财务报表经理帐务数据库制作发书单图书订购核准的订购单发书单订购单顾客顾客收费数据帐单数据流图的层次结构数据流图的层次结构(I)为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步
5、分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统数据流图的层次结构数据流图的层次结构(II)n 在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入/输出流是该系统的输入/输出数据n 底层流图是指其加工不需再做分解,它处在最底层n 中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。数据流图的层次结构数据流图的层次结构(III)考务处理系统考试中心考生不合格报名单阅卷站错误成绩清单成绩清单考生名单合格标准报名单准考证考生通知单统计分析表画数据流图的步骤画数据流图的步骤1画系统的输入和输出2画系统内部3画加工内部4重复第3步,直至每个尚
6、未分解的加工都足够简单(即不必再分解)2.4.2 例子例子假设一家工厂的采购部,每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件,应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量,少于库存量临界值时,就应该再次定货。如何画出数据流图如何画出数据流图确定数据的源点和终点确定数据的源点和终点,确定处理确定处理/ /加工加工确定数据流确定数据流确定数据存储确定数据存储从问题描述中,提取数据流图的4种成分:如何画出数据流图如何
7、画出数据流图数据的源点和终点数据的源点和终点“采购部每天需要一张定货报表”,“通过放在仓库中的CRT终端把事务报告给定货系统”,所以采购员是数据终点,而仓库管理员是数据源点。处理处理/ /加工,加工,“采购部需要报表”,显然他们还没有这种报表,因此必须有一个用于产生报表的处理。事务的后果是改变零件库存量,然而任何改变数据的操作都是处理,因此对事务进行的加工是另一个处理。数据流和数据存储系统把定货报表送给采购部,因此定货报表是一个数据流;事务需要从仓库送到系统中,显然事务是另一个数据流。顶层DFD不需要画出数据存储系统必须完成的两个主要功能是“产生报表”和“处理事务” ,它们将代替顶层图的“定货
8、系统”,并加了编号。系统必须增加了两个数据存储:处理事务需要“库存清单”数据;产生报表和处理事务在不同时间,因此需要存储“定货信息”。系统功能的进一步细化:系统功能的进一步细化:当发生一个事务时必须首先接收它;随后按照事务的内容修改库存清单;最后如果更新后的库存量少于库存量临界值时,则应该再次定货,也就是需要处理定货信息。因此,把“处理事务”分解为下述3个处理:“接收事务”、“更新库存清单”和“处理定货”2.4.4 用途用途利用它作为交流信息的工具交流信息的工具。仅仅使用4种基本符号,而且不包含任何有关物理实现的细节,因此,绝大多数用户都可以理解和评价它。另一个主要用途是作为分析和设计的工具分
9、析和设计的工具。这种描绘方法形象具体,比较容易验证它的正确性用数据流图辅助物理系统的设计辅助物理系统的设计用数据流图辅助物理系统的设计,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统,因此可以根据系统的逻辑模型考虑系统的物理实现另一种划分自动化边界的方法建议检查和修改数据流图的原则检查和修改数据流图的原则(I) 图形符号只限于前述四种基本图形元素四种基本图形元素 主图主图必须包括前述四种基本元素,缺一不可缺一不可 主图主图上的数据流必须封闭在外部实体之间 每个加工至少有一个输入数据流一个输入数据流和一个输出数据流一个输出数据流
10、在数据流图中,需按层给加工框编号按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系 规定任何一个数据流子图,必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡父图与子图的平衡父图与子图的平衡父图与子图的平衡分层DFD中应该不存在矛盾和冲突不存在遗漏的数据流、加工等元素例:123ABCMNT2.12.22.3NPSTQ一致性的实例:父图与子图平衡一致性的实例:父图与子图平衡关键:数据流中的数据项全体平衡。 若 b=b1+b2,下面父图与子图平衡e2.52.42.32.22.1b2b1acdb21acde(a) 父图(b) 子图2.5 数据字典数据字典
11、字典的用途,是供人查阅对不了解的条目的解释,数据字典的作用,是在软件分析和设计的过程中,给人提供关于数据的描述信息。数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型。 没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有DFD与DD在一起,才能共同构成系统的规格说明。2.5.1 数据字典的内容数据字典的内容4类元素的定义组成:(1) 数据流(2) 数据流分量(数据项)(3) 数据存储(4) 处理定义的内容有定义的内容有: 名字名字,别名或编号别名或编号,分类分类,描述描述,定定义义,位置位置,其它其它,
12、等,等用其他工具(如IPO图或PDL)对数据处理描述更方便,2.5.1 数据流描述数据流描述数据流名:说明:简要介绍作用即它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构数据量流通量:数据量,流通量2.5.2 数据元素词条描述数据元素词条描述数据元素名:数据元素名:类型:数字(离散值,连续值),文字(编码类类型:数字(离散值,连续值),文字(编码类型)型)长度:长度:取值范围:取值范围:相关的数据元素及数据结构:相关的数据元素及数据结构:2.5.3 数据文件词条描述数据文件词条描述数据文件名:数据文件名:简述:存放的是什么数据简述:存放的是什么数据输入数据:输入数
13、据:输出数据:输出数据:数据文件组成:数据结构数据文件组成:数据结构存储方式:顺序,直接,关键码存储方式:顺序,直接,关键码存取频率:存取频率:2.5.4 加工逻辑词条描述加工逻辑词条描述加工名:加工名:加工编号:反映该加工的层次加工编号:反映该加工的层次简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述输入数据流:输入数据流:输出数据流:输出数据流:加工逻辑:简述加工程序,加工顺序加工逻辑:简述加工程序,加工顺序2.5.5 源点及汇源点及汇(终终)点词条描述点词条描述名称:外部实体名名称:外部实体名简要描述:什么外部实体简要描述:什么外部实体有关数据流:有关数据流:数目:数目:课堂作业
14、课堂作业Page54 习题2.5电话号码 = 校内电话|校外电话校内电话 = 非零数字+3数字3校外电话 = 本市号码|外地号码本市号码 = 数字零+8位号码外地号码 = 数字零+区号+8位号码数字零 = 0区号 = 3数字38位号码 = 非零数字+7数字7数字 = 数字零|非零数字非零数字 = 1.92.6 成本成本/效益分析效益分析开发一个软件系统是一种投资,期望将来获得更大的经济效益。经济效益通常表现为减少运行费用或(和)增加收入。为了对比成本和效益,首先需要估计它们的数量。2.6.1 成本估计成本估计1. 代码行技术2. 任务分解技术3. 自动估计成本技术2.6.2 成本成本/效益分析的方法效益分析的方法(I)成本 = 开发成本+运行费用 效益 = 新系统节约的运行成本+增加的收入2.6.2 成本成本/效益分析的方法效益分析的方法(II)1. 货币的时间价值 如果n年后能收入F元钱,那么这些钱的现在价值是P=F/(1+i)n2. 投资回收期 使累计的经济效益,等于最初投资所需要的时间。3. 纯收入 在整个生命周期之内,系统的累计经济效益(折合成现在值)与投资之差。4. 投资回收率 把资金存入银行或贷给其他企业能够获得利息