规模的书面报告,经过讨论和必要的修改之后这份报告应该得到用户的确认。(2)可行性研究:要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”。这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。(3)需求分析:这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。(4)总体设计:必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。首先,应该设计出实现目标系统的几种可能的方案。此外,还应该制定出实现最佳方案的详细计划。另一项主要任务就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。(5)详细设计:把解法具体化,也就是回答“应该怎样具体地实现这个系统呢?”,设计出程序的详细规格说明。(6)编码和单元测试:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。(7)综合测试:关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。(8)软件维护:关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。软件生存期也可以分为三个大的阶段:计划阶段。开发阶段和维护阶段。简述瀑布模型、快速原型模型、增量模型、螺旋模型和喷泉模型的特点(优缺点)。答:传统瀑布模型的特点:阶段间具有顺序性和依赖性;推迟实现的观点;质量保证的观点。瀑布模型优点:可强迫开发人员采用规范的方法(例如,结构化技术);严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。快速原型模型:优点:不带反馈环。增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。