正确答案
传统软件生存期范型的典型代表是“瀑布模型”。这种模型的核心是将软件生存期划分为软件计划、需求分析、软件设计、编码、测试和运行维护等阶段,根据不同阶段工作的特点,运用不同的方法、技术和工具来完成该阶段的任务。软件开发人员遵循严格的规范,在每一阶段工作结束时都要进行严格的阶段评审和确认,以得到该阶段的一致、完整、正确和无歧义性的文档资料,并以它们做为下一阶段工作的基础。
传统思想强调每一阶段的严格性,尤其是开发初期要有良好的软件规格说明,主要是源于过去软件开发的经验教训,即在开发的后期或运行维护期间来修改不完善的规格说明要付出巨大的代价。但是,要想得到一个完整准确的规格说明不是一件容易的事。特别是对于一些大型的软件项目,在开发的早期用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求,软件开发人员对于所要解决的应用问题认识更是模糊不清。经过详细的讨论和分析,也许能得到一份较好的规格说明,但却很难期望该规格说明能将系统的各个方面都描述得完整、准确、一致,并与实际环境相符。很难通过它在逻辑上推断出(不是在实际运行中判断评价)系统运行的效果,以此达到各方对系统的共同理解。随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,要求系统也能随之变化;开发人员又可能在设计与实现的过程中遇到一些没有预料到的实际困难,需要以改变需求来解脱困境。因此规格说明难以完善、需求的变更、以及通信中的模糊和误解,都会成为软件开发顺利推进的障碍。尽管在传统软件生存期管理中通过加强评审和确认,全面测试,甚至依靠维护阶段能够缓解上述问题,但不能从根本上解决这些问题。
为了解决这些问题,逐渐形成了软件系统的快速原型的概念。由于运用原型的目的和方式不同,原型可分为以下两种不同的类型:
①废弃型:先构造一个功能简单而且质量要求不高的模型系统,针对这个模型系统反复进行分析修改,形成比较好的设计思想,据此设计出更加完整、准确、一致、可靠的最终系统。系统构造完成后,原来的模型系统就被废弃不用。
②追加型或演化型:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,最后发展成为最终系统。
建立快速原型进行系统的分析和构造,有以下的优点:
①增进软件者和用户对系统服务需求的理解,使比较含糊的具有不确定性的软件需求(主要是功能)明确化。由于这种方法能在早期就明确了用户的要求,因此可防止以后由于不能满足用户要求而造成的返工,从而避免了不必要的经济损失,缩短了开发周期。
②软件原型化方法提供了一种有力的学习手段。通过原型演示,用户可以亲身体验早期的开发过程,获得关于计算机和被开发系统的专门知识。软件开发人员也可以获得用户对系统的确切要求,学习到应用范围的专业知识。
③使用原型化方法,可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果。因而它可以作为理解和确认软件需求规格说明的工具。
④软件原型的最终版本,有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统。