




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第八章軟件項目的配置管理11/1/20221第八章軟件項目的配置管理10/23/202218.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/202228.1軟件配置及其管理的概念第八章?目錄10/23/28.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/202238.1軟件配置及其管理的概念第八章?目錄10/23/28.1.1CMM2的配置管理概念8.1.2IEEE的配置管理定義8.1.3配置管理概述8.1.4配置管理活動的作用8.1軟件配置及其管理的概念11/1/202248.1.1CMM2的配置管理概念8.1軟件配置及其管理的配置的概念配置的概念來自硬件軟件工程師是如何處理接口的?廣而言之:軟件的變化可以發(fā)生在一秒鐘內(nèi)軟件的變化可以發(fā)生在每一秒鐘軟件開發(fā)過程下一秒鐘是不確定的情況將會怎樣?怎么辦?11/1/20225配置的概念配置的概念來自硬件10/23/20225軟件項目開發(fā)管理的新需求你在一家小公司做軟件工程師,開始的時候,你只有一個人,配了2個助手。你們研究了一種算法(例如:圖象壓縮、數(shù)據(jù)加密等),編寫了一個實現(xiàn)模塊。有一天老板看到了你的演示,認(rèn)為很有市場潛力,可以結(jié)合進(jìn)公司正在給某行業(yè)用戶正在準(zhǔn)備開發(fā)的系統(tǒng)中,成為該系統(tǒng)的核心技術(shù)或一個別人沒有的賣點。下一周,你的隊伍增加到14(你的老板準(zhǔn)備就此豪賭一把了),與你3個人的小組不同的是,公司從其他部門為你配備了系統(tǒng)分析師,還有文檔編制員、測試員。你的核心模塊已經(jīng)被大量的用戶功能所包裝,成為一個行業(yè)應(yīng)用系統(tǒng),并開始給用戶試用,這是你的系統(tǒng)的第一版。3個月后,公司決定把系統(tǒng)升級到第二版,除增加了許多新的功能外,公司決定支持多平臺,同時,為了提高系統(tǒng)的性能和效率,準(zhǔn)備采用第三方廠家的中間件,取代自己做的接口。第一版的缺陷修改,也要反映到第二版中。第2版經(jīng)過2個多月的開發(fā),最終推向了市場。公司的這個產(chǎn)品不但被用戶所歡迎,也被一家大公司所看中(就像IBM收購了Lotus和Rational、Informix一樣),你們的產(chǎn)品,正好可以填補這家大公司產(chǎn)品線的空缺,你所在的公司被這家公司買去了。
11/1/20226軟件項目開發(fā)管理的新需求你在一家小公司做軟件工程師,開始的時公司為你的項目組派來了產(chǎn)品經(jīng)理、項目經(jīng)理。公司決定這個產(chǎn)品的測試,由公司總部獨立的測試部門承擔(dān)。同時,公司決定把項目組增加到50人,其中有20多人并不在你所在的城市。在新公司里,產(chǎn)品管理、項目管理、測試、質(zhì)量等等,都與你過去的環(huán)境和做法不同,特別不同的是,公司準(zhǔn)備開發(fā)的第3版系統(tǒng)與公司原有的產(chǎn)品要進(jìn)行融合,使他們看上去是一家出來的不同的兄弟和姐妹。與軟件的第1版、第2版相比,你的項目管理有什么不同?
隨著這個產(chǎn)品的演變,項目發(fā)生了四個變化:(1)系統(tǒng)的復(fù)雜性發(fā)生了很大變化;(2)
用于開發(fā)該系統(tǒng)的項目環(huán)境發(fā)生了很大變化;(3)在不同的項目生命周期內(nèi),項目控制本身的要求和力度發(fā)生了很大變化;(4)由于組織的變化,管理流程、人員、方式發(fā)生了很大變化。前二類變化要求項目的組織和管理適應(yīng)系統(tǒng)擴展的需要,后二種變化則要求項目管理具有適應(yīng)性和靈活性。11/1/20227公司為你的項目組派來了產(chǎn)品經(jīng)理、項目經(jīng)理。公司決定這個產(chǎn)品的缺乏管理所造成的問題軟件開發(fā)人員之間缺乏必要的交流產(chǎn)品升級和維護所必需的程序和文檔非?;靵y開發(fā)過程中的人員流動經(jīng)常發(fā)生因管理不善致使未經(jīng)測試的軟件加入到產(chǎn)品中項目開發(fā)狀態(tài)不清楚軟件生產(chǎn)達(dá)不到規(guī)?;?/p>
11/1/20228缺乏管理所造成的問題軟件開發(fā)人員之間缺乏必要的交流10/23軟件配置管理
SCM(SoftwareConfigurationManagement)
軟件配置管理(SCM)是指在開發(fā)過程中各階段,管理計算機程序演變的學(xué)科,它作為軟件工程的關(guān)鍵元素,已經(jīng)成為軟件開發(fā)和維護的重要組成部分……SCM提供了結(jié)構(gòu)化的,有序化的,產(chǎn)品化的管理軟件工程的方法。它涵蓋了軟件生命周期的所有領(lǐng)域并影響所有數(shù)據(jù)和過程。配置管理是指用于控制系統(tǒng)一系列變化的學(xué)科。通過一系列技術(shù),方法和手段來維護產(chǎn)品的歷史,鑒 別和定位產(chǎn)品獨有的版本,并在產(chǎn)品的開發(fā)和發(fā)布階段 控制變化。通過有序管理和減少重復(fù)性工作,配置管理保證了生 產(chǎn)的質(zhì)量和效率。11/1/20229軟件配置管理
SCM(SoftwareConfigurat我們知道,在軟件建立時,變更是不可避免的,而變更加劇了項目中軟件開發(fā)者之間的混亂。SCM活動的目標(biāo)就是為了標(biāo)識變更、控制變更、確保變更正確實現(xiàn)并向其他有關(guān)人員報告變更。因此,從某種角度講,SCM是一種標(biāo)識、組織和控制修改的技術(shù),目的是使錯誤降為最小并最有效地提高生產(chǎn)效率。SCM通過以下方法,強化軟件的可靠性和質(zhì)量:(1)提供用于識別和控制文檔、代碼、接口、數(shù)據(jù)庫的結(jié)構(gòu)框架,適用于軟件開發(fā)生命周期的所有階段;(2)全面支撐某一特定開發(fā)及維護工作方法,能夠適應(yīng)各種類型的需求、標(biāo)準(zhǔn)、政策、組織機構(gòu)以及相關(guān)的管理策略;(3)針對特定的基線狀態(tài)、變更控制、測試、發(fā)布版本或?qū)彶榛顒?,生成相?yīng)的管理信息和產(chǎn)品信息。因此,從某種意義上講,SCM本質(zhì)上是變更的管理。SCM使軟件產(chǎn)品和過程的變更變?yōu)槭芸氐暮涂深A(yù)見的,它要求并在適當(dāng)?shù)墓ぞ咧С窒履軌蜃龅竭@樣幾點:(1)誰做的變更?(2)軟件有什么變更?(3)什么時間做的變更?(4)為何要變更?
11/1/202210我們知道,在軟件建立時,變更是不可避免的,而變更加劇了項軟件項目的配置管理隨著計算機軟件的發(fā)展,軟件開發(fā)已由最初的“程序設(shè)計階段”經(jīng)歷了“軟件系統(tǒng)階段”進(jìn)而演變?yōu)楹髞淼摹败浖こ屉A段”,軟件的復(fù)雜性日益增大。此時,如果仍然把軟件看成一個單一的個體,就無法解決所面臨的問題,于是配置的概念逐漸引入軟件領(lǐng)域,人們越來越重視軟件配置的管理工作。
不懂軟件項目的配置管理,就不懂軟件開發(fā)管理不對軟件項目進(jìn)行配置管理,就沒有進(jìn)行軟件項目開發(fā)管理11/1/202211軟件項目的配置管理隨著計算機軟件的發(fā)展,軟件開發(fā)已由最初的“軟件配置管理是CMM2中6個關(guān)鍵過程域的第6個關(guān)鍵域。CMM2認(rèn)為,SCM的目的是為了建立和維護軟件開發(fā)過程中各種制品的完整性和一致性,包括以下內(nèi)容:對軟件產(chǎn)品配置的標(biāo)志和識別系統(tǒng)地控制對處于配置管理下的各種軟件制品的修改和更新維護軟件開發(fā)過程中的各種制品的一致性和可跟蹤性8.1.1CMM2的配置管理概念
11/1/202212軟件配置管理是CMM2中6個關(guān)鍵過程域的第6個關(guān)鍵域。CMMSCM的目標(biāo)目標(biāo)1:軟件配置管理活動被定義和計劃目標(biāo)2:軟件開發(fā)過程中的制品被識別、控制和管理目標(biāo)3:對于處于配置管理下的軟件制品的修改被控制目標(biāo)4:與軟件制品相關(guān)的項目組和成員應(yīng)該被通知制品的目前狀態(tài)和被修改的信息
從對配置目的的定義可以看出,CMM2的配置管理應(yīng)包括這樣一些活動:標(biāo)識給定時間點的軟件配置(即所選擇的工作產(chǎn)品及其描述),系統(tǒng)地控制這些配置的更改,并在軟件生命周期中保持這些配置的完整性和可跟蹤性。CMM2認(rèn)為,受控于配置管理的工作產(chǎn)品,包括交付給用戶的軟件產(chǎn)品(如:代碼等),以及生成軟件產(chǎn)品所需要的有關(guān)項(如:項目管理文件)。CMM2的配置管理活動最主要的內(nèi)容是:建立軟件基線庫,該庫存儲開發(fā)的軟件基線。通過軟件配置管理的更改控制和配置審核功能,系統(tǒng)地控制基線變更和由軟件基線庫生成的軟件產(chǎn)品版本。11/1/202213SCM的目標(biāo)目標(biāo)1:軟件配置管理活動被定義和計劃從對配置要達(dá)到CMM規(guī)定的SCM要求所需具備的能力具有對軟件基線產(chǎn)品有管理權(quán)限的組織已經(jīng)建立,例如:軟件配置管理委員會;協(xié)調(diào)和實現(xiàn)軟件配置管理的組織已經(jīng)建立;為進(jìn)行軟件配置管理所需要的各項資源已經(jīng)分配;軟件配置管理組織里的成員已經(jīng)接受了軟件配置目標(biāo)、流程、方法方面的培訓(xùn);軟件項目組或是其他的相關(guān)的部門經(jīng)過培訓(xùn),可以執(zhí)行他們的軟件配置管理活動;11/1/202214要達(dá)到CMM規(guī)定的SCM要求所需具備的能力10/CMM中對SCM規(guī)定的活動根據(jù)文檔化的流程,項目軟件配置管理計劃已準(zhǔn)備完畢;文檔化的已獲批準(zhǔn)的軟件配置管理計劃可用作以后軟件配置管理活動的基礎(chǔ);軟件配置管理庫已經(jīng)創(chuàng)建,并可用作進(jìn)入基線的軟件制品的存貯庫;處于軟件配置管理下的軟件制品被標(biāo)志和識別;對于配置項的變更請求和問題報告被初始化、計劃、評審、批準(zhǔn)并根據(jù)文化化的流程對其進(jìn)行跟蹤;11/1/202215CMM中對SCM規(guī)定的活動根據(jù)文檔化的流程,項目軟件配置對于進(jìn)入基線的制品的修改必須遵循文檔化的流程;發(fā)布的產(chǎn)品必須從軟件配置庫中取出,并且產(chǎn)品發(fā)布的流程須依照文檔化的流程和規(guī)定;根據(jù)文檔化的流程和規(guī)定,軟件配置項的狀態(tài)被記錄和跟蹤;記錄軟件配置管理活動和軟件基線內(nèi)容的報告被建立,并通知受到影響的項目組和個人;根據(jù)文檔化的流程進(jìn)行軟件制品基線的評審;CMM中對SCM規(guī)定的活動11/1/202216對于進(jìn)入基線的制品的修改必須遵循文檔化的流程;CMM中對S組織規(guī)定和相關(guān)責(zé)任項目級配置管理項目配置經(jīng)理(ProjectConfigurationManager)與軟件配置管理計劃變更控制委員會(ChangeControlBoard)組織級配置管理組織配置管理庫(OrganizationalConfigurationManagementCell)負(fù)責(zé)項目完成后的軟件配置管理活動管理組織級的文檔11/1/202217組織規(guī)定和相關(guān)責(zé)任10/23/202217IEEE標(biāo)準(zhǔn)729-1983就配置管理的內(nèi)容進(jìn)行了規(guī)范的定義:
(1)標(biāo)識:識別產(chǎn)品的結(jié)構(gòu)、產(chǎn)品的構(gòu)件及其類型,為其分配唯一的標(biāo)識符,并以某種形式提供對它們的存取。
(2)控制:通過建立產(chǎn)品基線,控制軟件產(chǎn)品的發(fā)布和在整個軟件生命周期中對軟件產(chǎn)品的修改。例如,它將解決哪些修改會在該產(chǎn)品的最新版本中實現(xiàn)的問題。
(3)狀態(tài)統(tǒng)計:記錄并報告構(gòu)件和修改請求的狀態(tài),并收集關(guān)于產(chǎn)品構(gòu)件的重要統(tǒng)計信息。例如,它將解決修改這個錯誤會影響多少個文件的問題。
(4)審計和審查:確認(rèn)產(chǎn)品的完整性并維護構(gòu)件間的一致性,即確保產(chǎn)品是一個嚴(yán)格定義的構(gòu)件集合。例如,它將解決目前發(fā)布的產(chǎn)品所用的文件的版本是否正確的問題。
(5)生產(chǎn):對產(chǎn)品的生產(chǎn)進(jìn)行優(yōu)化管理。它將解決最新發(fā)布的產(chǎn)品應(yīng)由哪些版本的文件和工具來生成的問題。
(6)過程管理:確保軟件組織的規(guī)程、方針和軟件周期得以正確貫徹執(zhí)行。它將解決要交付給用戶的產(chǎn)品是否經(jīng)過測試和質(zhì)量檢查的問題。
(7)小組協(xié)作:控制開發(fā)統(tǒng)一產(chǎn)品的多個開發(fā)人員之間的協(xié)作。例如,它將解決是否所有本地程序員所做的修改都已被加入到新版本的產(chǎn)品中的問題。8.1.2IEEE的配置管理定義
11/1/202218IEEE標(biāo)準(zhǔn)729-1983就配置管理的內(nèi)容進(jìn)行了規(guī)范的定義CMM2的定義比較抽象,IEEE的定義就比較具體。結(jié)合各體系的定義和要求,我們下面具體來討論配置管理的概念。8.1.3配置管理功能概述
11/1/202219CMM2的定義比較抽象,IEEE的定義就比較具體。結(jié)合各體系配置標(biāo)識或者又稱為配置需求,包括標(biāo)識軟件系統(tǒng)的結(jié)構(gòu),標(biāo)識獨立部件,并使它們是可訪問的。配置標(biāo)識的目的,是在整個生命周期中標(biāo)識系統(tǒng)各部件并提供對軟件過程及其軟件產(chǎn)品的跟蹤能力。它回答:什么是受控的?
配置變更控制包括在軟件生命周期中控制軟件產(chǎn)品的發(fā)布和變更,目的是建立確保軟件產(chǎn)品質(zhì)量的機制。它回答:受控產(chǎn)品怎樣變更?誰控制變更?何時接受,恢復(fù),驗證變更?配置狀態(tài)統(tǒng)計包括記錄和報告變更過程,目標(biāo)是不間斷記錄所有基線項的狀態(tài)和歷史,并進(jìn)行維護,它解決以下問題:系統(tǒng)已經(jīng)做了什么變更?此問題將會對多少個文件產(chǎn)生影響?配置變更控制是針對軟件產(chǎn)品,狀態(tài)統(tǒng)計針對軟件過程。因此,二者的統(tǒng)一就是對軟件開發(fā)(產(chǎn)品、過程)的變更控制。配置審核將驗證軟件產(chǎn)品的構(gòu)造是否符合需求、標(biāo)準(zhǔn)、或合同的要求,目的是根據(jù)SCM的過程和程序,驗證所有的軟件產(chǎn)品已經(jīng)產(chǎn)生并有正確標(biāo)識和描述,所有的變更需求都已解決。它回答:系統(tǒng)和需求是否吻合?是否所有變更都是在版本控制下?
SCM的四大功能領(lǐng)域11/1/202220配置標(biāo)識或者又稱為配置需求,包括標(biāo)識軟件系統(tǒng)的結(jié)構(gòu),標(biāo)識獨立SCM從應(yīng)用層次上可以從低到高分為三級:版本控制、以開發(fā)者為中心、過程驅(qū)動。版本控制主要應(yīng)用于個人獨立開發(fā)或小組開發(fā),它可以控制任何文件的版本、實現(xiàn)分支和歸并功能、進(jìn)行文本比較、標(biāo)記注釋和版本報告信息,主要工具有MS的VisualSourceSafe及IntersolvPVCS。
以開發(fā)者為中心主要應(yīng)用于部門級開發(fā),它可用于軟件維護、不斷增加的開發(fā)任務(wù)、并行開發(fā)、QA及測試,它面向大型團隊、利于交流、能最大限度地利用人力資源,主要工具為RationalClearCase及MKSSourceIntegrity。過程驅(qū)動主要使用于企業(yè)級開發(fā),著重解決新的工具引入、IT審核、管理報告、復(fù)雜的生命周期、應(yīng)用工具包、集成解決方案、資料庫等問題,實現(xiàn)真正規(guī)范的團隊開發(fā),主要工具為PlatinumTechnologyCCC/Harvest。SCM的三個應(yīng)用層次11/1/202221SCM從應(yīng)用層次上可以從低到高分為三級:版本控制、以開發(fā)者為SCM中的專業(yè)術(shù)語配置(Configuration)與配置項(ConfigurationItem)在軟件開發(fā)過程中生成各種制品的總和叫做這個項目的軟件配置[RogerS.Pressman,1997]計算機程序,包括源代碼和可執(zhí)行程序與計算機程序相對應(yīng)的各種文檔計算機數(shù)據(jù),包括計算機程序中包含的數(shù)據(jù)和系統(tǒng)初始化數(shù)據(jù)11/1/202222SCM中的專業(yè)術(shù)語配置(Configuration)與配SCM中的專業(yè)術(shù)語基線項目開發(fā)過程的制品經(jīng)過正式評審并被相關(guān)人員一致同意,可以作為以后項目開發(fā)的基礎(chǔ)。對已經(jīng)確定為基線的制品的修改必須要通過正式的變更控制流程。在軟件工程環(huán)境中,基線是指在軟件開發(fā)過程中的里程碑,這些里程碑的標(biāo)志是一項或多項經(jīng)過正式的技術(shù)評審并一致認(rèn)同的軟件制品的提交。11/1/202223SCM中的專業(yè)術(shù)語基線10/23/202223SCM中的專業(yè)術(shù)語配置數(shù)據(jù)庫(軟件制品基線庫)項目建立和訪問軟件制品庫,這個制品庫主要用來對保存配置項和一些與軟件配置管理相關(guān)的記錄。目前比較好的配置管理工具:Clearcase(Rational),Notes/Domino(Lotus),PVCS(Merant)andVSS(Microsoft).11/1/202224SCM中的專業(yè)術(shù)語配置數(shù)據(jù)庫(軟件制品基線庫)10/23/配置管理庫(1)基線庫的結(jié)構(gòu)(VOB) ProjectRootDirectoryProjectPlanningPhaseDocumentsRequirementsAnalysisPhaseDocumentsDesignPhaseDocumentsCode,UnitTest&IntegrationPhaseDocumentsSystemTestPhaseDocumentsPhaseDeliverablesPhaseDeliverablesProductSoftwareTestSoftwareProductSoftwareRelatedTestSoftwareRelatedSourceCodeObjectiveCodeExecutiveCodeDOCDATAABBBBCode11/1/202225配置管理庫(1)基線庫的結(jié)構(gòu)(VOB) ProjectRo配置管理庫的具體實現(xiàn)——項目文件夾項目文件件是項目開發(fā)過程中由項目組創(chuàng)建和維護的制品歸檔庫。軟件配置管理負(fù)責(zé)管理和控制項目文件夾,并對文件夾中的內(nèi)容進(jìn)行評審;項目經(jīng)理負(fù)責(zé)監(jiān)督項目的軟件配置管理執(zhí)行;軟件質(zhì)量工程師負(fù)責(zé)對項目文件夾的內(nèi)容進(jìn)行評審;配置管理庫11/1/202226配置管理庫的具體實現(xiàn)——項目文件夾配置管理庫10/23/20配置管理庫項目文件夾的內(nèi)容項目開發(fā)過程中的所有信息,包括文檔、工作制品和各種周報、月報、評審等;與外部的交流信息,例如與客戶、第三方的通訊交流記錄等;其他交流會議記錄,例如:重要的Email,傳真,信件等;11/1/202227配置管理庫項目文件夾的內(nèi)容10/23/202227配置管理庫權(quán)限管理
項目組內(nèi)部的權(quán)限管理與分配對其他項目組的開放權(quán)限管理與分配對其他用戶或是第三方的權(quán)限管理與分配11/1/202228配置管理庫權(quán)限管理10/23/2022288.1.4配置管理活動的作用配置管理與質(zhì)量管理
在質(zhì)量體系的諸多支持活動中,配置管理處在支持活動的中心位置。質(zhì)量管理雖然也有過程的驗證,但配置管理只要定義的配置項夠細(xì),則它可以管理軟件開發(fā)的全過程,細(xì)到每一個模塊、每一個文檔、每一條工程記錄的變化。因此,配置管理從基礎(chǔ)層開始,有機地把其它支持活動結(jié)合起來,形成一個整體,相互促進(jìn),相互影響,有力地保證了質(zhì)量體系的實施。
11/1/2022298.1.4配置管理活動的作用配置管理與質(zhì)量管理10/23/配置管理給項目組帶來的好處(1)節(jié)約費用
縮短開發(fā)周期
減少施工費用
(2)有利于知識庫的建立
代碼對象庫業(yè)務(wù)及經(jīng)驗庫
(3)規(guī)范管理
量化工作量考核
規(guī)范測試
(4)加強協(xié)調(diào)與溝通
11/1/202230配置管理給項目組帶來的好處(1)節(jié)約費用
縮短開發(fā)周期8.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/2022318.1軟件配置及其管理的概念第八章?目錄10/23/28.2.1主要配置管理活動8.2.2項目經(jīng)理的配置管理流程8.2配置管理活動和流程11/1/2022328.2.1主要配置管理活動8.2配置管理活動和流程10/8.2.1主要配置管理活動
標(biāo)志配置項變更控制版本控制評審統(tǒng)計軟件編譯、連接和發(fā)放管理11/1/2022338.2.1主要配置管理活動標(biāo)志配置項10/23/2022RUP描述的配置管理的主要活動如下圖所示:對于一個軟件項目組來說,開展一個項目組的配置管理,大致可以分為以下步驟:對于一個軟件項目組來說,開展一個項目組的配置管理,大致可以分為以下步驟:(1)擬訂項目的配置管理計劃;(2)創(chuàng)建項目的配置管理環(huán)境;(3)進(jìn)行項目的配置管理活動,包括:標(biāo)識配置項;管理基線和發(fā)布活動;監(jiān)測與報告配置狀態(tài);管理變更請求。(1)和(2)可以看成配置管理的準(zhǔn)備,(3)是配置管理的具體實施。配置管理的具體實施,在RUP定義為四個管理活動。
11/1/202234RUP描述的配置管理的主要活動如下圖所示:對于一個軟件項目組配置項(SoftwareConfigurationItem,SCI)識別
對于配置項,可以給出一個比較簡單的定義,既軟件過程的輸出信息可以分為三個主要類別:(1)計算機程序(源代碼和可執(zhí)行程序)(2)描述計算機程序的文檔(針對技術(shù)開發(fā)者和用戶)(3)數(shù)據(jù)(包含在程序內(nèi)部或外部)。這些項包含了所有在軟件過程中產(chǎn)生的信息,總稱為軟件配置項。”
在CMM2中,除上述3個配置項以外,還包括項目管理的有關(guān)文件、信息記錄等。
由此可見,配置項的識別是配置管理活動的基礎(chǔ),也是制定配置管理計劃的重要內(nèi)容。
11/1/202235配置項(SoftwareConfigurationIte配置項(SoftwareConfigurationItem,SCI)識別
軟件配置管理認(rèn)為軟件的開發(fā)過程是一個不斷變化著的過程,為了在不嚴(yán)重阻礙合理變化的情況下來控制變化,軟件配置管理引入了“基線(BaseLine)”這一概念。
IEEE對基線的定義是這樣的:“已經(jīng)正式通過審核批準(zhǔn)的某規(guī)約或產(chǎn)品,它因此可作為進(jìn)一步開發(fā)的基礎(chǔ),并且只能通過正式的變化控制過程改變?!?/p>
所以,根據(jù)這個定義,我們在軟件的開發(fā)流程中,也可以把所有需要加以控制的配置項分為基線配置項和非基線配置項兩類,例如:基線配置項可能包括所有的設(shè)計文檔和源程序等;非基線配置項可能包括項目的各類計劃和報告等。
有關(guān)配置項的內(nèi)容,我們將在后面,專門花一節(jié)的篇幅,進(jìn)行討論。11/1/202236配置項(SoftwareConfigurationIte配置項的標(biāo)識和控制
所有配置項都應(yīng)按照相關(guān)規(guī)定統(tǒng)一編號,按照相應(yīng)的模板生成,并在文檔中的規(guī)定章節(jié)(部分)記錄對象的標(biāo)識信息。在引入軟件配置管理工具進(jìn)行管理后,這些配置項都應(yīng)以一定的目錄結(jié)構(gòu)保存在配置庫中。
所有配置項的操作權(quán)限應(yīng)由配置管理員嚴(yán)格管理,基本原則是:基線配置項向軟件開發(fā)人員開放讀取權(quán)限;非基線配置項向項目經(jīng)理、配置控制委員會及相關(guān)人員開放。
11/1/202237配置項的標(biāo)識和控制所有配置項都應(yīng)按照相關(guān)規(guī)定統(tǒng)一編工作空間管理
在引入了軟件配置管理工具之后,所有開發(fā)人員都會被要求把工作成果存放到由軟件配置管理工具所管理的配置庫(存儲池)中去,或是直接工作在軟件配置管理工具提供的環(huán)境之下(根據(jù)配置管理構(gòu)架提供的控制方式不同而不同)。每個開發(fā)人員按照任務(wù)的要求,在不同的開發(fā)階段,工作在不同的工作空間上。比較理想的情況是把整個配置庫視為一個統(tǒng)一的工作空間,然后再根據(jù)需要把它劃分為個人(私有)、團隊(集成)和全組(公共)這三類工作空間(分支),從而更好的支持將來可能出現(xiàn)的并行開發(fā)的需求。
11/1/202238工作空間管理在引入了軟件配置管理工具之后,所有開發(fā)版本控制版本控制是軟件配置管理的核心功能。所有置于配置庫中的元素都應(yīng)自動予以版本的標(biāo)識,并保證版本命名的唯一性。版本在生成過程中,自動依照設(shè)定的使用模型自動分支、演進(jìn)。除了系統(tǒng)自動記錄的版本信息以外,為了配合軟件開發(fā)流程的各個階段,我們還需要定義、收集一些元數(shù)據(jù)來記錄版本的輔助信息和規(guī)范開發(fā)流程,并為今后對軟件過程的度量做好準(zhǔn)備。當(dāng)然如果選用的工具支持的話,這些輔助數(shù)據(jù)將能直接統(tǒng)計出過程數(shù)據(jù),從而方便我們軟件過程改進(jìn)(SoftwareProcessImprovement,SPI)活動的進(jìn)行。對于配置庫中的各個基線控制項,應(yīng)該根據(jù)其基線的位置和狀態(tài)來設(shè)置相應(yīng)的訪問權(quán)限。一般來說,對于基線版本之前的各個版本都應(yīng)處于被鎖定的狀態(tài),如需要對它們進(jìn)行變更,則應(yīng)按照變更控制的流程來進(jìn)行操作。
11/1/202239版本控制版本控制是軟件配置管理的核心功能。所有置變更控制變更管理的一般流程是:(1)(獲得)提出變更請求;(2)由CCB審核并決定是否批準(zhǔn);(3)(被接受)分配請求,修改人員提取配置項,進(jìn)行修改;(4)復(fù)審變化;(5)提交修改后的配置項;(6)建立測試基線并測試;(7)重建軟件的適當(dāng)版本;(8)復(fù)審(審計)所有配置項的變化;(9)發(fā)布新版本。
在這樣的流程中,配置管理員通過軟件配置管理工具來進(jìn)行訪問控制和同步控制,而這兩種控制則是建立在前面所描述的版本控制和分支策略的基礎(chǔ)上的。
11/1/202240變更控制變更管理的一般流程是:10/23/202240狀態(tài)報告配置狀態(tài)報告應(yīng)該包括下列主要內(nèi)容:
(1)配置庫結(jié)構(gòu)和相關(guān)說明;(2)開發(fā)起始基線的構(gòu)成;(3)當(dāng)前基線位置及狀態(tài);(4)各基線配置項集成分支的情況;(5)各私有開發(fā)分支類型的分布情況;(6)關(guān)鍵元素的版本演進(jìn)記錄;(7)其它應(yīng)報告的事項。
11/1/202241狀態(tài)報告配置狀態(tài)報告應(yīng)該包括下列主要內(nèi)容:10/23/20配置審計
配置審計的主要作用是作為變更控制的補充手段,來確保某一變更需求已被切實實現(xiàn)。在某些情況下,它被作為正式的技術(shù)復(fù)審的一部分,但當(dāng)軟件配置管理是一個正式的活動時,該活動由SQA人員單獨執(zhí)行。
總之,軟件配置管理的對象是軟件研發(fā)活動中的全部開發(fā)資產(chǎn)。所有這一切都應(yīng)作為配置項納入管理計劃統(tǒng)一進(jìn)行管理,從而能夠保證及時的對所有軟件開發(fā)資源進(jìn)行維護和集成。因此,軟件配置管理的主要任務(wù)也就歸結(jié)為以下幾條:(1)制定項目的配置計劃;(2)對配置項進(jìn)行標(biāo)識;(3)對配置項進(jìn)行版本控制;(4)對配置項進(jìn)行變更控制;(5)定期進(jìn)行配置審計;(6)向相關(guān)人員報告配置的狀態(tài)。
11/1/202242配置審計配置審計的主要作用是作為變更控制的補充手8.2.2項目經(jīng)理的配置管理流程項目經(jīng)理的工作是:(1)確定項目配置管理策略(2)確定用于控制產(chǎn)品變更的策略和流程(3)在配置管理計劃(是軟件開發(fā)計劃的一部分)中記錄此信息11/1/2022438.2.2項目經(jīng)理的配置管理流程項目經(jīng)理的工作是:10/配置管理策略
軟件配置管理策略是指能夠確定、保護和報告已經(jīng)批準(zhǔn)用于項目中的工件的能力。通過正確的標(biāo)注來實現(xiàn)確定操作。對項目工件的保護是通過歸檔、建立基線和報告等操作而得以實現(xiàn)的。使用標(biāo)準(zhǔn)的、已記錄下來的變更控制流程的目的是:確保項目中所做的變更保持一致,并將產(chǎn)品的狀態(tài)、對其所做的變更以及這些變更所耗費的成本及對時間表的影響通知給有關(guān)的涉眾。
軟件配置管理計劃說明在產(chǎn)品/項目生命周期中要執(zhí)行的所有與配置管理相關(guān)的活動。它記錄如何計劃、實施、控制和組織與產(chǎn)品相關(guān)的配置管理活動。
11/1/202244配置管理策略軟件配置管理策略是指能夠確定、保護和報告已配備人員配置管理人員的選擇和配備,是軟件項目經(jīng)理最主要的工作。在一個比較理想的軟件開發(fā)團隊中,需要哪些角色呢?
負(fù)責(zé)軟件項目組的項目經(jīng)理 負(fù)責(zé)SCM計劃和策略的配置經(jīng)理 負(fù)責(zé)軟件產(chǎn)品開發(fā)與維護的軟件工程人員 負(fù)責(zé)驗證產(chǎn)品正確性的測試人員 負(fù)責(zé)確保產(chǎn)品高質(zhì)量的質(zhì)量保證經(jīng)理 使用產(chǎn)品的用戶。
11/1/202245配備人員配置管理人員的選擇和配備,是軟件項目配置經(jīng)理
配置經(jīng)理的目標(biāo)是確保用來建立、變更及編碼測試的計劃和策略得以貫徹執(zhí)行,同時使有關(guān)項目的信息容易獲得。為了對編碼更改形成控制,配置經(jīng)理引入規(guī)范的請求變更的機制,評估更改的機制(通過變更控制機構(gòu)CCB,由它負(fù)責(zé)批準(zhǔn)對軟件系統(tǒng)的變更),和批準(zhǔn)變更的機制。
配置經(jīng)理負(fù)責(zé)為工程人員創(chuàng)建任務(wù)單,交由項目經(jīng)理對任務(wù)進(jìn)行分配,創(chuàng)建項目的框架。同時,配置經(jīng)理還收集軟件系統(tǒng)中構(gòu)件的相關(guān)數(shù)據(jù),比如說用以判斷系統(tǒng)中出現(xiàn)問題的構(gòu)件的信息。
11/1/202246配置經(jīng)理配置經(jīng)理的目標(biāo)是確保用來建立、變更及編碼測試的計8.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/2022478.1軟件配置及其管理的概念第八章?目錄10/23/28.3.1配置管理的對象8.3.2最基本的配置管理項——文檔8.3.3UCM目錄結(jié)構(gòu)下的配置管理對象8.3配置管理需求11/1/2022488.3.1配置管理的對象8.3配置管理需求10/23/28.3.1配置管理對象配置管理的第一個基本活動是配置標(biāo)識,通俗地講,也就是查詢、識別和確定配置管理對象——配置項。在生產(chǎn)的軟件產(chǎn)品和軟件的生產(chǎn)過程中,那些是配置管理的對象呢?配置管理對象呈現(xiàn)為一種層次結(jié)構(gòu),因此,為了標(biāo)識配置管理的對象,我們需要對軟件系統(tǒng)進(jìn)行分解:目前,用于分解軟件系統(tǒng)的術(shù)語有多種多樣,沒有被標(biāo)準(zhǔn)化。1989年Humphery定義了5個層次:系統(tǒng)、子系統(tǒng)、產(chǎn)品、構(gòu)件和模塊。1991年Whitgift定義了3個層次:系統(tǒng)、子系統(tǒng)和元素。IEEE定義了3個層次:計算機配置項、計算機軟件構(gòu)件和計算機軟件單元。RUP定義了4個層次:系統(tǒng)、實施(或構(gòu)件)子系統(tǒng)、構(gòu)件和文件(RUP5.51999)。
11/1/2022498.3.1配置管理對象配置管理的第一個基本活動是配置標(biāo)識,配置管理對象
在RUP的概念里,最底層的元素是處于版本控制下的文件和目錄,構(gòu)件的層次要高于元素(文件和目錄),構(gòu)件把元素組織起來。一個版本控制的構(gòu)件是一個具體的物理的對象,就是一個根目錄。這個根目錄,以及從根目錄下所屬的所有目錄和文件,是系統(tǒng)的一個子系統(tǒng)。大的系統(tǒng)有多個根目錄(子系統(tǒng)),小系統(tǒng)則可能只有一個根目錄。產(chǎn)品目錄結(jié)構(gòu)為所有可具有版本號的、與產(chǎn)品相關(guān)的工件提供邏輯嵌套的占位符。工件是開發(fā)流程生命周期的結(jié)果,用于開發(fā)整個系統(tǒng)的各組成部分(構(gòu)件)。11/1/202250配置管理對象在RUP的概念里,最底層的元素是處于版本控制下配置管理對象
首先我們從根目錄開始(假設(shè)是只有一個根目錄的?。┫到y(tǒng),討論軟件系統(tǒng)架構(gòu):軟件項目通過一系列的生命階段,將建立或者已經(jīng)建立起一個體系構(gòu)架。軟件的體系構(gòu)架在軟件工程時代被稱為系統(tǒng)結(jié)構(gòu)。在UML中,被稱為構(gòu)架。
UML對構(gòu)架的定義是:(1)一組有關(guān)軟件系統(tǒng)組織結(jié)構(gòu)的重要決定;(2)結(jié)構(gòu)要素和接口的選取,確保它們的行為能滿足這些要素之間的協(xié)作關(guān)系;(3)結(jié)構(gòu)要素和行為要素以一種漸進(jìn)的方式被組裝成子系統(tǒng),能夠指導(dǎo)這種組織結(jié)構(gòu)的結(jié)構(gòu)風(fēng)格,要素的內(nèi)容,它們的接口、它們的協(xié)作和它們的組合。系統(tǒng)或系統(tǒng)構(gòu)架是由子系統(tǒng)(構(gòu)件)組成的。11/1/202251配置管理對象首先我們從根目錄開始(假設(shè)是只有一個根目錄的小UML進(jìn)一步把構(gòu)件劃分成三種構(gòu)件:部署型構(gòu)件、工作產(chǎn)品型構(gòu)件和執(zhí)行構(gòu)件。
(1)部署型構(gòu)件:是指那些被部署到目標(biāo)機中的元素,例如:可執(zhí)行程序、庫以及其他支持系統(tǒng)運行的文件。(2)工作型構(gòu)件:是構(gòu)成開發(fā)環(huán)境的元素,例如:源文件、頭文件以及其他用于導(dǎo)出或構(gòu)建部署型構(gòu)件的文件。(3)可執(zhí)行型構(gòu)件:是指由運行于目標(biāo)機的系統(tǒng)生成的內(nèi)容,例如:數(shù)據(jù)等。從SCM的角度看系統(tǒng)架構(gòu),我們主要關(guān)注的是在開發(fā)環(huán)境中以及將來部署到目標(biāo)系統(tǒng)中的系統(tǒng)的物理層面的文件和目錄結(jié)構(gòu)、分組和版本化。這種關(guān)注決定了配置管理的對象以及對象的“粒度”?,F(xiàn)在,有些項目使用高層次的設(shè)計文檔來描述架構(gòu),例如:模型、視圖等。在高層架構(gòu)描述中,邏輯上的“類”,可影射對應(yīng)為物理層面的文件和目錄。作為軟件產(chǎn)品和軟件過程,這些文件和目錄是SCM控制的對象,即他們是配置項。在我們現(xiàn)在的討論中,有時,我們說明這些文件是用于管理和設(shè)計系統(tǒng)的內(nèi)容(包括:項目計劃、設(shè)計模型、測試報告)等,有些是實現(xiàn)系統(tǒng)設(shè)計的文件(包括:源代碼、庫、執(zhí)行文件等),有時,把它們不加區(qū)別地看成為構(gòu)件。11/1/202252UML進(jìn)一步把構(gòu)件劃分成三種構(gòu)件:部署型構(gòu)件、工作產(chǎn)品型構(gòu)件CMM2的配置管理對象
CMM2把配置管理對象,稱之為軟件工作產(chǎn)品,在CMM2配置管理定義中,對應(yīng)置于配置管理下的軟件工作產(chǎn)品,是這樣定義的:可作為配置項/單元標(biāo)識的軟件工作產(chǎn)品實例有:與過程相關(guān)的文檔(例如:計劃、標(biāo)準(zhǔn)或規(guī)程) 軟件需求 軟件設(shè)計 軟件代碼單元 軟件測試規(guī)程 為軟件測試活動建立的軟件系統(tǒng) 交付給客戶或最終用戶的軟件系統(tǒng) 編譯程序 其他支持工具 不論各體系是如何定義的,我們基本可以認(rèn)為,配置管理的對象,主要地可以分為二類:軟件產(chǎn)品和文檔。軟件產(chǎn)品比較容易標(biāo)識,而文檔相對比較復(fù)雜。我們將重點進(jìn)行討論。
11/1/202253CMM2的配置管理對象CMM2把配置管理對象,稱之為軟件工8.3.2最基本的配置管理項——文檔文檔在軟件開發(fā)人員、軟件管理人員、維護人員、用戶以及計算機之間,起到了多種的橋梁作用。軟件開發(fā)人員在軟件生命的各個階段中,以文檔作為前階段工作成果的體現(xiàn)和后階段工作的依據(jù),這個作用是顯而易見的。這部分文檔通常稱為開發(fā)文檔。軟件開發(fā)過程中軟件開發(fā)人員需制定一些工作計劃或工作報告,這些計劃和報告都要提供給管理人員,并得到必要的支持。管理人員則可通過這些文檔了解軟件開發(fā)項目安排、進(jìn)度、資源使用和成果等。這部分文檔通常稱為管理文檔,或稱為項目文檔。軟件開發(fā)人員需為用戶了解軟件的使用、操作和維護提供詳細(xì)的資料。這部分文檔通常稱為用戶文檔。11/1/2022548.3.2最基本的配置管理項——文檔文檔在軟件開發(fā)人員、軟我們把這三種文檔所包括的內(nèi)容列在下圖中。其中列舉了十三個文檔,這里對它們做一些簡要說明:
文檔用戶文檔用戶手冊操作手冊維護修改建議軟件需求(規(guī)格)說明書開發(fā)文檔軟件需求(規(guī)格)說明書數(shù)據(jù)要求說明書概要設(shè)計說明書詳細(xì)設(shè)計說明書可行性研究報告項目開發(fā)計劃管理文檔項目開發(fā)計劃測試計劃測試報告開發(fā)進(jìn)度月報開發(fā)總結(jié)報告11/1/202255我們把這三種文檔所包括的內(nèi)容列在下圖中。其中列舉了十三個文檔文檔的生成階段
階段文檔
可行性研究與計劃需求分析設(shè)計代碼編寫測試運行與維護可行性研究報告
項目開發(fā)計劃
軟件需求說明
數(shù)據(jù)要求說明
概要設(shè)計說明
詳細(xì)設(shè)計說明
測試計劃
用戶手冊
操作手冊
測試分析報告
開發(fā)進(jìn)度月報
項目開發(fā)總結(jié)
維護修改建議
11/1/202256文檔的生成階段可行性研究與計劃需求分析設(shè)計代碼編寫測試運行文檔的作用
所提問題文檔
什么何處何時誰如何為何可行性研究報告√
√項目開發(fā)計劃√
√√
軟件需求說明√√
數(shù)據(jù)要求說明√√
概要設(shè)計說明
√
詳細(xì)設(shè)計說明
√
測試計劃
√√√
用戶手冊
√
操作手冊
√
測試分析報告√
開發(fā)進(jìn)度月報√
√
項目開發(fā)總結(jié)√
維護修改建議√
√
√11/1/202257文檔的作用什么何處何時誰如何為何可行性研究報告√
8.3.3UCM目錄結(jié)構(gòu)下的配置管理UCM(統(tǒng)一變更管理)的發(fā)展沿革
第一代UCM:第二代UCM:第三代UCM:
第三代UCM引進(jìn)了一些新的概念:(1)活動(Activity):(2)構(gòu)件(Component):(3)工作流(Stream):(4)項目(Project):
11/1/2022588.3.3UCM目錄結(jié)構(gòu)下的配置管理UCM(統(tǒng)一變更管理8.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/2022598.1軟件配置及其管理的概念第八章?目錄10/23/28.4.1版本管理的必要性8.4.2此前的版本管理8.4.3元素、分支與版本8.4.4構(gòu)件、基線與存儲池8.4.5現(xiàn)代版本管理活動8.4版本管理11/1/2022608.4.1版本管理的必要性8.4版本管理10/23/208.4.1版本管理的必要性在軟件開發(fā)過程中,由于軟件開發(fā)所固有的特征,可能會形成眾多的軟件版本,而且我們并不能保證不出現(xiàn)錯誤的修改,而這樣的一個困難局面卻又非?,F(xiàn)實地擺在項目開發(fā)管理者的面前,他/她該如何有效地解決這些問題,具體地說就是如下一些問題:(1)怎樣對研發(fā)項目進(jìn)行整體管理;(2)項目開發(fā)小組的成員之間如何以一種有效的機制進(jìn)行協(xié)調(diào);(3)如何進(jìn)行對小組成員各自承擔(dān)的子項目的統(tǒng)一管理;(4)如何對研發(fā)小組各成員所作的修改進(jìn)行統(tǒng)一匯總;(5)如何保留修改的軌跡,以便撤銷錯誤的改動;(6)對在研發(fā)過程中形成的軟件的各個版本如何進(jìn)行標(biāo)識,管理及差異識辨等等。一個非常直接的反應(yīng)是,我們必須要引進(jìn)一種管理機制,一個版本管理機制,而且是廣義上的版本管理,它不僅需要對源代碼的版本進(jìn)行管理,而且還要對整個項目進(jìn)行管理。11/1/2022618.4.1版本管理的必要性在軟件開發(fā)過程中,由于軟件開發(fā)8.4.2早前的版本管理
在軟件工程時代,面對這樣的問題,我們通過以往的那種被譽建立具有良好的編程風(fēng)格的做法,諸如在編程或?qū)λ说脑闯绦蜻M(jìn)行修改時,注釋修改原因,修改人和日期。如果是多個成員同時進(jìn)行了修改,那么可能出現(xiàn)一個庫管理員,由他來控制什么人在訪問哪個源代碼,修改的人向他報告做了什么改動。如果有幾個人同時改動,庫管理員或者限定同時只能有一個人做修改,他記住這人是誰,或者他自己來做同時修改的人工的差異比較和綜合,以便形成一個統(tǒng)一的新版本。在3-5人小組,這個庫管理員還能勝任,但這種做法在當(dāng)前的大型軟件的開發(fā)中已經(jīng)越來越困難了,因為靠人工的操作、靠個人的自覺、靠庫管理員的維護,充其量是一種以小作坊的形式來面對軟件的社會化大生產(chǎn),再也不可能行得通了?;诠蚕砦募夸浀陌姹竟芾?/p>
在版本控制工具出現(xiàn)之前,或者,現(xiàn)在國內(nèi)很多的軟件企業(yè),并不用什么版本控制工具。他們也做一些簡單的版本控制工作。他們是怎么做的?最簡單的辦法是使用文件拷貝支持不同的版本。具體地講,就是項目組在項目組的文件共享服務(wù)器上,建立一個項目組文件系統(tǒng),在文件系統(tǒng)下,對涉及到的文件,建立不同的版本目錄,從個人工作區(qū)到系統(tǒng)發(fā)布版,包括中間結(jié)果,甚至可能是所有文件。庫管理員不斷地增加目錄的標(biāo)簽,以標(biāo)識歷史前進(jìn)的步伐。11/1/2022628.4.2早前的版本管理在軟件工程時代,面對這樣的問題,我8.4.2早前的版本管理
早期的版本管理工具
(1)通過存儲池機制來維護文件庫; (2)創(chuàng)建和存放文件的多個版本; (3)提供一種或幾種鎖定裝置,強制對文件的修改順序; (4)標(biāo)識文件的版本; (5)從歷史目錄中找回舊版本。這些工具基本上能幫助庫管理員從手工的管理中解脫出來,開發(fā)人員不需要庫管理員的介入,可以自己從庫中檢入和檢出文件,當(dāng)文件被檢出后,其他人暫時不能再檢出此文件。同時,在必要的時候,文件的一個新版本被創(chuàng)立。11/1/2022638.4.2早前的版本管理早期的版本管理工具10/23/28.4.2早前的版本管理
例如:MS的VSS版本控制是通過以下方式實現(xiàn)的:VSS提供版本控制和歷史服務(wù),以保證一個文件的每個版本都是可恢復(fù)的。VSS用日期/時間戳來記錄文件是何時被Check-out或是何時被修改的,它主要有三種方法來跟蹤文件和項目的版本:(1)版本號:這是由VSS維護的內(nèi)部數(shù)碼,用戶對它沒有控制權(quán)。每個文件和項目的每個版本都有一個版本號,這些版本號總是一個整數(shù)且是遞增的。(2)標(biāo)簽:這些是用戶賦給某個項目或文件的某個版本的一個字符串,可以是任何格式的長度不超過31字符的字符串。(3)日期/時間戳:它給出了一個文件何時最后被修改的信息,或者是一個文件何時被Check-in。VSS同時支持12小時和24小時的時間格式。11/1/2022648.4.2早前的版本管理例如:MS的VSS版本控制是通過以8.4.3元素、分支與版本
原子對象
在ClearCase的概念中,置于版本控制下的原子對象被稱為“元素”(element),元素是文件系統(tǒng)對象:文件和目錄。每個元素記錄了它所代表的文件和目錄的版本。所以,當(dāng)用戶檢入文件時,就創(chuàng)建了那個元素的新版本。元素被組織成不同的分支。分支是線形的版本序列,版本序列構(gòu)成的是并行開發(fā)的項目或基于統(tǒng)一基線開始的不同的系統(tǒng)。元素都被保存在存儲池(VOB)中。下圖是存儲池、元素、分支、版本之間的關(guān)系:在ClearCase中,每一個元素都以一個主分支(mainbranch)和一個不包含任何內(nèi)容的零版本序列開始,稱為“/main/0”。每一次新版本檢入,在主分支上創(chuàng)建版本111/1/2022658.4.3元素、分支與版本原子對象10/23/20226SCM的版本樹左圖的版本樹中,長方形表示一個分支,圓形表示檢入的時間排序的版本號,箭頭表示從一個分支到另一個分支的變更回歸(歸并)?!鞍l(fā)布版本1.0/1.1”是這個版本上的標(biāo)簽。目錄是元素,也是版本對象。ClearCase對目錄與文件一樣,也進(jìn)行版本管理。為了能在前一個版本中修復(fù)BUG,或者從新版本退回到就版本,就有必要恢復(fù)一個舊的版本。目錄被修改,在檢入的時候,也要進(jìn)行記錄。對目錄進(jìn)行版本管理的目的,還可以借助目錄機制,重建或構(gòu)造軟件系統(tǒng)的前一個版本。343210Release1.0\main2103\rel1_bugfix2\rel210Release1.111/1/202266SCM的版本樹左圖的版本樹中,長方形表示一個分支,圓形表示元素類型
在ClearCase中,存放在存儲池中的元素都被賦予特定的類型,使之可以用于多種目的。類型可以幫助系統(tǒng)決定對該元素的操作。包括: l
確定元素可以使用的存儲/增量機制 l
決定版本選擇的范圍,例如:設(shè)計文檔版本、項目管理文檔版本等 l
適用于不同的配置管理策略 l
決定比較、歸并等的機制
ClearCase已經(jīng)預(yù)先定義了的元素類型,它們主要和存儲機制有關(guān)。 文件(完全備份) 文本文件(同軸增量備份) 壓縮文本文件(與文本文件相同,但進(jìn)行壓縮) 壓縮文件(完全備份,僅進(jìn)行壓縮) 二進(jìn)制文件(差異增量保存) 目錄(直接保存)11/1/202267元素類型在ClearCase中,存放在存儲池中的元素8.4.4構(gòu)件、基線與存儲池構(gòu)件將把被一起開發(fā)、集成和發(fā)布的文件和目錄聚集在一起。聚集成ClearCase構(gòu)件的文件和元素通??梢詫崿F(xiàn)系統(tǒng)構(gòu)架中的一個可重用的部分。構(gòu)件通過標(biāo)識一個根目錄來定義,這個目錄與所有的文件和子目錄都被看作是這個構(gòu)件的一個部分。構(gòu)件的一個版本就是一個基線。構(gòu)件基線標(biāo)識了構(gòu)件中包含的每一個元素或一個版本,構(gòu)件的基線用來配置工作流,為各種視圖提供信息,以便決定文件和目錄的什么版本被顯示。就像元素有版本一樣,構(gòu)件有基線。當(dāng)修改一個元素時,你創(chuàng)建了這個元素的一個版本,當(dāng)你修改構(gòu)件中的一個元素時,你也創(chuàng)建了這個構(gòu)件的一個新基線。工作流把一組構(gòu)件基線聚集在一起。然而,這不是項目范圍的基線概念,更恰當(dāng)?shù)闹v,當(dāng)你在項目的集成流上完成一個基線操作時,你創(chuàng)建了一組被修改構(gòu)件的基線。11/1/2022688.4.4構(gòu)件、基線與存儲池構(gòu)件將把被一起開發(fā)、集成和發(fā)根據(jù)一個產(chǎn)品的質(zhì)量標(biāo)準(zhǔn)要求和需求的不同,可以定義一個項目的不同基線。也就是說,一個公司可以定義不同的測試、功能、版本基線。另一個項目組可以根據(jù)自己的需要,選擇某特定構(gòu)件,確定自己的基線。
下圖表明構(gòu)件和基線之間的關(guān)系:任何UCM的核心最后將歸結(jié)到存儲池,存儲池也被稱為“VersionedObjectBase”,或簡稱為VOB。VOB是用于存儲文件、目錄和元數(shù)據(jù)的永久數(shù)據(jù)存儲池。VOB必須能夠支持可擴展的、容錯的、分布式的可復(fù)制的性能。
項目的VOB包含與項目環(huán)境有關(guān)的對象,如:項目、構(gòu)件、活動以及基線,這些構(gòu)成了一個正在開發(fā)的項目的所有信息,包括項目的組織和管理信息。11/1/202269根據(jù)一個產(chǎn)品的質(zhì)量標(biāo)準(zhǔn)要求和需求的不同,可以定義一個項目的不8.4.5現(xiàn)代版本管理活動
現(xiàn)代版本管理活動圍繞以下展開: l
支持多人同時修改同一文件;
l
支持多個小組在同一時間修改同一個軟件系統(tǒng);
l
現(xiàn)代的工作空間管理;
l
現(xiàn)代的構(gòu)建和發(fā)布管理。11/1/2022708.4.5現(xiàn)代版本管理活動現(xiàn)代版本管理活動圍繞以下展開:并行開發(fā)的版本控制并行開發(fā)3210\main2103\Bugfix4210\main3432\Telecom10Release1.0Telecom1.011/1/202271并行開發(fā)的版本控制并行開發(fā)3210\main2103\Bug
版本控制的好處使混亂的開發(fā)狀態(tài)變得有序!SCM的主要技術(shù)——版本控制11/1/202272版本控制的好處使混亂的開發(fā)狀態(tài)變得有序!SCM的主8.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/2022738.1軟件配置及其管理的概念第八章?目錄10/23/28.5.1基于基線的變更管理8.5.2變更請求管理過程8.5.3變更請求管理活動8.5.4變更請求的狀態(tài)轉(zhuǎn)移8.5變更管理11/1/2022748.5.1基于基線的變更管理8.5變更管理10/23/2可以了解誰改了什么、為什么正確及時的項目狀態(tài)報告最大限度的利用你的工程師資源利于團隊交流是團隊開發(fā)過程中的通訊基礎(chǔ)11/1/202275可以了解誰改了什么、為什么是團隊開發(fā)過程中的通訊基礎(chǔ)10/28.5.1基于基線的變更管理
l
變更管理下的基線概念 l
建立基線的意義 l
建立基線的時機
11/1/2022768.5.1基于基線的變更管理10/23/2022768.5.2變更管理流程變更管理流程:變更管理流程包括提出請求、對請求進(jìn)行評估、同意請求和實現(xiàn)對已經(jīng)進(jìn)入基線庫的配置項進(jìn)行修改。CCB(ChangeControlBoard),由項目經(jīng)理、系統(tǒng)分析員、項目配置經(jīng)理和軟件質(zhì)量工程師組成,負(fù)責(zé)評估變更請求,提出同意或不同意對已進(jìn)入基線庫的配置項的變更;TAF:test,analyzeandfix;11/1/2022778.5.2變更管理流程變更管理流程:變更管理流程包括提出請變更管理流程(1)與變更管理流程相關(guān)的表格軟件問題報告表SoftwareProblemReportForm(SPRF)軟件變更請求表SoftwareChangeRequestForm(SCRF)軟件問題解決細(xì)節(jié)SoftwareProblemResolutionDetails(SPRD)11/1/202278變更管理流程(1)與變更管理流程相關(guān)的表格10/23/202變更管理流程(2)由用戶提出的變更請求由項目主提出的變更請求問題評估PAT由用戶在產(chǎn)品發(fā)布前發(fā)現(xiàn)的問題由項目組自身發(fā)現(xiàn)的問題系統(tǒng)分析員軟件問題報告表問題處理NOYES軟件變更請求表軟件變更請求表系統(tǒng)分析員由于升級而進(jìn)行的變更對問題不予接受告知問題提出者問題被拒絕11/1/202279變更管理流程(2)由用戶提出的變更請求由項目主提出的變更請求變更管理流程(3)11/1/202280變更管理流程(3)10/23/2022808.5.3變更請求管理活動
11/1/2022818.5.3變更請求管理活動10/23/2022818.5.4變更請求的狀態(tài)轉(zhuǎn)移
11/1/2022828.5.4變更請求的狀態(tài)轉(zhuǎn)移10/23/2022828.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測、報告與評審8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/2022838.1軟件配置及其管理的概念第八章?目錄10/23/28.6.1配置狀態(tài)監(jiān)測與報告8.6.2配置評審8.6配置狀態(tài)監(jiān)測、報告與評審11/1/2022848.6.1配置狀態(tài)監(jiān)測與報告8.6配置狀態(tài)監(jiān)測、報告與評8.6.1配置項狀態(tài)統(tǒng)計配置項狀態(tài)統(tǒng)計,由項目配置經(jīng)理定期地對項目配置項的狀態(tài)進(jìn)行收集和統(tǒng)計,主要包括以下統(tǒng)計信息:項目制品進(jìn)入基線庫的創(chuàng)建時間變更請求的詳細(xì)描述所有問題(ProblemReport)報告的描述變更請求的狀態(tài)BaselineStatusAccountingForm(BSAF)ArchiveStatusAccountingForm(ASAF)Change/ProblemStatusAccountingForm(C/PSAF)11/1/2022858.6.1配置項狀態(tài)統(tǒng)計配置項狀態(tài)統(tǒng)計,由項目配置經(jīng)理定期提供圖形化的項目狀況11/1/202286提供圖形化的項目狀況10/23/202286SCM的度量和度量準(zhǔn)則SCM提供軟件產(chǎn)品的狀態(tài)統(tǒng)計。統(tǒng)計包括尋找軟件開發(fā)的瓶頸和解決辦法,并據(jù)此衡量軟件產(chǎn)品的成熟度。度量準(zhǔn)則:平均嚴(yán)重程度,嚴(yán)重程度級的分布,平均關(guān)閉時間,嚴(yán)重程度的圖示,各配置項或子系統(tǒng)的圖示11/1/202287SCM的度量和度量準(zhǔn)則SCM提供軟件產(chǎn)
SCM的度量和度量準(zhǔn)則軟件產(chǎn)品成熟度數(shù)據(jù)要求:軟件變更(問題)數(shù)量描述計算機軟件配置項標(biāo)識(CSCI)嚴(yán)重程度級打開變更的日期(或發(fā)現(xiàn)問題)關(guān)閉變更(問題)和實施日期11/1/202288SCM的度量和度量準(zhǔn)則軟件產(chǎn)品成熟度數(shù)據(jù)要求:10/23/軟件變更統(tǒng)計
SCM的度量和度量準(zhǔn)則圖表分析軟件剩余問題剩余變更和錯誤密度11/1/202289軟件變更統(tǒng)計SCM的度量和度量準(zhǔn)則圖表分析軟件剩余問題剩余8.6.2配置評審配置評審:配置評審?fù)ㄟ^對配置管理流程的各種制品進(jìn)行審核,來判斷軟件配置管理流程被正確的執(zhí)行。配置評審包括功能評審和物理評審。功能配置評審(FunctionalConfigurationAudit,FCA),功能配置評審是通過對軟件產(chǎn)品的功能和性能的審核,以及與需求說明的一致性來對軟件制品的評估。
由項目經(jīng)理提出請求由軟件質(zhì)量工程師計劃并實施對評審過程和標(biāo)準(zhǔn)有專門的文檔規(guī)定11/1/2022908.6.2配置評審配置評審:配置評審?fù)ㄟ^對配置管理流程的各功能評審功能審核的目標(biāo)是核實軟件配置項的實際性能是否符合它的需求。以下各項說明從配置管理角度來看支持功能審核所需要做的工作。(1)準(zhǔn)備一個驗證表,列出所有功能方面的需求,而且對每個需求都引用測試過程、測試行為的實例(時間戳或其他測試實例標(biāo)識符)、相應(yīng)的測試結(jié)果和/或完整記錄需求驗證情況的分析和/或演示報告。(2)核實是否已正確實施了所有變更請求。(3)核實是否已對軟件正確應(yīng)用了所有更改。(4)文檔差異、建立糾正操作和完成日期。11/1/202291功能評審功能審核的目標(biāo)是核實軟件配置項的實際性能是否符合它的物理評審物理配置評審PhysicalConfigurationAudit(PCA):物理配置評審主要驗證軟件的功能是否與其設(shè)計一致,是否可以發(fā)布。物理配置評審跟隨在功能配置評審之后;由項目經(jīng)理提出請求;由軟件質(zhì)量工程師和項目配置經(jīng)理計劃和實施;對于物理配置評審過程和標(biāo)準(zhǔn),有專門的文檔規(guī)定;
物理評審的主要工作是:(1)創(chuàng)建應(yīng)該出現(xiàn)在配置管理中的項目列表。(2)檢查在配置管理中維護的項目。(3)創(chuàng)建一個“差異列表”,表示已在配置管理中維護的項目以及應(yīng)該在配置管理中維護的項目之間的差異。11/1/202292物理評審物理配置評審PhysicalConfigurati8.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/2022938.1軟件配置及其管理的概念第八章?目錄10/23/28.7.1角色職責(zé)8.7.2配置管理計劃8.7.3項目經(jīng)理的階段工作要點8.7.4配置管理實施的若干問題8.7基于配置管理的軟件項目管理11/1/2022948.7.1角色職責(zé)8.7基于配置管理的軟件項目管理10/8.7.1角色職責(zé)
項目經(jīng)理(ProjectManager,PM)
配置控制委員會(ConfigurationControlBoard,CCB)
配置管理員(ConfigurationManagementOfficer,CMO)
系統(tǒng)集成員(SystemIntegrationOfficer,SIO)
開發(fā)人員(Developer,DEV)
11/1/2022958.7.1角色職責(zé)項目經(jīng)理(ProjectManage8.7.2配置管理計劃肩負(fù)對項目成功負(fù)責(zé)的重要職責(zé)
評估開發(fā)團隊當(dāng)前配置管理現(xiàn)狀定義實施的范圍計劃資源要素
11/1/2022968.7.2配置管理計劃肩負(fù)對項目成功負(fù)責(zé)的重要職責(zé)10/8.7.3項目經(jīng)理的階段工作要點
11/1/2022978.7.3項目經(jīng)理的階段工作要點10/23/2022978.7.4配置管理實施的若干問題
SCM的啟動時機
SCM的控制水平
過程與產(chǎn)品的區(qū)分
SCM自動化水平
11/1/2022988.7.4配置管理實施的若干問題SCM的啟動時機10/
可以不必去熟悉過程,也不必知道團隊開發(fā)的模式可以延續(xù)你一貫的工作程序和處理辦法將變更流程化自動處理業(yè)務(wù)SCM的過程驅(qū)動PRODUCTIONCODINGTESTINGREPORTINGPROJECTUPROJECTVPROJECTYPROJECTXPROJECTZPROJECTWAPPROVENOTIFYNOTIFY11/1/202299可以不必去熟悉過程,也不必知道團隊開發(fā)的模式SCM的過程SCM的過程改進(jìn)SCM為變更和過程改進(jìn)提供基本結(jié)構(gòu)第一步,了解產(chǎn)品是怎樣生產(chǎn)的第二步,培養(yǎng)一個好的變更環(huán)境改進(jìn)要構(gòu)造的也就是改進(jìn)怎樣構(gòu)造--SEI1998年主題SCM的過程驅(qū)動11/1/2022100SCM的過程改進(jìn)SCM為變更和過程改進(jìn)提供基本結(jié)構(gòu)改進(jìn)要構(gòu)造過程驅(qū)動的好處真正規(guī)范團隊開發(fā)!SCM的過程驅(qū)動11/1/2022101過程驅(qū)動的好處真正規(guī)范團隊開發(fā)!SCM的過程驅(qū)動10/238.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/20221028.1軟件配置及其管理的概念第八章?目錄10/23/2VSS的簡單工作原理VSS中的幾個重要概念VSS6.0的一些新增的特征和功能VSS6.0解決方案
MicrosoftVSS6.0介紹
11/1/2022103VSS的簡單工作原理MicrosoftVSS6.0介紹特點:功能:
PVCS介紹
11/1/2022104特點:PVCS介紹10/23/2022104特點:推進(jìn)并行開發(fā)強有力的版本控制透明的工作區(qū)管理有效的build管理有彈性的流程管理
功能:1.版本控制2.工作空間管理3.建立管理
4.過程控制
RationalClearCase介紹
11/1/2022105特點:RationalClearCase介紹10/23/新代碼源存儲庫簡單的版本控制評估Client/Server環(huán)境的配置管理工具新開發(fā)11/1/2022106新代碼評估Client/Server環(huán)境的配置管理工具新開新代碼源存儲庫簡單的版本控制新開發(fā)PVCS系列VSS評估Client/Server環(huán)境的配置管理工具11/1/2022107新代碼新開發(fā)PVCS系列評估Client/Server環(huán)境維護模式增加的開發(fā)人員當(dāng)前的開發(fā)QA&測試新代碼源存儲庫簡單的版本控制新開發(fā)PVCS系列VSS部門級開發(fā)評估Client/Server環(huán)境的配置管理工具11/1/2022108維護模式新代碼新開發(fā)PVCS系列部門級開發(fā)評估Cl維護模式增加的開發(fā)人員當(dāng)前的開發(fā)QA&測試ClearCaseContinuusSourceIntegrityPVCS新代碼源存儲庫簡單的版本控制新開發(fā)PVCS系列VSS部門級開發(fā)評估Client/Server環(huán)境的配置管理工具11/1/2022109維護模式ClearCaseContinuus新新代碼源存儲庫簡單的版本控制維護模式增加的開發(fā)人員當(dāng)前的開發(fā)QA&測試新開發(fā)工具IT審核管理報告復(fù)雜的生命周期企業(yè)級開發(fā)ClearCaseContinuusSourceIntegrityPVCS新開發(fā)PVCS系列VSS部門級開發(fā)評估Client/Server環(huán)境的配置管理工具11/1/2022110新代碼維護模式新開發(fā)工具企業(yè)級開發(fā)ClearCaseCCC/Harvest新代碼源存儲庫簡單的版本控制維護模式增加的開發(fā)人員當(dāng)前的開發(fā)QA&測試新開發(fā)工具IT審核管理報告復(fù)雜的生命周期企業(yè)級開發(fā)ClearCaseContinuusSourceIntegrityPVCS新開發(fā)PVCS系列VSS部門級開發(fā)評估Client/Server環(huán)境的配置管理工具11/1/2022111CCC/Harvest新代碼維護模式新開發(fā)工具企業(yè)級
維護模式增加的開發(fā)人員當(dāng)前的開發(fā)QA&測試
新開發(fā)工具IT審核管理報告復(fù)雜的生命周期CCC/Harvest應(yīng)用工具包集成解決方案數(shù)據(jù)倉庫開放的企業(yè)級開發(fā)CCC/Harvest
新代碼源存儲庫簡單的版本控制企業(yè)級開發(fā)ClearCaseContinuusSourceIntegrityPVCS
新開發(fā)PVCS系列VSS部門級開發(fā)評估Client/Server環(huán)境的配置管理工具11/1/2022112維護模式新開發(fā)工具CCC/Harvest應(yīng)用工具包開放問題?11/1/2022113問題?10/23/2022113謝謝!
KeepConnectingInTheFuture
11/1/2022114謝謝!KeepConnectingInTheFut第八章軟件項目的配置管理11/1/2022115第八章軟件項目的配置管理10/23/202218.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/20221168.1軟件配置及其管理的概念第八章?目錄10/23/28.1軟件配置及其管理的概念8.2配置管理活動和流程8.3配置管理需求8.4版本管理8.5變更管理8.6配置狀態(tài)監(jiān)測與報告8.7基于配置管理的軟件項目管理8.8配置管理的技術(shù)手段和工具第八章?目錄11/1/20221178.1軟件配置及其管理的概念第八章?目錄10/23/28.1.1CMM2的配置管理概念8.1.2IEEE的配置管理定義8.1.3配置管理概述8.1.4配置管理活動的作用8.1軟件配置及其管理的概念11/1/20221188.1.1CMM2的配置管理概念8.1軟件配置及其管理的配置的概念配置的概念來自硬件軟件工程師是如何處理接口的?廣而言之:軟件的變化可以發(fā)生在一秒鐘內(nèi)軟件的變化可以發(fā)生在每一秒鐘軟件開發(fā)過程下一秒鐘是不確定的情況將會怎樣?怎么辦?11/1/2022119配置的概念配置的概念來自硬件10/23/20225軟件項目開發(fā)管理的新需求你在一家小公司做軟件工程師,開始的時候,你只有一個人,配了2個助手。你們研究了一種算法(例如:圖象壓縮、數(shù)據(jù)加密等),編寫了一個實現(xiàn)模塊。有一天老板看到了你的演示,認(rèn)為很有市場潛力,可以結(jié)合進(jìn)公司正在給某行業(yè)用戶正在準(zhǔn)備開發(fā)的系統(tǒng)中,成為該系統(tǒng)的核心技術(shù)或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆云南省昆明市祿勸縣一中高三二診模擬考試化學(xué)試卷含解析
- 人工智能在智能交通系統(tǒng)中的應(yīng)用
- 黑龍江省哈爾濱市第十九中學(xué)2025屆高三沖刺模擬化學(xué)試卷含解析
- 河南省重點高中2025屆高三3月份模擬考試化學(xué)試題含解析
- 吉林省通榆縣第一中學(xué)2025屆高考沖刺模擬化學(xué)試題含解析
- 2025年醫(yī)用手套項目發(fā)展計劃
- 2025年異環(huán)磷酰胺合作協(xié)議書
- 宣傳防疫知識工作總結(jié)
- 2025年廢舊材料回收加工項目建設(shè)方案
- 四年級數(shù)學(xué)(四則混合運算帶括號)計算題專項練習(xí)與答案匯編
- T-GRM 102-2024 深色有隔內(nèi)生真菌胞外代謝物應(yīng)用技術(shù)規(guī)程
- 2025年池州職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫有答案
- 2025河北張家口崇禮區(qū)人民陪審員選任40人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 拉森鋼板樁支護施工方案
- 2025年荊門市水務(wù)局事業(yè)單位公開招聘工作人員招聘歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 老年人安全與環(huán)境護理
- 天車安全操作規(guī)程課件
- 2023JGJ 196建筑施工塔式起重機安裝、使用、拆卸安全技術(shù)規(guī)程
- 游戲GS崗前培訓(xùn)
- 華北理工牙體牙髓病學(xué)教案
- 第十八屆“地球小博士”全國地理知識科普競賽題庫(附答案)
評論
0/150
提交評論