软件工程概念
一、 可行性研究的任务
- 可行性研究的目的不是解决问题,而是用最小的代价在最短的时间内确定问题是否能够解决。
- 可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。
首先需要进一步分析和澄清问题定义。
在问题定义阶段初步确定的规模和目标,如果是正确的就进一步加以肯定,如果有错误就应该及时改正,如果对目标系统有任何约束和限制,也必须把它们清楚地列举出来。
在澄清了问题定义之后,分析员应该导出系统的逻辑模型。然后从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案)。
对每种解法都应该仔细研究它的可行性,一般说来,至少应该从下述三方面研究每种解法的可行性:
- (1) 技术可行性:现有的技术能实现这个系统吗?
- (2) 经济可行性:经济效益能超过它的开发成本吗?
- (3) 操作可行性:系统的操作方式在这个用户组织内行得通吗?必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。
分析员应该为每个可行的解法制定一个粗略的实现进度。
可行性研究最根本的任务是对以后的行动方针提出建议。
如果问题没有可行的解,分析员应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费。
如果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。
可行性研究可行性研究需要的时间长短取决于工程的规模。一般说来,可行性研究的成本只是预期的工程总成本的5%~10%。
二、 可行性研究过程
(一)典型的可行性研究过程有下述一些步骤:
1. 复查系统规模和目标
分析员访问关键人员,仔细阅读和分析有关的材料,以便对问题定义阶段书写的关于规模和目标的报告书进一步复查确认,改正含糊或不确切的叙述,清晰地描述对目标系统的一切限制和约束。这个步骤的工作,实质上是为了确保分析员正在解决的问题确实是要求他解决的问题。
2. 研究目前正在使用的系统
现有的系统是信息的重要来源。新的目标系统必须也能完成它的基本功能;
新系统必须能解决旧系统中存在的问题,一个重要的经济指标:新系统不能增加收入或减少使用费用,那么从经济角度看新系统就不如旧系统。
通过阅读分析现有系统的文档资料和使用手册及实地考察,了解这个系统可以做什么,为什么这样做,还要了解使用这个系统的代价。
3. 导出新系统的高层逻辑模型
从现有的物理系统出发,导出现有系统的逻辑模型,再参考现有系统的逻辑模型,设想目标系统的逻辑模型,最后根据目标系统的逻辑模型建造新的物理系统。
分析员对目标系统应该具有的基本功能和所受的约束已有一定了解,能够使用数据流图,描绘数据在系统中流动和处理的情况,
分析员应该画出描绘现有系统的高层系统流程,并请有关人员检验他对现有系统的认识是否正确。不必花费太多时间去了解和描绘现有系统的实现细节。
注意了解并记录现有系统和其他系统之间的接口情况,这是设计新系统时的重要约束条件。
为把新系统描绘得更清晰准确,还应该有一个初步的数据字典,定义系统中使用的数据。数据流图和数据字典共同定义了新系统的逻辑模型,以后可以从这个逻辑模型出发设计新系统。
4. 进一步定义问题
分析员应该和用户一起再次复查问题定义、工程规模和目标,把数据流图和数据字典作为讨论的基础。
5. 导出和评价供选择的解法
从建议的系统逻辑模型出发&#x