1、1第二章第二章 软件可行性分析软件可行性分析问题的定义问题的定义可行性分析的任可行性分析的任务务可行性分析的步可行性分析的步骤骤系统流程图系统流程图成本成本/ /效益分析效益分析2识别用户要求识别用户要求分析员必须考虑以下问题:分析员必须考虑以下问题:识别希望的功能和性能范围识别希望的功能和性能范围; ; 确定系统的功能、性能、约束和接口确定系统的功能、性能、约束和接口; ;功能功能和和性能性能v 可靠性可靠性和和质量质量v 总的系统目标总的系统目标v 成本成本与与进度限制进度限制制造需求制造需求v 市场与竞争情况市场与竞争情况v 有效的技术有效的技术v 将来可能的扩充将来可能的扩充32.12
2、.1、 问题定义问题定义的内容的内容(7 7方面)方面)问题定义问题定义的内容?的内容?4二、 问题定义的步骤(4个) 充分沟通充分沟通、反复的沟通、反复的沟通系统分析员要深入现场,系统分析员要深入现场,阅读用户写的书面报告、阅读用户写的书面报告、听取用户对开发系统的听取用户对开发系统的要求、调查开发系统的要求、调查开发系统的背景理由背景理由充分、深入调查、调研充分、深入调查、调研充分、深入沟通和交流充分、深入沟通和交流还要与还要与用户负责人用户负责人反复讨反复讨论,以澄清模糊的地方、论,以澄清模糊的地方、改正不正确的地方。改正不正确的地方。充分充分深入深入的和的和负责负责人反人反复讨复讨论论
3、最后写出双方最后写出双方都满意的都满意的问题问题定义报告,并确定双方是否定义报告,并确定双方是否可进行深入系统可行性研究可进行深入系统可行性研究的意向的意向5 2.2 2.2、可行性研究的任务、可行性研究的任务 可行性研究的任务:可行性研究的任务:是用最小的代价、在尽可能短的时是用最小的代价、在尽可能短的时间内确定问题是否能够解决。在澄清了问题定义之后,间内确定问题是否能够解决。在澄清了问题定义之后,分析员首先应该导出系统的逻辑模型,然后从系统逻辑分析员首先应该导出系统的逻辑模型,然后从系统逻辑模型出发,探索出若干种可供选择的主要解法(即系统模型出发,探索出若干种可供选择的主要解法(即系统实现
4、方案)。最后仔细研究每种解法的可行性。实现方案)。最后仔细研究每种解法的可行性。 6操作可行性操作可行性风险分析风险分析资源分析资源分析技术分析技术分析技术可行性技术可行性经济可行性经济可行性法律可行性法律可行性可行性研究涉及的内容可行性研究涉及的内容硬件设备费用硬件设备费用系统开发费用系统开发费用系统安装、运系统安装、运行和维护费用行和维护费用人员培训费用人员培训费用符合各种法律法规符合各种法律法规操作可行性操作可行性占占到到工工程程总总成成本本的的5%-5%-10%10%7技术可行性分析技术可行性分析技术可行性主要根据系统的功能、性能、约束条件等,分技术可行性主要根据系统的功能、性能、约束
5、条件等,分析在现有资源和技术条件下系统能否实现。析在现有资源和技术条件下系统能否实现。技术可行性分析通常包括风险分析、资源分析和技术分析。技术可行性分析通常包括风险分析、资源分析和技术分析。8 风险分析:分析在给定的约束条件下设计和实现系统分析在给定的约束条件下设计和实现系统的风险。的风险。采用不成熟的技术可能造成技术风险采用不成熟的技术可能造成技术风险人员流动可能给项目带来风险人员流动可能给项目带来风险成本和人员估算不合理造成的预算风险成本和人员估算不合理造成的预算风险 风险分析的目的是找出风险,评价风险的大小,并有效风险分析的目的是找出风险,评价风险的大小,并有效地控制和缓解风险。地控制和
6、缓解风险。9经济可行性分析经济可行性分析经济可行性主要进行成本效益分析,从经济角度,确定系统是否值得开发。基于计算机的系统的成本主要包括:购置硬件、软件(如数据库管理系统、第三方开发的构件等)和设备(如传感器等)的费用系统的开发费用系统安装、运行和维护费用人员培训费用10效益经济效益包括使用基于计算机的系统后可增加的收入和可节省的运行费用(如操作人员数、工作时间、消耗的物资等)。在进行成本效益分析时通常只统计五年内的经济效益。社会效益指使用基于计算机的系统后对社会产生的影响(如提高了办事效益,使用户满意等),通常社会效益只能定性地估计。 经济效益通常可用货币的时间价值、投资回收期和纯收经济效益
7、通常可用货币的时间价值、投资回收期和纯收入来度量。入来度量。112.3 2.3 可行性研究的步骤可行性研究的步骤研究目前的系统研究目前的系统项目目标和规模项目目标和规模形成高层逻辑模型形成高层逻辑模型问题的重新定义问题的重新定义备选方案备选方案1 1备选方案备选方案2 2备选方案备选方案3 3管理决策人员管理决策人员草拟开发计划草拟开发计划书写文档提交审查书写文档提交审查分析人员分析人员12132.4 2.4 系统流程图系统流程图系统流程图:系统流程图:是描绘物理系统的传统工具,它的基本思是描绘物理系统的传统工具,它的基本思想是用图形符号以想是用图形符号以黑盒子黑盒子形式描绘系统里面的每一个部
8、形式描绘系统里面的每一个部件(程序、文件、数据库、表格、人工过程等)。件(程序、文件、数据库、表格、人工过程等)。 注:注:尽管系统流程图使用的某些符号和程序流程图所用尽管系统流程图使用的某些符号和程序流程图所用的符号相同,但系统流程图表达的是信息在系统中各个的符号相同,但系统流程图表达的是信息在系统中各个部件之间流动的情况,部件之间流动的情况,而不是对信息进行加工处理的控而不是对信息进行加工处理的控制过程。制过程。 画法习惯:画法习惯:是使信息在图中从顶向下或从左到右。同时是使信息在图中从顶向下或从左到右。同时采用分层的方法描绘系统。采用分层的方法描绘系统。 14表表2.1 2.1 系统流程
9、图的基本符号系统流程图的基本符号符号符号名称名称说明说明处理处理能改变数据值或数据位置的加工或部件能改变数据值或数据位置的加工或部件输入输入/ /输出输出表示输入或输出(或既输入又输出),是一个广义的不指明具体表示输入或输出(或既输入又输出),是一个广义的不指明具体设备的符号设备的符号连接连接指出转到图的另一部分或从图的另一部分转来,通常在同一页上指出转到图的另一部分或从图的另一部分转来,通常在同一页上换页连接换页连接指出转到另一页图上或由另一页图转来指出转到另一页图上或由另一页图转来人工操作人工操作由人工完成处理由人工完成处理数据流数据流用来连接其他符号,指明数据流动方向用来连接其他符号,指
10、明数据流动方向磁盘磁盘磁盘磁盘I/O,I/O,也可表示存储在磁盘上的文件和数据也可表示存储在磁盘上的文件和数据人工输入人工输入人工输入数据的脱机处理,如填写表格人工输入数据的脱机处理,如填写表格文档文档通常表示打印输出,也可以表示用打印终端输入数据通常表示打印输出,也可以表示用打印终端输入数据151 1、制作过程是系统分析员全面了解系统业务处理概况的、制作过程是系统分析员全面了解系统业务处理概况的过程,它是系统分析员作过程,它是系统分析员作进一步分析的依据进一步分析的依据;2 2、是系统分析员、管理员、业务操作员相互、是系统分析员、管理员、业务操作员相互交流的工具交流的工具;3 3、系统分析员
11、可以直接在流程图上画出可以由计算机处、系统分析员可以直接在流程图上画出可以由计算机处理的部分;理的部分;4 4、可利用系统流程图来分析业务流程的合理性。、可利用系统流程图来分析业务流程的合理性。系统流程图的作用:系统流程图的作用:16图书数据库图书数据库图书查询图书查询检书卡检书卡索书单索书单借书借书借书单借书单取书取书读者读者检书卡检书卡图书馆借书系统流程图图书馆借书系统流程图172.5 2.5 成本成本/ /效益分析效益分析成本成本/ /效益分析的目的,是从经济角度评价开发一个新项目效益分析的目的,是从经济角度评价开发一个新项目是否可行、是否划算,从而帮助使用部门的负责人正确地作出是否可行
12、、是否划算,从而帮助使用部门的负责人正确地作出是否投资于这项开发的决定。是否投资于这项开发的决定。 一、成本估计一、成本估计WolvertonWolvertonBoehmBoehm自顶向下估计自顶向下估计自顶向上估计自顶向上估计相似与差异估计相似与差异估计比率估计比率估计标准值估计标准值估计自顶向下估计自顶向下估计自顶向上估计自顶向上估计类别估计类别估计专家判断专家判断算法模型估计算法模型估计ParkinsonParkinson法法削价取胜法削价取胜法181 1、自顶向下估计:自顶向下估计:基于软件的基于软件的整体性考虑整体性考虑,首先估算出总,首先估算出总的开发成本,然后在项目内的开发成本,
13、然后在项目内部进行成本分配。部进行成本分配。2 2、自底向上估计:自底向上估计:与自顶向下与自顶向下估计相反,是从估计相反,是从一个个任务一个个任务单元单元开始。开始。3 3、算法模型估计:算法模型估计:是资源模型,是资源模型,是成本估计的一种有效工具。是成本估计的一种有效工具。19 1 1代码行技术代码行技术 2 2任务分解技术任务分解技术 二、费用估计二、费用估计20三、三、 度量效益的方法度量效益的方法 1 1货币的时间价值货币的时间价值货币的时间价值通常用利率的形式表示。假设年货币的时间价值通常用利率的形式表示。假设年利率为利率为i i,如果现在存入,如果现在存入P P元元,则,则n
14、n年后可以得到的钱年后可以得到的钱数为:数为: F FP P(1(1十十i)i)n n 这也就是这也就是P P元钱在元钱在n n年后的价值。反之,如果年后的价值。反之,如果n n年年后能收入后能收入F F元钱,那么这些钱的元钱,那么这些钱的现在的价值现在的价值是:是: P PF/F/(1(1十十i)i)n n21 例:例:在办公业务中采用自动化办公方式,可以在办公业务中采用自动化办公方式,可以避免人工方式造成的时间及经济浪费,每年避免人工方式造成的时间及经济浪费,每年大概可节省大概可节省2 2万元。若软件的生存期为万元。若软件的生存期为6 6年,年,则则6 6年可节省年可节省1212万元,而开
15、发该系统共需投资万元,而开发该系统共需投资5 5万元。万元。22时间时间/年年将来值将来值/万元万元(1+i)n现在值现在值/万元万元累积的现在累积的现在值值/万元万元121.051.90481.9048221.10251.81403.7188321.15761.72775.4465421.21551.64547.0919521.27631.56708.6589621.34011.492410.1513货币的时间价值货币的时间价值232 2投资回收期投资回收期所谓投资回收期就是使所谓投资回收期就是使累计的经济效益等于最初投累计的经济效益等于最初投资所需要的时间。资所需要的时间。显然,投资回收期
16、显然,投资回收期越短就能越快获得越短就能越快获得利润,利润,这项工程也就越值得投资。这项工程也就越值得投资。3 3纯收入纯收入纯收入就是在整个生命周期之内系统纯收入就是在整个生命周期之内系统累计经济效益累计经济效益(折合成现在值)与投资之差。(折合成现在值)与投资之差。这相当于比较投资开发这相当于比较投资开发一个软件系统和把钱存在银行中(或贷给其他企业)这一个软件系统和把钱存在银行中(或贷给其他企业)这两种方案的优劣。两种方案的优劣。244 4、投资回收率投资回收率:用来衡量投资效益的大小。:用来衡量投资效益的大小。 已知现在的投资额,并且已经估计出将来每年获得的经已知现在的投资额,并且已经估计出将来每年获得的经济效益,那么投资回收率为:济效益,那么投资回收率为: P=FP=F1 1/(1+j)+F/(1+j)+F2 2/(1+j)/(1+j)2 2+F+Fn n/(1+j)/(1+j)n n 其中:其中:P P是现在的投资额;是现在的投资额;Fi Fi是第是第i i年年底的效益年年底的效益(i=1,2ni=1,2n);n ;n是系统的使用寿命;是系统的使用寿命;j j市投资回收率。市投资回收率。