第3章 系统需求分析及可行性分析
3.2 可行性分析
所有项目均是可行的,但前提是在给定无限的资源和无限的时间的情况下。不幸的是,基于计算机的系统开发往往受困于资源不足和紧张的开发时间。为此,在尽可能早的时间内评估项目的可行性既是必要的也是应该的,如果在系统分析阶段能够较早地识别出一个错误构思的系统,那么就可以避免大量的人力、物力、时间上的浪费,甚至数不清的专业开发人员的��怨。
软件项目一旦被确认,承担软件开发的人员就需要在确认项目目标的基础上,对项目的范围、时间限制、问题域的关键问题(即业务背景)以及该软件开发所必需的技术方案进行论证,其目的就是在该项目进入实际的软件开发过程之前用*小的代价论证该项目是否能做,是否值得做。
无论该软件是项目投资的一方还是进行软件开发的一方,大多数情况下均以公司运营盈利为主要目的。援引联想集团领导人柳传志说过的话:“没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投得起钱但没有可靠的人选,这样的事也不干。”这几段话映射到软件开发上,为系统可行性分析指明了方向。
在系统分析过程中,引入系统可行性分析的一个优点在于可以在很大程度上减少投资的损失。利用有限的人力和物力,并在尽可能短的时间内对系统项目进行宏观的分析和决策,一方面,为后期的软件开发指明方向,也是项目管理和计划的前期准备;另一方面,即使决定项目终止也不会对项目建设的双方带来巨大的经济损失。
3.2.1 可行性分析的任务和步骤
首先,针对项目确定问题域并对问题域进行概要的分析和研究,初步确定项目的规模、约束和限制条件;其次,针对问题域中的关键和核心问题进行简要的需求分析,抽象出问题域的逻辑结构,并构建逻辑模型;*后从逻辑模型出发,通过小规模的设计和技术实现论证,探索出若干种可供选择的解决方案,并对每种方案进 行可行性方面的论证。
可行性分析主要集中在以下4个方面。
(1)经济可行性:进行开发成本的估算以及可能取得的经济效益,确定待开发系统是否值得投资开发。
(2)技术可行性:对待开发的系统进行功能、性能和限制条件的分析,确定在现有资源的条件下,技术风险有多大,系统是否能实现。其中,资源包括已有的或可以获得的硬件、软件资源,现有技术人员的技术水平与已有的工作基础。
(3)法律可行性:确认待开发系统可能涉及的任何侵权、妨碍、责任的问题。
(4)方案的选择:对待开发系统的不同方案进行比较评估。尤其是成本和时间限制,会给方案的选择带来很大的限制。
……