4.1.3 敏捷方法
1、敏捷方法的特點
敏捷方法是“適應(yīng)性”而非“預(yù)設(shè)性”的,重型方法在計劃制定完成后拒絕變化,而敏捷方法則歡迎變化。
“面向人的”而非“面向過程的”
傳統(tǒng)的軟件開發(fā)方法的基本思路一般是 只要圖紙設(shè)計得合理并考慮充分,施工隊伍可以完全遵照圖紙順利構(gòu)造。
但是,一些設(shè)計錯誤只能在編碼和測試時才能發(fā)現(xiàn)。
傳統(tǒng)正規(guī)開發(fā)方法是 個體不重要,角色才是重要的,盡量減少人的因素對開發(fā)過程的影響,但是敏捷方法正好相反。
管理人員已經(jīng)脫離實際開發(fā)活動相當長的時間了,如此設(shè)計出來的開發(fā)過程是難以為開發(fā)人員所接受的。
只有在第一線的開發(fā)人員才能真正掌握和理解開發(fā)過程中的技術(shù)細節(jié),所以技術(shù)方面的決定必須由他們來做出。
敏捷方法特別強調(diào) 相關(guān)人員之間的信息交流。因為項目失敗的原因最終都可以追溯到信息沒有及時準確地傳遞到應(yīng)該接受它的人。
特別提倡直接的面對面交流,交流成本遠遠低于文檔的交流。
按照高內(nèi)聚、松散耦合的原則 將項目劃分為若干個小組,以增加溝通。
2、敏捷方法的核心思想
1.適應(yīng)性型,利用變化來發(fā)展。
2.以人為本,在無過程控制和過于嚴格繁瑣的過程控制中取得一種平衡,以保證軟件的質(zhì)量。
3.迭代增量式的開發(fā)過程,發(fā)行版本小型化,根據(jù)客戶需求的 優(yōu)先級和開發(fā)風險,制訂版本發(fā)行計劃。
3、敏捷方法的含義及其特征
重型方法注重開發(fā)文檔的完備和充分性;而敏捷方法認為最根本的文檔應(yīng)該是源碼。
4、敏捷方法的適用范圍
實際上,滿足工程設(shè)計標準的唯一文檔是源代碼清單。
敏捷方法比較適合需求變化比較大 或者 開發(fā)前期對需求不是很清晰的項目。
敏捷方法對設(shè)計者、開發(fā)者、客戶 之間的有效溝通和及時反饋要求比較高,不易在開發(fā)團隊比較龐大的項目中實施。
5、敏捷方法的主要內(nèi)容
四個核心價值觀:溝通、簡單、反饋、勇氣。
簡單:只要滿足當前功能需求,不做假象設(shè)計。
勇氣:用于抉擇,用于實踐,用于重構(gòu)。
12條實踐規(guī)則:簡單設(shè)計、測試驅(qū)動、代碼重構(gòu)、結(jié)對編程、繼續(xù)集成、現(xiàn)場客戶、開發(fā)版本小型化、系統(tǒng)隱喻、代碼集體所有制、規(guī)劃策略、規(guī)范代碼、40小時工作機制。
6、主要敏捷方法簡介
極限編程
水晶系列方法
開放式源碼,任何人發(fā)現(xiàn)Bug都可以將補丁發(fā)給維護者。
SCRUM
Coad的功用驅(qū)動開發(fā)方法:短時迭代階段 和 可見可用的功能,一個迭代周期一般為兩周,編程人員分為 類程序員、首席程序員。
ASD方法,猜測、合作、學習。
4.1.4 RUP
RUP把軟件開發(fā)生命周期劃分為多個循環(huán)(cycle),每個cycle生成產(chǎn)品的一個新版本,每個cycle依次由4個連續(xù)階段(phase)組成:
初始:定義最終產(chǎn)品視圖和業(yè)務(wù)模型,并確定系統(tǒng)范圍。
細化:制定工作計劃及資源要求。
構(gòu)造。
移交。
迭代并不是重復(fù)地做相同的事,而是針對不同用例細化和實現(xiàn),每一個迭代都是一個完整的開發(fā)過程。
每個階段結(jié)束前有一個里程碑(milestone)評估該階段的工作。如果未能通過該里程碑的評估,則決策者應(yīng)該做出決定,是取消該項目還是繼續(xù)做該階段的工作。
RUP中的核心概念
角色(Role),who的問題,某個人或一個小組的行為與職責。
活動(Activity),how的問題,是一個有明確目的的獨立工作單元。
制品(Artifact),what的問題,是活動生成、創(chuàng)建、修改 第一段信息。
工作流(Workflow),when的問題,每個工作流產(chǎn)生一些有價值的產(chǎn)品,并顯示了角色之間的關(guān)系。
RUP的特點
RUP是用例驅(qū)動的、以體系結(jié)構(gòu)為中心的、迭代和增量的軟件開發(fā)過程。
用例驅(qū)動:需求分析、設(shè)計、實現(xiàn)、測試,都是用例驅(qū)動的。
以體系結(jié)構(gòu)為中心:刻畫了系統(tǒng)的整體設(shè)計,去掉了細節(jié)部分,突出了系統(tǒng)的重要特征。
不依賴于具體語言,是軟件設(shè)計過程的一個層次。
體系結(jié)構(gòu)層次的設(shè)計問題包括:總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取、給設(shè)計元素分配特定功能、設(shè)計元素的組織、物理分布、系統(tǒng)的伸縮性、性能 等。
一個系統(tǒng)不可能在所有特性上都達到最優(yōu),對于一個系統(tǒng),不同人員所關(guān)心的內(nèi)容也是不一樣的,對于不同類型的人員,只需提供這類人員關(guān)心的視圖即可。
分析和測試人員關(guān)心用例圖,最終用戶關(guān)心邏輯視圖,程序員關(guān)心實現(xiàn)視圖,系統(tǒng)工程師關(guān)心部署視圖。
RUB強調(diào)采用迭代和增量的方法來開發(fā)軟件,每次迭代中,之考慮系統(tǒng)的一部分需求,每次增加一些新的功能實現(xiàn)。
好處:
早期就可以對關(guān)鍵的、影響大的風險進行處理。
可以提出一個軟件體系結(jié)構(gòu)來指導(dǎo)開發(fā)。
處理不可避免的需求變更。
可以較早地得到一個可運行的系統(tǒng),鼓舞開發(fā)團隊的士氣,增強項目成功的信心。
更有效工作的開發(fā)過程。
沒有一個項目會使用RUP中所有的東西,用用RUP時要裁剪,裁剪步驟:
1.確定本項目 需要哪些工作流。
2.確定每個工作流要產(chǎn)出哪些制品。
3.確定四個階段之間(初始階段、細化階段、構(gòu)造階段、移交階段)如何演進。
4.確定每個階段內(nèi)迭代計劃。
5.規(guī)劃工作流內(nèi)部結(jié)構(gòu)。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |