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