軟體配置管理系統

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

(重定向自SCM系统)

軟體配置管理系統(Software Configuration Management System)

目錄

軟體配置管理系統的概念[1]

  軟體配置管理包括標識控制、狀態統計、審計和審查、生產過程管理、小組協作。至於怎樣才算是構成軟體配置管理系統,對此還沒有普遍認可的定義。例如,假如系統有版本控制功能,它是否就是一個軟體配置管理系統?理想的軟體配置管理系統是基於以上定義提供所有功能的系統。但是,實際中的系統只能實現某種程度上的版本控制功能、配置識別功能、系統構建功能、系統建模功能,或在某種程度上提供軟體配置管理的意識,軟體工程組會認為這些系統就是軟體配置管理系統。現有的軟體配置管理系統提供的只是一種功能的綜合,而不是一個標準的系統。

  下麵介紹軟體配置管理系統的兩個重要概念:庫和分散式組件。

  (1)庫

  庫是軟體配置管理系統的根本。庫是集中控制的文件庫,並提供對庫中所存儲文件的版本控制。任何庫中的文件都被視為在確定的軟體配置管理之下。庫中的文件是不會變的,即它們不能被更改。任何更改都被視為構造了一個新版本的文件。文件所有的軟體配置管理信息和文件的內容都存儲在庫中。所以,任何配置的管理和控制都與庫中的文件相關聯。當工作於一個文件時,用戶將某個版本的文件導入到自己的工作目錄,然後開始工作;處理完後再將文件導回到庫中。這樣就生成了這個文件的新版本。因此,用戶不可能導出一個文件並同時在庫中修改源文件。

  從庫的角度來看,導出的文件被自動鎖定直到文件重新被導入,一個版本號自動與新版本文件相關聯。這樣一來,用戶可以隨時根據特定的版本號導出任何文件。最新版本修改的結果將產生一個新的、順序遞增的版本;而對老版本修改的結果將產生一個分支版本。在版本編號策略和使用模式的共同作用下,產生了文件版本歷史樹,用來表示原始和更新後的版本。庫中不但存儲了文件的不同版本、更改的理由,而且存儲了誰在什麼時候替換了某個版本的文件等文件歷史信息。註意,對於每個不同的版本文件,不是所有的代碼都能被存儲起來,而只是將不同版本間的差異進行存儲,這稱為增量。這種方法有利於節省空間以及節省對最新文件版本的訪問時間。另外,可以根據狀態給文件加上標簽,然後基於狀態的值進行導出。同樣也可以根據修訂版本號、日期和作者進行導出操作。因為,庫總是和文件所在的目錄相關聯的。

  總之,庫控制軟體配置管理信息,並把不同版本的文件存儲為不可修改的對象。

  (2)分散式組件

  根據下麵給出的例子闡述分散式組件。

  Sherpa設計管理系統提供一個文件庫,其中的文件分散地分佈在不同的硬體平臺上。在邏輯上,庫是集中控制的;但在物理上,庫中的數據是分散的。Sherpa設計管理系統自己知道數據的分散分佈,並把這個因素考慮到軟體配置管理系統中,如在提供必要的文件格式轉換時提供一定的容錯能力。

  這樣,對於用戶來說,數據的分佈是透明的。一組在地理上分散分佈的用戶可以針對同樣配置的文件一起工作。多個文件的副本可以存在於在不同的工作站上。Sherpa設計管理系統知道最新文件版本的位置。對從庫中所導出文件的任何更改都會導致所有分散在本地工作站上的副本更新,因為系統知道所有本地副本放置的位置。更新可以是一步一步互動式地發生,也可以是批處理式地完成。有效、分散分佈的用戶能夠直接訪問集中控制的庫。對他們來說,軟體配置管理能力看起來遍佈整個異構網路。

軟體配置管理系統的發展[1]

  軟體配置管理系統的發展經歷了兩代。第一代軟體配置管理系統僅僅只是處理文件版本控制的工具。它們是基於單一文件的工具,將各獨立文件改變存儲在特殊的文檔文件之中,一般支持恢復提交模式,並提供分支。最早的這類工具是源代碼控制系統,這些都是面向開發而並非管理的、簡單的和獨立的工具。

  第二代軟體配置管理系統則是基於項目資料庫的,其最顯著的特征是軟體開發項目的源代碼與它們的文檔分離,而存儲在一個資料庫中,該資料庫稱為項目資料庫或軟體庫。它們能夠處理複雜的元素,提供不同的版本模型,是一個集成版本管理和項目組建功能的工具。例如,領域軟體工程環境在實現對文件進行版本管理的基礎上,應用了系統模型的描述和版本綁定等策略來支持項目組建,但這些工具僅僅是支持編碼階段的工具。

軟體配置管理系統的功能[1]

  在軟體開發團隊中,基於軟體配置管理的不同成員通常都有一些明確的、互補的需求與任務。換句話就是,理想的軟體配置管理系統的功能應支持不同成員的所有目標、規則和任務。由此得出軟體配置管理系統的功能需求圖,如圖1所示。
Image:软件配置管理系统的功能需求.jpg

  如圖1所示顯示了項目經理、配置管理者、軟體工程師、測試者、質量保證經理及客戶對軟體配置管理系統的要求。圖1所示中的每一個方框代表的是一個主要的功能區域。圖1所示顯示方框外的內容,包括部件、結構、創建、審核、統計、控制、團隊、過程等,這些也是任何軟體配置管理系統都應具備的功能。

軟體配置管理系統的建立[2]

  在項目實際工作中,可以用VSS、CVS等工具來建立配置庫。VSS(Visual SourceSafe)是Microsoft公司推出的配置管理工具,是Visual Studio的套件之一。CVS(Concurrent Version System,並行版本系統)是著名的開放源代碼的配置管理工具,許多軟體機構根據CVS官方提供的編程介面開發了各色各樣的CVS客戶端軟體,最有名的當推Windows環境的CVS客戶端軟體——WinCVS,WinCVS是免費的,但是並不開放源代碼。

  1.建立配置管理系統的步驟

  建立配置管理系統的步驟如下:

  (1)組建配置管理方案構造小組。這個小組負責構造配置管理過程中的所有工作,包括瞭解本組織的現有開發、管理現狀,選擇配置管理工具,制訂配置管理規範,安排試驗項目的實施,溝通部門間關係,獲得管理者支持和開發人員的認同。配置管理方案構造小組的成員應該包括:小組負責人、技術支持專家、配置管理技術專家、配置管理系統用戶代表。

  (2)對目標機構進行瞭解、評估。目標機構的調查評估工作由配置管理技術專家領導,配置管理系統用戶代表參與,提供基本信息,並由小組負責人協調,對相關部門人員進行深入調查獲得較全面的數據。對目標機構的瞭解、評估應從這幾個方面入手:人員、技術工作流程、現有項目和期望值

  (3)配置管理工具及其提供商評估。通過對組織的評估,瞭解該組織的現狀和需求後,就需要選擇適合該組織的配置管理工具。市場上現有的配置管理工具不下數十種,它們各有所長,在功能、性能等方面有較大的差別,只有經過仔細地對產品及其提供商進行分析評估,核對目標機構的需求,才能挑選出合適的工具,實現一個理想的配置管理過程。

  (4)制訂實施計劃。

  (5)定義配置管理流程。配置管理流程是軟體開發機構進行配置管理的依據,也是配置管理構造小組的最重要的工作成果。配置管理流程規定開發過程中需要做哪些配置管理方面的工作,由誰做、如何做。

  (6)試驗項目的實施。這一階段的任務是選取目標機構中的一個現有項目,按既定的配置管理流程去進行開發和配置管理工作。這種試驗的目的是在一定風險範圍內,通過實地運作來確定所選配置管理工具、所制訂的配置管理規範是否能滿足目標機構的需要。

  (7)全面實施。經過試驗項目證實、校正後的配置管理流程就可以在目標機構的各個項目、各個相關工作環節中去應用、實施,最終使配置管理過程日常化、規範化

  2.配置庫的分類

  配置庫也稱配置項庫,是配置管理的有力工具。在軟體工程中,主要有4類配置庫:

  (1)開發庫(動態庫、程式員庫、工作庫)。存放開發過程中需要保留的各種信息(新模塊、文檔、數據元素或進行修改的已有元素等),供開發人員個人專用,是開發人員的工作區,由開發人員(工程師)控制。庫中的信息可能有較為頻繁的修改,只要開發庫的使用者認為有必要,無需對其做任何限制。因為這通常不會影響到項目的其他部分。

  (2)受控庫(主庫、系統庫)。用於管理當前基線和控制對基線的變更。受控庫包括配置單元和被提升並集成到配置項中的構件。軟體工程師和其他人員可以自由地複製受控庫中單元或構件。然而,必須有適當的許可權授權變更。受控庫中的單元或構件用於創建集成、系統和驗收測試或對用戶發佈的構建版。在開發的某個階段工作結束時,將工作產品存入或將有關的信息存入。

  (3)產品庫(靜態庫、軟體倉庫、軟體產品庫)。在開發的軟體產品完成系統測試之後,作為最終產品存入庫內,等待交付用戶或現場安裝。產品庫用於存檔各種廣泛使用的已發佈的基線,控制、保存和檢索主媒介,庫內的信息也應加以控制。

  (4)備份庫。用來存放配置項備份版本的庫,包括製作軟體和相關架構、數據和文檔的不同版本的拷貝時的複製品。在各時點的備份,例如,可以每天、每周或每月執行備份。

  3.配置庫的建庫模式

  決定配置庫的結構是配置管理活動的重要基礎。一般常用的是兩種組織形式:按配置項類型分類建庫和按任務建庫。

  按配置項的類型分類建庫的方式經常為一些咨詢服務公司所推薦,它適用於通用的應用軟體開發組織。這樣的組織往往產品的繼承性較強,工具比較統一,對並行開發有一定的需求。使用這樣的庫結構有利於對配置項的統一管理和控制,同時也能提高編譯和發佈的效率。但由於這樣的庫結構並不是面向各個開發團隊的開發任務的,所以可能會造成開發人員的工作目錄結構過於複雜,帶來一些不必要的麻煩。

  而按任務建立相應的配置庫則適用於專業軟體的研發組織。在這樣的組織內,使用的開發工具種類繁多,開發模式以線性發展為主,所以就沒有必要將配置項嚴格地分類存儲,人為增加目錄的複雜性。因此,對於研發性的軟體組織來說,還是採用這種設置策略比較靈活。

幾種典型的軟體配置管理系統[3]

  1.面向過程的配置管理系統(CCC/HAVEST)

  CCC/HAVEST是CA(Platinum)公司的產品,是一個基於團隊開發的,提供以過程驅動為基礎的,包含版本管理、過程式控制制等功能的配置管理工具。CCC/HAVEST中的CCC代表Configuration & Change Control,即配置變更控制。CCC/HAVEST可幫助用戶在異構平臺、遠程分佈,以及並行開發活動的情況下保持工作的協調和同步。不僅如此,它還可以有效跟蹤複雜的企業級開發的各種變化(變更)的差異,從而使用戶可以在預定的交付期限內提交高質量的軟體版本。

  CCC/HAVEST能確保開發團隊開發出支持已定義和可重覆過程的軟體產品,使得開發產品遵循嚴格的標準、過程和策略:需求→編碼→測試→生成產品。CCC/HAVEST確保只有經過批准的變化,以及所有必需的組件被提交到生產環境。變化以“包”的形式加分組,提供了非常好的可見性和可管理性。測試人員只能看到那些提交到測試環境中的“包”相關的變化。該產品已經被美國國防部、NASDAQIntelAT&T3COM等多家單位採用,成為大中型軟體單位軟體配置管理工具的首選產品之一。

  2.版本控制工具——VSS

  VSS(Visual Soureesafe)是微軟公司開發的一個管理代碼產品,它基於客戶—伺服器結構,在伺服器端建立VSS的資料庫,共用該資料庫,客戶端指定連接到該資料庫,並且支持用戶級管理,對中文的支持也比較全面。VSS使用反向增量技術,確保一個文檔的所有版本是可用的。VSS使用不同的機制存儲文本文件和二進位文件。在實際使用中,VSS提供了在網路應用系統開發中的文件共用和文件鎖定特性,可確保團隊開發中代碼的完整性和一致性。它可以使開發人員對源代碼和由Visual J ++,Visual Basic,Visual C ++和Visual Foxpro開發的部件進行管理,對軟體版本開發進度進行管理和控制,並可以防止由於網路文件鎖定導致的版本衝突。此外,VSS還可以與VisualInterDev緊密集成,管理動態Web應用系統中的各種部件,這樣可以大大提高團隊開發中進度管理的有效性。

  3.配置管理工具——DSEE

  配置管理工具(DSEE)由歷史管理程式(History Manger)、配置管理程式(Configuration Manager)、任務管理程式(Task Manager)和監控管理程式(Monitor Manager)4個部分組成。歷史管理程式負責在庫中儲藏管理配置項的各個版本;配置管理器的主要功能是定義和建立配置;而任務和監控程式則主要負責控制軟體修改過程。

  下麵重點討論配置管理部分。

  使用DSEE建立一個配置需涉及以下3個概念。

  ①系統模型(System Model):它指出欲導出此配置項所需的源項、工具(DSEE中稱為翻譯器)和過程。

  ②配置依據(Configure Thread):它包括推導配置項版本時所用的一組規則、工具和工具中的選件(Options)。

  ③導出項緩衝池(Derived Element P00l):每一配置項建立後都放入緩衝池中,它可以同時存放某配置項的幾個版本。因此,緩衝池中每項均附一個BCT(Bound Configuration Thread),它列出推導此配置項所用的各源項和工具版本及工具選件。

  圖2說明上述3個概念之間的關係,以及採用DSEE定義和建立一個配置項的過程。
Image:用DSEE建立一个配置.jpg

  DSEE首先根據“系統模型”和“配置依據”確定此次欲推導配置項的“BCT”,然後在緩衝池中查找那些可直接用於推導新配置項的配置項。正像一般Make工具,通過遍歷項目依賴圖,確定所有其所依賴的項在其建立之後從未改變過的項,直接使用它們,而不重新建立。如果在導出項緩衝池中能找到某個配置項,其BCT與欲推導配置項的BCT匹配,則DSEE立即重用它,不再重新推導。DSEE的一個優點就是允許各配置儘可能共用已經導出的配置項。

  “系統模型”描述組成系統各分量之間的關係,即系統構成。系統模型包括每一個分量的形式(分為原子和聚合的),分量之間的依賴關係,以及每一個分量將被什麼翻譯器處理等。“配置依據”主要描述對於一次具體的配置建立,源項的哪些版本和翻譯器的哪些選件將被使用。因此涉及版本和選件的命名與確定。為此,DSEE引入一套專用語言,描述“系統模型”的“配置依據”。

  DSEE可以在網路環境下工作,此時建立配置的工作可在多個CPU上並行完成,圖3說明並行建立機制,假設某用戶在工作站A上要求DSEE建立某編譯程式前端(指詞法分析與語法分析部分),DSEE確定需要分別建立彼此獨立的LEX.ASS和PARSER.C,選擇結點B、C完成此項任務。這兩個結點獨立地從結點D的庫中取所需源項,又將已建立完成的項目送到結點E的緩衝池中。
Image:用DSEE并行建立某编译器前端.jpg

  4.配置管理工具——PVCS

  PVCS是美國Intersold公司的產品,是一個貫穿整個軟體工程過程的面向開發團隊的SCM系統。它適用於不同平臺、多種對象類型。PVCS能夠在Windows、Windows NT、DOS、OS/2和多種Unix平臺上運行。可為開發對象通過通用的結構,包括源代碼、目標代碼、圖形對象和文本文件。通過對文件夾、項目、平臺的控制,得以實現標準化

  PVCS可成為軟體開發中質量管理的核心,利用PVCS可進行變更管理版本管理、建立管理,併進行問題跟蹤。在區域網環境安裝PVCS,還能進行文檔管理,可監督、修正開發項目,可跟蹤軟體系統的修改。在什麼地方修改的、什麼時間修改的、如何修改的。任何時候都可重構系統。PVCS能夠防止軟體變更後的衝突、覆蓋和錯誤,以保證軟體的安全性。

  PVCS軟體由以下7個部分組成。①PVCS Version Manager:版本管理程式。版本控制系統管理並保護開發者的軟體資源。它有直觀的圖形用戶界面,可快速、簡便地幫助初學者和專家訪問所有項目的部件和開發對象。先進的安全管理機制可按用戶、開發組和功能,授與許可和特權。用戶通過登入(Check in)和檢出(Check out)的方式訪問伺服器上的文件,未經授權的用戶則無法訪問伺服器上的文件。每次登入時,在伺服器上都會生成新的版本,PVCS對軟體版本的管理採取增量存儲的方式。任何版本都可以隨時檢出編輯,同一應用的不同版本可以像樹枝一樣增長。PVCS具有加鎖功能,可在文件更新時保護文件,避免不同用戶更改同一文件時發生衝突。一旦某一文件登入結束,鎖即被解除,該文件可由其他用戶使用。

  ②PVCS Tracker:跟蹤程式。跟蹤程式為開發組織成員提供有效的通信機制,使各成員之間能夠方便地交流開發過程中的問題、軟體的缺陷和變化,並對出現的問題進行跟蹤和統計。跟蹤程式內置專用的資料庫用於存儲成員之間相互交流的有關信息,並通過易於使用的圖形界面、多風格的集成式報表和統計圖形,以直觀的形式為項目管理員提供用於軟體工程項目管理的有用信息。

  ③PVCS Configuration Builder:配置建立程式。在客戶—伺服器軟體開發環境中,對軟體變更進行管理,可滿足團隊開發的需要。它提供了在比較、鏈接、編譯的同時自動建立應用程式的能力,使客戶—伺服器軟體系統的建立自動化,併在任何時候都能完整、精確地重建任一版本的用戶系統。Configuration Builder能夠和Version Manager很好地相互配合,並能從現有的Version Manager文檔中摘錄正確的開發對象版本,尤其在多操作系統上建立複雜版本的過程簡單且不出錯。

  ④PVCS Production Gateway:生產網關。生產網關實現多個遠程軟體開發管理系統間的同步,同時提供了與主機軟體開發管理庫之間的互聯。使用Production Gateway開發人員能夠在遠程工作站或MVS宿主機上共用PVCS中的代碼、設置客戶—伺服器環境和建立軟體部件。

  ⑤PVCS Reporter:報表生成程式。這是專用於PVCS的報表生成工具,提供在Window界面中可定製的報告,能更好地管理開發過程。利用其高級數據生成和報表系統,可以通過靈活的圖形界面快速地生成定製報表。

  ⑥PVCS Developer’s Toolkit:開發工具箱。選用PVCS Developer’s Toolkit,可開發一個包含PVCS功能的應用系統。軟體開發人員利用PVCS可以集成完整的PVCS功能,簡便地在應用程式中增加版本控制能力。PVCS Developer’s Toolkit提供DLL文件、可鏈接庫和頭文件。這些文件可以提供所有PVCS Version Manager和Configuration Builder功能的能力。開發工具箱為開發組成員提供應用程式編程介面(APl),以建立與PVCS的介面或直接繼承PVCS的功能。

  ⑦PVCS Notify:通告程式。Notify是一種E-mail通知系統,是PVCS Tracker的補充。該系統能夠把新發現的軟體缺陷和重要的更新信息及時通知所有開發團隊的成員,以及擁有E-mail系統的用戶,團隊開發依賴於開發組成員之間有效通信。問題報告和改動要求在開發者、測試者和管理人員之間傳送,重要的改動必須通知有關人員。Tracker和Notify消除了通信瓶頸,加快問題的解決;通過內置的消息機制或電子郵件系統所有權和狀態更改,信息可安全傳送。

  5.Clearcase

  Clearcase是Rational公司推出的軟體配置工具,主要基於Windows和UNIX的開發環境,提供了包括版本控制、工作空間管理、建立管理和過程式控制制等比較全面的配置管理功能,而且無需軟體開發人員改變現有的環境、工具和工作方式,給那些經常跨越複雜環境(如Windows和UNIX系統)進行複雜項目開發的團隊帶來巨大效益。此外,ClearCase也支持廣泛的開發環境。ClearCase數據存儲在一個可訪問的版本對象庫(Version Object Base,VOB)中,ClearCase把所有版本控制的數據存放在一永久、安全的存儲區中,即版本對象庫中。項目團隊(或管理者)可以決定其所需要的VOB數量,可以決定什麼樣的目錄或文件需要被維護。ClearCase不僅可以對軟體組件的版本進行維護和控制,也可對一個非文本文件、目錄的版本進行維護。

  Clearcase的先進功能直接解決了原來開發團隊所面臨的一些難以處理的問題,並且通過資源重用使開發的軟體更加可靠。在當今日益激烈的競爭中,ClearCase作為規範的軟體配置管理工具,滿足了軟體開發人員的大部分需求。

相關條目

參考文獻

  1. 1.0 1.1 1.2 張林,馬雪英,王衍編著.軟體工程.中國鐵道出版社,2009.12.
  2. 張友生主編.系統集成項目管理工程師考試全程指導.清華大學出版社,2011.08.
  3. 萬江平編著.軟體工程.北京交通大學出版社,2006年8月.
本條目對我有幫助1
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目

本条目由以下用户参与贡献

连晓雾,Yixi,方小莉,Tracy,Mis铭,刘维燎.

評論(共0條)

提示:評論內容為網友針對條目"軟體配置管理系統"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

闽公网安备 35020302032707号