可行性研究
可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。(只是寻找客户所提需求的解决方案,能干还是不能干的问题。)
可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程。
GB 8566-88 《计算机软件开发规范》中指出:可行性研究的主要任务是“四个方面”
“了解客户的要求及现实环境,从技术、经济、操作和社会因素等方面研究并论证本软件项目目的可行性,编写可行性研究报告,制定初步项目开发计划。”
在澄清问题定义之后,分析员应该导出系统的逻辑模型。然后从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案)。一般来说,至少该从下述三个方面研究每种解法的可行性。
①技术可行性:使用现有的技术能不能实现整个系统
②经济可行性:整个系统的经济效益是否超过它的开发成本
· “成本-效益”分析
· 评价经济的合理性
· 权衡支出的费用和收到的利益
· 正确估计开发费用以及最终从所开发的系统获得的收入和利益是否超过开发系统
③操作可行性:系统的操作方式在这个用户组织是否行得通。
必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。
可行性研究需要的时间长短取决于工程的规模。一般说来,可行性研究的成本只是预期的工程总成本的5%-10%。
可行性研究过程
典型的可行性研究过程有以下几个步骤
1,复查系统规模和目标
①访问关键人员
②仔细查阅和分析有关材料
③改正含糊或不确切的叙述
2,研究目前正在使用的系统
①现有的系统是信息的重要来源,新的目标系统必须也能完成它的基本功能。
②千万不要花费大多时间去了解和描绘现有系统的实现细节。
3,导出新系统的高层逻辑模型
①从现有的物理系统出发,导出系统的逻辑模型
②参考现有的逻辑模型,设想目标系统的逻辑模型
③根据目标系统的逻辑模型建造新的物理系统
4,进一步定义问题
①用户和分析员一起再次复查问题定义,工程规模和目标
可行性研究的前4个步骤实质上构成了一个循环。分析员定义问题,分析这个问题,导出一个试探性的解;在此基础上再次定义问题,再次分析这个问题,修改这个解;继续这个循环过程,直到提出的逻辑模型完全符合系统目标。
5,导出和评价供选择的解法
分析员应该从他建议的系统逻辑模型出发,导出若干个较高层次的(较抽象的)物理解法供比较和选择。导出供选择的解法的最简单的途径,是从技术角度出发考虑解决问题的不同方案。分析员可以确定几组不同的自动化边界,然后针对每一组边界考虑如何实现要求的系统。还可以使用组合的方法导出若干种可能的物理系统,例如,在每一类计算机上可能有几种不同类型的系统,组合各种可能将有微处理机上的批处理系统、微处理机上的交互式系统、小型机上的批处理系统等方案,此外还应该把现有系统和人工系统作为两个可能的方案一起考虑进去。
亦时当从技术角度提出了一些可能的物理系统之后,应该根据技术可行性的考虑初步排除一些不现实的系统。例如,如果要求系统的响应时间不超过几秒钟,显然应该排除任何批处理方案。把技术上行不通的解法去掉之后,就剩下了一组技术上可行的方案。
其次可以考虑操作方面的可行性。分析员应该根据使用部门处理事务的原则和习惯检查技术上可行的那些方案,去掉其中从操作方式或操作过程的角度看用户不能接受的方案。接下来应该考虑经济方面的可行性。分析员应该估计余下的每个可能的系统的开发成本和运行费用,并且估计相对于现有的系统而言这个系统可以节省的开支或可以增加的收入。
最后为每个在技术、操作和经济等方面都可行的系统制定实现进度表,这个进度表不需要(也不可能)制定得很详细,通常只需要估计生命周期每个阶段的工作量。
6,推荐方针
根据可行性研究结果应该决定的- 个关键性问题是:是否继续进行这项开发工程?分析员必须清楚地表明他对这个关键性决定的建议。如果分析员认为值得继续进行这项开发工程,那么他应该选择一种最好的解法 .并且说明选择这个解决方案的理由。通常客户主要根据经济上是否划算决定是否投资于一项开发 工程,因此分析员对于所推荐的系统必须进行比较仔细的成本/效益分析。
7,草拟开发方案
分析员应该为所推荐的方案草拟一份开发计划,除了制定工程进度表之外还应该估计对各类开发人员(例如,系统分析员、程序员)和各种资源(计算机硬件、软件工具等)的需要情况,应该指明什么时候使用以及使用多长时间。此外还应该估计系统生命周期每个阶段的成本。最后应该给出下一个阶段(需求分析)的详细进度表和成本估计。
8,书写文档提交审查
应该把上述可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。
可行性研究的步骤总结
逻辑模型表达了系统分析员对新系统必须作什么工作,完成什么任务的理解
1,是否继续该工程的开发的建议
2,所选择解决方案的解决的说明
3,比较仔细的成本/效益分析