程曉莉 魯靜 魏巍 何娜
摘要 軟件配置管理是軟件工程化的基礎(chǔ),貫穿于整個軟件生命周期。結(jié)合配置管理工具KCFlow對軟件配置管理進行了研究,給出了軟件配置管理流程及具體實施辦法。
關(guān)鍵詞 軟件配置管理;軟件生命周期;KCFlow
DOI DOI: 10.11907/rjdk.162381
中圖分類號: TP301
文獻標識碼: A 文章編號 文章編號: 16727800(2017)002002603
0 引言
隨著軟件規(guī)模的日益增大,軟件復雜度逐步提高,軟件產(chǎn)品處于不斷更新變化中,為了確保整個軟件項目生命周期內(nèi)產(chǎn)品的完整性、一致性和可追蹤性,必須對軟件進行配置管理。
軟件配置管理(SCM,Software Configuration Management)指標識和確定軟件系統(tǒng)配置項的過程,在軟件系統(tǒng)的整個生命周期內(nèi)控制這些項的投放和更改,記錄并報告配置的狀態(tài)和更改要求,驗證配置項的完整性和正確性[1],通常包括配置標識、配置控制、配置狀態(tài)記錄、配置審核等活動。軟件配置管理是整個軟件開發(fā)生命周期中一個非常核心的管理過程,貫穿了從需求分析、架構(gòu)設(shè)計、項目管理、開發(fā)、集成及測試的全過程,可以有效管理配置項版本,記錄配置項開發(fā)過程,保證軟件質(zhì)量,提高軟件重用率。
在軟件開發(fā)這個龐大而復雜的過程中,涉及到各方面人員,產(chǎn)生許許多多產(chǎn)品。由于規(guī)程過于繁瑣,手工方法實施軟件配置管理是難以想象也是不可能的,因此,有效的軟件配置管理需要結(jié)合工具來實現(xiàn)。使用軟件配置管理工具,可以確保軟件項目中基線和配置項隨時保持條理清晰,迅速找到工作產(chǎn)品,保證工作產(chǎn)品的版本、內(nèi)容不會出錯,提高管理水平。
1 工具介紹
軟件配置管理工具KCFlow采用C/S架構(gòu),以軟件配置管理項的版本管理為核心,具有軟件配置策劃管理、變更控制、產(chǎn)品一致性管理、軟件問題追蹤管理、軟件配置審計管理等功能,實現(xiàn)了對配置管理工作的全流程、全方位支持。
KCFlow具有以下特點:C/S軟件架構(gòu)使項目中的各類人員可以在工具提供的平臺上分布式工作,確保各項工作有序、規(guī)范地實施;具有策劃配置項標識功能;支持獨立的配置項,單獨策劃入庫、出庫和更動審批,能夠自動按照策劃結(jié)果實施入庫、出庫和更動控制;支持基線的多版本管理功能;支持用戶自定義軟件問題類別、問題級別、更動類別等,以適應不同的使用需求;支持多個軟件開發(fā)人員在線提交軟件入庫申請、出庫申請、更動申請等。
2 軟件配置管理
軟件配置管理是CMM重要的過程域,本文結(jié)合配置管理工具給出配置管理實施方法。
項目啟動后,配置管理組根據(jù)項目情況策劃配置管理活動并建立配置管理系統(tǒng)。首先應制定配置管理計劃,根據(jù)計劃建立配置管理系統(tǒng),通過版本控制、變更控制、基線管理和配置審核等方法,對配置管理系統(tǒng)中的工作產(chǎn)品實施控制和監(jiān)督。軟件配置管理流程如圖1所示。
圖1 軟件配置管理流程
2.1 配置管理計劃
經(jīng)過批準的軟件配置管理計劃是實施軟件配置管理活動的依據(jù)[2]。在進行配置管理前應根據(jù)項目的具體情況制定軟件配置管理計劃,內(nèi)容包括:
(1)確定配置管理機構(gòu)和人員職責,審批流程。組織機構(gòu)主要有軟件配置控制委員會、軟件配置管理組。軟件配置控制委員會負責出入庫控制、變更及基線的建立和發(fā)布;軟件配置管理組負責相關(guān)制度的建立和維護、工具的推廣、培訓和技術(shù)支持、配置管理審核等。
(2)描述具體配置管理活動,包括標識要納入配置管理的配置項,規(guī)定提交時間、確定項目研制各階段的基線、基線建立的時機和配置管理項等。配置項根據(jù)控制力度分為基線配置項和非基線配置項兩類?;€配置項一般包括軟件研制任務書、軟件需求規(guī)格說明、設(shè)計說明、設(shè)計文檔、測試文檔、代碼、用戶手冊等;非基線配置項包括計劃類文檔、開發(fā)環(huán)境、會議紀要等。標識配置項為每個軟件配置項賦予唯一的標識符。在軟件開發(fā)生存周期中,軟件配置項標識應包括文檔標識、程序標識和數(shù)據(jù)標識等[3]。
(3)確定更動申請流程及更動申請方法。
(4)描述配置管理報告內(nèi)容、報告時機、報告人和通告對象等。
(5)制定配置審核時機、審核內(nèi)容及審核問題的解決方法,軟件配置管理所使用的工具、技術(shù)和方法。
使用KCFlow配置管理平臺,制定配置管理計劃,并依據(jù)配置管理計劃實時自動化約束配置管理活動,客觀記錄配置管理活動。KCFlow可對配置管理計劃中的機構(gòu)組織、基線、基線下包含的配置管理項、工作產(chǎn)品標識、問題類型、問題來源、更動流程、修改類別、項目基本信息等進行配置策劃。一般基線策劃有3條:功能基線、分配基線和產(chǎn)品基線。配置項標識應按照相關(guān)的配置項標識規(guī)范進行,一般文檔、程序標識采用以下格式表示:文件名稱英文縮寫 V主版本號.次版本號;問題類型可分為程序、文檔、數(shù)據(jù)庫等;問題來源有計劃、方案、設(shè)計、編碼、數(shù)據(jù)庫、測試、使用和維護等。
2.2 配置管理系統(tǒng)
配置管理計劃經(jīng)過評審后,由配置管理員依照配置管理計劃建立開發(fā)庫、受控庫和產(chǎn)品庫,對庫結(jié)構(gòu)進行策劃,明確基線內(nèi)容,定期備份配置管理庫,為相關(guān)人員分配權(quán)限并發(fā)送用戶帳號信息單給相關(guān)人員。
開發(fā)庫、受控庫和產(chǎn)品庫應獨立管理。開發(fā)庫存放開發(fā)過程中需保留的各種信息;受控庫存放已通過評審且作為階段性產(chǎn)品的軟件配置項;產(chǎn)品庫存放已定型(鑒定)供交付生產(chǎn)、檢驗驗收的軟件配置項。在KCFlow中創(chuàng)建受控庫一般包括功能基線、分配基線、產(chǎn)品基線及非基線配置項。功能基線包含軟件研制任務書等文檔;分配基線包含軟件需求規(guī)格說明、接口需求規(guī)格說明等文檔;產(chǎn)品基線包含軟件設(shè)計說明、接口設(shè)計說明、軟件測試說明、軟件測試報告、固件保障手冊、源代碼、目標碼、軟件版本說明、軟件研制總結(jié)報告、軟件配置管理報告、軟件質(zhì)量保證報告等;非基線配置項主要包含計劃類工作產(chǎn)品。
2.3 配置控制
配置控制是配置管理的組成部分,包含評估、協(xié)調(diào)、批準/拒絕、配置項的變更[4]。配置庫建好后,配置管理員按照配置管理計劃進行日常的配置管理活動,主要包括版本控制、變更控制、基線管理等。
2.3.1 基線管理
基線是軟件生命周期中各開發(fā)階段的一個特定點,它的作用是把開發(fā)各階段工作明確劃分,使本來連續(xù)的工作在這些點上斷開,以便于檢查和肯定階段成果[5],是進一步開發(fā)的基礎(chǔ)。
在軟件生命周期中主要有3種基線:功能基線、分配基線和產(chǎn)品基線。功能基線是開展軟件研制工作的依據(jù),一般是在軟件研制任務書評審并納入受控管理后建立;分配基線在軟件需求規(guī)格說明評審并納入受控管理后建立;產(chǎn)品基線在產(chǎn)品發(fā)布后建立。
基線包含的配置項全部入庫后才可建立基線,配置管理員提交《基線建立和發(fā)布申請單》,通過軟件配置控制委員會審批通過授權(quán)后,方可建立和發(fā)布基線?;€發(fā)布后,配置管理員要把基線發(fā)布的結(jié)果通告給相關(guān)人員,通告內(nèi)容包括基線名稱和標識、所包含的配置項及配置項版本等信息。
對基線的變更需要通過正式的變更流程來完成。首先提出變更請求,然后進行變更評估,變更批準后再進行變更。變更評估包括:軟件變更分類、技術(shù)影響分析、接口影響分析、進度及預算影響分析。
2.3.2 變更控制
對已進入受控庫和產(chǎn)品庫的任一軟件配置管理項的更改,要履行規(guī)定的申請和審批手續(xù)。配置管理工具KCFlow提供了兩種更動流程供選擇,一般采用的更動流程是:填寫問題報告、提出更動申請、更動出庫、實施和驗證更動和更動入庫,具體更動流程如圖2所示。
(1)發(fā)現(xiàn)問題,并填寫《問題報告單》。變更人發(fā)現(xiàn)問題后首先填寫問題報告單,在問題報告單中詳細描述問題,說明問題來源并對問題進行分析,確定問題類型。
(2)提出更動申請,填寫《更動申請單》?!陡鼊由暾垎巍芬敿毺顚憜栴}來源、問題類別、問題級別、更動類型和修改類別等,描述更動方案、影響域分析及驗證辦法,待更動申請批準后方可進行更動。
(3)更動出庫。更動申請通過審批后,更改實施人填寫《更動出庫單》,審批通過后,檢出待更改的配置項準備實施更動。待更改配置項出庫后,處于待更動狀態(tài),禁止其他人使用。
圖2 更動流程
(4)實施和驗證更動。更動出庫后可由變更實施人對待更動配置項實施更改,并請同行專家驗證變更結(jié)果。驗證結(jié)果合格后將變更后的配置項更動入庫,如果驗證沒通過,則重新實施更改。
(5)更動入庫。更動完成并通過驗證后,變更實施人填寫《更動入庫申請單》。審批通過后,將更動后的配置項更動入庫。
2.3.3 版本控制
版本控制是全面實施軟件配置管理的基礎(chǔ),其目的是按照一定的規(guī)則保存配置項的所有版本,避免發(fā)生版本丟失或混淆等現(xiàn)象,保證產(chǎn)品的可追溯性[6]。對配置項在初次完成時確定初始版本,在每次更改后確定新的版本。版本號由主版本號和次版本號組成,當發(fā)生更改時,若變動較大,次版本號加0.1,若變動較小,次版本號加0.01。
2.4 配置管理記錄和報告
配置狀態(tài)記錄和報告通常稱為配置狀態(tài)紀實。配置狀態(tài)記錄主要對配置管理活動進行記錄和報告,一般包括以下內(nèi)容:配置項紀錄(名稱、標識和版本)、變更紀錄、基線紀錄、出入庫紀錄、審核紀錄、備份記錄和測量信息等。
配置管理工具KCFlow可以根據(jù)配置庫中的內(nèi)容生成配置狀態(tài)報告,確保配置管理報告和配置管理庫的客觀一致性。在項目每個階段結(jié)束時,配置管理員從KCFlow導出該階段的配置狀態(tài)報告,總結(jié)該階段的配置管理活動,統(tǒng)計配置管理相關(guān)數(shù)據(jù),并將配置狀態(tài)報告發(fā)送給相關(guān)人員。
2.5 配置審核
配置審核是一種軟件驗證方法,其目的是檢查軟件產(chǎn)品和過程是否符合標準和規(guī)程,是變更控制的補充。配置審核包括功能配置審核、物理配置審核和管理配置審核。
功能配置審核一般由項目經(jīng)理審核配置項的實際功能特征是否達到功能基線文檔中所規(guī)定的要求。物理配置審核是通過對配置項的檢測,鑒定文、圖、物的一致性,保證軟件更改的完整性。配置管理組定期(每季度)進行配置管理審核。配置管理審核主要是對配置管理過程進行審核,確認配置管理記錄和配置項是否完整、一致和準確。審核過程中,相關(guān)人員按照審核內(nèi)容形成《配置審核檢查單》,對不符合項進行記錄和處理。
KCFlow具有靈活的配置審核功能,能夠策劃適合本單位的軟件配置管理審核準則。每次入庫時,相關(guān)人員進行物理審核,在基線建立及變更時進行功能審核。
圖3 配置審核策劃
3 結(jié)語
軟件配置管理貫穿整個軟件生命周期,在軟件開發(fā)過程中采用有效的工具進行配置管理,能夠彌補人工管理出現(xiàn)的紕漏,規(guī)范開發(fā)流程,保證軟件產(chǎn)品質(zhì)量,減少軟件缺陷,縮短軟件開發(fā)周期,降低軟件維護成本。本文結(jié)合配置管理工具,對軟件配置管理流程及實施方法進行了研究。為提高軟件開發(fā)的效率與質(zhì)量,今后的工作中應結(jié)合項目實際情況及本單位的配置管理相關(guān)規(guī)定,對配置管理工具的適應性進行研究,以滿足各種軟件開發(fā)要求。
參考文獻:
[1] 石柱.軟件工程標準手冊[M].北京:中國標準出版社,2007.
[2] 何新貴,石柱,王緯,等.GJB5000軍用軟件能力成熟度模型實施指南[M].北京:國防工業(yè)出版社,2004.
[3] 王忠貴,劉姝.航天型號軟件工程方法與技術(shù)[M].北京:中國宇航出版社,2015.
[4] 董越.未雨綢繆理解軟件配置管理[M].北京:電子工業(yè)出版社,2012.
[5] 鄧良松,劉海巖,陸麗娜.軟件工程[M].西安:西安電子科技大學出版社,2000.
[6] 趙文杰.軟件配置管理理論與實踐[J].現(xiàn)代計算機,2010(12):7475.
(責任編輯:杜能鋼)