《可行性研究实用培训资料bvia.pptx》由会员分享,可在线阅读,更多相关《可行性研究实用培训资料bvia.pptx(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章 可行性研究可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。(l)技术可行性。进行技术风险评价。从开发者的技术实力、工作基础、问题的复杂性等方面出发,判断系统开发在时间、费用等限制条件下成功的可能性。-最难解决(2)经济可行性.进行成本效益分析,从经济角度判断系统开发是否“合算”。1.可行性研究的任务(3)操作可行性.确定系统的运行方式、操作规程等是否适合用户。(4)法律可行性。确定系统开发可能导致的任何侵权行为、妨碍后果和责任。注:可行性研究的成本占总成本的 5 10%2.可行性研究的步骤1、复查定义,明确限制的约束。我们认为用户要的 用户要的2、研究老系统(要
2、避免花费过多的精力)解决老系统问题老系统功能新增功能 新系统效益注:只了解老系统做什么,而不管怎样做;注意了解与其它系统的接口。老系统效益 3、导出新系统的高层逻辑模型-使用数据流图和数据字典描述数据在系统的流动和处理情况。抽象实现改进老系统 模型 新模型新系统 3、逻辑模型4、重新定义 1、复查定义 注:此时合同未签,应考虑成本,不宜反复太多次。5、导出多种解法进度表 经济上合算技术上可行操作上可行技术上不可行用户不可能操作不合算途径:在DFD图上划分不同的自动化边界,从而导出若干种解决方案。6、推荐行动方针Yes or No?NoYesWhy?Which one is the best?W
3、hy?(cost/benefit)7、开发计划(粗略)任务分解,确定负责人 大致进度规划 财务预算 风险分析及对策 8、最后,编写可行性分析报告,整理成相应文档提请有关部门和用户审查。引言可行性研究前提对现有系统的分析所建议系统的分析(技术、操作、经济)其他可供选择的方案结论意见可行性研究报告大纲如下:引言:对问题的简单叙述,实现系统的环境,该软件系统与其他系统之间的相互关系。可行性研究前提:说明建议开发软件的基本要求,主要开发目标,开发条件限制与约束,进行可行性研究的方法,对系统进行评价的尺度与依据。对现有系统的分析:现有系统可能是一个计算机系统,也可能是一个人工系统。应该准确描述现有系统的
4、处理流程,工作负荷,费用开支,人员及设备要求,管理模式,存在问题。所建议的系统:概括说明建议系统,包括处理流程,能够满足的要求,系统的优点,开发技术风险估计,目标系统运行管理模式,系统可能存在的局限性。可供选择的其他方案描述:对可选择方案逐一说明,并说明没有选中的理由。方案配置的介绍,选择方案的准则。成本效益分析。技术风险估计。操作与社会可行性分析。结论:可行性报告最后必须有一个结论,可能的结论是:项目应该立即展开;系统需要推迟到某些条件具备才能开始;需要对系统目标进行某些修改才能开始进行;系统不能进行(技术不可行)或者没有必要进行(经济不可行)。3.可行性分析的技术方法(系统流程图、数据流图
5、和数据字典)它的基本思想是用图形符号以黑盒子形式描绘物理系统里面的每个部件(程序,文件,数据库,表格,人工过程等等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程(不同于程序流程图)。系统复杂是可分层描绘。首先,用一张高层次的系统流程图描绘系统的总体概貌,表明系统的关键功能;然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。分层描绘法便于阅读者从抽象到具体的过程逐步深入了解一个复杂的系统。一、系统流程图系统流程图五种基本符号系统流程图的其他符号变化仓库零 库存量件 临界值库存清单XX:XX:库存 临界值定货报告例子:某装配厂有一座存放零件的
6、仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果那种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告.注:符号=系统部件箭头=信息流动路径事务库存清单程序 库存清单主文件定货信息报告生成程序定货报告即库存量变化分析:该装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变化称为一个事务,由放在仓库中的终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的定货信息写在磁带
7、上。最后,每天由报告生成程序读一次磁带,并且打印出定货报告。系统流程图的习惯画法是使信息在图中从上到下、从左至右。11、数据流图中的主要图形元素(四种)、数据流图中的主要图形元素(四种)二.数据流图(ata low Diagram)数据流图(DFD)描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能。2、说明:l 处理并不一定是一个程序。一个处理框可以代表一系列程序、单个程序或者程序的一个模块。l 一个数据存储也并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元
8、素或记录的一部分等等;l 数据可以存储在磁盘、磁带、磁鼓、主存、微缩胶片、穿孔卡片及其他任何介质上(包括人脑)。l 数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。l 有时数据的源点和终点相同,为了增加数据流图的清晰程度。再重复画一个同样的符号(正方形或立方体)表示数据的终点。l 有时数据存储也需要重复,以增加数据流图的清晰程度。为了避免可能引起的误解,如果代表同一个事物的同样符号在图中出现在n个地方,则在这个符号的一个角上画n一1条短斜线做标记。3、数据流与数据加工之间的关系(数据流图的附加符号)(数据流图的附加符号)4、数据流图的层次结
9、构 为了表达数据处理过程的数据处理情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。分层数据流图 在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据 底层流图是指其加工不需再做分解的数据流图,它处在最底层 中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。5、画数据流图的步骤:自外向内,自顶向下,逐层细化,完善求精 1)从问题描述中提取数据流图的四种成份(源点或终点,处理,数据存储,数据流)。2)根据具体业务,画出顶层数据流图,
10、以反映最主要业务处理流程。3)从输入端开始,按系统的逻辑需要,画出数据流流经的各处理框,逐步画到输出端,得到第一层数据流图4)对数据流图中描绘的系统主要功能进一步细化,画出所需的子图.5)检查、修改。例子 假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。第一步,可以从问题描述中提取数据流图的四种成分。组成数据流图的元素
11、可以从描述问题的信息中提取(有些信息是隐含的)源点与终点:采购员是数据终点,而仓库管理员是数据源点。处理:产生报表、处理零件入库出库的事务(改变库存量)数据流:(1)定货报表:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。(2)事务:零件编号(名称)、事务类型(入库出库)、数量数据存储:(1)定货信息(见定货报表)(2)库存清单:零件编号、库存量、库存量临界值第二步 画出基本系统模型-顶层DFD(若干个数据源点/终点加一个处理)仓库管理员定货系统采购员事务定货报表第三步 对基本系统模型进一步细化,描绘出主要功能仓库管理员采购员事务 定货报表12处理事务产生报表D2 定货信息D
12、1 库存清单定货信息定货信息库存清单注:在图中给处理和数据加了编号,这样做的目的是便于引用和追踪。数据存储(静态)和数据流(动态)只不过是同样的数据的两种不同形式第四步 对功能级数据流图中描绘的系统主要功能进一步细化仓库管理员采购员事务定货报表1.3 2处理定货产生报表D2 定货信息D1 库存清单定货信息定货信息库存清单1.2更新库存清单1.1接受事务事务库存信息当进一步分解将涉及如何具体实现一个功能时就不应再分解了。(1)当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。(2)注意对处理进行编号的方法。处理1.1、1
13、.2和1.3是更高层次的数据流图中处理1的组成元素。如果处理2被进一步分解,它的组成元素的编号将是2.1,2.2,.;如果把处理1.1进一步分解,则将得到编号为1.1.1,1.1.2,.的处理。注意:6、命名1.为数据流(或数据存储)命名(1)名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。(2)不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。(3)如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。2.为处理命名(1)通常先为数据流命名,然后再为与之相关联的处理命
14、名。这样命名比较容易,而主体现了人类习惯的“由表及里”的思考过程。(2)名字应该反映整个处理的功能,而不是它的一部分功能。(3)名字最好由一个具体的及物动词,加上一个具体的宾语组成。应该尽量避免使用”加工、“处理等空洞笼统的动词作名字。(4)通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则包这个处理再分解成两个处理可能更恰当些。(5)如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。数据源点/终点并不需要在开发目标系统的过程中设计和实现,它并不属于数据流图均核心内容。通常,为数据源点/终点命名时采用它们在问题域中习惯使用的名字(如“采购员”、
15、“仓库管理员”等)。7、检查和修改数据流图的原则 数据流图上所有图形符号只限于前述 数据流图上所有图形符号只限于前述四种基本图形元素 四种基本图形元素 数据流图的主图上的数据流必须封闭在外部实体之间 数据流图的主图上的数据流必须封闭在外部实体之间 每个加工至少有一个输入数据流和一个输出数据流 每个加工至少有一个输入数据流和一个输出数据流 在数据流图中,需按层给加工框编号。编号表明该加工所处层 在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系 次及上下层的亲子关系 规定任何一个数据流子图必须与它上一层的一个加工对应,两 规定任何一个数据流子图必须与它上一层的一个加工对应
16、,两者的输入数据流和输出数据流必须一致。此即 者的输入数据流和输出数据流必须一致。此即父图与子图的平 父图与子图的平衡 衡 图上每个元素都必须有名字 图上每个元素都必须有名字 数据流图中 数据流图中不可夹带控制流 不可夹带控制流 初画时可以忽略琐碎的细节,以集中精力于主要数据流 初画时可以忽略琐碎的细节,以集中精力于主要数据流8、用途 画数据流图的基本目的是利用它作为交流信息的工具。分析员把他对现有系统的认识或对目标系统的设想用数据流图描绘出来,供有关人员审查确认。每层数据流图中包含的处理不得超过9个。数据流图的另一个主要用途是作为分析和设计的工具。分析员应该着重描绘系统所完成的功能而不是系统
17、的物理实现方案。数据流图是实现这个目示的极好手段。当用数据流图辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统,因此可以根据系统的逻辑模型考虑系统的物理实现。例如,可以联机地接收事务并放入队列中,然而更新例如,可以联机地接收事务并放入队列中,然而更新库存清单、处理定货和产生报表以批量方式进行。库存清单、处理定货和产生报表以批量方式进行。当然,这种方案需要 当然,这种方案需要增加一个数据存储 增加一个数据存储以存放事务数据。以存放事务数据。改变自动化边界,这个系统将联机地接收事务、更改变自动化边界,这个系统将联
18、机地接收事务、更新库存清单和处理定货及输出定货信息;然而处理新库存清单和处理定货及输出定货信息;然而处理22将以批量方式产生定货报表。将以批量方式产生定货报表。数据字典与数据流图配合,能清楚地表达数据处数据字典与数据流图配合,能清楚地表达数据处理的要求理的要求数据字典的任务是对于在数据流图中每一个被命数据字典的任务是对于在数据流图中每一个被命名的图形元素均加以定义,使得每一个图形元素名的图形元素均加以定义,使得每一个图形元素的名字都有一个确切的解释的名字都有一个确切的解释三、数据字典(Data Dictionary)数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
19、数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。(分析阶段的工具)1、数据字典的内容 数据字典由对下列四类元素的定义组成:(1)数据流;(2)数据流分量(即,数据元素);(3)数据存储;(4)处理(加工)。在数据字典中记录数据元素的下列信息:一般信息(名字,别名,描述等等);定义(数据类型,长度,结构等等);使用特点(值的范围,使用频率,使用方式-输入/输出/本地,条件值等等);控制信息(来源,用户,使用它的程序,改变权,使用权等等);分组信息(父结构,从属结构,物理位置-记录、文件和数据库等等)。2、定义数据的方法 数据字典中的定义就是对数据自顶向下的分解。由数据元素
20、组成数据的方式只有下述三种基本类型:(1)顺序 即以确定次序连接两个或多个分量;(2)选择 即从两个或多个可能的元素中选取一个;(3)重复 即把指定的分量重复零次或多次。重复算符通常和重复次数的上下限同时使用(当上下限相同时表示重复次数固定)。(4)可选 即一个分量是可有可无的(重复零次或一次)。数据定义的描述存折格式 存折户名所号帐号开户日性质 存折户名所号帐号开户日性质(印密 印密)1 1存取行 存取行50 50 户名 户名2 2字母 字母24 24 所号 所号“001”.“999”“001”.“999”帐号 帐号“00000001”.“99999999”“00000001”.“99999
21、999”开户日年月日 开户日年月日 性质 性质“1”.“6”“1”.“6”注:注:“1”“1”表示普通户,表示普通户,“5”“5”表示工资户等 表示工资户等 印密 印密“0”“0”注:印密在存折上不显示 注:印密在存折上不显示 存取行日期(摘要)支出存入余额操作复核 存取行日期(摘要)支出存入余额操作复核3、数据字典的实现 常见的途径:全人工过程,全自动化过程(利用数据字典处理程序)和混合过程(用正文编辑程序,报告生成程序等已有的实用程序帮助人工过程)。数据字典应该具有下述特点:(1)通过名字能方便地查阅数据的定义;(2)没有冗余;(3)尽量不重复在规格说明的其他组成部分中已经出现的信息;(4
22、)容易更新和修改;(5)能单独处理描述每个数据元素的信息;(6)定义的书写方法简单方便而且严格。名字:定货报表别名:定货信息描述:每天一次送检采购员 定义:定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者位置:输出到打印机数据结构struct 定货报表 char 零件编号8;char 零件名称20;int 定货数量;float 目前价格;struct supplier 主要供应者;struct supplier 次要供应者;名字:零件编号别名:描述:唯一地标识库存清单中 一个特定零件的关键域定义:零件编号=8 字符 8位置:定货报告 定货信息 库存清单若修改“零件编号”
23、的定义,则受到影响的数据均列于此补充:数据字典具体条目内容及举例如下:数据流条目 数据流名称:订单 别名:无 简述:顾客订货时填写的项目 来源:顾客 去向:加工1检验订单 数据流量:1000份/每周(单位时间内的传输次数)组成:编号+订货日期+顾客编号+地址+电话+银行帐号+货物名称+规格+数量 数据存储条目 数据存储名称:库存记录 别名:无 简述:存放库存所有可供货物的信息 组成:货物名称+编号+生产厂家+单价+库存量 组织方式:索引文件,以货物编号为关键字 查询要求:要求能立即查询 数据条目 数据项名称:货物编号 别名:G-No,G-num,Goods-No 简述:本公司所有货物的编号 类
24、型:字符串 长度:10 取值范围及含义:第一位:进口/国产 第2-4位:类别 第5-7位:规格 第8-10位:品名编号 加工条目 加工名:查阅库存 编号:12 激发条件:接收到合格订单时 优先级:普通 输入:合格合格订单 输出:可供货订单,缺货订单 加工逻辑:根据库存记录 IF 订单项目数量该项目库存量临界值 THEN 可供货处理 ELSE 此订单缺货,登录,待进货后再处理 ENDIF(1)结构化语言 结构化英语的词汇表由 英语命令动词 数据词典中定义的名字 有限的自定义词 逻辑关系词 IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。用于描述加工逻辑
25、的工具 是一种介于自然语言和形式化语言之间的语言 语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示 其基本控制结构有三种:简单陈述句结构:避免复合语句;重复结构:WHILE_DO 或 REPEAT_UNTIL结构。判定结构:IF_THEN_ELSE 或 CASE_OF结构;商店业务处理系统中“检查发货单”IF IF 发货单金额超过发货单金额超过$500 THEN$500 THEN IF IF 欠款超过了欠款超过了6060天天 THEN THEN 在偿还欠款前不予批准在偿还欠款前不予批准 ELSE ELSE(欠款未超期)(欠款未超期)发批准书,发货单发批准书,发货单 ENDIF
26、 ENDIFELSE ELSE(发货单金额未超过(发货单金额未超过$500$500)IF IF 欠款超过欠款超过6060天天 THEN THEN 发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告ELSE ELSE(欠款未超期)(欠款未超期)发批准书,发货单发批准书,发货单 ENDIF ENDIFENDIFENDIF(2)判定表如果数据流图的加工需要依赖于多个逻辑条件的取如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较值,使用判定表来描述比较合适以“检查发货单”为例(3)判定树 判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。4 成本/效益分析1、成本估计(
27、Cost Estimation)代码行技术:每行代码的平均成本 源代码行数(通常根据经验和历史数据估计实现一个功能需要的源程序行数)。任务分解技术:人力 工资 首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。成本/效益分析的目的是要从经济角度分析开发一个特定的新系统是否划算,从而帮助使用部门负责人正确地作出是否投资于这项开发工程的决定。最常用的办法是按开发阶段划分任务。如果软件系统很复杂,由若干个子系统组成,则可以把每个子系统再按开发阶段进一步划分成更小的任务。任务人力(%)可行性研究5需求分析10设计25编码与单元测试2
28、0综合测试40总计1002、效益估计(Benefit Estimation)系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。因为运行费用和经济效益两者在软件的整个生命周期内都存在,总的效益和生命周期的长度有关,所以应该合理地估计软件的寿命。虽然许多系统在开发时预期生命周期长达十年以上,但是时间越长系统被废弃的可能性也越大,为了保险起见,以后在进行成本/效益分析时一律假设生命周期为5年。(1)货币的时间价值(主要体现在利率上)P=20万 4.2万 4.2万 4.2万 4.2万 4.2万0 1 2 3 4 5例:假设某软件生命周期为5年。现在投资20万元,平均年利率3%
29、。从第一年起,每年年底收入4.2万元,问该项目是否值得投资?到第5年底结算时:(要按同一时间点比较)投资额=200000(1+3%)5 231855(元)收入=42000(1+3%)4+(1+3%)3+(1+3%)2+(1+3%)+1 222984(元)投资额收入不合算!分析:衡量工程价值的经济指标有:纯收入=折合现价的总收入-当前投资额=投资回收期例:第6年底可收回 投资回收率:设为j作业:1.某图书管理系统有以下功能:借书:输入读者借书证。系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在借书证上建立档案。否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10,拒借,未达10本,办理借书(检查库存,修改库存目录并将读者借书情况录入借书文件。)还书:从借书文件中读出与读者有关的记录,查阅所借日期,如超期(3个月)作罚款处理。否则,修改库存目录与借书文件。查询:通过借书文件,库存目录文件查询读者情况图书借阅及库存情况,打印统计表。请就以上系统功能画出分层的DFD图。2.P44 5
限制150内