【系统分析师之路】第五章 复盘软件工程(敏捷开发)
【系統(tǒng)分析師之路】第五章 復(fù)盤軟件工程(敏捷開發(fā))
復(fù)盤軟件工程—敏捷開發(fā)
- 【系統(tǒng)分析師之路】第五章 復(fù)盤軟件工程(敏捷開發(fā))
- 前言部分 歷年真題考點分析
- 1)考點分析
- 2)重要知識點
- 第一部分 綜合知識歷年真題
- 2008下綜合知識歷年真題(1分)
- 2009上綜合知識歷年真題(1分)
- 2010上綜合知識歷年真題(1分)
- 2011上綜合知識歷年真題(1分)
- 2013上綜合知識歷年真題(1分)
- 2015上綜合知識歷年真題(1分)
- 2019上綜合知識歷年真題(1分)
- 第二部分 案例分析歷年真題
- 2008上案例分析歷年真題(25分)
- 第三部分 論文寫作歷年真題
- 2008下論文寫作歷年真題(75分)
- 2012上論文寫作歷年真題(75分)
前言部分 歷年真題考點分析
1)考點分析
敏捷開發(fā)在上午綜合,下午的案例分析和論文寫作當(dāng)中都出現(xiàn)了,看起來像一個比較重要的知識點;但是敏捷似乎真題都出現(xiàn)在早些年代久遠(yuǎn)的時候,最近五年不怎么出現(xiàn)了。尤其是在案例和論文當(dāng)中已經(jīng)消失殆盡了。難道在系統(tǒng)分析師里面已經(jīng)不重要了?至少在PMP考試中,敏捷的占分比一直在上升,不過咱們系統(tǒng)分析師考試不側(cè)重這個,頂多敏捷知識開發(fā)方法開發(fā)模型當(dāng)中的一個比較常見的內(nèi)容罷了。不過偶爾論文中冒出一個敏捷的論文也不足為奇,所以還是應(yīng)該認(rèn)真準(zhǔn)備這塊知識。
2)重要知識點
01)敏捷宣言的概念
02)極限編程的概念和基本常識
03)敏捷開發(fā)的詳細(xì)分類:包括水晶方法,Scrum,特征驅(qū)動開發(fā)等
04)敏捷開發(fā)的基本原則和關(guān)注點
05)敏捷開發(fā)難以實施的情況
06)結(jié)對編程的概念和優(yōu)點
第一部分 綜合知識歷年真題
2008下綜合知識歷年真題(1分)
【2008年下系分真題第17題:綠色】
17.敏捷軟件過程強(qiáng)調(diào):讓客戶滿意和軟件盡早增量發(fā)布;小而高度自主的項目團(tuán)隊;非正式的方法;最小化軟件工程工作產(chǎn)品以及整體精簡開發(fā)。(24)不是采用這種軟件開發(fā)過程的原因。
(24)
A.難以提前預(yù)測哪些需求是穩(wěn)定的和哪些需求會變化
B.對于軟件項目開發(fā)來說,設(shè)計和實現(xiàn)可以做到基本分離
C.從制定計劃的角度來看,分析、設(shè)計、實現(xiàn)和測試并不容易預(yù)測
D.可執(zhí)行原型和部分實現(xiàn)的可運(yùn)行系統(tǒng)是了解用戶需求和反饋的有效媒介
解答:答案選擇B。送分題。
2009上綜合知識歷年真題(1分)
【2009年系分真題第21題:綠色】
21.極限編程是一種重要的敏捷開發(fā)方法,包含策劃、設(shè)計、編碼和測試四個框架活動的規(guī)則和實踐。下面關(guān)于極限編程的敘述,錯誤的是(26)。
(26)
A.極限編程中使用的重要技術(shù)是重構(gòu),既包括設(shè)計技術(shù)的重構(gòu),也包括構(gòu)建技術(shù)的重構(gòu)
B.極限編程提倡在基本設(shè)計完成后,立即進(jìn)行編碼實現(xiàn),并進(jìn)行測試
C.極限編程活動中的關(guān)鍵概念之一是“結(jié)對編程”,推薦兩個人面對同一臺計算機(jī)共同開發(fā)代碼
D.極限編程過程中建立的單元測試應(yīng)當(dāng)使用一個可以自動實施的框架,支持代碼修改后即時的回歸測試策略
解答:答案選擇B
2010上綜合知識歷年真題(1分)
【2010系分真題第18題:綠色】
18.某小型軟件公司欲開發(fā)一個基于Web的考勤管理系統(tǒng),客戶對系統(tǒng)的基本功能,表現(xiàn)形式等要求并不明確,在這種情況下,采用(23)開發(fā)方法比較合適。
(23)
A.瀑布式
B.形式化
C.結(jié)構(gòu)化
D.極限編程
解答:答案選擇D。送分題。
2011上綜合知識歷年真題(1分)
【2011年系分真題第19題:黃色】
19.以下敏捷軟件開發(fā)方法中,(23)方法強(qiáng)調(diào)以業(yè)務(wù)為核心,快速而有效地進(jìn)行系統(tǒng)開發(fā)。
(23)
A.極限編程
B.自適應(yīng)軟件開發(fā)
C.特性驅(qū)動開發(fā)
D.動態(tài)系統(tǒng)開發(fā)
解答:答案選擇D。二周目紅色變黃色。
2013上綜合知識歷年真題(1分)
【2013年系分真題第29題:綠色】
29.下列關(guān)于敏捷方法的敘述,(38)是錯誤的。
(38)
A.敏捷方法強(qiáng)調(diào)可工作的軟件勝過大量的文檔
B.敏捷方法強(qiáng)調(diào)軟件過程與工具勝過個體和交互
C.敏捷方法強(qiáng)調(diào)盡早提交有價值的軟件
D.敏捷方法強(qiáng)調(diào)小版本發(fā)布
解答:答案選擇B。送分題。
2015上綜合知識歷年真題(1分)
【2015年系分真題第17題:綠色】
17.某軟件公司欲開發(fā)一個基于Web的考勤管理系統(tǒng)。在項目初期,客戶對系統(tǒng)的基本功能、表現(xiàn)形式等要求并不明確,在這種情況下,采用(21)開發(fā)方法比較合適。
(21)
A.瀑布式
B.形式化
C.結(jié)構(gòu)化
D.極限編程
解答:答案選擇D。本題考查軟件開發(fā)方法的基礎(chǔ)知識與應(yīng)用。
2019上綜合知識歷年真題(1分)
【2019年系分真題第24題:綠色】
24、下列開發(fā)方法中,( )不屬于敏捷開發(fā)方法。
A、極限編程
B、螺旋模型
C、自適應(yīng)軟件開發(fā)
D、水晶方法
解答:答案選擇B。考察開發(fā)方法開發(fā)模型。送分題。
第二部分 案例分析歷年真題
2008上案例分析歷年真題(25分)
試題二
閱讀以下關(guān)于軟件開發(fā)方面的敘述,在答題紙上回答問題 1至問題4。
當(dāng)前企業(yè)中的業(yè)務(wù)都是在全球化、快速變化的環(huán)境中運(yùn)營的,傳統(tǒng)的軟件開發(fā)過程無法適應(yīng)由此產(chǎn)生的快速軟件開發(fā)需求。20 世紀(jì) 90 年代后期,一些軟件開發(fā)人員在“Agile Allicance 2001”中系統(tǒng)地闡述了敏捷開發(fā)的原則,試圖強(qiáng)調(diào)靈活性在快速且有效地生產(chǎn)軟件中所發(fā)揮的作用。目前,眾多的軟件生產(chǎn)企業(yè)已經(jīng)在實際的軟件開發(fā)過程中接納并實踐了敏捷開發(fā)方法中的基本原則。
【問題1】(8分)
敏捷開發(fā)有許多典型方法,包括極限編程(eXtreme Programming)、Scrum、Crystal、DSDM等。請問這些方法共同的基本原則是什么?
【問題2】(8分)
敏捷開發(fā)的支持者往往夸大該方法的優(yōu)點,但是在實踐中,敏捷方法的基本原則有時確實很難實施。請用200字以內(nèi)的文字說明敏捷方法中哪些原則在實踐中難以實施。
【問題3】(2分)
敏捷開發(fā)方法中最有名的是極限編程。請說明極限編程中的結(jié)對編程(Pair Programming)的概念。
【問題4】(7分)
敏捷開發(fā)方法在具體實踐過程中,往往需要開發(fā)環(huán)境或工具的支持,一般稱為快速應(yīng)用開發(fā)技術(shù)和可視化開發(fā)技術(shù)。請用150字以內(nèi)的文字說明快速應(yīng)用開發(fā)技術(shù)所包含的工具有哪些,并簡要說明可視化開發(fā)技術(shù)的基本概念和技術(shù)原理
【問題1標(biāo)準(zhǔn)答案】
1)客戶參與
2)增量式提交
3)開發(fā)團(tuán)隊的技術(shù)應(yīng)該得到承認(rèn)和發(fā)揚(yáng),團(tuán)隊成員應(yīng)該保持它們自己的工作風(fēng)格,不落俗套。
4)接受變更
5)保持簡單性
【問題2標(biāo)準(zhǔn)答案】
1)客戶參與往往依賴于客戶自身的意愿和客戶自身的代表性
2)有些成員的性格可能不適合激烈的投入,可能無法做到和其他成員之間的良好的溝通
3)對系統(tǒng)中的變更做出優(yōu)先級排序可能是極其困難的
4)維護(hù)系統(tǒng)的簡潔性往往需要額外的工作,但迫于移交時間表的壓力,可能沒有時間執(zhí)行系統(tǒng)簡化過程。
【問題3標(biāo)準(zhǔn)答案】
開發(fā)人員成對工作,檢查彼此的工作并提供支持,圓滿完成任務(wù)。
【問題4標(biāo)準(zhǔn)答案】
快速應(yīng)用開發(fā)中所包括的工具有數(shù)據(jù)庫編程語言,界面生成器,與辦公應(yīng)用的連接,報告生成器。
可視化開發(fā)是一種通過集成細(xì)粒度可復(fù)用軟件組件來構(gòu)造軟件的快速應(yīng)用方法,其主要思想是用圖形工具和可重用部件來交互地編制程序。可視化開發(fā)一般是基于事件驅(qū)動的原理。
第三部分 論文寫作歷年真題
2008下論文寫作歷年真題(75分)
試題二 論敏捷開發(fā)方法的應(yīng)用
敏捷軟件開發(fā)簡稱敏捷開發(fā),是從 90 年代開始逐漸引起廣泛關(guān)注的一些新型軟件開發(fā)方法,以應(yīng)對快速變化的需求。它們的具體名稱、理念、過程、術(shù)語都不盡相同,相對于“非敏捷”,更強(qiáng)調(diào)程序員團(tuán)隊與業(yè)務(wù)專家之間的緊密協(xié)作、面對面溝通、頻繁交付新的軟件版本、緊湊而自我組織型的團(tuán)隊、能夠很好地適應(yīng)需求變化的代碼編寫和團(tuán)隊組織方法,也更注重人的作用。
敏捷開發(fā)的發(fā)展過程中,出現(xiàn)了多個不同的流派,例如極限編程、自適應(yīng)軟件開發(fā)、水晶方法、特性驅(qū)動開發(fā)等。但其中的基本原則是一致的。從開發(fā)者的角度,主要的關(guān)注點有短平快會議(Stand Up)、小版本發(fā)布(Frequent Release)、較少的文檔(Minimal Documentation)、 合作為重 (Collaborative Focus)、 客戶直接參與 (Customer Engagement)、自動化測試 (Automated Testing)、 適應(yīng)性計劃調(diào)整 (Adaptive Planning)和結(jié)對編程 (Pair Programming) ;從管理者的角度,主要的關(guān)注點有測試驅(qū)動開發(fā)(Test-Driven Development)、持續(xù)集成(Continuous Integration)和重構(gòu)(Refactoring)。
請圍繞 “敏捷開發(fā)方法的應(yīng)用”論題,依次從以下三個方面進(jìn)行論述。
1.概要敘述你參與管理和開發(fā)的軟件項目以及你在其中擔(dān)任的主要工作,包括角色、工作內(nèi)容等。
2.對開發(fā)者關(guān)注點中至少三項內(nèi)容進(jìn)行解釋;結(jié)合自己所參與項目,對使用情況予以評價。
3.聯(lián)系你所參與項目的實際情況,分析并討論測試驅(qū)動開發(fā)的使用效果,并評價其優(yōu)缺點
對于敏捷開發(fā),從開發(fā)者的角度,主要關(guān)注的內(nèi)容有:
2012上論文寫作歷年真題(75分)
試題二 論敏捷開發(fā)在企業(yè)軟件開發(fā)中的應(yīng)用
敏捷開發(fā)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項目被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備集成和可運(yùn)行的特征。盡管目前敏捷開發(fā)的具體名稱、理念、過程、術(shù)語尚不盡相同,但業(yè)界普遍認(rèn)為:相對于“非敏捷”,敏捷開發(fā)更強(qiáng)調(diào)程序員團(tuán)隊與業(yè)務(wù)專家之間的緊密協(xié)作、面對面的溝通、頻繁交付新的軟件版本、緊湊而自我組織型的團(tuán)隊、能夠很好地適應(yīng)需求變化的代碼編寫和團(tuán)隊組織方法,也更注重軟件開發(fā)中人的作用。
請圍繞“敏捷開發(fā)在企業(yè)軟件開發(fā)中的應(yīng)用”論題,依次從以下三個方面進(jìn)行論述。
1.概要敘述你參與實施的應(yīng)用敏捷開發(fā)的軟件項目以及你所擔(dān)任的主要工作。
2.敘述你在軟件項目實踐過程中采用了怎樣的敏捷開發(fā)基本原則并說明理由。
3.具體闡述該項目采用的敏捷開發(fā)方法,以及實施過程中存在問題和解決方法。
2001年2月的《敏捷宣言》(Agile Manifesto)是由多位當(dāng)時稱之為“輕量級方法學(xué)家”所編寫簽署的,他們的價值觀是:個人與交互重于開發(fā)過程與工具;可用的軟件重于復(fù)雜的文檔;尋求客戶的合作重于對合同的談判;對變化的響應(yīng)重于始終優(yōu)于遵循固定的計劃。
一個由優(yōu)秀的人員組成但使用普通的工具,要比使用優(yōu)秀的工具但由普通人組成、紊亂的小組做得更好。
多年來人們花了很多時間試圖建立一種過程,以便把人當(dāng)作機(jī)器上的一個可以替代的齒輪,但結(jié)果卻并不成功。
敏捷過程是承認(rèn)每個人都有特定的能力(以及缺點)對之加以利用,而不是把所有的人當(dāng)成一樣來看待。更重要的是,在這樣的理念下,幾個項目做下來,每個人的能力都從中得以提高。這種人的能力的提高,對公司是無價之寶。而不至于把人當(dāng)成齒輪,隨著時間的推移,人的能力慢慢被消耗掉,最后變成留之無用、棄之可惜的尷尬人物。
可用的軟件可以幫助開發(fā)人員在每次迭代結(jié)束的時候,獲得一個穩(wěn)定的、逐漸增強(qiáng)的版本。從而允許項目盡早開始,并且更為頻繁地收集對產(chǎn)品和開發(fā)過程的反饋。隨著每次迭代完成軟件的增長,以保證開發(fā)小組始終是處理最有價值的功能,而且這些功能可以滿足用戶的期待。
敏捷開發(fā)小組希望與項目有關(guān)的所有團(tuán)體都在朝共同方向努力,合同談判有時會在一開始就使小組和客戶處于爭執(zhí)中。敏捷開發(fā)追求的是要么大家一起贏,要么大家一起輸。換句話說,就是希望開發(fā)小組和客戶在面對項目的時候,以一種合作的態(tài)度共同向目標(biāo)前進(jìn)。當(dāng)然,合同是必需的,但是如何起草條款,往往影響到不同的團(tuán)體是進(jìn)行合作式的還是對抗式的努力。
敏捷開發(fā)認(rèn)為對變化進(jìn)行響應(yīng)的價值重于始終遵循固定的計劃。他們最終的焦點是向用戶交付盡可能多的價值。除了最簡單的項目以外,用戶不可能知道他們所需要的所有功能的每個細(xì)節(jié)。不可避免地在過程中會產(chǎn)生新的想法,也許今天看起來是必需的功能,明天就會覺得不那么重要了。隨著小組獲得更多的知識和經(jīng)驗,他們的進(jìn)展速度會比開始的時候期望值慢或者快。對敏捷開發(fā)來說,一個計劃是從某個角度對未來的看法,而具有多個不同的角度看問題是有可能的。
常見的敏捷開發(fā)方法有極限編程,Scrum,水晶方法等。
極限編程
主要目標(biāo)在于降低因需求變更而帶來的成本,極限編程透過引入基本價值、原則、方法等概念來達(dá)到降低變更成本的目的。
Scrum
是一種迭代式增量軟件開發(fā)過程,通常用于敏捷軟件開發(fā)。包括了一系列實踐和預(yù)定義角色的過程骨架。Scrum中的主要角色包括Scrum主管,產(chǎn)品負(fù)責(zé)人和開發(fā)團(tuán)隊。它使用迭代的方法,把每個30天一次的迭代稱為一個“沖刺”(Sprint),按照需求優(yōu)先級別來實現(xiàn)產(chǎn)品。多個自組織和自治小組并行遞增地實現(xiàn)產(chǎn)品。通過簡短的日常情況會議(稱為“Scrum”)進(jìn)行。
水晶敏捷方法
發(fā)展和提倡了一種機(jī)動性的軟件開發(fā)方法,定義了一系列方法,包含核心元素,角色、過程模式、工作產(chǎn)品和實踐。水晶敏捷方法實際是一組經(jīng)過證明對不同類型項目都非常有效的敏捷過程,其目的是使得敏捷團(tuán)隊可以根據(jù)其項目和環(huán)境選擇最合適的水晶系列成員。
總結(jié)
以上是生活随笔為你收集整理的【系统分析师之路】第五章 复盘软件工程(敏捷开发)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第十讲:Obj-C Blocks 应用
- 下一篇: 【系统分析师之路】第五章 复盘软件工程(