【51CTO.com快譯】過去,幾乎所有的軟件開發(fā)項目都采用瀑布模型。這種編程方法酷似工廠裝配線,要求開發(fā)人員完成一個開發(fā)階段,之后才能進入到下一個階段。這種方法高度結(jié)構(gòu)化,但是項目需求有變化時,它就不適用了。 近些年來,開發(fā)人員開始青睞更迭代性的流程,因而更容易兼顧項目范圍和需求出現(xiàn)的變化。敏捷軟件開發(fā)以及似乎無窮無盡的變種方法已越來越常見?,F(xiàn)在它們成了主流的編程方法。 我們在本文中介紹了十種最流行的軟件開發(fā)方法的功能特性,包括敏捷、Scrum、精益、極限編程,甚至還有瀑布方法。 1、敏捷軟件開發(fā) 2001年,17位軟件開發(fā)人員簽署了敏捷宣言(Agile Manifesto),因此載入史冊。自那以后,敏捷軟件開發(fā)迅速流行起來;實際上,在2015年弗雷斯特調(diào)研公司的一份報告中,54%的受訪企業(yè)表示,其內(nèi)部一半以上的開發(fā)團隊在使用敏捷方法。敏捷理念基于12個核心原則,這些原則注重簡短迭代、持續(xù)交付、簡潔性、回顧以及最終用戶和開發(fā)人員之間的協(xié)作。 2、Scrum 敏捷軟件開發(fā)有多種版本,Scrum是最受歡迎的版本之一,接受《2015年敏捷現(xiàn)狀》報告調(diào)查的受訪者中70%表示,他們采用Scrum或Scrum混合方法。這是一種協(xié)作框架,最先由杰夫·薩瑟蘭(Jeff Sutherland)在1993年發(fā)明。它把復(fù)雜項目分成了多個簡短的迭代開發(fā)周期(sprint),每個迭代開發(fā)周期為期兩到四周,它注重勇氣、專注、承諾、尊重和開放性這五個價值觀。 3、精益軟件開發(fā) 雖然精益開發(fā)通常與敏捷開發(fā)聯(lián)系起來,但精益開發(fā)的原則實際上源自豐田公司的精益制造流程。這套開發(fā)方法依賴七個關(guān)鍵的原則:消除浪費、促進反饋、盡量延遲決策、快速交付、融入完整性、授權(quán)團隊和著眼整體。2003年,精益首次引起了軟件開發(fā)界的注意,當(dāng)時瑪麗·波彭代克(Mary Poppendieck)和湯姆·波彭代克(Tom Poppendieck)出版了《精益軟件開發(fā):敏捷工具包》一書。 4、看板 看板是敏捷軟件開發(fā)的另一個變種,靈感源自豐田公司。它為開發(fā)人員提供了一種直觀的方法,可以查看什么工作需要完成,讓他們得以在有精力時可以“拉取”工作,而不是“推送”工作,以完成某些任務(wù)??窗逡蕾嚾齻€核心原則:可視化今天處理的工作,限制在制品,并改進流動。 5、快速應(yīng)用開發(fā)(RAD) 這些年來,幾種不同的軟件開發(fā)方法使用了RAD這個名稱。最知名的也許當(dāng)數(shù)詹姆斯·馬丁(James Martin)的方法,這套方法于上世紀(jì)80年代問世于IBM。它被認為是一種敏捷方法,因為它注重適應(yīng)不斷變化的需求這種能力,不再強調(diào)事先規(guī)劃。 6、測試驅(qū)動型開發(fā)(TDD) 測試驅(qū)動型開發(fā)與敏捷軟件開發(fā)和極限編程都有關(guān)。這種方法由肯特·貝克(Kent Beck)及其他人首創(chuàng),需要開發(fā)人員先為任何新的功能特性編寫一個測試,之后開始編程工作。它鼓勵開發(fā)人員極量少編寫代碼。 7、極限編程 這種敏捷軟件開發(fā)高度依賴結(jié)對編程。與其他敏捷方法一樣,它注重快速迭代和頻繁的需求變化。它由肯特·貝克開發(fā),此人是敏捷宣言的簽署者之一,曾在1999年出版了《極限編程詳述:擁抱變化》一書。 8、統(tǒng)一軟件開發(fā)過程 這種軟件開發(fā)方法以發(fā)明它的公司Rational Software命名,2003年IBM收購了這家公司。一些編程方法非常僵硬,統(tǒng)一軟件開發(fā)過程卻旨在可以輕松適應(yīng)獨特的情形。它是一種迭代框架,高度依賴可視化模型。 9、螺旋模型 上世紀(jì)80年代中期,巴里·貝姆(Barry Boehm)最先描述了螺旋模型,這是一種風(fēng)險驅(qū)動型模型,結(jié)合了瀑布開發(fā)、增量開發(fā)、原型開發(fā)及其他軟件開發(fā)方法的元素。其核心是開發(fā)人員應(yīng)該根據(jù)風(fēng)險大小來做決定,他們應(yīng)該盡量少編寫代碼,以便盡量降低風(fēng)險。 10、瀑布模型 不像本文介紹的其他軟件開發(fā)方法,瀑布模型是順序式而不是迭代式。從計算機的初期直到最近,瀑布模型都是最常用的軟件開發(fā)方法。它最適合小規(guī)模項目:所有的設(shè)計要求都是事先已知的。 原文標(biāo)題:10 Top Programming Methodologies,作者:Cynthia Harvey 【編輯推薦】
|
|
來自: 孤獨一兵 > 《java學(xué)習(xí)》