1、1 02章 可行性研究2.1 可行性研究的任务可行性研究的任务 2.2 可行性研究过程可行性研究过程 2.3 系统流程图系统流程图 2.4 成本效益分析成本效益分析2.5 小结小结习题习题2 重点、难点重点:重点:可行性研究任务;可行性研究任务;系统流程图系统流程图;成本效益分析成本效益分析3 2.1 可行性研究任务一、可行性研究的目的一、可行性研究的目的 说明该软件开发项目的实现在技术上、经济上和社说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。选择的各种方案。GB 8567-88 计算机
2、软件产品开发文件编制指南计算机软件产品开发文件编制指南 用最小的代价在尽可能短的时间内确定问题是否能用最小的代价在尽可能短的时间内确定问题是否能够并且值得解决。够并且值得解决。可行性研究可行性研究最根本任务最根本任务是对以后的是对以后的行动方针提出建议行动方针提出建议.可行性研究一般占预期工程总成本的可行性研究一般占预期工程总成本的 5 10。4 二、可行性研究的基本内容1、技术可行性:使用现有的技术能实现这个系统吗、技术可行性:使用现有的技术能实现这个系统吗?主要考虑:开发风险;资源;相关技术的发展主要考虑:开发风险;资源;相关技术的发展2、经济可行性:这个系统的经济效益能超过它的开发、经济
3、可行性:这个系统的经济效益能超过它的开发成本吗?成本吗?系统经济效益系统经济效益=新系统增加的收入新系统节省的费用新系统增加的收入新系统节省的费用 考虑:成本考虑:成本效益分析、长期的公司经营策略、对其效益分析、长期的公司经营策略、对其他单位或产品的影响、开发所需的成本和资源、潜在的他单位或产品的影响、开发所需的成本和资源、潜在的市场前景市场前景 3、运行可行性:系统的操作方式在用户组织内行得、运行可行性:系统的操作方式在用户组织内行得通吗?通吗?4、其他:法律可行性、社会效应、管理问题等、其他:法律可行性、社会效应、管理问题等5 国家标准定义的可行性研究 了解客户的要求及现实环境,从技术、经
4、济了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。性,编写可行性研究报告,制定初步项目开发计划。一一 GB 8566-88 GB 8566-88 计算机软件开发规范计算机软件开发规范 GB8567 一一 88 计算机软件产品开发文件编制指计算机软件产品开发文件编制指南南 GB5666 一一 88(计算机软件开发规范(计算机软件开发规范 国家标准局国家标准局 1988 年发布年发布 标准基于软件生存标准基于软件生存 周期,将软件产品从形成、开发、周期,将软件产品从形成、开发
5、运用、维护,到最后被淘汰的整个过程中,应提交的运用、维护,到最后被淘汰的整个过程中,应提交的文档归于文档归于 13 种,作为软件开发人员工作的准则和规程。种,作为软件开发人员工作的准则和规程。6 2.2 可行性研究的步骤7 可行性研究的基本步骤可行性研究的基本步骤1)复查系统的规模、目标和限制。)复查系统的规模、目标和限制。要注意用户想的要注意用户想的 用户说的用户说的2)研究正在使用的系统问题)研究正在使用的系统问题新系统的效益新系统的效益老系统?老系统?注意:注意:只了解老系统做什么,而不管怎样做;只了解老系统做什么,而不管怎样做;注意了解与其它系统的接口注意了解与其它系统的接口老系统老
6、系统功能功能新增新增功能功能8 3)导出新系统的高层逻辑模型导出新系统的高层逻辑模型使用数据流程图描述数据在系统中流动和处使用数据流程图描述数据在系统中流动和处理的情况,概括表达出对新系统的设想。理的情况,概括表达出对新系统的设想。数据流程图和数据字典共同定义了新系统的数据流程图和数据字典共同定义了新系统的逻辑模型。逻辑模型。抽象抽象实现实现改进改进老系统老系统模型模型新模型新模型新系统新系统9 逻辑模型逻辑模型4)重新定义)重新定义 复查复查定义定义p分析员和用户一起复查问题定义、工程规分析员和用户一起复查问题定义、工程规模和目标,这次复查应该以数据流图和数据模和目标,这次复查应该以数据流图
7、和数据字典为基础。发现有误解或遗漏马上改正。字典为基础。发现有误解或遗漏马上改正。p可行性研究的前可行性研究的前4个步骤实质上构成了一个步骤实质上构成了一个循环,不断重复这个循环步骤,直到提出个循环,不断重复这个循环步骤,直到提出的逻辑模型完全符合系统目标。的逻辑模型完全符合系统目标。10 5)导出和评价供选择的解决导出和评价供选择的解决方案方案根据系统的逻辑模型,从技术根据系统的逻辑模型,从技术角度提出不同的解决方案。角度提出不同的解决方案。例如,要求系统的响应时例如,要求系统的响应时间不超过几秒钟,显然应间不超过几秒钟,显然应该排除批处理的方案。该排除批处理的方案。分析员应该根据使用者处理
8、事分析员应该根据使用者处理事物的原则和习惯,去掉那物的原则和习惯,去掉那些可操作性不好的方案。些可操作性不好的方案。进度表进度表经济上合算经济上合算技术上可行技术上可行操作上可行操作上可行技术上不可行技术上不可行用户用户不不可可能能操操作作不合算不合算11 6)推荐行动方针)推荐行动方针如果分析员认为值得继续进行这项工程,则如果分析员认为值得继续进行这项工程,则应该选择相对最好的方案,并说明理由。应该选择相对最好的方案,并说明理由。通常使用部门的负责人主要根据经济上的可通常使用部门的负责人主要根据经济上的可行性决定是否开发这项工程,因此分析员行性决定是否开发这项工程,因此分析员对于所推荐的方案
9、必须进行仔细的成本对于所推荐的方案必须进行仔细的成本/效效益分析。益分析。12 7)草拟开发计划)草拟开发计划分析员为推荐的方案拟一份开发计划:任务分析员为推荐的方案拟一份开发计划:任务分解、工程进度,人员要求,其他资源分解、工程进度,人员要求,其他资源(计算机硬件、软件工具等)的需求情况、(计算机硬件、软件工具等)的需求情况、估算开发成本和开发风险。估算开发成本和开发风险。13 8)书写可行性研究报告)书写可行性研究报告内容:简述项目背景、开发基础、技术路线、内容:简述项目背景、开发基础、技术路线、关键技术的先进性和效果论述、市场需求关键技术的先进性和效果论述、市场需求情况和风险分析、情况和
10、风险分析、成本效益分析、研发基成本效益分析、研发基础和实力、进度计划等。础和实力、进度计划等。9)提交审查)提交审查用户、评审组专家和分析员讨论审查报告,用户、评审组专家和分析员讨论审查报告,评审方案的可行性。评审方案的可行性。14 可行性研究报告的编写 可行性研究报告功能:可行性研究报告功能:说明软件项目的实现在说明软件项目的实现在技术上、经济上和技术上、经济上和社会因素上社会因素上的可行性,评述为合理地达到开的可行性,评述为合理地达到开发目标可供选择的各种可能的实现方案,说发目标可供选择的各种可能的实现方案,说明并论证所选定实施方案的理由。明并论证所选定实施方案的理由。GB 8567 一一
11、 88 计算机软件产品开发文计算机软件产品开发文件编制指南件编制指南 15 2.3 系统流程图 可行性分析的描述手段:可行性分析的描述手段:系统流程图、数系统流程图、数据流图据流图 1、什么是系统流程图、什么是系统流程图?概括地描绘概括地描绘物理系统物理系统的传统工具。的传统工具。基本思想:用图形符号以黑盒子形式描绘基本思想:用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,组成系统的每个部件(程序,文档,数据库,人工过程等)人工过程等),表达表达数据数据在在系统各部件之间系统各部件之间流动流动的情况。的情况。16 2.3.1 符号表示任何类型的联机存储,包括磁盘、软件和海量存
12、储器表示任何类型的联机存储,包括磁盘、软件和海量存储器件等件等联机处理联机处理通常表示打印输出,也可以表示用打印终端输入数据通常表示打印输出,也可以表示用打印终端输入数据文档文档用户连接其它符号,指明数据流动方向用户连接其它符号,指明数据流动方向数据流数据流指出转到另一页图上或由另一页图转来指出转到另一页图上或由另一页图转来换页连接换页连接指出转到图的另一部分或从图的另一部分转来,通常在同指出转到图的另一部分或从图的另一部分转来,通常在同一页上一页上连接连接表示输入或输出(或既输入又输出),是一个广义的不指表示输入或输出(或既输入又输出),是一个广义的不指明具体设备的符号明具体设备的符号输入输
13、入/输出输出能改变数据值或数据位置的加工或部件,例如,程序模块、能改变数据值或数据位置的加工或部件,例如,程序模块、处理机等都是处理处理机等都是处理处理处理说 明名 称符 号17 符号通过远程通信线路或链路传送数据通过远程通信线路或链路传送数据通信链路通信链路使用设备进行的脱机操作使用设备进行的脱机操作辅助操作辅助操作人工完成的处理,例如,会计在工资汇票上签名人工完成的处理,例如,会计在工资汇票上签名人工操作人工操作人工输入数据的联机处理,例如,填写表格等人工输入数据的联机处理,例如,填写表格等人工输入人工输入CRTCRT终端或类似的显示部件,可用于输入或输出,也可既输终端或类似的显示部件,可
14、用于输入或输出,也可既输入又输出入又输出显示显示磁盘输入磁盘输入/输出,也可表示存储在磁盘上的文件和数据库输出,也可表示存储在磁盘上的文件和数据库磁盘磁盘说 明名 称符 号18 2.3.3 例子例题1:某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单文件,如果哪种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。变化变化仓库仓库零零 库存量库存量件件 临界值临界值库存清单库存清单XX :XX :库存库存 临临界值界值定货报告定货报告19
15、2.3.3 例子图图 库房管理系统的系统流程图库房管理系统的系统流程图20 练习练习练习:用系统流程图分析下述问题。图书馆闭架借书流程读者验明证件后可以进入查询室读者在查询室利用检书卡或计算机终端检索数据库查询自己需要的图书。读者找到自己需要的图书后,填写索书单到服务台借书。如果图书有剩余,管理员填好借书单,从库房中取出图书交与读者。21 分层描绘复杂系统时,一采取描绘复杂系统时,一采取分层次分层次地描绘的方地描绘的方法法第一步第一步:建立建立高层次高层次的系统流程图,描绘系统的系统流程图,描绘系统总体概貌,表明系统的关键功能。总体概貌,表明系统的关键功能。第二步第二步:分别对分别对每个关键功
16、能每个关键功能进行扩展,到合进行扩展,到合适的详细程度,画在单独的一页纸上。适的详细程度,画在单独的一页纸上。第三步:可以多次扩展,直到描述完整。第三步:可以多次扩展,直到描述完整。优点:便于阅读者按从抽象到具体的过程逐优点:便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。步深入地了解一个复杂的系统。22 2.4 成本效益分析 从经济角度分析开发一个特定的新系统从经济角度分析开发一个特定的新系统是否划算,帮助客户负责人作出是否投资的是否划算,帮助客户负责人作出是否投资的决定。决定。主要包括主要包括成本估计成本估计和和成本效益分祈成本效益分祈。23 1 成本估计 包括包括开发成本开发
17、成本和和运行成本运行成本 一、开发成本估计技术(一、开发成本估计技术(1)1、代码行技术、代码行技术 根据经验和历史数据,估算实现一个功根据经验和历史数据,估算实现一个功能需要多少源程序行数,用每行代码的平均能需要多少源程序行数,用每行代码的平均成本乘以行数。成本乘以行数。24 一、开发成本估计技术(2)2、任务分解技术、任务分解技术 将软件开发工程分解成若干个相对独立将软件开发工程分解成若干个相对独立的任务,分别估算,然后累加得出总成本。的任务,分别估算,然后累加得出总成本。l按阶段分解按阶段分解l按功能分解按功能分解5(%)25 例:按功能分解计算机辅助设计(计算机辅助设计(CAD)的软件
18、项目估算)的软件项目估算将将 CAD CAD 项目分为如下项目分为如下7 7个子项目:个子项目:l用户界面和控制;用户界面和控制;l二维几何分析;二维几何分析;l三维几何分析;三维几何分析;l数据库管理;数据库管理;l计算机图形显示;计算机图形显示;l外设控制;外设控制;l设计分析设计分析26 代码行和成本、工作量估算27 系统开发和每年运行费用估算举例A 系统开发费用(一次)。系统开发费用(一次)。2名系统分析员(名系统分析员(450小时小时/名,名,45美元美元/小时)小时)$40,5005名系统开发人员(名系统开发人员(275小时小时/名,名,36美元美元/小时)小时)$49,5001名
19、数据库管理员(名数据库管理员(30小时小时/名,名,42美元美元/小时)小时)$1,2602名技术写作者(名技术写作者(120小时小时/名,名,25美元美元/小时)小时)$6,0001名秘书(名秘书(160小时小时/名,名,15美元美元/小时)小时)$2,4001名数据通讯专家(名数据通讯专家(60小时小时/名,名,42美元美元/小时)小时)$2,4002名数据输入人员(名数据输入人员(40小时小时/名,名,12美元美元/小时)小时)$49,50028 系统其他费用培训:培训:三天的开发人员内部培训课程三天的开发人员内部培训课程$7,000$7,000 30 30个用户,三天的内部培训课个用户
20、三天的内部培训课$10,000$10,000物资:物资:复印复印$500$500 磁盘、纸张等消耗品磁盘、纸张等消耗品$650$650购买软、硬件:购买软、硬件:2020台工作站台工作站windowswindows软件软件$1,000$1,000 20 20台工作站内存升级台工作站内存升级$8,000$8,000 网络软件网络软件$17,500$17,500 20 20台工作站办公软件产品台工作站办公软件产品$20,000$20,000系统开发总费用系统开发总费用$161,67029 B.年运行费用(每年)人员:人员:维护程序员维护程序员/分析员(分析员(250250小时小时/年,年,424
21、2美元美元/小时)小时)$10,500$10,500网络管理员(网络管理员(30003000小时小时/年,年,5050美元美元/小时)小时)$15,000$15,000购买硬件、软件升级:购买硬件、软件升级:硬件硬件$5,000$5,000 软件软件$6,000$6,000 物资和杂项:物资和杂项:$3,500每年总运行费用每年总运行费用$40,00030 一、开发成本估计技术(3)3、自动估计成本技术、自动估计成本技术 采用自动估计成本的软件工具,需要有采用自动估计成本的软件工具,需要有长期搜集的大量历史数据为基础,并需要良长期搜集的大量历史数据为基础,并需要良好的数据库系统支持。好的数据库
22、系统支持。二、运行费用估计二、运行费用估计 取决于系统的操作费用(操作人员数、工取决于系统的操作费用(操作人员数、工作时间、消耗的物资等)和维护费用。作时间、消耗的物资等)和维护费用。31 6.2 成本效益分折方法l成本效益分折的是估计开发成本、运行费成本效益分折的是估计开发成本、运行费用和新系统将带来的经济效益。用和新系统将带来的经济效益。l成本:房租、办公费用、设备折旧费、市场成本:房租、办公费用、设备折旧费、市场费用、人员工资、公司运营的各项管理费。费用、人员工资、公司运营的各项管理费。l收益:有形的效益可以用货币的时间价值、收益:有形的效益可以用货币的时间价值、投资回收期、纯收入等指标
23、进行度量。无形投资回收期、纯收入等指标进行度量。无形的效益主要是从社会影响力和对社会的贡献的效益主要是从社会影响力和对社会的贡献等方面考虑。等方面考虑。注意:注意:通常软件的生命周期按通常软件的生命周期按5年计算。年计算。32 2 成本效益分折方法 几种度量效益的方法几种度量效益的方法 1.货币的时间价值货币的时间价值:以银行利率表示货币的以银行利率表示货币的时间价值。时间价值。假设年利率为假设年利率为i i,如果现在存入,如果现在存入P P元,则元,则n n年后可以得到的钱数为:年后可以得到的钱数为:F=P(1+i)F=P(1+i)n n如果如果n n年后能收入年后能收入F F元钱,那么这些
24、钱的元钱,那么这些钱的现在价值是:现在价值是:P=F/(1+i)P=F/(1+i)n n33 设年利率是设年利率是5%5%,引入,引入CADCAD后,每年预计节省的钱的现后,每年预计节省的钱的现在价值在价值。年份年份 将来值将来值 (1+i)1+i)n n 现在价值现在价值 累计现在价值累计现在价值1 9.6 1.05 9.1429 9.14291 9.6 1.05 9.1429 9.14292 9.6 1.1025 8.7075 17.85132 9.6 1.1025 8.7075 17.85133 9.6 1.1576 8.2928 26.1432 3 9.6 1.1576 8.2928
25、26.1432 4 9.6 1.2155 7.8979 34.04114 9.6 1.2155 7.8979 34.04115 9.6 1.2763 7.5219 41.56305 9.6 1.2763 7.5219 41.5630例:在工程设计中用例:在工程设计中用CADCAD系统取代大部分人工设计工系统取代大部分人工设计工作,每年可节省作,每年可节省9.69.6万元。若软件生存期为万元。若软件生存期为5 5年,则年,则5 5年节省年节省4848万元。开发万元。开发CADCAD系统共投资了系统共投资了2020万元。万元。34 2 成本效益分折方法2.投资回收期投资回收期:累计的经济效益等于最
26、初的投累计的经济效益等于最初的投资所需要的时间。资所需要的时间。投资回收期投资回收期=TN-1+|(投资值投资值-TZ)/出现正值年份出现正值年份的净现金流量的净现金流量)|TN:累计现在值大于投资值的年:累计现在值大于投资值的年TZ:累计现在值大于投资值的现金值的上一年值:累计现在值大于投资值的现金值的上一年值CAD投资回收期是:投资回收期是:2+(20-17.85)/8.29=2+2.15/8.29=2.259年年35 3.纯收入纯收入:整个整个软件生命期内,累计经济效软件生命期内,累计经济效益(折合成现在值)与投资之差。益(折合成现在值)与投资之差。如:引入如:引入CAD系统之后,系统之
27、后,5年内工程的纯收入年内工程的纯收入预计是预计是41.563-20=21.56336 例子:投资例子:投资2020万元开发一个软件,从第万元开发一个软件,从第1 1年年年年底起,每年收入底起,每年收入4.24.2万元,问该项目是否值得万元,问该项目是否值得投资(按银行投资(按银行3%3%利息计算)利息计算)?如果如果2020万存银行万存银行5 5年年 =200000=200000(1+3%)(1+3%)5 5 231855(231855(元元)5 5年软件的收入年软件的收入 192348(192348(元元)收益收益P=20万万4.2万万4.2万万4.2万万4.2万万4.2万万012345报
28、废报废37 年份年份 将来值将来值(1+i)1+i)n n 现在价值现在价值 累计价值累计价值142000 1.03 40777 40777242000 1.0609 39589 80366342000 1.0927 38436 1188024 42000 1.1255 37316 156118542000 1.15927 36230 1923486 42000 1.19405 35174 22752238 回收期:回收期:=6-1+|(200000-192348)/35174)|=5.2(年)(年)纯收入纯收入 =折合现价的总收入折合现价的总收入-当前投资额当前投资额 =192348-200
29、000=-765239 附:可行性研究报告(参考格式)40 可行性研究报告(参考格式)41 可行性研究报告(参考格式)42 练习1为方便旅客,某航空公司拟开发一个机票为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,打印出取票通知和账单,统为旅客安排航班,打印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即打印出机票给旅交款取票,系统校对无误即打印出机票给旅客。客。(1)请写出问题定义并分析此系统的可行性。)请写出问题定义并分析此系统的可行性。(2)写出它的可行性说明。)写出它的可行性说明。43 作业图书管理系统可行性分析报告






