J2EE探尋

          軟件配置管理系列--軟件配置管理概念-1,介紹

          摘要:支持軟件配置管理(CM)的環境和工具已經取得了相當可觀的進展,本文將重點介紹業已存在的配置管理工具所提供的一些概念,包括了對這些概念的擴展或泛化。提取這些概念也并不簡單,因為軟件工程社區的許多CM工具的術語不盡相同,對許多概念的實現也有所不同。因此,每一個展示的概念都是存在于特定CM中的,沒有任何CM系統提供了所有不同用戶需要的功能。此外,每一個CM系統都只是包含了部分概念,為了完成這個報告,會簡要描述例子中使用的CM系統的功能。

          1,介紹
          通過調查現存的配置管理(CM)系統可以發現支持CM的環境和工具已經大大改進,這可以通過CM系統提供的概念范圍來證明,本文就是要強調這個范圍,首先介紹一下廣義的CM定義和一個典型的CM場景。
          1.1 配置管理的定義

          軟件配置管理是控制軟件系統演進的學科,經典的CM討論如[3]和[4],IEEE標準729-1983[16]中的定義列出了CM操作的幾個方面:
          標識:一種標識模式反映了產品的結構,標識了組件及其類型,使之唯一并且可以通過某種方式訪問。
          控制:控制產品的發布,并通過創建基線產品來保持軟件的連續性以達到整個生命周期的變更控制。
          狀態記錄:記錄和報告組件的狀態和修改請求,并且收集產品中組件的重要統計。
          評審和復查:驗證產品的完整性,通過確保產品是定義良好組件的組合來維護組件的連續性。
          定義也包擴配置項、基線、發布和版本等術語,大多數CM系統通過組合不同程度上的功能來支持這些方面,一些CM系統提供的功能超越了以上的定義,這歸因于(拋去其他原因)多個方面的認識,如不同的用戶角色(在1.3和2.1部分有進一步討論)、異種平臺的不同操作環境、建立軟件工程師在其中以和諧方式工作的大項目的支持。為了捕獲這些額外的功能,有必要拓寬CM的定義:
          制造:以一種透明的方式管理產品的構建。
          過程管理:確保執行組織的過程、政策和生命周期模型。
          團隊協作:控制同一產品多個用戶的工作和交互。

          1.2 CM系統的定義
          對于CM系統的組成,沒有一種普遍接受的定義。舉個例子,版本控制系統是CM系統嗎?理想情況下,一個CM系統應該能夠提供上面定義的所有功能,但是實踐中,任何提供某種形式的版本控制、配置標識、系統構建、系統建模和企圖提供CM(某種程度)功能的系統都會被軟件工程(和銷售)社區當作CM系統。必須注意到存在的CM系統都提供了它們獨有的功能組合,而不是標準的。這個報告只包括了15個CM系統,目前至少有40種可以獲取并使用的CM系統。
          本文有必要闡明一個概念,CM系統和CM工具。一個CM系統可以看作是環境的一部分,CM支持的是集成環境的一部分,并且CM是以包的形式銷售,一個CM工具可以被認為一個獨立的工具。舉個例子,Revision Control System(RCS) [15]是一種CM工具,因為它企圖安裝到現有的環境,但是因為這一點區別對本文并不重要,我們會用CM系統這一術語來表示這兩種概念。

          1.3 一個典型的CM用戶場景
          在開始討論CM系統之前,為了展示一個參考的框架,我們首先介紹一個組織的CM用戶場景。這個場景包括了許多具備不同職責的人:一個負責軟件組的項目經理,一個負責CM過程和策略的配置管理經理,一個負責開發和維護軟件產品的軟件工程師,一個驗證產品正確性的測試員,確保產品高質量的質量保證(QA)人員和一個使用產品的客戶。
          每一個角色都有自己的目標和任務,對于項目經理,目標是保證產品按計劃開發,因此,經理監督開發過程,通過分析生成的軟件狀態報告,執行系統復審,及時發現問題并處理。
          配置經理的目標是確保代碼的產生、修改和測試的過程和策略是可追蹤的,同時保證項目的信息是可訪問的。為了實現維護代碼變更的控制的技術,這個經理引入了一種對變更進行正式請求的機制,以達到評估變更(通過一個負責確認變更的變更控制委員會(CCB))和授權變更的目的。這個經理要為工程師創建和分發任務列表并創建項目環境,另外,這個經理還要收集軟件系統組件的統計信息,例如確定這個系統的哪些組件可能會出問題。
          對于軟件工程師,目標就是有效率的創建產品,這意味著工程師不應該被非必要的工作打擾,例如他人創建和測試代碼,支持產品文檔等,但是與此同時,他們還要保持有效率的交流和協作。他們借助工具創建協調一致的產品,通過通知其他人關于任務需求和結束的信息來交流和協作,通過合并代碼并解決沖突來將變更傳遞到所有人的工作中去。產品中的每個組件的演進歷史都會保存,通過記錄修改的內容和記錄的修改原因。每個工程師都在自己的工作區域創建、修改、測試和集成代碼,在特定點上,代碼會納入基線,也就是作為進一步開發的開始,也是針對其他目標機器的并行開發的改變的開始。
          測試員的目標是保證產品經過測試且達到滿意,這包括了測試特定的版本,并且保存對應測試的記錄,任何報告的錯誤會被反饋到合適的人,并在修正后進行回歸測試。

          QA經理的目標是保證產品的高品質,這意味著特定過程和策略必須通過合適的確認,產品的缺陷必須被修正并且分發到產品的變體中,并經過進一步測試。客戶對產品的抱怨也必須要跟進。
          客戶使用產品,不同客戶使用不同的版本和變體,客戶依據一定的過程來請求變更以指出缺陷和改進產品。
          理想情況下,一個符合這個場景的CM系統必須支持所有這些目標、角色和任務,這意味著這些角色、任務和目標決定了CM系統的功能需求,這篇文章嘗試展示完成這些特性的概念。

          1.4 本文的組織
          介紹是對CM和CM系統的一個定義和CM場景的一個典型例子,因此提示了CM系統的需求。第二部分描述了對CM系統用戶十分重要的CM問題,這些問題影響了用戶對CM系統的期望。第三步分描述了CM概念。第四部分,展望了未來的CM系統,第五部分作出了結論。附錄給出了本文參考的CM系統的總的看法。

          來自于:http://www.ad0.cn/netfetch/article.asp?id=645

          posted on 2007-04-10 12:42 debut 閱讀(222) 評論(0)  編輯  收藏 所屬分類: 軟件配置管理(SCM)

          主站蜘蛛池模板: 汾阳市| 会同县| 靖江市| 边坝县| 松桃| 繁峙县| 姚安县| 怀化市| 南城县| 汝城县| 普宁市| 田东县| 大渡口区| 海淀区| 隆尧县| 尚志市| 乐东| 当雄县| 新巴尔虎左旗| 隆林| 海原县| 大冶市| 商水县| 扎赉特旗| 许昌县| 金华市| 天气| 炎陵县| 静海县| 雅江县| 灵川县| 泾川县| 四子王旗| 江安县| 玛纳斯县| 长春市| 舒城县| 长葛市| 龙泉市| 石狮市| 吉安县|