软件开发过程模型主要有:51Testing软件测试网@$H5K2K2e0x/k8O
 瀑布模型(V模型、喷泉模型 )51Testing软件测试网tQ5e8r8E#E
 螺旋模型51Testing软件测试网'E,g#YO!e^Z!R
 原型模型(锯齿模型、快速原型)51Testing软件测试网(A'L0y*{8F`~�R"j"a
 构件组装模型 (增量模型)51Testing软件测试网/ZOf0bR%BA`
 统一软件过程RUP模型

1. 瀑布模型

A. 瀑布模型特征
n%D#V5Pr0 从上一项活动接收该项活动的工作对象,作为输入51Testing软件测试网CV*hy&dO+U7K&ZU H
 利用这一输入实施该项活动应完成的内容;
t%^bf5W"q}0 给出该项活动的工作成果,作为输出传给下一项活动;
;Wy3|p0L|/M0 对该项活动实施的工作进行评审,若其工作得到确认,则继续下一项活动,否则返回前项,甚至更前项的活动进行返工。
hbJ0Z@2du0B. 瀑布模型的优点51Testing软件测试网YNH%TGRc
 通过设置里程碑,明确每阶段的任务与目标
1k_f~!wC5W0 可为每阶段制定开发计划,进行成本预算,组织开发力量51Testing软件测试网Zy#~vR2]'^
 通过阶段评审,将开发过程纳入正确轨道51Testing软件测试网D x4I+ml kt9{
 严格的计划性保证软件产品的按时交付
x:S1R:D|}�?3@0C. 瀑布模型的缺点51Testing软件测试网B|G0}"DTz]O'l
 缺乏灵活性,不能适应用户需求的改变51Testing软件测试网"|-B-qn1{GeN
 开始阶段的小错误被逐级放大,可能导致软件产品报废
Mn-dA$DkE0i0 返回上一级的开发需要十分高昂的代价
m-g8x*K1/0 随着软件规模和复杂性的增加,软件产品成功的机率大幅下降51Testing软件测试网_]Mq-j'@F8w^1Qdu g'{/7sI$ez02. 螺旋模型(图)

A. 螺旋模型的特征
A5~(Pr8h0 每一圈是一个阶段,每个阶段里又有一些活动
iRLL!R%}0 阶段可分为:操作的概念、软件需求、产品设计、详细设计、编码、单元测试、集成和测试、验收测试、实现51Testing软件测试网O` jw&[
 活动有:需求与计划、风险分析、设计与制作、用户评价
N5q"W|f8K:H0B. 螺旋模型的优点
veS/Km Hq0 风险分析可使一些极端困难的问题和可能导致费用过高的问题被更改或取消51Testing软件测试网6I-Hf5fU YF
 用户评价为需求的变更带来柔性51Testing软件测试网 ^Zk+][dWx
C. 螺旋模型的缺点51Testing软件测试网$Yl4?%q$PA
 需要开发人员具有相当丰富的风险评估经验和专门知识51Testing软件测试网:i.nQ;]{-Vc
 要求用户参与阶段评价,对用户来说比较困难,不易取得好的效果51Testing软件测试网neP4^9h$WjQ51Testing软件测试网c0I5R Av.g51Testing软件测试网"sj'Ul�O+{sn%x,@
3. 原型模型(图)

A. 原型模型的特征51Testing软件测试网Zsc&RJ$Udi r
 立项以后先提交原型给用户,在用户试用的基础上进行需求调查与原形修改51Testing软件测试网'Lu)Km@$t7A;r
 强调用户对软件功能和使用性能的评价51Testing软件测试网�zHaI1?2h
 设计、修改原型与试用交替进行51Testing软件测试网3oxXxFRp*|
 一次迭代中的开发步骤:51Testing软件测试网/zuZz]8qg
*了解用户/设计者的基本信息需求
7CV;M�r1XU0*开发初始原型系统51Testing软件测试网6F-`u/k.}or
*用户/设计者试用和评估原型系统51Testing软件测试网$/R}]r!c,re)K,z8su
B. 原型模型的优点51Testing软件测试网3~?Q$pE7P
 开发者与用户充分交流,可以澄清模糊需求,需求定义比其他模型好得多51Testing软件测试网$~E6BKU"k%OC
 开发过程与用户培训过程同步51Testing软件测试网.~F[sTL D1`-KY
 为用户需求的改变提供了充分的余地
CYkjS? s0 开发风险低,产品柔性好51Testing软件测试网h+gd||%I
 开发费用低,时间短51Testing软件测试网)D!](m.{5Q0j,QM
 系统易维护,对用户更友好
Ow"wE%b*u*bK0C. 原型模型的缺点
b2FB,ECIam0 开发者在不熟悉的领域中不易分清主次,原型不切题
j'e6zy,W|1oc0 产品原型在一定程度上限制了开发人员的创新
/XW%KLEgn;~0 随着更改次数的增多,次要部分越来越大,“淹没”了主要部分51Testing软件测试网}Y^D"que
 原型过快收敛于需求集合,而忽略了一些基本点51Testing软件测试网ex7h*^+sx2]ax'o
 资源规划和管理较为困难,随时更新文档也带来麻烦51Testing软件测试网&p"{8[)|)Kwu9d|&s
 只注意原型是否满意,忽略了原型环境与用户环境的差异B7qyhc'||051Testing软件测试网&T3jqjM[

51Testing软件测试网:[gy H*D5?X V7@z
4. 构件组装模型/增量模型(图)

A. 构件组装模型的特征
!p%zw3e-}0 应用软件可用预先编好的、功能明确的产品部件定制而成, 并可用不同版本的部件实现应用的扩展和更新。
3j&l9K&d/3UoX'a [(j0 利用模块化方法,将复杂的难以维护的系统分解为互相独立、协同工作的部件,并努力使这些部件可反复重用。51Testing软件测试网t}.f!`^X/J
 突破时间、空间及不同硬件设备的限制,利用客户和软件之间统一的接口实现跨平台的互操作。51Testing软件测试网+F9U�n(rykw
B. 构件组装模型的优点
)V~)aG*DFj0 构件组装模型导致了软件的复用,提高了软件开发的效率,面向对象技术是软件工程的构件组装模型的基础。51Testing软件测试网Tq:[(FTP,x
 构件可由一方定义其规格说明,被另一方实现,然后供给第三方使用。
G6]u_0l+P%J${0 构件组装模型允许多个项目同时开发,降低了费用,提高了可维护性。
8SIU3u]F/'W0 可实现分步提交软件产品。
b5HiEY0C. 构件组装模型的缺点51Testing软件测试网lN#H}r
 可重用性和软件高效性不易协调。51Testing软件测试网?1KJ1|8?H rN
 缺乏通用的组装结构标准,而自定义的组装结构标准引入较大的风险。51Testing软件测试网'a,t3j5jt!I#hb
 需要精干的有经验的分析和开发人员,一般的开发人员插不上手。51Testing软件测试网1fJ*q7FV*CD7N rS
 客户的满意度低。{M�l5D iDlF051Testing软件测试网f7/(]9Kdk

5. 统一软件过程RUP模型(图)

A. RUP模型特征
:so)^uh3KiH�r0 RUP可以用二维坐标来描述。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone);纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。51Testing软件测试网v(fW2a"zX)D'r
RUP的时间轴
6sQ!y7e�v[$u-V0被分解为四个顺序的阶段,分别是:51Testing软件测试网9Cn8y-ZI*OVga`*e
 初始阶段(Inception)、51Testing软件测试网!qH)lF;]tHEg~
 细化阶段(Elaboration)、51Testing软件测试网!Gx `1N3O2v~ S
 构造阶段(Construction)和51Testing软件测试网;UL7_1D/@
 交付阶段(Transition)51Testing软件测试网!kqN:["g-j5A$lo
每个阶段结束于一个主要的里程碑(Major Milestones);每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。
.[�gci*JD1T0RUP的阶段目标51Testing软件测试网J2@l w+Yd*VT
 初始阶段的目标是为系统建立商业案例并确定项目的边界。
7S)`}S,X;cl)u0 细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。
)a rrJN8DK)C0 在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。51Testing软件测试网(J%vfY4y XX
 交付阶段的重点是确保软件对最终用户是可用的。51Testing软件测试网%s/#ILTI#wH
RUP的核心工作流
&Dr0X*Mz`G*W0 RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命周期中一次又一次被访问。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。
mrW(},];k0核心过程工作流51Testing软件测试网z1e$/g1_"`'`
 商业建模工作流为组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。51Testing软件测试网f1F4SH:xp.I
 需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。
Q0}f%qr5aOj;O�UU0 分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。51Testing软件测试网$|:d Dj"r veF
核心过程工作流
!SK%C%r7e2K"oq(XHp0 实现工作流的目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。
%YboxYG0核心过程工作流
*`N&D{:hP0 测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现,识别、提出缺陷并确认缺陷在软件部署之前被处理。
i#wrx+o;l0 部署工作流的目的是成功的生成版本并将软件分发给最终用户。51Testing软件测试网9TIJ[5sQhg
核心支持工作流51Testing软件测试网3g-Hz,]M;sF$s
 配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物,管理演化系统中的多个变体,跟踪软件创建过程中的版本。51Testing软件测试网0T&b(k6T A+v[
 软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。51Testing软件测试网2r9Dpl;de&LX'_$h,T(Yo
 环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。51Testing软件测试网 k0^2z9f4kfr*[ |SX%j
B. RUP模型的优点
5{&s*iRu+]H&sU o|K0 RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。51Testing软件测试网}$Be tV{(C
C. RUP模型的缺点51Testing软件测试网M,l(St%[?�G^_
 一些不足: RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。

51Testing软件测试网�|"?7/UH n,A7eiP

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

软件开发过程模型 软件过程模型 软件开发过程几种模型对比相关推荐

  1. 浅谈软件开发工具CASE在软件项目开发中发挥的作用认识

    浅谈软件开发工具CASE在软件项目开发中发挥的作用认识 内容摘要:阐述了CASE工具作为 一种开发环境在软件项目开发中所起到的开发及管理作用.CASE工具实际上是把原先由手工完成的开发过程转变为以自动 ...

  2. java培训分享:java软件开发可以用哪些软件?

    从事java相关工作的小伙伴应该都有一个习惯,那就是运用软件的方便来达到高效率工作,本期小编为大家介绍的java培训教程就是关于"java软件开发可以用哪些软件?"的内容,来看看下 ...

  3. 天翼云从业认证(1.8)了解软件开发的环境、软件基础架构和常用软件开发工具

    常用开发环境 软件是一系列按照特定顺序组织的计算机数据和指令的集合. 软件特点 软件开发流程:调研沟通/获取需求.需求分析.产品设计.界面设计.设计原型图.程序编码.测试.打包发布.产品上线 软件开发 ...

  4. 软件开发重要性_在软件开发中考虑时间的重要性

    软件开发重要性 by Crunch Tech 通过Crunch Tech 在软件开发中考虑时间的重要性 (The importance of time to think in Software Dev ...

  5. 软件开发(一)——软件开发的基础思考

    几乎所有学计算机的人,都是先学的程序设计,学各种各样的语言,c,c++,c#,java,fortran,python等等,掌握这些内容后基本就能进行程序开发了,也可以实现我们想要实现的相关功能.所以很 ...

  6. python能做软件开发吗-学习Python软件开发能做什么?

    原标题:学习Python软件开发能做什么? 近年来,Python语言可以说是快速抢占了人们的眼球.它以其代码简短.可读性强.适合迅速开发而广泛应用等优点让许多学员想要学习,很多人会问,学习python ...

  7. python软件开发-如何编写Python软件开发文档(7个技巧)

    开发文档是经常被程序员忽略的工作,有时也会被管理者忽略.这往往是由于在项目生命周期结束的后期缺乏时间,以及人们认为自己不擅长写作,其中一些人确实写不好,但他们中的大多数能够完成一个良好的文档. 在任何 ...

  8. 面向对象方法的优势简化软件开发的过程_软件开发技巧的途径

    软件开发的复杂性每天都在增加.几乎每年都会发布一个新的框架(例如AngularJS,ReactJS)和一个新的构建工具(例如Webpack,Rollup).甚至每年都会发布新的JavaScript版本 ...

  9. 暗黑破坏神 用什么 开发的_软件开发中最具破坏性的五种态度

    暗黑破坏神 用什么 开发的 重点 (Top highlight) 成长心态是关键 (GROWTH MINDSET IS KEY) Based on my years of professional s ...

最新文章

  1. 在线绘图|2分钟轻松搞定桑基图(Sankey diagrams)
  2. 职业-把工作当作职业 or 事业?
  3. 支付宝不止怀有“社交梦”,社区金融才是它的野心所在
  4. 中介者模式(Mediator Pattern)
  5. 微博抽奖贴为什么到时间了不开奖_热搜第一!微博闹剧,锦鲤“信小呆”被这样处罚...
  6. microsoftstore连不上网_win10系统下微软商店连不了网如何解决
  7. 可伸缩多线程任务队列
  8. VBA操作WORD(二):替换字符(含空格、全角字符、换行符等)
  9. 采集百度搜索引擎的10个经典方法
  10. 青青草php,青青草原博客
  11. python程序设计基础之注释
  12. 用好这 28 个工具,开发效率爆涨|云效工程师指北
  13. KeyMob聚合-为国内广大开发者一族提供免费广告管理服务
  14. 【无标题】微信小程序:强制更新(测试编译)
  15. 基于SAML 2.0对接阿里云的SSO(单点登录)
  16. HTML视频:视频播放网页
  17. Oracle ADF
  18. darknet训练yolov4模型
  19. Unity zSpace开发笔记
  20. 亲子教育语境下的“为君难”和“为臣不易”

热门文章

  1. 一种亮红色染料AF 594 NHS Ester|295348-87-7|AF 594 Succinimidyl Ester
  2. Spring MVC 简介及开发流程
  3. 如何用记事本编写Hello World
  4. 7-27 兔子繁衍问题
  5. java-22:JVM基本原理 - 内存模型
  6. 什么是HDR技术?HDR10、HDR400有什么区别?为什么售价3万元的lg的EP950系列显示器只有HDR400认证?
  7. ENSP路由器IPsec策略模板出现的无法建立IPsec隧道的问题
  8. 音视频技术之ffplay源码分析-音视频同步
  9. 钠钙玻璃建筑玻璃英国UKCA认证—EN 572-9
  10. FPGA CY7C68013A调试经验总结