計算機軟件及應用Ch06-軟件配置管理_第1頁
計算機軟件及應用Ch06-軟件配置管理_第2頁
計算機軟件及應用Ch06-軟件配置管理_第3頁
計算機軟件及應用Ch06-軟件配置管理_第4頁
計算機軟件及應用Ch06-軟件配置管理_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章軟件配置管理SoftwareConfigurationManagement2024/8/171§6.1

概述配置的概念來源于制造系統(tǒng)管理,目標是識別和管理組成復雜系統(tǒng)的各個部分——工件隨著軟件復雜性的大幅提升,將軟件看作單一產品面臨許多無法解決的問題,而將其分解為子系統(tǒng)、模塊、構件等“工件”并實施配置管理是富有成效和現實的技術2024/8/172IEEE將SCM定義為:

軟件配置管理由適于所有軟件開發(fā)項目的最佳工程實踐組成,通過以下手段來提高軟件的可靠性和質量:在整個軟件生命周期中提供標識和控制文檔、源代碼、接口定義和數據庫等工件機制提供滿足需求、符合標準、適應項目管理及其他組織策略的軟件開發(fā)和維護的方法學為管理和產品發(fā)布提供支持信息,如基線狀態(tài)、變更控制、測試、發(fā)布、審計等2024/8/173實施SCM的目的

目的是在軟件生命周期內建立和維護軟件產品的完整性,保證團隊的有效協(xié)作

目標是標識變更、控制變更、確保變更正確實現并向其他人員報告變更SCM要解決的問題多人同時修改程序或文檔人員流動軟件維護中的歷史重現控制軟件的復雜性影響項目進度的特殊因素已修復的錯誤仍然存在協(xié)同開發(fā)中的工作重復2024/8/174SCM的益處可以解決一些常見的問題可以節(jié)約用戶資金

復用和共享

增強溝通能力可以提高軟件開發(fā)管理的水平

管理和改進過程,提高成熟度等級

管理工作空間,實現變更控制

管理工作量

管理溝通可以保護企業(yè)的知識財富

建立完善的知識管理體系:代碼、經驗、安全性、可靠性……2024/8/175 所有在軟件過程中產生的信息,總稱為軟件配置項(SoftwareConfigurationItem,SCI),主要包括:計算機程序(源代碼和可執(zhí)行程序)描述計算機程序的文檔(針對開發(fā)者和用戶)數據(包含在程序內部或外部)§6.2

配置項SCI2024/8/1766.2.1

配置項的內容配置項包含內容項目管理過程文檔項目任務書個人日報和周報項目計劃項目會議紀要項目周報培訓記錄和培訓文檔QA過程文檔QA不符合報告QA周報評審記錄工作產品需求文檔測試文檔設計文檔軟件說明書和手冊代碼第三方產品例如:Oracle,Java等2024/8/1776.2.2

軟件配置控制配置控制是配置管理的核心工作,主要包括:存取控制:設定軟件開發(fā)人員對軟件基準庫的存取權限,保證軟件開發(fā)過程及軟件產品的安全性版本控制:是配置管理的基本要求,使得組織在任何時刻都可以獲得配置項的任何一個版本變更控制:為軟件產品變更提供一個明確的流程,要求任何進行配置管理的軟件產品變更都要經過相應的授權與批準才能實施產品發(fā)布:保證提交給客戶的軟件產品是完整的、正確的2024/8/1786.2.3

配置項標識軟件配置項標識是管理配置的前提。標識包括文件名和版本。確定配置項:軟件項目在開發(fā)過程中會產生成千上百個配置項,那么確定配置項是很重要的明確配置項標識的要求:項目組人員按照標識規(guī)則對配置項進行標識,最后提交給配置管理員納入配置庫統(tǒng)一管理配置項命名:

(1)唯一性:在一個項目內不能出現重名

(2)可追溯性:名字應能體現相鄰配置項之間的關系2024/8/179命名實例程序實體的標識程序名.擴展名:DataVerified.java文檔的標識:必須統(tǒng)一項目管理PM立項說明PM-prj開發(fā)計劃PM-plan項目設計PD需求說明PD-req概要設計PD-prldsg詳細設計PD-dtldsg2024/8/1710§6.3

基線baselineIEEE關于軟件基線的定義 基線是已經通過正式技術評審的某種產品,可以作為進一步開發(fā)的基礎,并且只能通過正式的變更控制而改變基線是項目庫中每個工件的版本快照snapshot基線標識軟件過程階段的里程碑milestone2024/8/1711常用軟件基線系統(tǒng)工程需求分析軟件設計代碼測試系統(tǒng)規(guī)格說明書軟件需求規(guī)格說明書設計規(guī)格說明書源代碼測試計劃過程/數據可操作的系統(tǒng)2024/8/1712基線的屬性通過正式評審過程建立存在于基線庫,對基線的變更接受更高權限的控制基線是進一步開發(fā)和修改的基準和出發(fā)點進入基線前,不對變化進行管理;進入基線后,對變化進行有效管理不會變化的內容不納入基線,變化對其它無影響的也不納入基線基線具有名稱、標識符、版本、日期等屬性交付給客戶的基線成為一個Release,內部開發(fā)用的基線為一個Build2024/8/1713基線的優(yōu)點重現性

當更新不穩(wěn)定或不可信時,基線提供一種取消變更的方法可追溯性

建立項目工件之間的前后繼承關系版本隔離新項目與隨后對原始項目所進的變更進行隔離2024/8/1714基線的種類功能基線(FunctionalBaseline)系統(tǒng)分析、軟件定義階段的系統(tǒng)規(guī)格說明指派基線(AllocatedBaseline)軟件需求分析階段的需求規(guī)格說明產品基線(ProductionBaseline)組裝和測試階段有關產品的規(guī)格說明其他基線2024/8/1715軟件過程中的配置基線需求分析設計編碼測試計劃基線需求基線設計基線編碼基線測試基線計劃項目開發(fā)計劃用戶手冊需求規(guī)格分析詳細設計說明書概要設計說明書源代碼測試報告2024/8/1716§6.4

版本控制版本控制是對系統(tǒng)不同版本進行標識和跟蹤管理的過程,是SCM的核心版本控制的對象是軟件開發(fā)過程中涉及的所有文件系統(tǒng)對象,如文件、目錄、鏈接等版本控制的目的在于跟蹤控制對象的變更,防止丟失,提供訪問授權,實現并行開發(fā)……2024/8/17176.4.1

版本的控制與同步控制版本的訪問控制

工作區(qū)中的源文件是從庫中恢復得到的一個復制文件。一般有兩種工作模式:在工作區(qū)域一旦有“讀”請求,就做一次恢復操作,獲得復制文件,當“讀”操作結束,該復制文件被刪除僅當軟件庫中的內容發(fā)生更改時,才發(fā)生交互,而不是每次“讀”操作都與軟件庫中的文件發(fā)生交互版本的同步控制檢入Checkin:將軟件配置項從用戶的工作環(huán)境存入到軟件配置庫的過程檢出Checkout:將軟件配置項從軟件配置庫中取出的過程2024/8/1718軟件工程師軟件配置庫檢入檢出訪問控制配置對象(修改版本)配置對象(基線版本)審計信息解鎖擁有者信息加鎖配置對象(基線版本)配置對象(提取版本)訪問和同步控制的流程圖2024/8/17196.4.2

版本分支和合并版本分支 人工方法是從主版本復制一份文件,做上標記。實行版本控制之后,版本的分支是一份復制文件,復制過程和標記動作由版本系統(tǒng)自動完成版本合并 版本合并通過對文件的比較來進行,有兩種途徑:將版本A的內容附加到版本B中合并A和B的內容,形成新的C 后一種途徑更容易理解,也符合軟件開發(fā)的思路2024/8/17206.4.3

版本的歷史記錄文件和目錄的版本演化的歷史可以形象的表示為圖形化的版本樹版本樹由版本依次連接形成,每個結點代表一個版本,根結點是初始版本,葉結點代表最新的版本典型的軟件系統(tǒng)包含多個文件和目錄,每個文件和目錄都有自己的版本樹版本的歷史記錄有助于對軟件配置項進行審計,有助于追蹤問題的來源版本的歷史記錄應該包含版本號、修改時間、修改者、修改描述等內容2024/8/1721版本樹最簡單的版本樹只有一個分支,就是版本樹的枝干;復雜的版本樹除了主干外,還可以包含很多的分支,分支可以進一步包含子分支。V1.0V1.1V1.2V1.3V2.0V1.4V2.1V1.1.1V1.1.22024/8/1722§6.5

變更控制軟件開發(fā)過程中會產生很多變更,如配置項、配置、基線、構建的版本、發(fā)布的版本等,變更控制是一種機制,以保證所有變更都是可控的、可跟蹤的和可重現的對變更進行控制的機構稱為CCB(ChangeControlBoard,變更控制委員會),CCB定期開會對近期產生的變更進行分析、整理,并作出決定2024/8/1723變更機制變更請求CCB評估修改測試或驗證關閉變更請求接受提交拒絕2024/8/1724功能變更 功能變更是為了增加或者刪除某些功能、或者為了完成某個功能的方法而需要的變更;這類變更必須經過某種正式的變更評價過程,以估計變更需要的成本和其對軟件系統(tǒng)其他部分的影響缺陷變更 缺陷修補是為了修復漏洞需要進行的變更。在項目前期,它是必須進行的,通常不需要從管理角度對這類變更進行審查和批準。在項目后期,如果發(fā)現錯誤的階段在造成錯誤的階段的后面,則必須遵照標準的變更控制過程來進行

6.5.1

變更類型2024/8/1725批準變更請求?拒絕記錄變更請求批準指派給相應的開發(fā)人員檢出變更請求評估評估向SCM提交并驗證變更請求驗證相關責任人提出變更請求請求變更實現實現驗證正確的變更請求檢入驗證變更請求關閉關閉通知相關責任人關閉變更需求軟件增強缺陷6.5.2

變更請求管理2024/8/1726變更請求提交識別變更需求,提交并記錄變更申請變更請求接收必須建立接收提交的變更請求并進行跟蹤的機制。指定接收和處理變更請求的責任人,確認變更請求變更請求評估評估變更風險,確定優(yōu)先等級變更請求決策制定變更計劃6.5.3

變更管理的實施步驟2024/8/1727變更請求實現增強性變更需要更多的設計工作,而缺陷修復需要建立一個環(huán)境,在該環(huán)境中可以對缺陷進行重現并測試相應的解決方案變更請求驗證增強請求的測試通常涉及驗證所做變更是否滿足該增強請求的需要。缺陷測試則簡單的驗證開發(fā)人員的修復是否真正消除了該缺陷。變更請求完成由提交請求的原有請求者中止這一循環(huán)過程2024/8/1728§6.6

軟件配置管理系統(tǒng)軟件配置管理系統(tǒng)功能:并行開發(fā)支持:同時更改同一模塊修訂版管理:跟蹤變更的時間、原因、責任人,以加快問題解決版本控制:版本重現產品發(fā)布管理構建管理:構建過程自動化過程控制:實施訪問安全、開發(fā)規(guī)則變更請求管理代碼共享2024/8/17296.6.1

軟件配置標準EIAStandardIS-649NationalConsensusStdforConfigurationManagement,Aug.1995

給出基本的CM規(guī)則和業(yè)界最好的實踐經驗來指導標識產品配置并進行高效、有條理的軟硬件產品管理IEEEStd1042-1987,GuidetoSoftwareConfigurationManagement(ANSI)

描述CM規(guī)則在軟件工程項目中的應用IEEEStd828-1990,StandardforSoftwareConfigurationManagementPlans(ANSI)

是IEEEStd1042-1987的補充IEEE/EIA12207.0-1996,IndustryImplementationofInternationalStandardISO/IEC12207:1995(ISO/IEC12207)StandardforInformationTechnology–SoftwareLifecycleProcesses,Mar1998

用明確的術語定義了軟件生命周期的一個公共框架2024/8/1730IEEE/EIA12207.1-1996,Lifecycledata,April1998

給出了在IEEE/EIA12207.0-1996中的活動和任務執(zhí)行過程中哪些數據可以記錄的指導IEEE/EIA12207.2-1996,ImplementationConsiderations,April1998

給出了實現IEEE/EIA12207.0過程要求的指導ISO9000-3:1991(E),QualityMgmt&QualityAssuranceStds-Part3:GuidelinesfortheapplicationofISO9001tothedevelopment,supplyandmaintenanceofsoftware

為應用ISO9001的開發(fā)、供應、維護軟件的組織提出的指導方針MIL-HDBK-61,ConfigurationManagementGuidance

提供了DoD采購經理、后勤管理員和其他個人已指派的CM職責方面的指導和信息MIL-STD-2549,ConfigurationManagementDatainterface

給出了通過CM數據庫進行信息交換時政府的詳細接口要求;定義了從一種活動轉到另一種活動時商業(yè)規(guī)則上必要信息和相互關系計算機軟件配置管理計劃規(guī)范GB/T12505-90

適應于重要軟件的SCM計劃的制訂2024/8/1731CVS(ConcurrentVersionsSystem,并發(fā)版本系統(tǒng))是主流的開放源碼、網絡透明的版本控制系統(tǒng)。它的客戶機/服務器存取方法使得開發(fā)者可以從任何因特網的接入點存取最新的代碼。它的無限制的版本管理檢出的模式避免了通常的因為排它檢出模式而引起的人工沖突。它的客戶端工具可以在絕大多數的平臺上使用。6.6.2

并發(fā)版本系統(tǒng)CVS2024/8/1732CVS基本概念倉庫Reository:是CVS服務器的根目錄,所有的工作都保存在這個倉庫模塊Module:模塊里面放的是一個項目的所有文件導入Import:將本地軟件項目導入到CVS倉庫中導出Checkout:將倉庫中的一個模塊中的東西到處到本地工作目錄下提交修改Commit:將本地修改的文件提交到CVS倉庫同步Update:從CVS下載修改過的文件來更新本地文件文件版本Revision:指的是單個文件版本發(fā)行版本Release:整個產品的版本標簽Tag:對一個文件或多個文件給的符號名2024/8/1733CVS簡單命令集檢出CVScheckout[-rrev][-Ddate][-ddir][-jmerg]files提交CVScommit[-Rl][-m

msg]files刪除CVSremove[options]files增加CVSadd[-kflags][-mmsg]files2024/8/1734文件狀態(tài)狀態(tài)狀態(tài)描述Up-to-date與倉庫中最新版本一致Locallymodified已修改但未檢入倉庫Locallyadded已用add加入但未檢入倉庫Locallyremoved已用remove刪除但未檢入倉庫Needscheckout有人修改,但未檢出Needspatch與上面相似但CVS只發(fā)送補丁Needsmerge他人檢入新版本,也做了修改Filehadconflictsonmerge與上面相似,但上一個update命令產生過沖突2024/8/1735使用CVS進行版本控制檢出Checkout:小組成員從CVS服務器上檢出各自負責的模塊進行開發(fā),結束后把文件提交到CVS服務器提交新文件:在項目中有新的文件加入,要提交到服務器提交修改文件

分三種情況: ①只有一個人對文件進行修改時,簡單提交 ②兩個人以上對同一文件的不同部分進行修改,第1人簡單提交,其他人要先合并再提交 ③兩個人以上對同一文件的相同部分進行修改,第1人可提交,其他人不能提交標記:標識修改者分支管理:用于跟蹤缺陷,控制缺陷的擴散2024/8/17366.6.3IBM-RationalClearCase&ClearQuestClearCase?軟件可用來管理和控制軟件開發(fā)資產,集成了設計、開發(fā)、構建、測試和部署工具,為支持在整個生命周期中對軟件資產進行受控訪問提供了完整的解決方案CC具有成熟的版本控制,可進行自動化的工作空間管理,支持并行開發(fā)、基線管理以及構建和發(fā)布管理,為創(chuàng)建、更新、構建、交付、復用和維護關鍵業(yè)務型資產提供了所需的功能ClearQuest?軟件增強了開發(fā)流程并使之自動化,同時還提高了軟件生命周期的可理解性、可預測性和可控制性CQ和CC共同協(xié)作,提供了無縫和全面的變更和配置管理解決方案2024/8/1737ClearCase的功能Versioncontrol版本控制為所有文件和目錄建立版本Buildmanagement構建管理為每一個軟件要素的集成提供擔保正確的重現每一個版本跟蹤和重建構建Workspacemanagement工作空間管理與其他開發(fā)人員并行工作Processcontrol過程控制記錄和報告活動、歷史和里程碑定制過程2024/8/1738版本控制這是ClearCase的核心功能:支持廣泛的文件類型在版本樹中觀察構件發(fā)展的過程對目錄和子目錄進行版本控制使用常見的檢出/編輯/檢入范例豐富的數據信息自動的比較和版本間的歸并01232024/8/1739工作空間管理工作空間管理保證開發(fā)人員擁有自己獨立的工作環(huán)境,擁有自己的私人存儲區(qū),同時可以訪問成員間的共

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論