包含
技术可行性
使用现有技术能实现这个系统吗?
经济可行性
这个系统的经济效益能超过它的开发成本吗?
操作可行性
系统的操作方式在这个用户组织内行得通吗?
必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性
可行性研究过程
复查系统规模和目标
对问题定义阶段书写的关于规模和目标的报告书进一步复查确认,改正含糊或不确切的叙述,清晰地描述对目标系统的一切限制和约束
研究目前正在使用的系统
现有系统是需求信息的重要来源
新系统需要着力解决旧系统中存在的问题
运行使用旧系统所需要的费用是一个重要的经济指标
导出新系统的高层逻辑模型
使用数据流图,描绘数据在系统中流动和处理的情况,从而表达出对新系统的设想
为了把新系统描绘得更清晰准确,还应该有一个初步的数据字典,定义系统中使用的数据
进一步定义问题
应与用户一起再次复查问题定义、工程规模和目标,这次复查应把数据流图和数据字典作为讨论的基础
前四步构成一个循环。循环这四个过程直到提出的逻辑模型完全符合系统目标。
导出和评价供选择的解法
需要导出若干个较高层次的(较抽象的)物理解法供比较和选择
首先,根据技术可行性的考虑初步排除一些不切实际的系统方案
其次,考虑操作方面的可行性。应根据使用部门处理事务的原则和习惯检查技术上可行的那些方案
最后,考虑经济方面的可行性。应估计余下的每个可能的系统的开发成本和运行费用,并且估计相对于现有的系统而言这个系统可以节省的成本或增加的收入。
推荐行动方针
根据可行性研究结果做出一个关键性的决定:是否继续进行这项开发工程
用户主要根据经济上是否划算决定是否投资于一项开发工程,因此推荐的系统必须进行比较仔细的成本/效益分析
草拟开发计划
开发计划中,除了制定工程进度表之外,还应该估计对各类开发人员和各种资源的需要情况,应该指明什么时候使用以及使用多长时间
此外还应该估计系统生命周期每个阶段的成本
最后应该给出下一阶段(需求分析阶段)的详细进度表和成本估计。
书写文档提交审查
应该把上述可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审足审查,以决定是否继续这项工程及是否接手分析员推荐的方案。
成本/效益分析
成本估计
1)代码行技术
估计出源代码行数以后,用每行代码的平均成本乘以行数就可以确定软件的成本。
2)任务分解技术
把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独每个任务的成本,最后累加起来获得总成本
3)自动估计成本技术
使用自动估计成本的软件工具。这种工具通常以长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持
运行费用与经济效益
1)货币的时间价值
通常用利率的形式表示货币的时间价值。
要将通货膨胀纳入成本/效益的分析
2)投资回收期
使累计的经济效益等于最初投资所需要的时间。回本需要的时间
3)纯收入
整个生命周期之内系统的累计经济效益与投资之差。
4)投资回收率
相当于银行的利率。通常用它衡量投资效益的大小,并且可以把它和年利率相比较,在衡量经济效益时,它时最重要的指标之一