第3章可行性研究
任何一个新项目被提出后,首先都要进行项目论证,软件项目也如此。项目论证就是对要开发的项目在技术、管理、经济、操作和法律等方面的可行性进行综合分析,从而避免软件开发中可能出现的人力、物力、财力和时间的过多消耗,最后提交可行性分析研究报告,为项目的立项决策提供客观的依据。所以对软件项目进行可行性分析是软件开发前的必要步骤。
开发一个软件,首先应该评价开发这个软件的可行性。可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。可行性研究和需求分析的区别在于: 可行性研究决定“做还是不做”,需求分析决定“做什么,不做什么”。
可行性研究对于大型项目来说是必不可少的。有的可行性研究要持续很长时间,花费占总工程成本的5%~10%,但它是降低软件开发风险、避免开发失败的有效途径。
3.1问题定义与任务
可行性研究的目的不是解决问题,而是确定问题是否值得去解决。通过深入调查、分析、比较几种主要的可能解法的利弊,进而判断原定的系统规模和目标是否现实,系统完成后带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大简化的系统分析和设计过程,也就是在较高的层次上以较抽象的方式进行的系统分析和设计的过程。
可行性研究最根本的任务是对以后的行动方针提出建议。如果问题没有可行的解,分析员应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如果问题有可行的解,但现在的条件还不充分,则暂缓开发;如果问题值得解决,分析员应该推荐一个较好的解决方案,并且为开发工程制定初步的计划。
可行性研究首先需要进一步分析和澄清问题的定义。在问题定义阶段要初步确定规模和目标。如果对目标系统有任何约束和限制,就必须清楚地把它们列举出来。
可行性研究的主要任务就是了解客户的要求及现实环境,从经济、技术和社会因素3方面研究并论证软件项目的可行性,为合理地达到开发目标选择可能的解决方案。
1. 经济可行性
经济可行性是指能否以最小的成本开发出具有最佳经济效益的软件产品,主要进行投资和效益分析。
对大多数系统而言,经济可行性通常是考虑的基础,一般包括经济效益和社会效益。经济上的合理性包括很多方面,如成本效益分析、长期的总体经营策略、对其他获利中心或获利产品的影响、开发工作所需资源的购置费用以及潜在的市场等。经济效益指应用软件系统后能够为用户增加收入、降低成本、提高工作效率、提高质量等。它是可以通过直接的或统计的方法计算的。社会效益很难直接计算,是指软件系统投入使用后提高了用户知名度、提高了用户产品的市场占有率、提高了管理水平等。在估算效益时,应该把可能影响效益的各种因素考虑在内。
经济可行性研究的内容有两个方面: 一是估计开发费用以及最终从开发的系统获得的收入或利益;二是权衡软件系统的投入使用所带来的效益,即进行开发成本的估算,评估项目成功取得的效益,确定要开发的项目是否值得投资开发。由于项目开发规模、功能、维护活动等有很多不确定性因素,因此很难准确估算出项目开发成本及产生的效益。通常估算软件项目开发成本时应考虑以下几个因素:
 购置、安装软硬件及有关设备的费用。
 材料及附属设施(电力、通信、公共设施费用等)。
 软件系统开发费用。
 系统安装、运行(人员费用、易耗品费用、办公费用等)和维护费用。
 人员培训费用。
在进行费用估算时,切忌估算过低。如果费用估算过低,会使可行性研究所得结论不正确,影响项目建设。系统效益包括直接的经济效益和间接的社会效益。社会效益往往难以用货币形式体现,如提升企业形象、增强企业竞争力和影响力等。
2. 技术可行性
技术可行性是指对设备条件、技术解决方案的实用性和技术资源可用性的度量。
根据用户提出的系统功能、性能及实现系统的各项约束条件,从技术的角度研究实现系统的可行性。在技术可行性研究中,必须对要求的功能、性能以及限制条件进行分析,以确定使用现有的技术能否实现这个系统。技术可行性通常考虑以下几个方面。
 开发风险。在限制条件范围内,对系统功能的设计能否满足分析时确定的要求,达到必需的功能与性能。
 技术水平。开发技术是否能够支持系统的研制。
 配备资源。能否获取系统所需资源,包括硬件资源(如计算机系统、网络设备、通信设备及相关的辅助设备设施等)、软件资源(如系统软件、工具软件等)和人力资源。其中,硬件资源和软件资源属于技术资源。进行技术可行性研究时要考虑现有的技术资源能否满足系统开发要求,如果不能,能否在成本允许的范围内获得需要的技术资源。人力资源包括软件开发的管理人员和各层次的技术人员。人力资源是软件开发的基础,应考虑各类人员配置是否满足软件开发的需要,他们所掌握的技术和管理方法是否支持软件项目的完成。
根据技术可行性分析的结果,管理人员必须作出是否进行系统开发的决定。如果系统开发的技术风险很大,或者研究表明当前采用的技术和方法不能实现软件的预期功能和性能,就要做出软件开发不能进行或不必进行的决定。
3. 社会可行性
除了经济、技术因素以外,还有许多社会因素也会影响项目的开展。社会可行性是研究开发的项目是否存在违反法律、侵权或者可能对社会产生不良的影响。
社会可行性涉及的范围比较广,包括国家政策、市场、法律、合同、权益、责任、用户组织的管理模式及规范等。需要分析开发项目是否会违反法律,与国家相关政策、法律是否会产生冲突,管理制度、操作方式是否可行。另外,还要评估软件产品进入市场的风险和市场竞争力。
在可行性研究阶段不能急于着手解决问题,该阶段的主要任务是得到系统切实可行的结论,或者及时中止不可行的项目。可行性报告要得到用户单位决策者的认可,提出的结论要有具体、充分的依据,由用户单位决策者根据可行性报告选择要采用的解决方案。
3.2可行性研究的步骤
在进行可行性研究时,要求分析人员在较短的时间内通过调查、分析和研究,对是否开发系统得出结论。这就需要分析人员根据当前的技术、管理水平和过去的经验,按照下述7个步骤开展可行性研究工作。
1. 确定项目规模和目标
分析人员对关键人员进行调查访问,查阅和分析相关资料,对问题定义阶段完成的项目规模和目标进行复查确认,改正其中含糊或不确切的叙述,对项目规模和目标再次进行确认,清晰地描述对目标系统的一切限制和约束。这个步骤的工作实质上是为了确保分析人员正在解决的问题确实是要解决的问题。
2. 研究现行系统
实地考察现行系统,收集、研究和分析现行系统的文档资料,并访问相关人员,了解现行系统现状、功能、性能及运行情况,参照现行系统存在的问题,确定新系统的目标。注意现行系统和其他系统之间的接口情况,这是设计系统时的重要约束条件。
3. 导出新系统逻辑模型
通过对现行系统的分析,建立新系统的体系结构、功能结构、过程模型、接口等需求,使用系统流程图描述图31新系统逻辑模型建立流程
数据在新系统中的流动和处理情况,导出现有系统的逻辑模型。
新系统逻辑模型建立流程如图31所示,这个过程应反复进行,直到逻辑模型完全符合系统目标为止。
4. 导出供选择的设计方案
根据新系统的逻辑模型,依据用户的要求和开发的技术力量,导出较高层次的设计方案。对于在技术、操作和经济等方面都可行的方案,用甘特图等工具表示开发进度。
5. 推荐可行方案
在对上一步提出的各种方案进行比较分析的基础上,向用户推荐一种方案。在推荐的方案中应清楚地表明项目的开发价值和推荐这个方案的理由,决定项目是否值得开发。
6. 编写可行性研究报告
将上述步骤的结果编制成可行性研究报告,其中应包含以下内容:
(1) 系统概述。主要包括: 当前系统及其存在问题的简单描述,新系统的开发目的、目标、业务对象和范围,新系统及其各个子系统的功能与特性,新系统与当前系统的比较,等等。新系统可以用系统流程图来描述,并附上重要的数据流图、数据字典以及加工说明作为补充。
(2) 可行性分析。这是报告的主体,论述新系统在经济、技术、运行、法律等方面的可行性,并对新系统的主客观条件进行分析。
(3) 拟订开发计划。其中包括工程进度表、人员配备情况、资源配备情况,并预估每个阶段的成本、约束条件等。
(4) 结论。综合上述分析,说明新系统的开发是否可行。结论可分为3类: 可立即进行,推迟进行,不能和不值得进行。
文档编写一直是被软件工程师所忽略的一个能力,但在正规项目开发过程中,特别是在大型项目开发过程中,文档编写可能会占据软件工程师近1/3的工作时间。文档是项目沟通交流和开发实施的基本依据,因此,对软件工程师而言,了解软件项目文档的分类,熟悉软件项目文档编写的要求,掌握文档中使用的各类、图形符号,能够独立编写软件项目文档,是其基本职业能力之一。
7. 提交审查
用户单位和软件使用部门的负责人仔细审查方案。也可以召开论证会,参加人员有用户、使用部门负责人及有关方面专家,对该方案进行论证。最后由相关负责人或论证会参加人员签署意见,表明该任务计划书是否通过。
3.3系统流程图
在进行可行性研究时需要了解和分析现行系统。进入设计阶段后,应该把新系统的逻辑模型转换为物理模型,需要描绘物理系统的概貌。
系统流程图是概括地描绘系统物理模型的传统工具。它的基本思想是用图形符号描绘系统中的每个具体部件(程序、文件、数据库、表格、人工过程等)以及数据在系统各个部件之间流动的情况。系统流程图表达的是部件的数据流,而不是对数据进行加工处理的控制过程。系统流程图的常用符号如表31所示。表31系统流程图的常用符号
符号名称描述处理子系统或程序模块输入输出从外部设备输入或输出到外部设备数据库可连接的数据库管理系统显示显示部件,可用于输入或输出,也可既输入又输出人工操作人工完成的处理,如需要人工签名人工输入人工输入数据,如填写表格文档可存储的文件联机存储表示任何种类的联机存储,包括磁盘、海量存储器件等连接线系统各部件之间的连接线,一般表示数据从一个部分流向另一个部分系统流程图用图形化的符号来记录整个系统和系统各模块的结构,描述系统中各子系统、相关文件和数据之间的关系,表达的是整个系统的体系结构。系统流程图主要应用在系统架构阶段,是系统分析员或系统设计师对将要构建的系统的一种描述,这种描述以简单图形化的方式给出了系统的整体结构,涉及系统将要使用的各种部件,如子系统、数据库、磁盘、文件、用户的输入与输出等。
例3.1某工厂的库房存放该厂生产需要的零件,库房中的各种零件的数量及库存量临界值等数据记录在库存文件中。当库房中零件数量有变化时,应更新库存文件。若某种零件的库存量少于临界值,则通知采购部门订货。库房每天向采购部门发送一份订货报告。请用系统流程图描述该库存系统的整体图32库存系统流程图
结构。
分析:
 库存零件的种类和数量存放在库存清单主文件中。
 随时更新库存文件。
 当某零件库存量少于临界值时,生成订货报告,通知采购部门。
库存系统流程图如图32所示。
系统流程图可以使用Visio工具或文字处理软件中的基本流程图功能来绘制。
系统流程图和程序流程图还是有很大区别的。系统流程图主要描述系统的整体结构,包括子系统的构成和连接关系、系统数据的流动和系统与外部的交互,应用在系统架构阶段;程序流程图主要描述某个程序模块的执行步骤和过程,应用在系统详细设计阶段。
3.4成本效益分析
开发新系统往往要冒一定的风险,系统的开发成本可能比预期的高,效益可能比预期的低。那么,怎样才能判断投资开发新系统在经济上是否划算呢?成本效益分析(Cost Benefit Analysis,CBA)的目的是要从经济角度分析开发一个特定的新系统是否划算,从而帮助新系统的使用部门负责人正确地作出是否投资于这项开发工程的决定。进行成本效益分析时,首先要估算待开发系统的成本,然后与可能取得的效益(有形的和无形的)进行比较与权衡。有形的效益可用货币的时间价值、投资的回收期、纯收入等指标进行度量。无形的效益主要是从定性角度进行衡量,很难进行定量的比较。但是,无形的效益有特殊的潜在价值,且在某些情况下会转化成有形的效益。
成本效益分析主要包括成本估算和成本效益分析。
1. 成本估算
合理的计划是建立在对要完成的工作做出一个比较实际的估计以及对完成该工作建立一些必要的约定的基础上的。项目计划中的第一个活动是成本估算。无论何时进行成本估算,都是在预测未来,要接受某种程度的不确定性。成本估算的基础是对软件相应项目的度量。成本估算的风险有4个方面:
(1) 项目复杂性。它对计划中固有的不确定性产生重大影响。项目复杂性是一个受到对以前工作熟悉程度影响的相对测量值。
(2) 项目规模。它是另一个影响估算准确性的因素。随着项目规模的增长,软件中各个元素之间的相互依赖性也迅速增强,因此项目规模的增长会对项目的成本及进度产生很大的影响。
(3) 结构不确定性的程度。它也会对估算的风险产生影响。软件的结构化程度越高,对功能等的分解越容易,成本估算的精度越高,风险越小。
(4) 历史信息的可用程度。IFPUG(International Function Point Users Group,国际功能点用户组织)将软件项目分为3类: 新开发项目、二次开发的项目和功能增强的项目。历史信息的可用程度也决定了成本估算的风险。当存在大量可用的关于过去类似项目的软件度量时,成本估算就会有更大的保证,总体风险也会降低。
成本估算是软件费用管理的核心。由于影响软件成本的因素很多(如人、技术、环境以及政治因素等),所以成本估算也是软件工程管理中最困难、最易出错的问题之一。成本估算的前提是系统的规模可通过功能点数量、复杂度或代码行数等技术指标确定,涵盖了软件生命周期的各阶段。成本估算的主要内容是工作量估算。如果有类似项目的开发经验(即历史基线完备),则生产率等数据可直接使用这些数据;如果没有类似项目的开发经验,则生产率等数据可由历史基线的平均值得出,或者用专家问卷的方法(即德尔菲法)得到。成本估算的各种假设、条件等均应记入文档,并通过评审。
1)  代码行估算技术
代码行(Line of Code,LOC)估算技术是比较简单的定量估算方法。该方法根据经验和历史数据来估计实现一个功能需要的代码行数。通常将软件分解成一些较小的、可分别独立进行估算的子功能,分别计算每个子功能的代码长度,所有子功能代码行之和即为项目的代码行数。
每个子功能的代码长度估算值EV(Expected Value,期望值)可以通过乐观估算值(a)、可能估算值(m)及悲观估算值(b)的加权平均来计算,公式如下:EV=(a+4m+b)/6LOC估算表中包括估算工作量、估算总成本和估算行成本,这3个指标的计算公式如下:估算工作量=估算代码行数/估算生产率估算总成本=月薪×估算工作量估算行成本=估算总成本/估算代码行数例3.2某CAD系统在工作站上运行,其接口必须连接各种计算机图形设备,包括鼠标器、数字化仪、高分辨率彩色显示器和激光打印机。在本例中,使用代码行估算技术。根据系统规格说明书,软件范围的初步描述如下:
 该系统将从操作员那里接收二维或三维几何数据。
 操作员通过用户界面与该系统交互并控制它,这种用户界面将表现出很好的人机接口设计特性。
 所有的几何数据和其他支持信息都保存在一个CAD数据库内。
 要开发一些设计分析模块以产生在各种图形设备上显示的输出。
 该系统要设计为能控制各种外部设备,包括鼠标器、数字化仪、激光打印机和绘图仪,并能与这些设备交互。
经过分解,识别出下列主要软件功能:
 用户界面和控制功能。
 二维几何造型功能。
 三维几何造型功能。
 数据库管理功能。
 计算机图形显示功能。
 外部设备控制功能。
 设计分析模块。
通过分解,可得到该系统的软件成本估算表,如表32所示。实现每个子功能所需要的代码行数见表32中第2~4列,第6列是每行代码的成本,第7列是生产率,第8列“成本”和第9列“人力”都是计算而得。表32采用代码行技术得到的软件成本估算表
子功能乐观值可能值悲观值期望值ambEV估算行成
本/(元/行)生产率
/(行/人月)估算总
成本/元估算工作量
/(人月)用户界面和控制180024002650234014315327 607.4二维几何造型410052007400538020220107 60024.4三维几何造型460069008600680020220136 00030.9数据库管理29503400360033501824060 30013.9计算机图形显示405049006200495022200108 90024.7外部设备控制20002100245021402814059 92015.2设计分析模块660085009800840018300151 20028.0总计33 360656 680144.5利用历史基线数据求出生产率。需要根据复杂性程度的不同,对各功能使用不同的生产率。
2) 工作量估算
工作量估算是估算任何工程开发项目成本最常用的技术。每一项目任务的解决都需要花费若干工作量(单位为人日、人月或人年)。每一个工作量都对应一定的成本,可以由此作出成本估算。对于每个软件工程任务,生产率都可能不同。高级技术人员主要投入到需求分析和早期的设计任务中,而初级技术人员则进行后期设计任务、编码和早期测试工作,后者的成本比较低。最后一个步骤就是计算每一个子功能及整个软件工程任务的估算工作量和估算总成本。在估计每个任务的成本时,通常先估计完成该任务需要的人力(以人月为单位),再乘以工资率,从而得出每个任务的成本。
在典型情况下,开发阶段需要的人力百分比大致如图33所示。当然应该针对每个开发项目的具体特点来估计每个阶段实际需要的人力。在很多项目中,软件维护的成本甚至高于开发成本,本阶段只考虑开发阶段成本。
图33开发阶段需要的人力百分比
例3.3采用工作量估算技术估算例3.2中的CAD软件成本。
采用工作量估算技术得到的软件成本估算表如表33所示。表33采用工作量估算技术得到的软件成本估算表
子功能需求分析
工作量/人月设计工作
量/人月编码工作
量/人月测试工作
量/人月工作量
总计/人月用户界面和控制1.02.00.53.57.0二维几何造型2.010.04.59.526.0三维几何造型2.512.06.011.031.5数据库管理2.06.03.04.015.0计算机图形显示1.511.04.010.527.0外部设备控制1.56.03.55.016.0设计分析模块4.014.05.07.030.0合计14.561.026.550.5152.5工资率/(元/人月)5200480042504500成本/元75 400292 800112 625227 250708 0752. 效益分析
1) 货币的时间价值
进行成本估算的目的是为了对项目进行投资。但投资在前,取得效益在后,因此要考虑货币的时间价值。通常用利率表示货币的时间价值。设年利率为i,现已存入P元,则n年后可得钱数为F=P(1+i)n,这就是P元在n年后的价值;反之,若n年后能收入F元,那么这些钱现在的价值是P=F/(1+i)n。
例如,在工程设计中用CAD系统来取代大部分人工设计工作,每年可节省9.6万元。若软件生存周期为5年,则5年可节省48万元,而开发这个CAD系统共投资20万元。不能简单地把20万元同48万元进行比较。因为前者是现在投资的钱,而后者是5年以后节省的钱。需要把5年内每年预计节省的钱折合成现在的价值,才能进行比较。假定年利率为10%,利用上面计算货币现在价值的公式可以算出每年预计节省的钱的现在价值,如表34所示。表34货币时间价值对比
年将来值 F/元(1+i)n现值P/元累计现值/元196 000.001.1087 272.7387 272.73296 000.001.2179 338.84166 611.57396 000.001.3372 180.45238 792.02496 000.001.4665 753.43304 545.45596 000.001.6159 627.33364 172.782) 投资回收期
投资回收期就是工程累计经济效益等于最初投资所需要的时间。显然,投资回收期越短,就能越快获得利润,这项工程就越值得投资。例如,在表34中,引入CAD系统两年以后,可以节省16.66万元,比最初投资还少3.34万元,但第三年可以节省7.22万元,则3.34/7.22=0.463。因此,投资回收期是2.463年。
3) 纯收入
纯收入就是在整个生存周期内新系统的累计经济效益与投资之差,如果纯收入小于或等于0,则从经济观点来看,这项工程不值得投资。在表34中,该工程的纯收入为364 173元-200 000元=164 173元4) 投资回收率
利用工程投资回收率可以衡量投资效益的大小,并且可以将其与年利率进行比较。如果投资回收率等于银行的年利率,则此系统不能开发,因为没有增加收入。只有当投资回收率大于银行的年利率时,开发该系统才是合算的。投资额的计算公式是P=F1/(1+j)+F2(1+j)2+…+Fn(1+j)n其中:
 P是现在的投资额。
 Fi是第i年年底的效益(i=1,2,…,n)。
 n是系统的使用寿命。
 j是投资回收率。
利用上述公式就可求出投资回收率。
假定按上述公式计算,n=5,P=200 000,F=96 000,则其投资回收率是38%~39%。
3.5案例: 图书管理系统可行性研究报告
可行性研究报告说明该软件开发项目在技术、经济和社会因素方面的可行性,评述为了合理地达到开发目标可供选择的各种可能实施的方案,说明选定的实施方案并论证其理由。GB/T 8567—2006《计算机软件文档编制规范》中规定的可行性研究报告包含以下12个方面的内容:
 引言(标识、背景、项目概述、文档、项目概述)。
 引用文件。
 可行性研究的前提(项目的要求、目的、环境、条件、假定和限制,进行可行性研究的方法)。
 可选的方案(原有方案的优缺点、局限性及存在的问题,可重用的系统与要求之间的差距)。
 建议的系统(对建议的系统的说明、数据流程和处理流程、与原系统的比较、影响和局限)。
 经济可行性(投资、预期的经济效益、收益投资比、投资回收周期和市场预测)。
 技术可行性。
 法律可行性。
 用户使用可行性。
 其他与项目有关的问题。
 注解(定义、参考资料)。
 附录。
软件开发者要完成可行性研究报告的撰写,认真分析软件系统的问题定义和上述4个可行性所涉及的内容,兼顾成本和效益,兼顾市场和需求,兼顾工期和质量,严格按照预期的目标进行可行性研究工作与任务。图书管理系统可行性研究报告1引言
1.1编写目的
可行性研究报告的目的是说明实现该软件项目在技术、经济、社会方面的可行性,评述为了合理地达到开发目标而可能选择的各种方案。
1.2背景
软件名称: 图书管理系统。
项目开发小组成员: ×××,×××,×××。
用户: ××学院图书馆。
项目开发环境: Windows 10,SQL Server 2018,.NET Framework 2.0。
1.3定义
给出以下术语的定义: 图书管理系统、项目、可行性分析、方案、效益。
1.4参考资料
(略)
2可行性研究的前提 
2.1要求
主要功能: 实现图书信息存档、对图书信息的查询及编辑、对读者信息的管理、借阅图书的管理等功能。
安全与保密要求: 登录系统时,需验证身份和密码,只有图书管理员才能进入系统进行信息的操作。

完成期限: 完成软件需×个月,即××××年××月××日完成(包括文档编写与软件测试)。
2.2目标
减少人力的投入,由系统对入库图书进行自动分类,对学生信息进行整理,将借阅情况登记入档,提高信息处理的精度和准确度。
2.3条件、假定和限制
建议软件寿命: 5年。
硬件条件: PC。
运行环境: Windows系统。
开发软件: SQL Server 2018、Visual Studio 2010等。
开发限制: 开发时间短,小组成员水平和经费有限。
2.4进行可行性研究的方法
通过对已有图书管理系统的分析和研究比较的方法进行本系统的可行性研究。
2.5评价尺度
评价尺度包括费用的多少、各项功能的优先次序、开发时间的长短及使用中的难易程度等。
3对现有系统的分析
针对现有的图书管理系统所欠缺的功能进行分析,以表明开发新的图书管理系统的必要性。
3.1处理流程和数据流程
图书管理3个主要业务的处理流程和数据流程如下:
(1) 购买图书: 从出版社书目中选书→记录所选书名,制成表单,送至办公室审批→办公室向领导提交报告→领导批准以后,将订单发给出版社→收到书后付款。
(2) 图书入架: 按分类号和作者号对图书进行分类→贴馆藏条码,盖馆藏章→入架。
(3) 图书借阅: 读者通过借阅证借阅图书,管理员登记图书借阅情况。
3.2工作负荷
图书管理人员少,办理借阅手续时间长,登记费时、费力。新系统增加了图书和读者的查询功能,也为图书管理人员减轻了工作负荷。
3.3费用
本系统费用如下:
(1) 基本建设投资25 720元。
(2) 其他一次性支出105 600元。
(3) 非一次性支出11 200元。
综上,费用合计142 520元。
3.4人员
馆长1名。
采编部3名。
流通阅览部4名。

网络技术部2名。
3.5设备
服务器的硬件要求如下:
 CPU: Pentium Ⅲ 500以上。
 内存: 128MB以上。
 硬盘: 至少10GB以上。
 CDROM: 16倍速以上;
 网卡: 10/100Mb/s自适应网卡。
工作站的硬件要求如下:
 CPU: Pentium Ⅱ 266以上。
 内存: 64MB。
 硬盘: 至少5GB以上。
 CDROM: 16倍速以上。
 网卡: 10/100Mb/s自适应网卡。
3.6局限性
现有系统处理时间缓慢,响应不及时,效率低,数据存储能力不足,没有查询处理功能。
4建议的系统
4.1对建议的系统的说明
建议的系统具有以下特性:
(1) 具有小巧而使用的功能,方便师生使用。
(2) 具有库存图书馆功能,可对师生借阅信息进行管理。
(3) 具有财务信息统计分析功能。
(4) 具有多种图表统计功能,可统计每年、每月、每日的图书借还情况。
4.2处理流程和数据流程
建议的系统的处理流程和数据流程如下:
(1) 系统能对图书信息进行管理。
(2) 系统不需要管理读者除姓名以外的信息。每一名读者最多可借阅10册图书。
(3) 借书时,管理人员记录借阅者的姓名、借阅图书名称和借书日期。
(4) 还书时,管理人员记录借阅者的姓名、归还图书名称和还书日期。系统可设定图书的最长借阅时间。
(5) 管理人员可以根据图书名称、作者、出版社三者之一或三者的任意组合查询图书信息。
(6) 管理人员可以查询借阅某图书的所有借阅者的姓名,也可以查询某借阅者借阅的所有图书名称;还可以根据借阅者的姓名、图书名称查询借阅者的借书日期、还书日期。
(7) 系统由管理人员操作。管理人员分为系统管理员、图书管理员和借阅管理员,各类人员拥有相应的权限。

(8) 所有管理人员利用账号和密码登录系统。
4.3有待改进之处
本系统有待改进之处如下:
(1) 由于时间仓促,人力和物力资源缺乏,本系统存在诸多不完善之处。
(2) 系统整体功能不够强,需要添加功能模块和其他查询功能。
4.4影响
4.4.1对设备的影响
本系统对设备的最低要求如下:
(1) 服务器至少1台,最低配置如下:
 CPU: Pentium Ⅲ 500以上或更高。
 内存: 128MB以上。
 硬盘: 至少10GB以上。
 CDROM: 16倍速以上。
 网卡: 10/100Mb/s自适应网卡。
(2) 打印机1台。
4.4.2对软件的影响
需要有本报告所列出的正版软件环境,如果没有则需要购买。
4.4.3对用户单位的影响
用户单位需要建立良好的管理体系,组建一个管理应用队伍,实现管理业务标准化。
4.4.4对系统运行过程的影响
系统应在Windows XP+SQL Server 2005+Visual Studio 2005环境中运行。
4.4.5对开发的影响
随着计算机技术和软件技术的不断更新,目前的图书管理系统远远不能满足社会的需要。
4.4.6对地点和设施环境的影响
要求用户有基本的办公条件和一台计算机。
4.4.7对费用的影响
本系统主要费用包括基本建设费用、软件开发费用、管理和维护费用、人员工资等。用户单位前期的资金投入主要集中于购置图书、建立图书信息库,收集图书信息,提高图书管理的计划性和预见性。本系统运行后,可为读者带来便利,为系统的进一步推广创造了条件,经济收益将远超投资。从经济角度考虑,此系统开发可行。
4.5技术条件方面的可能性
对技术上的可行性,主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发的需要。图书管理系统的研发主要使用ASP.NET和SQL Server,这是大家都比较熟悉的内容,技术上可行。
5可选择的其他系统方案
5.1可选择的系统方案1
5.1.1拟建系统的目标
(1) 促进管理体制的改革,改进管理手段。

(2) 提高和改进服务质量。
(3) 增强资源共享。
(4) 减少人力和设备费用。
(5) 加快信息的查询速度,提高查询准确性。
5.1.2系统规划及初步方案
图书管理系统建成后可以和校园网相连,提供网上服务。
5.1.3系统的实施方案
在本系统方案中,客户端采用Window XP操作系统,服务器端采用Windows 2003操作系统,前端开发语言使用ASP.NET,使用SQL Server数据库管理系统。
5.2可选择的系统方案2
5.2.1拟建系统的目标
(1) 促进管理体制的改革,改进管理手段。
(2) 提高和改进服务质量。
(3) 减少人力和设备费用。
(4)加快信息的查询速度,提高查询准确性。
5.2.2系统规划及初步方案
图书管理系统使用单机作业,由专人输入有关信息,可以选购图书目,上报计划。可以进行统计分析等,向财务处提供报表,进行结算。本系统拟采用奔腾Ⅳ处理器,256MB内存,硬盘80GB。打印机一台,UPS电源,光驱一个。
5.2.3系统的实施方案
在本系统方案可,客户端采用Windows XP操作系统,服务器端采用Windows 2003操作系统,前端开发语言使用ASP.NET,使用SQL Server数据库管理系统。
6投资及效益分析
6.1支出
6.1.1基本建设投资
计算机设备5台,5×4000元=20 000元。
6.1.2其他一次性支出 
开发软件费用5000元。
6.1.3非一次性支出
维护费: 单次1000元,每半年维护1次,年支出费用为2×1000元=2000元。
6.2收益
6.2.1一次性收益
学生办卡每人每次收费5元,按中小型学校预算,2000人×5元/人=10 000元。
6.2.2非一次性收益
在使用中,有学生可能把卡丢失或损坏,补办卡每人每次收费5元。
6.2.3不可定量的收益
不可定量的收益包括图书借阅超期罚款或者污损、丢失的赔偿金。

6.3收益投资比
收益为10 000元。
投资(含非一次性支出)为27 000元。
收益投资比为10 000/27 000≈0.37。
6.4投资回收周期
本系统投资回收周期为3.5年。
6.5敏感性分析
计算机遭受病毒侵害的情况难以预料,不可估算。
7社会因素方面的可行性
7.1法律方面的可行性
为了保障读者信息的安全,必须限制非管理人员对读者信息的访问权。需要建立一个安全、完善的管理平台,使读者信息能够快速、完整地自动存入数据库,并且不能被任何非管人员非法窃取。
7.2使用方面的可行性
经过研究,用户素质可以满足要求,本系统的用户无使用方面的问题。
8结论
根据以上分析可知,开发图书管理信息系统不仅有经济效益,而且有一定的社会效益,因此本系统具有开发价值。开发本系统的条件已经具备,可以开始进行开发。

3.6实训: 学生管理系统可行性分析报告1. 实训目的(1) 熟悉对实际系统的分析方法,加强对软件工程概念的理解。
(2) 掌握可行性分析报告的格式、内容和注意事项,明确可行性分析的研究任务和过程。
(3) 掌握软件项目成本/效益分析的常用手段。
2. 实训任务与实训要求
(1) 对学生管理系统进行实际分析和调查,在此基础上进行可行性分析。
(2) 掌握可行性分析报告的编写步骤和方法,明确可行性分析报告格式和内容。从技术、经济、操作、进度等方面进行可行性论证,并撰写报告。
3. 实训内容与步骤
对学生管理系统进行分析和调查,然后按如下大纲撰写可行性分析报告。1引言
1.1标识
列出本文档中使用的系统和软件的完整标识,包括标识号、标题、缩略语、版本号和发行号。

1.2背景
说明项目是在什么条件下提出的,以及提出者的要求、目标、实现环境和限制条件。
1.3项目概述
简述项目的用途,描述项目的一般特性;概述项目开发、运行和维护的历史;标识项目的投资方、用户、开发方和支持机构;标识当前和计划的运行现场;列出其他有关的文档。
1.4文档概述
概述本文档的用途和内容,并描述与其使用有关的保密性要求。
2引 用 文 档
列出本文档引用的所有文档的编号、标题、修订版本和日期。
3可行性分析的前提
3.1项目的要求
3.2项目的目标
3.3项目的环境、条件、假定和限制
3.4进行可行性分析的方法
4可选的方案
4.1原有系统的优缺点、局限性及存在的问题
4.2可重用的系统与要求之间的差距
4.3可选择的系统方案1
4.4可选择的系统方案2
4.5选择最终方案的准则
5建议的系统
5.1对建议的系统的说明
5.2数据流程和处理流程
5.3与原系统的比较
5.4影响
5.4.1设备
5.4.2软件
5.4.3运行
5.4.4开发
5.4.5环境
5.4.6经费
5.5局限性
6经济可行性
6.1投资
包括基本建设投资(如开发环境、设备、软件和资料等),以及其他一次性和非一次性开支。

6.2预期的经济效益
6.2.1一次性收益
6.2.2非一次性收益
6.2.3不可定量的收益
6.2.4收益投资比
6.2.5投资回收周期
6.3市场预测
7技术可行性
说明现有资源(如人员、环境、设备和技术条件等)能否满足此工程和项目实施要求。若不满足,应提出补救措施。涉及经济问题时,应进行投资和效益分析。最后确定此项目是否具备技术可行性。
8法律可行性
说明系统开发可能导致的法律问题。
9用户使用可行性
分析用户单位的行政管理模式和工作制度,评估用户素质,提出培训要求。
10其他与项目有关的问题
说明未来可能出现的变化。
11注解
给出有助于理解本文档的一般信息(例如系统原理),包含需要说明的术语及其定义,列出本文档中使用的缩略语。
附录
提供为便于文档维护而单独整理的信息(例如图表、分类数据)。为便于处理,附录可单独装订成册。

4. 实训注意事项
在本实训中应注意以下几点:
(1) 独立进行需求收集、分析,提出解决问题的初步方案,从经济、技术等方面进行可行性分析。
(2) 按照以上大纲或GB/T 8567—2006《计算机软件文档编制规范》中的可行性研究报告格式要求编写本文档,对格式要求中的个别内容可根据实际情况的复杂程度增减。
(3) 文档格式清晰,图表规范。
5. 实训成果
参照案例格式和实训内容与步骤,每个项目小组提交一份学生管理系统可行性分析报告。
小结
在软件项目的立项阶段,可行性分析是最重要的工作内容,它的根本目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。可行性分析的主要任务是了解用户的要求及现实环境,从经济、技术和社会因素3方面研究并论证软件项目的可行性,评述为合理地达到开发目标可能选择的各种方案。而经济可行性分析又是软件项目可行性分析的核心,因此,需重点掌握成本估算和效益分析方法。
应该着重理解可行性分析的必要性以及它的基本任务和基本步骤,在此基础上再进一步学习具体方法和工具;对具体方法和工具的深入认识又可以反过来加深对可行性分析过程的理解。
习题
3.1可行性分析的任务是什么?
3.2简述可行性分析的步骤。
3.3简述成本估算的方法。
3.4如何进行成本效益分析?
3.5如何编写可行性分析报告?