第二章 可行性研究
2.1可行性研究概述
1.可行性研究的目的及任务
在澄清问题之后,分析员应该导出软件系统的逻辑结构模型。然后依据逻辑模型,探索出若干供选择的系统实现方案。每个实现方案都应该仔细研究其可行性
在软件开发过程中,只要资源和时间没有特别限制,所有的项目基本都可以成功开发,然而,资源和时间是不可能不限制的,因此,对软件项目的可行性做出谨慎的评估是十分必要的。
可行性研究的目的是用极少的代价在最短的时间内确定被开发的软件能否开发成功,以避免盲目的投资带来巨大的损失;可行性研究的目的不是解决问题,二十确定问题是否能够被解决
可行性研究的任务是从技术经济、应用以及法律等方面分析应解决的问题是否有可行解,从而确定该软件系统是否值得开发。可行性研究最根本的任务是对以后的行动方针提出建议。当问题没有可行解时,分析员应该建议停止项目的开发,以避免时间、资源人力物力的浪费。当问题被求证可以解决时,分析员应该退加你一个较好的解决方案,并且为工程指定初步的计划。
2.可行性研究的要素
一般来说,软件领域可行性研究主要考虑5各要素:经济、技术、社会法律以及操作
(1)经济可行性。进行开发成本估算及可能取得的经济效益评估,确定待开发系统是否值得投资开发。
(2)技术可行性。对待开发的系统进行功能,性能和限制条件进行评估,确定使用现有技术能否实现该软件系统。
(3)社会可行性。社会可行性至少包括两种因素:市场和政策。
市场又分为未成熟市场、成熟市场和将要消亡的市场。如果市场不成熟,分线就很大,要尽可能准确的估计潜在市场有多大?自己能占多少份额?多长时间能占有市场?挤进成熟的市场,风险不高,利润也不大。
(4)法律可行性。研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题
(5)操作可行性。系统的操作方式在用户组内能否行得通。
3.可行性研究的过程
1)复查系统的规模和目标
2)研究正在使用的系统
3)导出新系统的高层逻辑模型
4)重新定义问题
5)导出和评价供选择的解法
6)推荐行动方案
7)草拟开发计划
8)书写文档、提交审查
2.2可行性研究报告
可行性研究报告是一种从事经济活动之前,双方要对经济、技术、生产、供销直到社会各种环境、法律等因素进行具体调查、研究、分析确定有利和不利因素,项目是否可行,估计成功率高低经济效益和社会效果,为决策者和主管机关审批的上报文件。GB/T8567-2006(计算机软件文档编制规范)给出了可行性研究报告内容的框架,可自行查阅参考。
2.3系统流程图
1.系统流程图的定义
系统流程图是描绘物理系统的图形工具,基本思想是用图形符号以黑盒子形式描绘系统里的每个部件(程序、文档、数据库、表格、人工过程等)。系统流程图表达的是数据信息系统在各部件之间的流动情况,而不是对数据信息进行加工处理的控制过程,因此尽管它使用的某些符号小河程序流程图中的符号相同,但是物理数据流图而不是程序流程图
2.系统流程图的符号
3.系统流程图的实例
2.4数据流图及数据字典
1.数据流图
数据流图是一种描述“分解”的图形化技术,它用直观的图形清晰地描绘了系统的逻辑模型,图中没有任何具体的物理元素,它仅仅描绘信息流和数据在软件中流动的逻辑过程。设计数据流图时只考虑必须完成的基本逻辑功能,完全不考虑怎样具体实现这些功能
1)数据流图符号
2)数据流图的画法
2.数据字典
数据字典是对数据流图中包含的所有元素的定义的集合,它主要是供人查阅关于数据的描述信息。一般情况下,数据字典由四类元素组成:数据流、数据元素、数据存储和处理。
2.5成本/效益分析
1.估计开发成本
开发软件成本主要是人的劳动消耗。成本估算技术如下:
1)代码行技术
估计代码的行数来估计开发成本。用每行代码的成本乘行数就得到软件开发成本。每行代码的平均成本主要取决于团建的复杂程度和工资水平。
2)任务分解技术
分解任务,然后估计每个子任务成本,累加起来。
3)自动估计成本技术
以长期搜集的大量历史数据为基础,需要良好的数据库系统作为支撑
2.运行费用
运行费用取决于系统的操作费用和维护费用
3.新系统讲带来的经济效益
系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。