你该知道的十大流行编程方法!

译文
新闻
这些编程方法旨在提高生产力、代码质量和促进协作。

【51CTO.com快译】过去,几乎所有的软件开发项目都采用瀑布模型。这种编程方法酷似工厂装配线,要求开发人员完成一个开发阶段,之后才能进入到下一个阶段。这种方法高度结构化,但是项目需求有变化时,它就不适用了。

近些年来,开发人员开始青睐更迭代性的流程,因而更容易兼顾项目范围和需求出现的变化。敏捷软件开发以及似乎无穷无尽的变种方法已越来越常见。现在它们成了主流的编程方法。

我们在本文中介绍了十种最流行的软件开发方法的功能特性,包括敏捷、Scrum、精益、极限编程,甚至还有瀑布方法。

1、敏捷软件开发

2001年,17位软件开发人员签署了敏捷宣言(Agile Manifesto),因此载入史册。自那以后,敏捷软件开发迅速流行起来;实际上,在2015年弗雷斯特调研公司的一份报告中,54%的受访企业表示,其内部一半以上的开发团队在使用敏捷方法。敏捷理念基于12个核心原则,这些原则注重简短迭代、持续交付、简洁性、回顾以及最终用户和开发人员之间的协作。

2、Scrum

敏捷软件开发有多种版本,Scrum是最受欢迎的版本之一,接受《2015年敏捷现状》报告调查的受访者中70%表示,他们采用Scrum或Scrum混合方法。这是一种协作框架,最先由杰夫·萨瑟兰(Jeff Sutherland)在1993年发明。它把复杂项目分成了多个简短的迭代开发周期(sprint),每个迭代开发周期为期两到四周,它注重勇气、专注、承诺、尊重和开放性这五个价值观。

3、精益软件开发

虽然精益开发通常与敏捷开发联系起来,但精益开发的原则实际上源自丰田公司的精益制造流程。这套开发方法依赖七个关键的原则:消除浪费、促进反馈、尽量延迟决策、快速交付、融入完整性、授权团队和着眼整体。2003年,精益首次引起了软件开发界的注意,当时玛丽·波彭代克(Mary Poppendieck)和汤姆·波彭代克(Tom Poppendieck)出版了《精益软件开发:敏捷工具包》一书。

4、看板

看板是敏捷软件开发的另一个变种,灵感源自丰田公司。它为开发人员提供了一种直观的方法,可以查看什么工作需要完成,让他们得以在有精力时可以“拉取”工作,而不是“推送”工作,以完成某些任务。看板依赖三个核心原则:可视化今天处理的工作,限制在制品,并改进流动。

5、快速应用开发(RAD)

这些年来,几种不同的软件开发方法使用了RAD这个名称。最知名的也许当数詹姆斯·马丁(James Martin)的方法,这套方法于上世纪80年代问世于IBM。它被认为是一种敏捷方法,因为它注重适应不断变化的需求这种能力,不再强调事先规划。

6、测试驱动型开发(TDD)

测试驱动型开发与敏捷软件开发和极限编程都有关。这种方法由肯特·贝克(Kent Beck)及其他人首创,需要开发人员先为任何新的功能特性编写一个测试,之后开始编程工作。它鼓励开发人员极量少编写代码。

7、极限编程

这种敏捷软件开发高度依赖结对编程。与其他敏捷方法一样,它注重快速迭代和频繁的需求变化。它由肯特·贝克开发,此人是敏捷宣言的签署者之一,曾在1999年出版了《极限编程详述:拥抱变化》一书。

8、统一软件开发过程

这种软件开发方法以发明它的公司Rational Software命名,2003年IBM收购了这家公司。一些编程方法非常僵硬,统一软件开发过程却旨在可以轻松适应独特的情形。它是一种迭代框架,高度依赖可视化模型。

9、螺旋模型

上世纪80年代中期,巴里·贝姆(Barry Boehm)最先描述了螺旋模型,这是一种风险驱动型模型,结合了瀑布开发、增量开发、原型开发及其他软件开发方法的元素。其核心是开发人员应该根据风险大小来做决定,他们应该尽量少编写代码,以便尽量降低风险。

10、瀑布模型

不像本文介绍的其他软件开发方法,瀑布模型是顺序式而不是迭代式。从计算机的初期直到最近,瀑布模型都是最常用的软件开发方法。它最适合小规模项目:所有的设计要求都是事先已知的。

原文标题:10 Top Programming Methodologies,作者:Cynthia Harvey

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:wangxuze 来源: 51cto.com
相关推荐

2016-11-23 15:03:42

编程技术IT

2019-03-28 14:19:18

大数据误区数据

2019-11-11 09:00:00

测试方案自动化测试软件开发

2021-08-12 09:00:00

开发测试工具

2019-12-10 08:37:43

勒索病毒恶意软件网络安全

2020-12-20 18:10:32

物联网传感器物联网传感器

2010-01-12 10:44:32

Silverlight

2010-03-17 15:22:46

2019-05-30 14:19:58

区块链加密货币编程语言

2021-01-14 11:43:19

攻击安全工具网络罪犯

2010-11-19 14:52:56

2021-12-14 16:55:18

人工智能机器学习算法

2018-06-28 09:00:00

编程语言JavaPython

2021-11-02 08:41:13

黑客网络安全网络攻击

2015-10-20 16:47:30

2022-01-17 13:26:41

Python工具数据分析

2009-04-09 14:41:08

PHP框架MVCPHP

2018-09-12 23:15:43

2023-03-31 18:37:29

Hadoop分布式文件

2024-01-26 06:09:03

自动化测试技术
点赞
收藏

51CTO技术栈公众号