1、可行性研究计算机系计算机系 任洪敏任洪敏2009.921 可行性研究的目的n是用最小的代价在尽可能短的时间内确定问题是否能够解决。n不是解决问题,而是确定问题是否值得去解。n怎样达到这个目的呢?当然不能靠主观猜想而只能靠客观分析。n因此,可行性研究实质亡是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。32 可行性研究的任务n1 技术可行性 使用现有的技术能实现这个系统吗?n2 经济可行性 这个系统的经济效益能超过它的开发成本吗?n3 操作可行性 系统的操作方式在这个用户组织内行得通吗?43 可行性研究的过程n1 复查系统规模和目标n
2、2 研究目前正在使用的系统 应该仔细问读分析现有系统的文档资料和使用手册,也要实地考察现有的系统。常见的错误做法是花费过多时间去分析现有的系统。这个步骤的目的是了解现有系统能做什么,而不是了解它怎样做这些工作。干万不要花费太多时间画出系统高层流程图53 可行性研究的过程n3 导出新系统的高层逻辑模型 优秀的设计通常总是从现有的物理系统出发,导出现有系统的逻辑模型再参考现有系统的逻辑模型,设想目标系统的逻辑模型,最后根据目标系统的逻辑模型建造新的物理系统。673 可行性研究的过程n4 进一步定义问题用户评审。1-4循环8n5 导出和评价供选择的解法 导出几种解法评价:技术、操作、经济方面制定实现
3、进度,评估工作量3 可行性研究的过程93 可行性研究的过程n6 推荐行动方针 是否继续进行推荐一个好的方案和理由10n7 草拟开发计划 工程进度计划开发人员其它各类资源成本估计n8 书写文档提交评审3 可行性研究的过程11n概括的形式表达对现有系统的认识n描绘未来的物理系统的概貌。n系统流程固是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序,文件,数据库表格,人工过程等等)。n系统流程图表达的是信息在系统各部件之间流动的情况,而不是对倍息进行加工处理的控制过程,n因此尽管系统流程团使用的某些符号和程序流程固中用的符号相同,但是它却是物理数据流因而不是程
4、序流程图。4 系统流程图-概念124 系统流程图-符号134 系统流程图-符号144 系统流程图-符号某装配厂有一座存放零件的仓库,仓某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主有变化时,应该及时修改库存清单主文件,如果哪种零件的库存量少于它文件,如果哪种零件的库存量少于它的库存量临界值,则应该报告给采购的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门部门以便定货,规定
5、每天向采购部门送一次定货报告。送一次定货报告。154 系统流程图-符号该装配厂使用一台小型计算机处理更新库该装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。零存清单主文件和产生定货报告的任务。零件库存量的每一次变化称为一个事务,由件库存量的每一次变化称为一个事务,由放在仓库中的放在仓库中的CRT终端输入到计算机中;终端输入到计算机中;系统中的库存清单程序对事务进行处理,系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并更新存储在磁盘上的库存清单主文件,并且把必要的定货信息写在磁带上。最后,且把必要的定货信息写在磁带上。最后,每天由报告生成程序读一次磁带
6、,并且打每天由报告生成程序读一次磁带,并且打印出定货报告印出定货报告164 系统流程图-例子17人工销售教材 流程图18计算机售书系统流程图1920n成本效益分析的目的正是要从经济角度分析开发个特定的新系统是否划算,从而帮助使用部门负责人正确地作出是否投资于这项外发工程的决定。5 成本/效益分析21代码行技术n把开发每个软件功能的成本和实现这个功能把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。通常根据经需要用的源代码行数联系起来。通常根据经验和历史数据估计实现一个功能需要的源程验和历史数据估计实现一个功能需要的源程序行数。序行数。n用每行代码的平均成本乘以行数就可以确定用每
7、行代码的平均成本乘以行数就可以确定软件的成本。每行代码的平均成本主要取决软件的成本。每行代码的平均成本主要取决于软件的复杂程度和工资水平。于软件的复杂程度和工资水平。5 成本估计方法22n任务分解技术 先把软件开发工程分解为若干个相对独立的任务。再分别先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来得出软件估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。估计每个任务的成本时,通常先估计开发工程的总成本。估计每个任务的成本时,通常先估计完成该项任务需要用的人力完成该项任务需要用的人力(以人月为单位以人月为单位),再乘以每人,再乘以每
8、人每月的平均工资而得出每个任务的成本。每月的平均工资而得出每个任务的成本。5 成本估计方法23.自动估计成本技术自动估计成本技术 采用自动估计成本的软件工具可以减轻人采用自动估计成本的软件工具可以减轻人的劳动,并且使得估计的结果更客观。但是,的劳动,并且使得估计的结果更客观。但是,采用这种技术必须有长期搜集的大量历史数采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支据为基础,并且需要有良好的数据库系统支持持。5 成本估计方法24 成本成本/效益分析效益分析 第一步是估计开发成本、运行费用和新系统将带来的经济第一步是估计开发成本、运行费用和新系统将带来的经济效益。效益
9、。运行费用取决于系统的操作费用运行费用取决于系统的操作费用(操作员人数,工作时间,操作员人数,工作时间,消耗的物资等等消耗的物资等等)和维护费用。和维护费用。系统的经济效益等于因使用新系统而增加的收入加上使用系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。新系统可以节省的运行费用。因为运行费用和经济效益两者在软件的整个生命周期内都因为运行费用和经济效益两者在软件的整个生命周期内都存在,总的效益和生命周期的长度有关,所以应该合理地存在,总的效益和生命周期的长度有关,所以应该合理地估计软件的寿命。估计软件的寿命。5 成本估计方法25 成本成本/效益分析效益分析 许多系统
10、在开发时预期生命周期长达许多系统在开发时预期生命周期长达10年以上,但是时间年以上,但是时间越长系统被废弃的可能性也越大,为了保险起见,以后在越长系统被废弃的可能性也越大,为了保险起见,以后在进行成本进行成本/效益分析时一律假设生命周期为效益分析时一律假设生命周期为5年。年。但是,投资是现在进行的,效益是将来获得的,不能简单但是,投资是现在进行的,效益是将来获得的,不能简单地比较成本和效益,应该考虑货币的时间价值。地比较成本和效益,应该考虑货币的时间价值。5 成本估计方法26 成本成本/效益分析效益分析 通常用利率的形式表示货币的时间价值。假设年通常用利率的形式表示货币的时间价值。假设年利率为
11、利率为i,如果现在存入,如果现在存入P元,则元,则n年后可以得到的年后可以得到的钱数为:钱数为:F=P(1+i)n 这也就是这也就是P元钱在元钱在n年后的价值。反之,如果年后的价值。反之,如果n年年后能收入后能收入F元钱,那么这些钱的现在价值是元钱,那么这些钱的现在价值是 P=F/(1+i)n5 成本估计方法27 成本成本/效益分析效益分析 修改一个已有的库存清单系统,使它能在每天送给采购员修改一个已有的库存清单系统,使它能在每天送给采购员一份定货报表。修改已有的库存清单程序并且编写产生报一份定货报表。修改已有的库存清单程序并且编写产生报表的程序,估计共需表的程序,估计共需5000元;系统修改
12、后能及时定货将消元;系统修改后能及时定货将消除零件短缺问题,估计因此每年可以节省除零件短缺问题,估计因此每年可以节省2500元,元,5年共年共可节省可节省12500元。但是,不能简单地把元。但是,不能简单地把5000元和元和12500元相比较,因为前者是现在投资的钱,后者是若干年以后元相比较,因为前者是现在投资的钱,后者是若干年以后节省的钱。节省的钱。假定年利率为假定年利率为12%5 成本估计方法285 成本/效益分析方法29n投资回收期n投资回收期就是使累计的经济效益等于最初投资所需要的时间。投资回收期越短就能越快获得利润n 例如,修改库存清单系统两年以后可以节省422512元,比最初的投资(5000元)还少77488元n,第三年以后将再节省177945元。77488177945o44,因此,投资回收期是244年。5 成本/效益分析方法30投资回收率n把资金存入银行或贷给其他企业能够获得利息,通常用年把资金存入银行或贷给其他企业能够获得利息,通常用年利率衡量利息多少。类似地也可以计算投资回收率,用它利率衡量利息多少。类似地也可以计算投资回收率,用它衡量投资效益的大小,并且可以把它和年利率相比较,在衡量投资效益的大小,并且可以把它和年利率相比较,在衡量工程的经济效益时,它是最重要的参考数据。衡量工程的经济效益时,它是最重要的参考数据。5 成本/效益分析方法