某信息系統開發公司承擔了某企業的ERP系統開發項目,由項目經理老楊帶領著一支6人的技術團隊負責開發。由于工期短、任務重,老楊向公司申請增加人員,公司招聘了2名應屆大學畢業生小陳和小王補充到該團隊中。老楊安排編程能力強的小陳與技術骨干老張共同開發某些程序模塊,而安排編程技術弱的小王負責版本控制工作。在項目開發初期,小陳由于不熟悉企業的業務需求,需要經常更改他和老張共同編寫的源代碼文件,但是他不知道哪個是最新版本,也不知道老張最近改動了哪些地方。一次由于小王的計算機中了病毒,造成部分程序和文檔丟失,項目組不得不連續一周加班進行重新返工。此后,老楊吸取教訓,要求小王每天下班前把所有最新版本程序和文檔備份到2臺不同的服務器上。一段時間后,項目組在模塊聯調時發現一個基礎功能模塊存在重大BUG,需要調取之前的備份進行重新開發。可是小王發現,這樣一來,這個備份版本之后的所有備份版本要么失去意義,要么就必須全部進行相應的修改。項目工期過半,團隊中的小李突然離職,老楊在他走后發現找不到小李所負責模塊的最新版本源代碼了,只好安排其他人員對該模塊進行重新開發。
整個項目在經歷了重重困難,進度延誤了2個月后終于勉強上線試運行。可是很快用戶就反應系統無法正常工作。老楊帶領所有團隊成員在現場花費了1天時間終于找出問題所在,原來是2臺備份服務器上的版本號出現混亂,將測試版本中的程序打包到了發布版中。
【問題一】(5分)
在(1)~(5)中填寫恰當內容(從候選答案中選擇一個正確選項,將該選項編號填入答題紙對應欄內)。
為了控制變更,軟件配置管理中引入了__(1)__這一概念。根據這個定義,在軟件的開發流程中把所有需加以控制的配置項分為兩類,其中,__(2)__配置項包括項目的各類計劃和報告等。配置項應該按照一定的目錄結構保存到__(3)__中。所有配置項的操作權限由__(4)__進行嚴格管理,其中__(5)__配置項向軟件開發人員開放讀取的權限。
(1)~(5)供選擇的答案:
A.版本 B.基線 C.配置項
D.非基線 E.受控庫 F.靜態庫
G.配置庫 H.CMO I.PM J.CCB
【問題二】(4分)
結合案例,請分析為什么要進行配置項的版本控制?
【問題三】(5分)
簡述配置項的版本控制流程。
【問題四】(8分)
針對該項目在配置管理方面存在的問題,結合你的項目管理經驗,為老楊提出一些改進措施。
從本案例提出的四個問題,我們很容易判斷出:該案例分析主要考查的是項目的配置管理。“案例描述及問題”中畫“”的文字是該項目已經出現的問題:即進度延誤了2個月、用戶反應系統無法正常工作、將測試版本中的程序打包到了發布版中。根據這些問題和“案例描述及問題”中畫“”的文字并結合我們的項目管理經驗,我們可以推斷出:選用了沒有配置管理經驗的大學畢業生小王擔任配置管理員(這點從“公司招聘了2名應屆大學畢業生小陳和小王補充到該團隊中。老楊安排編程能力強的小陳與技術骨干老張共同開發某些程序模塊,而安排編程技術弱的小王負責版本控制工作”可以推導出);大學畢業生小陳不懂業務且缺乏必要的培訓(這點從“小陳由于不熟悉企業的業務需求,需要經常更改他和老張共同編寫的源代碼文件”可以推導出);項目缺乏必要的配置管理工具(這點從“他不知道哪個是最新版本,也不知道老張最近改動了哪些地方”可以推導出);配置項的存儲和管理不到位導致重要版本丟失(這點從“一次由于小王的計算機中了病毒,造成部分程序和文檔丟失,項目組不得不連續一周加班進行重新返工”和“團隊中的小李突然離職,老楊在他走后發現找不到小李所負責模塊的最新版本源代碼”可以推導出);沒有做配置管理規劃,缺少完整的配置管理方案;沒有配置管理委員會(這兩點從“老楊吸取教訓,要求小王每天下班前把所有最新版本程序和文檔備份到2臺不同的服務器上”和“團隊中的小李突然離職,老楊在他走后發現找不到小李所負責模塊的最新版本源代碼”可以推導出);缺少配置管理及變更管理流程;沒有統一的版本管理機制,各版本不可追溯(這兩點從“項目組在模塊聯調時發現一個基礎功能模塊存在重大BUG,需要調取之前的備份進行重新開發。可是小王發現,這樣一來,這個備份版本之后的所有備份版本要么失去意義,要么就必須全部進行相應的修改”可以推導出;員工管理不到位、工作移交沒做好(這點從“團隊中的小李突然離職,老楊在他走后發現找不到小李所負責模塊的最新版本源代碼”可以推導出);沒有建立配置基線,版本管理混亂(這點從“2臺備份服務器上的版本號出現混亂,將測試版本中的程序打包到了發布版中”可以推導出)等是導致項目出現“進度延誤了2個月、用戶反應系統無法正常工作、將測試版本中的程序打包到了發布版中”這些問題的主要原因,針對這些原因的解決方案就是【問題四】的答案。本案例【問題一】和【問題三】屬于純理論性質的問題,與本案例關系不大。上面發現的配置管理方面存在的問題,換一種說法,就是【問題二】的答案。(案例難度:★★★★)
一、答題思路解析
根據“答題思路總解析”的闡述,我們知道,該問題屬于純理論性質的問題,讀者如果熟悉《教程》第407頁至410頁中描述的相關內容,該問題就比較容易回答。(問題難度:★★★)
二、參考答案
為了控制變更,軟件配置管理中引入了 B.基線這一概念。根據這個定義,在軟件的開發流程中把所有需加以控制的配置項分為兩類,其中,D.非基線配置項包括項目的各類計劃和報告等。配置項應該按照一定的目錄結構保存到G.配置庫中。所有配置項的操作權限由H.CMO進行嚴格管理,其中 B.基線配置項向軟件開發人員開放讀取的權限。
一、答題思路解析
根據“答題思路總解析”中的闡述,該項目由于沒有做好版本管理與控制,而出現了如下問題:(1)不能清楚地辨識文件的版本情況,不利于協同工作(這點從“他不知道哪個是最新版本,也不知道老張最近改動了哪些地方”可以推導出);(2)重要版本丟失,造成不必要的返工(這點從“一次由于小王的計算機中了病毒,造成部分程序和文檔丟失,項目組不得不連續一周加班進行重新返工”和“團隊中的小李突然離職,老楊在他走后發現找不到小李所負責模塊的最新版本源代碼”可以推導出);(3)各版本不可追溯,不利于變更管理(這點從“項目組在模塊聯調時發現一個基礎功能模塊存在重大BUG,需要調取之前的備份進行重新開發。可是小王發現,這樣一來,這個備份版本之后的所有備份版本要么失去意義,要么就必須全部進行相應的修改”可以推導出;(4)取錯版本(這點從“2臺備份服務器上的版本號出現混亂,將測試版本中的程序打包到了發布版中”可以推導出)。如果版本管理和控制搞好了,上面的四個問題就不會出現了,這就是為什么要進行配置項的版本控制的原因。因此,把上面分析出來的四個問題換一種表達方式,就是本問題的答案。(問題難度:★★★★)
二、參考答案
要進行配置項的版本控制的理由:
(1)版本控制有利于清晰地記錄和保存配置項的所有版本,避免發生版本混淆或丟失,從而避免無謂的返工;
(2)版本控制有利于開發工作的協同,案例中由于沒有做好版本控制導致了小陳和老張之間協作上的困難;
(3)版本控制有利于歷史版本的追溯,能夠快速準確地查找到配置項的任何歷史版本;
(4)版本控制使配置項處于受控狀態,能更好地進行配置項的變更管理;
(5)版本控制有利于在版本出現沖突的情況下進行有效的辨析,從而避免取錯版本。
一、答題思路解析
根據“答題思路總解析”的闡述,我們知道,該問題屬于純理論性質的問題,讀者如果比較熟悉《教程》第414頁“圖15-2配置項狀態變化”,這個問題就比較容易回答。根據“配置項狀態變化圖”,我們可以理出配置項的版本控制流程:(1)根據項目計劃創建配置項;(2)修改和完善處于“草稿”狀態的配置項;(3)提交并通過評審和審批;(4)配置管理員按配置管理計劃對配置項建立版本號或基線并正式發布;(5)若需要變更配置項,則配置管理員按規則從受控庫中取出該配置項,處于“修改”狀態的配置項經過修改并通過評審和審批后,配置管理員按配置管理計劃對配置項建立新的版本號或基線并再次正式發布。(問題難度:★★★★)
二、參考答案
配置項版本控制流程:
(1)根據項目計劃創建配置項;
(2)修改和完善處于“草稿”狀態的配置項;
(3)提交并通過評審和審批;
(4)配置管理員按配置管理計劃對配置項建立版本號或基線并正式發布;
(5)若需要變更配置項,則配置管理員按配置項變更管理流程從受控庫中取出該配置項,處于“修改”狀態的配置項經過修改并通過評審和審批后,配置管理員按配置管理計劃對配置項建立新的版本號或基線并再次正式發布。
一、答題思路解析
根據“答題思路總解析”中的闡述,我們知道,該項目出現的主要問題有:(1)選用了沒有配置管理經驗的大學畢業生小王擔任配置管理員;(2)大學畢業生小陳不懂業務且缺乏必要的培訓;(3)項目缺乏必要的配置管理工具;(4)配置項的存儲和管理不到位導致重要版本丟失;(5)沒有做配置管理規劃,缺少完整的配置管理方案;(6)沒有配置管理委員會;(7)缺少配置管理及變更管理流程;沒有統一的版本管理機制,各版本不可追溯;(8)員工管理不到位、工作移交沒做好;(8)沒有建立配置基線,版本管理混亂。把這八個方面的的問題解決了,就是老楊應該采取的改進措施。(問題難度:★★★★)
二、參考答案
老楊可以在如下方面進行改進:
(1)選用有經驗的人員擔任配置管理員;
(2)從項目整體出發,做好配置管理規劃;
(3)建立配置管理委員會;
(4)使用合適的配置管理工具;
(5)建立配置管理及變更管理流程,建立統一的版本管理機制;
(6)識別配置項、為配置項建立唯一標識,建立配置基線,使配置項處于受控狀態;
(7)對新員工進行必要的培訓;
(8)做好員工離職時的移交工作;
(9)嚴格按配置管理計劃實施配置管理和變更管理,定期提交配置狀態報告、改進配置管理方法。