查看文章 |
生命周期 指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。目前软件开发实践中使用的各种生命周期模型,都是下面这些基本组成部分的不同的排列与组合。 市场分析,可行性研究,与项目定义
每个模型都有自己的优缺点
件开发过程生命周期模型 a.强调开发的阶段性; 缺点: a.依赖于早期进行的唯一一次需求调查,不能适应需求的变化; 这是最早存在的开发模型,并且现在使用的也比较多
瀑布模型的特点是首先是仔细的需求分析,开发组有步骤的制定一份功能(结构)说明,接着是概要设计,详细设计,然后才着手编码。编码结束后进行测试,然后才能发布软件。这看上去是很有逻辑的;只在理解后才开始构造。以这样严格的方式构造软件,工程师很明确每一步应该做什么。许多人提出了基本是基于这一模型的多种方法论;也有相当多的商业工具可以使这些步骤更机械化且不易出错。
瀑布模型依靠早期的需求分析,并且要求需求很明确 现在这种模型一般用于做一些需求已明确的并很少变化的软件,不适于需求 不明确或是容易变化的软件(如你正在开发一个陌生的领域的软件,这时就不应该使用瀑布模型,但是如果你正在开发自己很熟悉领域的软件,就可以使用瀑布模型来加快开发速度) 由于需求已明确,所以不需要代码重构等方面的开销,因此效率较高 阶段 主要工作 应完成的文档 应完成的文档质量控制手段
系 1.调研用户需求及用户环境 1.可行性报告 1.规范工作程序及编写文档 统 2.论证项目可行性 2.项目初步开发计划 2.对可行性报告及项目初步 需 3.制定项目初步计划 开发计划进行评审 求 需 1.确定系统运行环境 1.需求规格说明 1.在进行需求分析时采用成熟 求 2.建立系统逻辑模型 2.项目开发计划 的技术与工具,如结构化分析 分 3.确定系统功能及性能要求 3.用户手册概要 2.规范工作程序及编写文档 析 4.编写需求规格说明、用户 4.测试计划 3.对已完成的4种文档进行评审 手册概要、测试计划 5.确认项目开发计划 设 概 1.建立系统总体结构,划分功能模块 要 2.定义各功能模块接口 1.概要设计说明书 1.在进行系统设计时采用先进 设 3.数据库设计(如果需要) 2.数据库设计说明书(如果有)的技术与工具,如结构化设计SD、结构图SC 计 计 4.制定组装测试计划 3.组装测试计划 2.编写规范化工作程序及文档 3.对已完成的文档进行评审 详 1.设计各模块具体实现算法 1.详细设计说明书 1.设计时采用先进的技术与工具,如结构图SC 细 2.确定模块间详细接口 2.模块测试计划 2.规范工作程序及编写文档 设 3.制定模块测试方案 3.对已完成的文档进行评审 计 实 1.编写程序源代码 1.程序调试报告 1.在实现过程中采用先进的技术与工具,如结构图SC 2.进行模块测试和调试 2.用户手册 2.规范工作程序及编写文档 现 3.编写用户手册 3.对实现过程及已完成的文档进行评审 测 集 1.执行集成测试计划 1.系统源程序清单 成 2.编写集成测试报告 2.集成测试报告 试 测 1.测试时采用先进的技术和工具 试 2.规范工作程序及文档编写 验 1.测试整个软件系统(健壮性测试) 1.确认测试报告 3.对测试工作及已完成的文档进行评审 收 2.试用用户手册 2.用户手册 测 3.编写开发总结报告 3.开发工作总结 试 维 1.为纠正错误,完善应用而进行修改 1.故障报告 1.维护时采用先进的工具 2.对修改进行配置管理 2.修改报告 2.规范工作程序及编写文档 护 3.编写故障报告和修改报告 3.配置管理 4.修订用户手册 4.对维护工作及已完成的文档进行评审
在开发模式上采取分批循环开发的办法,每循环开发一部分的功能,它们成为这个产品的原型的新增功能。于是,设计就不断地演化出新的系统。 实际上,这个模型可看作是重复执行的多个“瀑布模型”。 优点:
先分析 四、螺旋模型 螺旋模型基本的做法是在“瀑布模型”的每一个开发阶段之前,引入非常严格的风险识别、风险分析和风险控制。直到采取了消除风险的措施之后,才开始计划下一阶段的开发工作。否则,项目就很可能被取消。 五、软件生命周期模型的选择
对于需求明确的项目,建议采用演化模型。 对于规模小,需求简单,功能单一的项目,建议采用瀑布模型。 其他项目,一般采用迭代模型。
|