第二章可行性研究一、可行性研究的任务可行性研究就是确定问题是否值得去解。
可行性研究工作是在初步的需求定义(澄清问题的定义)之后进行的,其的目的是用最小的代价在尽量短的时间内(总成本的5%~10%)确定该项目是否值得去解决,是否存在可行的解决方案。
对每一种可能的解决方案,就以下几个方面研究其可行性:(1)经济可行性:这个系统的经济效益能超过它的开发成本吗?估算项目的开发成本和系统投入使用后可能带来的利润,进行成本/效益分析,从经济角度判断系统开发是否“合算”。
(2)技术可行性:使用现有的技术能实现这个系统吗?根据客户提出的系统功能、性能要求,从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用及其他各项约束条件限制下成功的可能性。
(3)运行、操作可行性:系统的操作方式在这个用户组织内行得通吗?主要研究系统的运行方式在用户单位是否可以被有效地实施,是否与原有其他系统相矛盾;系统的操作规程在用户单位内是否可行,它包括人事、科技政策、管理方法等等。
(4)法律可行性:系统的开发使用,在当国当地当时合法吗?研究系统的开发和使用是否会侵犯他人的权益,是否触犯了国家和地方的法律法规。
另外,可行性研究还要有开发方案的选择结论:如果问题没有可行的解,分析人员应建议停止该项目,以避免造成进一步的浪费;如果问题值得解决,则提出并评价实现系统的各种可行的开发方案,从中选择一种较好方案,并为系统制定一个初步的开发计划。
二、可行性研究的步骤1、复查初步分析结果,确定系统目标与规模,清晰地描述对系统的所有约束条件;P72、研究现有的系统,找出其基本功能和信息,指出其缺点或局限性(功能性能上的、经济上的);P93、借助某种图形工具导出新系统的高层(比较粗略的)逻辑模型,并与现有系统进行比较。
以后可以从这个逻辑模型出发设计新系统;P104、进一步定义问题。
可行性研究的前3个步骤实质上构成一个循环,目的是逐步改善逻辑模型。
分析员定义问题,分析这个问题,导出一个试探性的解(用工具描述出来);在此基础上和用户一起复查、再次定义问题,再一次分析这个问题,修改这个解;继续这个循环过程,直到提出的逻辑模型完全符合系统目标。
在此过程中,遗漏和错误不断得到补充和改正。
5、从建议的系统逻辑模型出发,导出新系统的高层次的(比较抽象的)物理解法;提出多个供选择的方案,并对每一个方案的技术可行性、经济可行性、运行和操作可行性等进行分析比较;估计生命周期每个阶段的工作量。
P13~156、推荐行动方案。
如果系统分析员认为系统值得开发,则应指出开发的价值、推荐方案的理由并为推荐的系统草拟一份开发计划;若分析员认为不值得开发,也应拿出充分的理由。
7、草拟开发计划,书写文档(可行性研究报告)并提交审查。
P178、评审、复审和决策。
通过技术评审和管理复审,开发方和客户方或使用部门负责人根据各项可行性研究的结论,决策是否继续这项工程。
可行性研究报告的形式可以是多样的,其中主要涵盖的内容:(1)项目背景:①问题描述②实现环境③限制条件(2)管理概要和建议:①重要的研究结果②说明③建议④影响(3)经济可行性(成本/效益分析):①经费概算②预期的经济效益(4)技术可行性(技术风险评价):①技术条件、实力②已有工作基础③设备条件(5)法律可行性:①系统开发可能导致的侵权,违法和责任(6)用户使用可行性:①用户单位的行政管理,工作制度②使用人员的素质(7)其它与项目有关的问题:①其它方案介绍②未来可能的变化见软件设计文档国家标准GB8567—88三、描述可行性研究成果的图形工具1、系统流程图--系统物理模型的描述工具什么是系统流程图,它的成份和用到的符号P38~39,P18~20例子:P40,P21~24关于分层P252、数据流图--系统逻辑功能的描述工具什么是数据流图,它的成份和用到的符号P40~41,P26~30例子:(1)文字描述:P42,P31(2)从文字描述中提取的信息:数据流图有4种成分:源点和终点,处理,数据存储,数据流。
a数据源点:仓库管理员;数据终点:采购员。
b处理:零件入库或出库(事务)处理;定货报表生成。
c数据流:零件入库或出库(事务);定货信息。
P43表2.1d数据存储:库存清单;定货信息表(3)分层细化的数据流图:P35、P38、P40关于数据流图的分层细化数据流图是逐层细化的,它将每个需要细化的模块分解成一个子图。
当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入输出数据流必须相同。
为数据流图中的两大成份--数据流(数据存储)、处理,命名时应注意:P45,P41~43(1)为数据流、处理命名要注意完整性,切忌空乏;(2)命名通常先为数据流命名,然后再为与之相关联的处理命名;(3)数据流命名有困难,说明系统分解不恰当;(4)处理的命名应为动宾结构,动词表示处理的功能、名词表示处理的对象;(5)数据处理还应按处理流程顺序和模块分解的层次编号。
数据流图的用途:(1)作为交流信息的工具;P44(2)作为分析和设计的工具;P45(3)辅助物理系统的设计(边界的划分)。
P46,47,49在进行可行性研究时,我们通常首先用系统流程图描述现有系统;通过简要分析,用数据流图描述即将设计的新系统的逻辑功能;再划分自动化边界,用系统流程图将新系统的逻辑模型转换成其对应的物理模型,描绘未来系统的概貌。
四、数据字典1、什么是数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
它的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
数据流图和数据字典共同构成系统可行性研究阶段的逻辑模型。
2、数据字典的用途P59~60(1)分析阶段的交流工具(2)包含控制信息(3)数据库设计的基础3、数据字典的内容P47,P51~52举例:4、定义数据的方法数据字典中定义数据的方法就是①对数据自顶向下逐步分解,当分解到不需要进一步定义、每个和工程有关的人也都清楚数据元素的含义时,这种分解过程就完成了。
②然后再用自然语言或符号语言描述数据元素组成数据的方式。
数据定义使用到的符号及意义:由数据元素组成数据的方式:(1)顺序即以确定次序连接两个或多个分量;(2)选择即从两个或多个可能的元素中选取一个;(3)重复即把指定的分量重复零次或多次。
(4)可选即一个分量是可有可无的(重复零次或一次)。
可采用下列符号:=意思是定义为(或等价于);(1)+意思是和(即,连接两个分量);(2)[]意思是或(即,从方括弧内列出的若干个分量中选择一个),通常用“|”号隔开供选择的分量;(3){}意思是重复(即,重复花括弧内的分量);(4)()意思是可选(即,圆括弧里的分量可有可无)。
重复次数的标注P57举例P57~58数据字典的实现(1)用Case工具中的数据字典处理程序对数据字典进行生成和编辑;(2)通过手工制作卡片来制作数据字典。
每张卡片上保存描述一个数据的信息,主要应该包含下述这样一些信息:名字、别名、描述、定义、位置。
(3)举例P49五、成本/效益分析(经济可行性研究)为了对比成本和效益,首先需要估计它们的数量,从数量上对比成本和效益1、成本估算技术----估算软件的开发成本P50,P63~65(1)代码行技术(2)任务分解技术(3)自动成本估算技术2、成本/效益分析方法成本/效益分析概说P51,P66~67货币的时间价值P51,P68纯收入计算分析方法(1)概念:纯收入=在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。
P=20万 4.2万 4.2万 4.2万 4.2万 4.2万012345(2)举例:假设某软件使用周期为5年。
现在投资20万元,平均年利率3%。
预计从第一年起,每年年底收入4.2万元,问该项目是否值得投资?计算方法1:投资额=200000⨯(1+3%)5≈231855(元)收入=42000⨯[(1+3%)4+(1+3%)3+(1+3%)2+(1+3%)+1]≈222984(元)收入-投资额=-8871(元)计算方法2:)(765220000003.1103.1103.1103.1103.11420002345元-≈-⎥⎦⎤⎢⎣⎡++++⨯投资回收期计算方法(1)概念:所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。
投资回收期小于软件的生命周期,投资才合算;投资回收期越短越好!(2)举例:仍以上例计算由上计算方法2可知,5年还不能回收全部成本。
如果软件第6年全年运行可收入利润折合现值:)(3517403.11420006元≈⨯则收回剩余成本7652元需要:7652÷35174≈0.22(年)所以,整个软件的投资回收期为:5.22年。
所以投资回收期5.22>软件生命周期5投资回收率计算方法(1)概念:所谓投资回收率即平均每年回收成本的百分比。
投资回收率高于银行利息才合算;投资回收率越高越好!P=F1/(1+j)+F2/(1+j)2+F2/(1+j)3+…+Fn/(1+j)n设n=5,解出此方程,计算出的j 就是投资回收率。
(2)举例:仍以上例计算3%%65.1)1(1)1(1)1(1)1(111420002000005432年利率<≈⇒⎥⎦⎤⎢⎣⎡+++++++++=j j j j j j 五、技术可行性研究1、主要工作是:风险分析。
其任务是在给定的约束条件下,论证能否实现系统所需的功能和性能。
资源分析。
其任务是论证是否具备系统开发所需各类人员的数量和质量、软硬件资源和工作环境等。
技术分析。
其任务是论证现有的科学技术水平和开发能力是否支持开发的全过程并达到系统功能和性能的目标。
2、主要方法是:充分采集系统功能、性能、各种约束条件、所需的各种资源等方面的信息,进而分析系统开发可能承担的技术风险;分析实现系统功能和性能所需的各种设备、人员、技术、方法、工具和过程;从而从技术角度分析开发系统的可行性。
数学建模、原型建造和模拟是基于计算机系统技术可行性研究的有效工具。
六、本章作业P53~544、5对自选项目进行可行性研究附件:可行性研究报告(FAR)FAR是项目初期策划的结果,它分析了项目的要求、目标和环境;提出了几种可供选择的方案;并从技术、经济和法律各方面进行了可行性分析。
可作为项目决策的依据。
主要内容提示:1可行性分析的前提1.1项目的要求1.2项目的目标1.3项目的环境、条件、假定和限制2可选的方案2.1原有方案的优缺点、局限性及存在的问题2.2可重用的系统,与要求之间的差距2.3可选择的系统方案12.4可选择的系统方案22.5选择最终方案的准则3所建议的系统3.1对所建议的系统的说明3.2处理流程和数据流程3.3与原系统的比较(若有原系统)3.4要求在设备、软件、运行、开发、环境、经费、局限性等方面的要求。