第二章 可行性讨论我们在做任何工作以前,必须明确工作的性质、任务、制定完成任务的计划。显然完成一个软件系统的开发,也应解决好类似的问题。明确软件开发系统的任务,完成任务的价值,制定出完成任务的计划,是软件系统可行性讨论的目的。2.1 可行性讨论2.1.1 可行性讨论的任务假如不限时间、不限资源、则任何研制项目都是可行的!然而在开发以计算机为基础的系统时,需要用最小的代价,在尽可能短的时间内确定问题是否能够解决。这种可行性讨论的目的是确定我们所讨论的问题是否值得去解,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。可行性讨论的实质就是要进行一次压缩,简化了的系统分析和设计的过程,也就是在较高层次上以较抽象方式进行系统分析和系统设计的过程,可行性讨论应着重考虑如下五个方面。1.技术可行性。是指使用现有的技术能否实现这个系统。它包括开发风险——在限制条件范围内达到必需的功能与性能;资源配置——指现有的技术人员是否胜任,开发系统的软、硬件资源是否能如期得到;技术——指现有的技术是否已进展到这样的水平,能够支持系统的研制。2.经济可行性。指新系统的经济效益能否超过开发成本。包括评价经济的合理性,权衡支出的费用和收到的利益,正确估量开发费用以及最终从所开发的系统获得的收入和利益。其中经济的合理性包括成本/效益分析,长期的总体的经营策略,对其他获利中心或获利产品的影响,开发工作需用资源的购置费用、潜在的市场等等。3.运行可行性。指为新系统规定的运行方式是否可行。假如新系统是建立在原来已担负其他任务的计算机系统上,就不能要求它在实时在线状态下运行,以免与原有的任务相矛盾。 4.操作可行性。指系统的操作方式在这个用户组织内是否行得通。它包括人事政策,科技政策和必要的管理措施。5.法律可行性。指新系统的开发是否会侵犯他人、集体或国家的利益,是否违反了国家的法律,并由此而承担法律责任。可行性讨论并不保证一个系统经济上明显合理、技术风险低,很少法律问题,而且不存在其他合理方案。然而,我们之所以要进行可行性讨论,其目的是对以后的行动方针提出建议。假如问题没有可行的解,那么分析员应该建议停止这项开发工程,以避开时间、资源、人力和金钱的浪费。假如问题值得解,那么分析员应该推举一个较好的解决方案,并为工程制定一个初步计划。可行性讨论需要的时间长短取决于系统的规模。一般来说,可行性...