1
面向对象软件工程实践指南
1.2.4.2 4.2 可行性研究
4.2 可行性研究

4.2.1 进行可行性研究的目的与方法

可行性研究过程,也称为项目论证过程,是指在投入资源进行项目开发之前,根据实际情况,对该项目是否值得开发、项目是否能在特定的资源和时间条件下完成作出评估。可行性研究的重点不在于项目如何完成,而在于项目是否值得完成,是否能够完成。

可行性研究主要需要考虑技术可行性、经济可行性和社会可行性三个方面。进行可行性研究的过程可大致参考如下几个步骤:

(1)明确系统目标与资源限制。

(2)分析研究现有系统。

(3)对比新系统与现有系统。

(4)分析新系统的可能实现方案并进行比较。

(5)编写可行性研究报告。

4.2.2 可行性研究报告的编写方法

可行性报告中涉及的重要部分以及相应的编写方法如下:

4.2.2.1 可行性研究的前提

说明对所建议的开发项目进行可行性研究的前提,如要求、目标、假定、限制等。任何可行性研究都是建立在一定的前提基础上的。

1)要求

说明对所建议开发的软件的基本要求,包括在功能和性能方面的要求。

在可行性报告中,对功能的表述一般用文字表达,也可以用用例的方式加以表述。为了进一步刻画功能,可以画交互图或者活动图来体现业务逻辑,也可以画数据流程图来表示业务逻辑。

在性能表示方面,通过文字描述速度、安全性、与其他系统集成等要求。

如果对项目有明确的完成期限,也将其列出。

对于整个系统将说明其输入和输出数据。输入描述系统的输入,包括数据的来源、类型、数量、数据的组织以及提供的频度;输出包括报告、文件或数据,对每项输出要说明其特征,如用途、产生频度、接口以及分发对象等。

2)目标

说明所建议系统的主要开发目标,如:人力与设备费用的减少;处理速度的提高;控制精度或生产能力的提高;管理信息服务的改进;自动决策系统的改进;人员利用率的改进。

这些目标都是希望通过开发软件系统所要达成的业务目标。

3)条件、假定和限制

说明对这项开发中给出的条件、假定和所受到的限制,如:所建议系统的运行寿命的最小值;进行系统方案选择比较的时间;经费、投资方面的来源和限制;法律和政策方面的限制;硬件、软件、运行环境和开发环境方面的条件和限制;可利用的信息和资源;系统投入使用的最晚时间。

4)进行可行性研究的方法

说明这项可行性研究将是如何进行的,所建议的系统将是如何评价的。摘要说明所使用的基本方法和策略,如调查、加权、确定模型、建立基准点或仿真等。

5)评价尺度

说明对系统进行评价时所使用的主要尺度,如费用的多少、各项功能的优先次序、开发时间的长短及使用中的难易程度等。

4.2.2.2 对现有系统的分析

这里的现有系统是指当前实际使用的系统,这个系统可能是计算机系统,也可能是一个机械系统甚至是一个人工系统。分析现有系统的目的是为了进一步阐明建议中的开发新系统或修改现有系统的必要性。

1)处理流程和数据流程

说明现有系统基本的处理流程。此流程可用交互图和活动图表示,也可以用数据流图表示。

2)工作负荷

列出现有系统所承担的工作及工作量。

3)费用开支

列出由于运行现有系统所引起的费用开支,如人力、设备、空间、支持性服务、材料等项目开支以及开支总额。

4)人员

列出为了现有系统的运行和维护所需要的人员的专业技术类别和数量。

5)设备

列出现有系统所使用的各种设备。

6)局限性

列出本系统主要的局限性,例如,处理时间赶不上需要,响应不及时,数据存储能力不足,处理功能不够等。并且要说明,为什么对现有系统的改进性维护已经不能解决问题。

4.2.2.3 所建议的系统

用来说明所建议系统的目标和要求如何满足。

1)对所建议系统的说明

概括地说明所建议系统,并说明在4.2.2.1节中列出的那些要求将如何得到满足,说明所使用的基本方法及根据。

2)处理流程和数据流程

给出所建议系统的处理流程和数据流程。

3)改进之处

按列出的目标,逐项说明所建议系统相对于现存系统具有的改进。

4)影响

说明在建立所建议系统时,预期将带来的影响,包括:

(1)对设备的影响:说明新提出的设备要求及对现存系统中尚可使用的设备须做出的修改。

(2)对软件的影响:说明为了使现存的应用软件和支持软件能够同所建议系统相适应。而需要对这些软件所进行的修改和补充。

(3)对用户单位机构的影响:说明为了建立和运行所建议系统,对用户单位机构、人员的数量和技术水平等方面的全部要求。

(4)对系统运行过程的影响:说明所建议系统对运行过程的影响,如:用户的操作规程;运行中心的操作规程;运行中心与用户之间的关系;源数据的处理;数据进入系统的过程;对数据保存的要求,对数据存储、恢复的处理;输出报告的处理过程、存储媒体和调度方法;系统失效的后果及恢复的处理办法。

(5)对开发的影响:说明对开发的影响,如:为了支持所建议系统的开发,用户需进行的工作;为了建立一个数据库所要求的数据资源;为了开发和测验所建议系统而需要的计算机资源;所涉及的保密与安全问题。

(6)对地点和设施的影响:说明对建筑物改造的要求及对环境设施的要求。

(7)对经费开支的影响:扼要说明为了所建议系统的开发、设计和维持运行而需要的各项经费开支。

5)局限性

说明所建议系统尚存在的局限性以及这些问题未能消除的原因。

6)技术条件方面的可行性

本节应说明技术条件方面的可行性,如:在当前的限制条件下,该系统的功能目标能否达到;利用现有的技术,该系统的功能能否实现;对开发人员的数量和质量的要求并说明这些要求能否满足;在规定的期限内,本系统的开发能否完成。

4.2.2.4 可选择的其他系统方案

扼要说明曾考虑过的每一种可选择的系统方案,包括需开发的和可从国内国外直接购买的,如果没有供选择的系统方案可考虑,也说明这一点。

1)可选择的系统方案1

参照前一部分的提纲,说明可选择的系统方案1,并说明它未被选中的理由。

2)可选择的系统方案2

按类似1)的方式说明第2个乃至第n个可选择的系统方案。

4.2.2.5 投资及效益分析

1)支出

对于所选择的方案,说明所需的费用。如果已有一个现存系统,则包括该系统继续运行期间所需的费用。

(1)基本建设投资:包括采购、开发和安装下列各项所需的费用,如:房屋和设施;硬件设备,包括服务器、存储、移动设备等;网络设施;环境保护设备;安全与保密设备;操作系统和应用软件;数据库管理软件。

(2)其他一次性支出:包括下列各项所需的费用,如:研究(需求的研究和设计的研究);开发计划与测量基准的研究;数据库的建立;已有软件的修改;检查费用和技术管理性费用;培训费、旅差费以及开发安装人员所需要的一次性支出;人员的退休及调动费用等。

(3)非一次性支出:列出在该系统生命期内按月或按季或按年支出的用于运行和维护的费用,包括:设备的租金和维护费用;软件的租金和维护费用;数据通信方面的租金和维护费用;人员的工资、奖金;房屋、空间的使用开支;公用设施方面的开支;保密安全方面的开支;其他经常性的支出等。

2)收益

对于所选择的方案,说明能够带来的收益,这里所说的收益,表现为开支费用的减少或避免、差错的减少、灵活性的增加、动作速度的提高和管理计划方面的改进等,包括以下几项:

(1)一次性收益:说明能够用人民币数目表示的一次性收益,可按数据处理、用户、管理和支持等项分类叙述,如:①开支的缩减包括改进了的系统运行所引起的开支缩减,如资源要求的减少,运行效率的改进,数据进入、存贮和恢复技术的改进,系统性能的可监控,软件的转换和优化,数据压缩技术的采用,处理的集中化/分布化等;②价值的增升包括由于一个应用系统的使用价值的增升所引起的收益,如资源利用的改进,管理和运行效率的改进以及出错率的减少等;③其他收益如从多余设备出售回收的收入等。

(2)非一次性收益:说明在整个系统生命期内由于运行所建议系统而导致的按月的、按年的能用人民币数目表示的收益,包括开支的减少和避免。

(3)不可定量的收益:逐项列出无法直接用人民币表示的收益,如服务的改进,由操作失误引起的风险的减少,信息掌握情况的改进,组织机构给外界形象的改善等。有些不可确定的收益只能大概估计或进行极值估计(按最好和最差情况估计)。

3)收益/投资比

求出整个系统生命期的收益/投资比值。

4)投资回收周期

求出收益的累计数开始超过支出的累计数的时间。

5)敏感性分析

所谓敏感性分析是指一些关键性因素如系统生命期长度、系统的工作负荷量、工作负荷的类型与这些不同类型之间的合理搭配、处理速度要求、设备和软件的配置等变化时,对开支和收益的影响的最灵敏的范围估计。在敏感性分析的基础上做出的选择会比单一选择的结果要好一些。

4.2.2.6 社会因素方面的可行性

用来说明对社会因素方面的可行性分析的结果,包括:

1)法律方面的可行性

法律方面的可行性问题很多,如合同责任、侵犯专利权、侵犯版权等方面的陷阱,软件人员通常是不熟悉的,有可能违背,需要注意研究。

2)使用方面的可行性

例如从用户单位的行政管理、工作制度等方面来看,是否能够使用该软件系统;从用户单位工作人员的素质来看,是否能满足使用该软件系统的要求等等。

4.2.2.7 结论

在进行可行性研究报告的编制时,必须有一个研究的结论。结论可以是:①可以立即开始进行;②需要推迟到某些条件(如资金、人力、设备等)落实之后才能开始进行;③需要对开发目标进行某些修改之后才能开始进行;④不能进行或不必进行(如因技术不成熟、经济上不合算等)。