軟件過程改進2016下半年真題及答案


一、術語解釋(本題有5小題,每小題2分,共10分)

1. 里程碑(milestone)

答- 

在制定項目進度計划時,在進度時間表上設立一些重要的時間檢查點,這樣一來,就可以在項目執行過程中利用這些重要的時間檢查點來對項目的進程進行檢查和控制。這些重要的時間檢查點被稱作項目的里程碑(Milestone)。

2. 工作分解結構(WBS)

答-

WBS是項目管理重要的專業術語之一。WBS的基本定義 :以可交付成果為導向對項目要素進行的分組,它歸納和定義了項目的整個工作范圍每下降一層代表對項目工作的更詳細定義。無論在項目管理實踐中,還是在PMP,IPMP考試中,工作分解結構(WBS)都是最重要的內容之一。WBS總是處於計划過程的中心,也是制定進度計划、資源需求、成本預算、風險管理計划和采購計划等的重要基礎。WBS同時也是控制項目變更的重要基礎。

3. 過程模型(process model)

答-

所謂軟件過程模型就是一種開發策略,這種策略針對軟件工程的各個階段提供了一套范形,使工程的進展達到預期的目的。對一個軟件的開發無論其大小,我們都需要選擇一個合適的軟件過程模型,這種選擇基於項目和應用的性質、采用的方法、需要的控制,以及要交付的產品的特點。

常見的模型包括瀑布模型、螺旋模型、增量模型、迭代模型、V模型等。

4. 過程成熟度(process maturity)

答-

指對具體軟件過程進行定義、管理、度量和控制的有效程度。隨着軟件組織的軟件過程成熟度的提高,組織通過方針、標准和組織機構將其軟件過程規范化。成熟度意味着能力上的增長潛力,並且表明一個組織軟件過程的豐富性和在遍及組織的項目中運用它時的一致性。在成熟組織中,通常通過文檔和培訓使全組織有關人員對軟件過程都能很好的了解,並且使該過程得到其用戶不斷的監控和改進。一個成熟軟件組織的能力是已知的。軟件過程成熟度意味着,由於運用組織的軟件過程使過程紀律性一致增強,從而其軟件過程所導致的生產率和質量能隨時間的推移得到改進。
隨着軟件組織的軟件過程成熟度的提高,組織通過方針、標准和組織機構將其軟件過程規范化。規范化需要建立一種支持經營方法、實踐和規程的基礎設施及社團文化,使得在最初定義方法、實踐和規程的人員離去后,它們仍能繼續下去。

5. 過程域(PA,Process Area)

答-

是指互相關聯的若干軟件實踐活動和有關基礎設施的集合。每個軟件能力成熟等級包含若干個對該成熟度等級至關重要的過程域,它們的實施對達到該成熟都等級的目標起到保護作用,這些過程構成過程域。

二、簡答題(本題有5小題,每小題6分,共30分)

1. 軟件工程中引入軟件過程的作用和意義是什么?

答-

軟件過程是軟件生存期中的一系列相關軟件工程活動的集合。每個軟件過程是由一組工作任務、項目里程碑、軟件工程產品和交付物、質量保證點等組成。

軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。軟件過程的優劣決定了軟件質量的高低,好的過程是高效高質量的前提。

2. 軟件過程改進框架的構成是什么?每個構成部分的作用是什么?

答-

軟件過程改進的框架包括軟件過程基礎設施、過程改進路線圖、軟件過程評估方法和軟件過程改進計划。

每部分作用是:

(1)軟件過程基礎設施

它包含組織管理基礎設施和技術基礎設施,可為軟件過程改進的活動提供必要的條件和支持。

(2)過程改進路線圖

它應提供表明有效軟件過程特征的模型,以及逐步達到有效軟件過程的途徑,軟件組織依靠路線圖的指引可以朝着有效軟件過程前進。事實上,CMM(軟件能力成熟度模型)和SPICE提供的成熟度等級都屬於這種路線圖。當然,軟件組織從自身的實際情況出發對這些模型所作的裁剪版本,只要是適用的也應看成是過程改進路線圖。

(3)軟件過程評估方法

它是評估軟件組織現行和現用的軟件過程、做法和基礎設施的方法和技術。評估通常要對照過程改進路線圖,評估的結果要能表明,從提高過程有效性方面看哪些是強項,哪些是弱項。改進措施應能導致過程成熟度沿着改進路線圖提高過程成熟度。過程評估方法可以是公開適用的標准方法,例如SEI評估方法即基於CMM估價的內部過程改進CBA—IPI(CMMfbased appraisal for internal process improvement)或BOOTSTARAP方法,也是按SPICE規定的准則進行內部評估。

(4)軟件過程改進計划

評估后把發現的問題轉化為軟件過程改進的行動計划。這包括為改進過程基礎設施以及提高其有效性必須采取的措施,過程改進應能使改進的過程規范化並提高過程的有效性。

 

3. 什么叫集成化過程改進?它的意義是什么?

答-

在軟件過程的各種現代版本中,為適應各組織的學科,創建了不同的過程改進模型,開發了多種語言。這種多樣性對於溝通問題產生不利影響。而集成化過程改進就是用來改變這種情況;通過提供一種單一的語言,使多種學科能夠共享過程改進活動並關注一個統一的過程改進目標。

意義:1) 成本效益被理解,過程改進所獲得的成本節省非常可觀。相對於采用多個模型,一個連續改進的組織如果采用了公共模型,就可以減少以下費用:采用模型和評估方法所需的培訓費用;在相同組織或人員執行各種評估需要的費用;在數據倉庫中維護冗余數據的過程資產;維護或采用多種模型的專業知識。

2) 重點明確,集成化過程改進計划可以弄清楚各種活動的目的和商業目標。通過大范圍的各種過程改進活動的集成,更容易把實踐人員和主管的隊伍團結在過程改進的目標下。有改進重點,能統一和加強思想,高效的安排和使用匱乏的資源,並為跨越不同學科的過程改進提供一種共同語言。特別是一個其有公共術語和公共評估方法的單一模型提供這類重點。

3) 過程集成,過程集成和精益組織。集成過程改進的一個不太明顯的收益是它對組織產生的“集成”影響。當過程的定義跨越了組織和學科的邊界時,通常會產生新的理解和相互學習,從而使關鍵工作統籌化,並消除了冗余的不必要的活動。“煙囪式”的過程改進通常假定組織的接口是有效的。在跨部門進行改進過程時,該組織可另外得到過程重構的效果。這種簡化持精益概念,即努力消除產品中的浪費,為客戶提供

4)靈活性,集成所帶來的最后一個效益是適應和利用業務式工程環境變化的能力。

 

4. 啟動軟件過程改進的步驟是什么?每步的主要工作是什么?

答-

軟件過程改進的步驟及每步的主要工作是-

(1)過程分析

考察和理解現有的過程,在一些情況下需要對過程的某些環節進行度量和定量分析,利用取得的數據來表明過程的狀況。同時,這些數據可以用來與過程改進后的狀況進行對比。

(2)確定改進

利用過程分析的結果,找出原有過程中質量、進度和成本的瓶頸。針對發現的問題,制定過程改進方案,提出需要采用什么規程、方法和工具的建議。

(3)過程變更

實施過程變更,把新的規程、方法和工具安置於合適的過程環節上,並且與其他的軟件過程活動集成起來。

(4)培訓

沒有培訓的過程變更在大多數場合注定要失敗。有的單位在培訓工作不夠充分的情況下,強制推行過程變更,這樣做不會收到好的效果。

(5)調整過程變更

在初步實施過程變更后,不可能立即收到圓滿的效果,在過程修改后還可能會出現一些小的問題,這就需要進行適當的調整。此外,同時引入太多的變更是不切實際的。

 

5. 簡述CMMI-DEV V1.3中有關工程的五個過程域(PA)的目的,這五個PA 是PI、 RD、 TS、 VAL、 VER。

答-

(1)產品集成PI的目的在於將產品組件裝配成產品,確定產品作為一個整體正確的運行(即具有所有要求的功能與質量屬性),並交付產品。

(2)需求開發RD的目的在於挖掘、分析並建立客戶需求、產品需求與產品過程需求。

(3)技術解決方案(TS)的目的在於選擇、設計並實現對需求的解決方案。解決方案、設計與實現包括單獨的或以適當形式組合的產品、產品組件或與產品相關的生命周期過程。

(4)確認(VAL)的目的在於證明產品或產品組件被置於預期環境中時滿足其預期用途。

(5)驗證(VER)的目的在於確保選定的工作產品結果滿足其規定的需求。

 

二、 論述題(本題有2小題,每小題15分,共30分)

1. 論述計划驅動開發方法與敏捷開發的方法優缺點。

答-

計划驅動開發起源於系統工程和質量規范,建立系統工程的原則,協調大量需要精確協同工作的組件。通過從需求到已完成的代碼等一系列代表用來推動軟件開發的過程,計划驅動開發非常精確低依賴於明確的步驟。計划驅動開發的關鍵是過程的定義和管理,和過程改進聯系在一起,強勢在於標准化所帶來的可比較性和可重復性。過程需要進行定義、標准化需要逐步改進以提供控制。管理其操作所需的數據。

優點:適應大型產品和團隊;適應應對高安全性的產品;項目初期需要高素質人員和專家,項目平穩進行期間,對人員的素質要求降低;清晰的政策和規程定義了人們的角色,使人們感到舒適,有權利。靠秩序繁榮。

缺點:詳細設計和龐大的預先設計非常適用於高度穩定的環境,對於高度動態的環境導致返工。

敏捷開發的方法有Scrum、XP極限編程、ASD自適應軟件開發、FDD特征驅動軟件開發、Pair programming、pragmatic programming

優點:適應小型產品和團隊;整個過程都需要高素質人員和專家參與;更高的自由度,使人們感到舒適,有權利。靠混沌繁榮。

缺點:沒有經過安全關鍵性產品的考驗;簡單的設計和缺乏文檔有潛在問題;簡單設計和持續重構非常適用於高度動態的環境,但對於高度穩定的環境會導致潛在的返工。

 

2. 結合CMMI的實施,論述軟件過程改進過程中主要階段的作用。

答-

(1) 遠景階段:該階段中設置與前進的方向,拼出了前進的道路。它考慮到了未來的發展和在技術、經濟、政策、市場和商業方面的變化。

(2) 策略階段:策略描繪出達到的遠景的途徑和達到遠景目標必須經過的實踐步驟。

(3) 調動階段:團結一致的調動當前的人力和資源,設計並實現相應的行動計划。

(4) 推動階段:保持推動力,監控策略的成就,強化同盟關系。

(5) 實現階段: 實現已制定的策略,否則過程改進會成為一種幻想。軟件過程改進本身也是一個改變的過程,也應該經歷上面提到的類似階段。

 

三、應用題(本題30分)

當前企業的業務都是在全球化、快速變化的環境中運營,傳統的軟件開發過程無法適應由此產生的快速軟件需求。20世紀90年代后期,一些軟件開發人員在“Agile Alliance 2001”中系統地闡述了敏捷開發的原則,試圖強調靈活性在快速且有效地生產軟件中所發揮的作用。目前眾多的軟件生產企事業已經在實際的軟件開發過程中接納並實踐了敏捷開發方法中的基本原則。

問題1:敏捷開發有許多典型方法,包括極限編程(XP, eXtreme Programming)、Scrum、Crystal、DSDM等。請問這些方法共同的基本原則是什么?

答-

敏捷開發的基本原則是-

①    主張簡單

②    擁抱變化

③    可持續性

④    遞增的變化

⑤    令stakeholder利益最大化

⑥    有目的建模

⑦    各種模型

⑧    高質量的工作

⑨    快速反饋

⑩    輕裝前進

 

問題2:敏捷開發的支持者往往誇大該方法的優點,但是在實踐中,敏捷方法的基本原則有時確實很難實施。請用200字以內的文字說明敏捷方法中哪些原則在實踐中難以實施。

答-

①    客戶的參與度往往依賴於客戶參與的意願和客戶自身的代表性

②    團隊成員的性格可能不適合激烈的投入;可能無法做到與其他成員之間的良好溝通

③    對系統中的變更做出優先的排序可能是極端困難的

④    維護系統的簡潔性往往需要額外的工作,但迫於移交時間表的壓力,可能沒有時間進行系統的簡化過程

 

問題3:敏捷開發方法中最有名的是XP。請說明XP中的結對編程(Pair Programming)的概念。

答-

結對編程是極限編程的十二個實踐之一,是指兩位程序員肩並肩地坐在同一台電腦前合作完成一個設計,同一個算法,以及同一段代碼,並且兩人的角色可以隨時呼喚。XP以為結對編程能提高軟件開發效率,很多國外的軟件企業都熱衷於結對編程。結對程序員之間的交流非常充分,你甚至可以聽也不用言語進行交流。只要簡單的描述和手勢就可以。這種模式已證明非常成功。

 

問題4:敏捷開發方法在具體實踐過程中,往往需要開發環境或工具支持,一般稱為快速應用開發技術和可視化開發技術。請用150字以內的文字說明快速應用開發技術所包含的工具有哪些,並簡要說明可視化開發技術的基本概念和技術原理。

答-

快讀應用開發中所包含的工作如下-

①    數據庫編程語言

②    與辦公應用的鏈接

③    界面生成器

④    報告生成器

可視化開發是一種通過集成細粒度可復用軟件組件來構造軟件的快速應用開發方法。主要思想是利用圖形工具和可重復部件來交互地編制程序。可視化開發一般基於事件驅動的原理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM