软件工程螺旋模型,软件工程五种开发模型

1.瀑布模型
软件规划-需求分析-软件设计-程序编码-软件测试-运维,按照这个流程,一个阶段一个阶段,发现问题再回到上一个阶段进行修改 。
这种模式自问世以来就被广泛使用,在实际开发中逐渐淡出人们的视线,几乎被淘汰,因为它存在重大缺陷,可能导致项目失败、成本超支和延期 。瀑布模型适用于在结构上有明确需求和方法的项目 。
2.快速原型模型
由瀑布模型和构造性开发模型组成的模型(业务建模、数据建模、流程建模、应用生成、测试和交付)可以快速构建应用系统,因此被广泛使用
3.原型
用户对系统有期待,可以简单的系统演示,让用户看到开发出来的系统是什么样子 。事情做成之后,用户发现很多问题,提出疑问 。通过检疫系统,只适用于需求阶段,成本相对较低 。
4.进化模型
原型被进化以得到一个完整的系统
【软件工程螺旋模型,软件工程五种开发模型】5.增量模型
增量模型采用原型和瀑布模型的思想 。用户有各种需求 。首先制作核心部分供用户使用和修改,然后开发下一个功能,系统一步步完成 。重点是功能开发,可以根据功能的重要性进行排序
6.螺旋模型
以原型为核心,将一个项目划分为多个小项目,每个小项目主要基于瀑布模型,在瀑布模型之前加入风险评估 。缺点是在大型项目中未能及时识别风险可能会导致重大损失,过多的迭代会增加成本
7.组件装配模型(CBSD)
每个模块可以看作一个组件,每个组件可以组装得到一个应用系统,大大提高了软件开发的可重用性,大大减少了开发时间,降低了软件开发成本,提高了软件可靠性 。
需求分析和定义.软件体系结构设计.组件库建立(组件获取和组件管理).应用软件构造.测试和发布
8.喷泉模型
面向对象模型,因为是面向对象模型,有迭代,没有间隙,很多阶段是同步进行的,需要大量的开发人员,不利于项目管理,严格管理文档,增加了审核难度
9.五.模式
它非常接近瀑布模型,测试在V模型中更为重要 。测试环节被细分,需求和验收测试之间存在对应关系 。需求分析阶段可以编写验收测试和系统测试报告,可以提前发现问题,避免瀑布模型最终测试阶段发现问题后修改需求的问题 。集成测试在概要设计阶段同步完成 。集成测试主要是测试模块之间的连接,提前发现模块划分的问题 。单元测试在详细设计阶段同步进行 。v模型是一个强调测试的模型 。
需求分析-概要设计-详细设计-编码-V模型-单元测试-集成测试-系统测试-验收测试
10.统一流程
目前,广泛使用的模型了解模型的特征、阶段和核心人物 。统一过程有三个特点:用例驱动,通过需求分析挖掘出用例 。在整个开发过程中,每个阶段都是由用例串在一起并推动的 。强调先设计架构,再填充相应的组件 。迭代和增量形成一个环,每个周期都会有一个增量 。
初始阶段:确定项目的范围和边界,确定系统的关键用例(定理2-8,80%的人使用20%的系统功能),展示系统的候选架构,估算项目成本和时间,评估项目风险
细化阶段:分析系统问题领域,建立软件架构基础,消除最高风险元素
5px;">构建阶段:将构件组装起来并测试,开发剩余的构件
交付阶段:进行β测试,制作发布版本,文档定稿,确认新系统,培训调整产品,终上所述统一过程也不是一次性完成系统,也需要逐步完善
敏捷开发方法:
属于比较年轻的开发方法,最初没有开发方法,发现开发出来的软件质量很难控制,发展出来了开发模型,开发方法,慢慢规范后发现重量级模型(注重流程和文档)开发得不到很好的效果,去掉不必要的文档和流程
敏捷开发包括:自适应开发,水晶方法,特征驱动开发,SCRUM,极限编程XP 。
基本原则:短平快的会议(砍掉不必要的会议,缩短会议控制时长),小型版本发布,较少的文档,合作为重,客户直接参与,自动化测试,自适应计划调整,结对编程,测试驱动开发,持续集成,重构
极限编程4大价值观:沟通、简单、反馈、勇气
极限编程5大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作
极限编程12个最佳实践:小型发布、简单设计、测试先行、结对编程、计提代码所有制、每周工作40小时、现场客户,编码标准