專利名稱:用于軟件配置管理的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件工程領(lǐng)域,更具體而言,涉及用于進(jìn)行軟件配置管理的裝置和方法。
背景技術(shù):
在軟件工程領(lǐng)域中,為了完成一個(gè)軟件項(xiàng)目的開發(fā),開發(fā)人員往往要對(duì)程序代碼進(jìn)行多次修改和變更才能確定軟件的最終版本。此外,對(duì)于較大的軟件項(xiàng)目來說,通常會(huì)將軟件項(xiàng)目中相對(duì)獨(dú)立的功能特性分配到項(xiàng)目團(tuán)隊(duì)中的多個(gè)成員進(jìn)行并行開發(fā),也就是每個(gè)開發(fā)人員針對(duì)自己負(fù)責(zé)的功能特性進(jìn)行開發(fā)和修改,然后項(xiàng)目管理者對(duì)各個(gè)開發(fā)人員開發(fā)的功能特性進(jìn)行合并,由此協(xié)作完成一個(gè)軟件項(xiàng)目。在這樣的軟件開發(fā)過程中,由于多個(gè)開發(fā)人員對(duì)軟件不同功能特性進(jìn)行多次變更,這樣的變更很容易造成項(xiàng)目中軟件開發(fā)人員之間的混亂,因此需要專業(yè)的工具來進(jìn)行軟件開發(fā)的管理。 軟件配置管理(Software Configuration Management, SCM)是在軟件開發(fā)過程中對(duì)軟件變更進(jìn)行標(biāo)識(shí)、組織和控制的技術(shù)。具體地,SCM的主要功能包括版本控制、變更控制、狀態(tài)報(bào)告等。版本控制是SCM的核心功能。在該功能下,所有置于配置庫中的元素都會(huì)被自動(dòng)賦以版本的標(biāo)識(shí),并保證版本命名的唯一性。版本在生成過程中,依照設(shè)定的使用模型自動(dòng)分支、演進(jìn)。也就是說,一旦檢入到配置庫中,軟件開發(fā)過程中產(chǎn)生的任何制品(artifact)(包含計(jì)算機(jī)程序源文件、程序的描述文檔和其他數(shù)據(jù))都會(huì)自動(dòng)獲得唯一的版本標(biāo)識(shí)。對(duì)制品進(jìn)行的任何變更會(huì)按照演進(jìn)的版本標(biāo)識(shí)進(jìn)行索引和管理。在對(duì)各個(gè)制品做出了識(shí)別,并對(duì)其進(jìn)行了版本管理之后,如何保證它們?cè)陂_發(fā)過程中處于受控的狀態(tài),并在任何情況下都能迅速恢復(fù)到任一歷史狀態(tài)成為SCM的另一重要任務(wù)。這就要進(jìn)行變更控制。變更控制的核心可以理解為基線的建立和不斷推進(jìn)的過程。根據(jù)IEEE的定義,“基線”是指一個(gè)已經(jīng)被正式評(píng)審和批準(zhǔn)的規(guī)格或產(chǎn)品,它因此作為進(jìn)一步開發(fā)的基礎(chǔ),并且必須通過正式的變更流程來變更。因此,對(duì)于配置庫中的各個(gè)基線控制項(xiàng),應(yīng)該根據(jù)其基線的位置和狀態(tài)來設(shè)置相應(yīng)的訪問權(quán)限。一般來說,基線版本之前的各個(gè)版本都會(huì)處于被鎖定的狀態(tài)。如需要對(duì)它們進(jìn)行變更,則通過審核訪問權(quán)限、測試新基線、審核制品變化等流程來對(duì)這樣的變更進(jìn)行控制。此外,SCM還包括狀態(tài)報(bào)告的功能,也就是,根據(jù)制品操作數(shù)據(jù)庫中的記錄來報(bào)告軟件開發(fā)活動(dòng)的進(jìn)展情況。尤其是在發(fā)生變更的情況下,SCM需要將所發(fā)生的變更報(bào)告給有關(guān)人員。通過SCM的上述功能,以版本的形式對(duì)軟件開發(fā)過程進(jìn)行追蹤和管理,由此減少錯(cuò)誤,提高效率。常用的SCM工具包括ClearCase,CVS, Endevor,RTCz等。另一方面,在軟件開發(fā)過程中,開發(fā)人員生成的軟件制品之間通常存在緊密關(guān)聯(lián),例如調(diào)用和被調(diào)用關(guān)系。當(dāng)開發(fā)人員修改一段源代碼,使得一個(gè)制品發(fā)生變更時(shí),與此制品相關(guān)聯(lián)的其他制品也必須進(jìn)行相應(yīng)的修改以使得軟件保持一致性。為此,就要進(jìn)行軟件制品的影響分析(Impact Analysis, IA)來獲得制品之間的相關(guān)性(dependency)信息,識(shí)別出代碼改變的潛在后果。進(jìn)行上述影響分析的工具稱為IA工具。一般地,在軟件開發(fā)過程中,開發(fā)人員需要在制品發(fā)生改變之前首先進(jìn)行影響分析。如上所述,SCM工具用于管理軟件的改變,而IA工具用于管理改變的后果,這兩種工具具有緊密的關(guān)聯(lián)。許多SCM產(chǎn)品也提供了 IA功能。總體來說,IA功能主要通過以下兩者途徑來提供中央IA庫和專有IA庫。圖IA示出現(xiàn)有技術(shù)中中央IA庫的架構(gòu)。對(duì)于中央IA庫來說,IA相關(guān)性數(shù)據(jù)基于特定分支的基線而建立,并周期性地進(jìn)行更新。所有開發(fā)人員和其他用戶,例如圖I中的用戶I到用戶n,都使用中央IA庫來查詢相關(guān)性信息。然而,該方案的不足在干,由于開發(fā)人員可以在其自己的分支中對(duì)產(chǎn)品進(jìn)行修改,而這樣的修改卻不能即時(shí)反映在中央IA庫中,因此IA數(shù)據(jù)并不是對(duì)于所有用戶都是最新的和準(zhǔn)確的。此外,由于中央IA庫基于特定基線而建立,如果用戶工作于其他基線,IA數(shù)據(jù)不再準(zhǔn)確。
圖IB示出現(xiàn)有技術(shù)中專有IA庫的架構(gòu)。如圖所示,在專有IA庫的方案中,所有用戶構(gòu)建自己的IA庫,用于存儲(chǔ)相關(guān)性數(shù)據(jù)。該方案的不足在于,首先,IA數(shù)據(jù)的構(gòu)建比較緩慢,特別是在源文件較多的情況下;此外,所有用戶都需要構(gòu)建自己的IA相關(guān)性數(shù)據(jù),這意味著大量的重復(fù)勞動(dòng)和資源浪費(fèi)。此外,現(xiàn)有IA工具還存在不能復(fù)原IA數(shù)據(jù)的問題。例如,當(dāng)軟件產(chǎn)品從版本I更新到版本2吋,隨著基線的推迸,IA工具也對(duì)IA數(shù)據(jù)進(jìn)行更新,以提供當(dāng)前版本2下各個(gè)制品之間的相關(guān)性信息。如果此時(shí)管理人員發(fā)現(xiàn)版本2存在一定問題,想要恢復(fù)到版本1,由于SCM工具將各個(gè)軟件制品按照版本進(jìn)行管理,因此,軟件產(chǎn)品可以很容易地恢復(fù)到期望的版本。然而,IA工具在對(duì)數(shù)據(jù)進(jìn)行更新之后無法保存之前的數(shù)據(jù),也就無法恢復(fù)到之前版本下的相關(guān)性信息,只能重新對(duì)版本I的制品進(jìn)行分析來再次獲得IA數(shù)據(jù)。因此,如上所述,現(xiàn)有IA工具存在諸多不足,有待進(jìn)行改迸。
發(fā)明內(nèi)容
鑒于以上提出的問題,提出本發(fā)明,g在提供用于軟件配置管理的裝置和方法,用以解決至少ー個(gè)現(xiàn)有技術(shù)中存在的問題。根據(jù)本發(fā)明ー個(gè)方面,提供ー種用于軟件配置管理的裝置,包括信息生成単元,配置為生成與制品對(duì)應(yīng)的相關(guān)性信息;版本生成単元,配置為,響應(yīng)于所述相關(guān)性信息的生成,為該相關(guān)性信息生成與制品對(duì)應(yīng)的版本信息;信息更新単元,配置為,響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息;以及版本更新単元,配置為,響應(yīng)于所述相關(guān)性信息的更新,為更新的相關(guān)性信息賦予新的版本信息,使該新的版本信息對(duì)應(yīng)于已更新的制品的版本信息。根據(jù)本發(fā)明另一方面,提供ー種用于軟件配置管理的方法,包括生成與制品對(duì)應(yīng)的相關(guān)性信息;響應(yīng)于所述相關(guān)性信息的生成,為該相關(guān)性信息生成與制品對(duì)應(yīng)的版本信息;響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息;以及響應(yīng)于所述相關(guān)性信息的更新,為更新的相關(guān)性信息賦予新的版本信息,使該新的版本信息對(duì)應(yīng)于已更新的制品的版本信息。通過本發(fā)明實(shí)施例的裝置和方法,可以將用于進(jìn)行IA分析的相關(guān)性信息以版本的形式進(jìn)行存儲(chǔ)和管理,從而提高軟件開發(fā)過程的管理效率。
圖IA示出現(xiàn)有技術(shù)中中央IA庫的架構(gòu);圖IB示出現(xiàn)有技術(shù)中專有IA庫的架構(gòu);圖2示出根據(jù)本發(fā)明一個(gè)實(shí)施例的用于軟件配置管理的裝置的框圖;圖3示出根據(jù)本發(fā)明一個(gè)實(shí)施例的生成相關(guān)性信息的例子;圖4示出根據(jù)本發(fā)明一個(gè)實(shí)施例的信息更新單元的子結(jié)構(gòu);圖5示出根據(jù)本發(fā)明一個(gè)實(shí)施例的嵌套查詢的示意圖; 圖6示出根據(jù)本發(fā)明一個(gè)實(shí)施例的用于軟件配置管理的方法的流程圖;以及圖7示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算系統(tǒng)100的框圖。
具體實(shí)施例方式下面結(jié)合具體例子描述本發(fā)明的實(shí)施方式。應(yīng)該理解,出于說明目的而描述的例子不應(yīng)作為對(duì)本發(fā)明實(shí)質(zhì)范圍的限制。下面對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行詳細(xì)描述。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的多個(gè)方面可以體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的多個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即,可以是完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等)、或者本文一般稱為“電路”、“模塊”或“系統(tǒng)”的軟件部分與硬件部分的組合。此外,本發(fā)明的多個(gè)方面還可以采取體現(xiàn)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可用的程序碼。可以使用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電的、磁的、光的、電磁的、紅外線的、或半導(dǎo)體的系統(tǒng)、裝置、器件或任何以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括以下有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任何合適的組合。在本文件的語境中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形的介質(zhì),該程序被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計(jì)算機(jī)可讀的信號(hào)介質(zhì)可包括在基帶中或者作為載波一部分傳播的、其中體現(xiàn)計(jì)算機(jī)可讀的程序碼的傳播的數(shù)據(jù)信號(hào)。這種傳播的信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或任何以上合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以是并非為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、但是能發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序的任何計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于——無線、電線、光纜、RF等等,或者任何合適的上述組合。用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序碼,可以以一種或多種程序設(shè)計(jì)語言的任何組合來編寫,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言-諸如Java、Smalltalk、C++之類,還包括常規(guī)的過程式程序設(shè)計(jì)語言-諸如“C”程序設(shè)計(jì)語言或類似的程序設(shè)計(jì)語言。程序碼可以完全地在用戶的計(jì)算上執(zhí)行、部分地在用戶的計(jì)算機(jī)上執(zhí)行、作為ー個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶的計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一種情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任何種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶的計(jì)算機(jī),或者,可以(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng))連接到外部計(jì)算機(jī)。以下參照按照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的多個(gè)方面。要明白的是,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出ー種機(jī)器,使得通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行的這些指令,產(chǎn)生實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。 也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能指令計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生ー個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品。也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上,使得在計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令就提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。下面參照附圖,結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行描述。這樣的描述僅僅出于說明目的,而不意圖對(duì)本發(fā)明的范圍進(jìn)行限制。在本發(fā)明的多個(gè)實(shí)施例中,將IA功能引入并集成到軟件配置管理SCM工具中,使得IA數(shù)據(jù)如同軟件開發(fā)過程中的制品一祥,也被版本化地存儲(chǔ)和管理。上述制品包含軟件開發(fā)過程中產(chǎn)生的各種產(chǎn)物,例如程序源文件、模型、描述文件等。只要一個(gè)制品與其他制品之間存在關(guān)聯(lián),該制品的改變有可能引起其他制品的改變,就可以對(duì)這樣的制品實(shí)施本發(fā)明實(shí)施例的方案。圖2示出根據(jù)本發(fā)明一個(gè)實(shí)施例的用于軟件配置管理的裝置的框圖。如圖所示,SCM裝置20包括信息生成単元22,配置為生成與制品對(duì)應(yīng)的相關(guān)性信息;版本生成単元24,配置為,響應(yīng)于所述相關(guān)性信息的生成,為該相關(guān)性信息生成與制品對(duì)應(yīng)的版本信息;信息更新単元26,配置為,響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息;以及版本更新単元28,配置為,響應(yīng)于所述相關(guān)性信息的更新,為更新的相關(guān)性信息賦予新的版本信息,使該新的版本信息對(duì)應(yīng)于已更新的制品的版本信息。具體地,信息生成単元22用于生成與初始制品對(duì)應(yīng)的初始相關(guān)性信息。在利用SCM工具進(jìn)行軟件開發(fā)的典型過程中,開發(fā)人員會(huì)將初始制品提交給管理人員,由管理人員審核之后存儲(chǔ)到SCM裝置的特定存儲(chǔ)庫中,也就是在存儲(chǔ)庫中創(chuàng)建初始制品。在一個(gè)實(shí)施例中,響應(yīng)于上述初始制品的創(chuàng)建,信息生成単元22自動(dòng)分析所創(chuàng)建的制品,從而生成對(duì)應(yīng)的相關(guān)性信息?;蛘?,在另ー個(gè)實(shí)施例中,信息生成単元22在管理人員或用戶的觸發(fā)下,開始分析特定制品,從而生成對(duì)應(yīng)的相關(guān)性信息。
信息生成單元22可以以多種方式生成相關(guān)性信息。在一個(gè)實(shí)施例中,信息生成單元22調(diào)用現(xiàn)有IA工具中的IA數(shù)據(jù)生成引擎,由此生成相關(guān)性信息。在另一個(gè)實(shí)施例中,信息生成單元22包含專有的生成模塊,由該模塊生成與特定制品對(duì)應(yīng)的相關(guān)性信息。相關(guān)性信息可以包含多方面的內(nèi)容,包括但不限于以下中的一項(xiàng)或多項(xiàng)該制品引用了哪些文件;制品引用了哪些變量;制品調(diào)用了哪些函數(shù);哪些制品引用了該制品;哪些制品引用了該制品中的變量,等等。以下結(jié)合源文件的例子描述生成相關(guān)性信息的具體方式。具體地,在一個(gè)例子中,信息生成單元22通過靜態(tài)掃描生成相關(guān)性信息。在靜態(tài)掃描方式中,信息生成單元22掃描靜態(tài)源文件中的源代碼,通過對(duì)源代碼進(jìn)行分析來獲取該源文件與其他制品的相關(guān)性信息。圖3示出根據(jù)本發(fā)明一個(gè)實(shí)施例的生成相關(guān)性信息的例子。如圖3所示,源文件在300部分將該文件命名為filel,在310部分引用了兩個(gè)文件headerl和header2,在320部分定義了函數(shù)funcl。針對(duì)這樣的源文件,信息生成單元22可以掃描各個(gè)部分的源代碼,通過對(duì)標(biāo)識(shí)性代碼的識(shí)別和分析,可以獲得文件之間的相關(guān)性數(shù)據(jù)。例如,通過對(duì)310部分的識(shí)別和分析,可以獲得340部分所示的相關(guān)性信息,其中包含了源文件引用的文件數(shù)目 (count =“2”),所引用的文件的路徑(file =”/include/headerl ”/, file = include/header2V)等;通過對(duì)320部分的識(shí)別和分析,可以獲得所定義的函數(shù)funcl與其他文件的相關(guān)性信息,例如,如360部分所示,funcl調(diào)用函數(shù)的數(shù)目為Ucount =”1”),所調(diào)用的函數(shù)名稱為func2,所調(diào)用的函數(shù)的來源為file2,以及,如370部分所示,funcl被調(diào)用的次數(shù)為 O (count = “O”)。在另一個(gè)例子中,信息生成單元22通過程序編譯來生成相關(guān)性信息。本領(lǐng)域技術(shù)人員可以理解,在程序編譯過程中,編譯器會(huì)對(duì)程序代碼進(jìn)行掃描、分析、編譯和轉(zhuǎn)化。通過在程序編譯時(shí)添加特定指令,可以使得編譯器提取出與文件和函數(shù)的引用、調(diào)用相關(guān)的數(shù)據(jù)。信息生成單元22可以捕獲編譯器產(chǎn)生的上述數(shù)據(jù),并將其存儲(chǔ)作為相關(guān)性信息。在另一個(gè)例子中,信息生成單元22通過動(dòng)態(tài)掃描來生成相關(guān)性信息。具體地,信息生成單元22可以在程序運(yùn)行期間,從運(yùn)行時(shí)環(huán)境中動(dòng)態(tài)捕獲該程序?qū)ζ渌募囊茫纱松上嚓P(guān)性信息。以上示例了在具體例子中信息生成單元22生成相關(guān)性信息的方式,然而,可以理解,這樣的示例并不是限制性的。本領(lǐng)域技術(shù)人員在實(shí)際實(shí)踐中可以根據(jù)制品的類型和分析需要采用適當(dāng)方式來生成相關(guān)性信息。對(duì)于生成的相關(guān)性信息,信息生成單元22可以將其存儲(chǔ)為多種形式。在圖3所示的例子中,信息生成單元22獲得XML格式的相關(guān)性信息。在另一個(gè)具體例子中,信息生成單元22可以將相關(guān)性數(shù)據(jù)以數(shù)據(jù)庫表格的形式存儲(chǔ),例如,用表格的每一行存儲(chǔ)一條引用/被引用或調(diào)用/被調(diào)用關(guān)系。在其他例子中,信息生成單元22可以將相關(guān)性數(shù)據(jù)存儲(chǔ)為其他格式,例如文本格式等。在一個(gè)實(shí)施例中,信息生成單元22將相關(guān)性信息存儲(chǔ)為一個(gè)單獨(dú)文件,例如上述的XML文件、數(shù)據(jù)庫表格文件、文本文件等。在另一個(gè)實(shí)施例中,信息生成單元22所生成的相關(guān)性信息并不作為一個(gè)單獨(dú)文件進(jìn)行存儲(chǔ),而是作為輔助信息或描述信息附加到初始制品文件。由此,用戶可以通過查看制品文件的屬性等方式查閱到該相關(guān)性信息。如上所述,信息生成單元22基于對(duì)初始制品文件的分析生成初始相關(guān)性信息。在此基礎(chǔ)上,版本生成單元24為如此生成的初始相關(guān)性信息添加版本信息。如背景技術(shù)部分所述,SCM裝置對(duì)于存入其中的制品進(jìn)行版本化管理。為此,SCM裝置20如常規(guī)SCM工具一祥,會(huì)包含ー個(gè)版本管理模塊,該模塊利用特定算法為各個(gè)制品生成版本信息。由此,當(dāng)在SCM裝置20的存儲(chǔ)庫中創(chuàng)建初始制品文件吋,上述版本管理模塊為初始創(chuàng)建的制品文件建立初始版本信息,例如版本號(hào)vO。一旦信息生成単元22生成與該v0版本的制品文件對(duì)應(yīng)的相關(guān)性信息,本發(fā)明實(shí)施例的版本生成單元24就為該相關(guān)性信息也創(chuàng)建版本信息,并使得該版本信息與制品文件的版本號(hào)v0相對(duì)應(yīng)。在一個(gè)實(shí)施例中,版本生成單元24通過復(fù)用上述版本管理模塊來形成。也就是說,可以基于現(xiàn)有的版本管理模塊進(jìn)行一定修改,使得版本管理模塊將信息生成単元24生成的初始相關(guān)性信息也視為ー個(gè)新創(chuàng)建的制品,由此類似地按照該模塊已有的算法,也就是按照普通制品的版本信息的創(chuàng)建方式,為該初始相關(guān)性信息建立版本信息。在這種情況下,上述修改的版本管理模塊就可以作用為版本生成単元24。 在另ー個(gè)實(shí)施例中,版本生成単元24獨(dú)立于上述版本管理模塊實(shí)現(xiàn)版本信息的生成。具體地,版本生成単元24可以采用與版本管理模塊不同的方式,來為初始相關(guān)性信息生成初始版本信息。在ー個(gè)具體例子中,版本生成単元24直接參照相關(guān)性信息所基于的制品文件的版本號(hào)vO,將同樣的版本號(hào)賦以對(duì)應(yīng)的相關(guān)性信息。在另ー個(gè)例子中,版本生成単元24在制品文件版本號(hào)vO的基礎(chǔ)上添加特定后綴,例如vO-O,由此為相關(guān)性信息生成與制品文件對(duì)應(yīng)的版本信息?;蛘?,在一個(gè)例子中,版本生成単元24采用與制品文件不同的算法為相關(guān)性信息生成版本信息。此外,本領(lǐng)域技術(shù)人員在閱讀本說明書后還可以想到其他的版本信息生成方式。無論是復(fù)用已有的模塊還是作為新的単元,無論采用何種方式和算法,所生成的版本信息應(yīng)至少滿足以下條件首先,每項(xiàng)相關(guān)性信息應(yīng)具有其獨(dú)有的版本信息,并且,相關(guān)性信息的版本信息和對(duì)應(yīng)的制品文件的版本信息之間存在關(guān)聯(lián)和對(duì)應(yīng),關(guān)聯(lián)和對(duì)應(yīng)的規(guī)則可以預(yù)先規(guī)定。也就是說,如果相關(guān)性信息的版本信息與制品文件的版本信息相同(例如,由于復(fù)用已有的模塊),那么它們之間的對(duì)應(yīng)關(guān)系很容易確定;如果上述兩個(gè)版本信息并不相同,那么就要求,根據(jù)預(yù)先規(guī)定的對(duì)應(yīng)規(guī)則,能夠從制品文件的版本信息確定出對(duì)應(yīng)的相關(guān)性信息的版本信息。因此,通過以上描述的信息生成單元22和版本生成單元24,可以在SCM裝置20中為初始制品文件創(chuàng)建初始的相關(guān)性信息,并為該初始相關(guān)性信息賦以初始版本信息。不過,軟件制品并不會(huì)一直停留在初始版本不變,而是會(huì)經(jīng)由開發(fā)人員和管理人員不斷地修改和更新,這也正是SCM管理的重要任務(wù)所在。那么,在引入了相關(guān)性信息的情況下,當(dāng)軟件制品發(fā)生變化和更新吋,SCM裝置20還應(yīng)對(duì)相關(guān)性信息及其變更也進(jìn)行類似的管理。 為此,SCM裝置20包括信息更新單元26,配置為響應(yīng)于上述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息。在一個(gè)實(shí)施例中,SCM裝置20為用戶提供ー個(gè)交互接ロ,例如一個(gè)選項(xiàng),當(dāng)用戶完成一個(gè)軟件制品的更新時(shí),可以通過點(diǎn)擊該選項(xiàng)來確認(rèn)或保存該更新。通過檢測對(duì)該交互接ロ的操作,信息更新単元26可以獲知制品的更新,從而更新對(duì)應(yīng)的相關(guān)性信息。在另ー個(gè)實(shí)施例中,信息更新単元26 —旦檢測到制品的版本信息的改變,就更新與該制品對(duì)應(yīng)的相關(guān)性信息。可以理解,信息更新単元26也可以通過其他方式檢測或者獲知制品的更新,例如定期掃描制品、接收變更報(bào)告等。一旦SCM裝置20中存儲(chǔ)的制品進(jìn)行了更新,信息更新單元26就被觸發(fā)來更新相應(yīng)的相關(guān)性信息。信息更新單元26可以采用多種方式來更新相關(guān)性信息。在一個(gè)實(shí)施例中,信息更新單元26重新分析已更新的制品文件,再次生成相關(guān)性信息,將其作為更新的相關(guān)性信息。對(duì)已更新的制品文件的分析可采用如前所述的任意方式,例如靜態(tài)掃描、程序編譯等,該方式可以與前述的信息生成單元22采用的方式相同或不同。在另一種實(shí)施例中,信息更新單元26獲得更新前后的制品文件的差異部分,基于該差異部分對(duì)原有的相關(guān)性信息進(jìn)行修改,由此得到更新的相關(guān)性信息。對(duì)于更新的相關(guān)性信息,信息更新單元26可以將其全部內(nèi)容存儲(chǔ)為一個(gè)獨(dú)立文件,也可以僅存儲(chǔ)其與原始相關(guān)性信息相比的差異部分。一旦信息更新單元26產(chǎn)生了更新的相關(guān)性信息,版本更新單元28就更新該相關(guān)性信息的版本信息,使得更新的版本信息對(duì)應(yīng)于已更新的制品的版本信息。具體地,版本更新單元28可以采用與版本生成單元24類似的方式,為更新的相關(guān)性信息生成新的版本信 息。如前所述,在更新之前,相關(guān)性信息的版本信息和對(duì)應(yīng)的制品文件的版本信息之間按照一定規(guī)則存在關(guān)聯(lián)和對(duì)應(yīng);只要版本更新單元28對(duì)版本信息的更新仍然遵從上述規(guī)則,就可以使得更新后的版本信息對(duì)應(yīng)于已更新的制品文件的版本信息,也就是保持兩個(gè)版本信息的對(duì)應(yīng)關(guān)系。在一個(gè)實(shí)施例中,信息更新單元26和版本更新單元28通過復(fù)用現(xiàn)有SCM裝置中已有的檢出(checkout)和檢入(checkin)機(jī)制來實(shí)現(xiàn)相關(guān)性信息及其版本信息的更新。具體地,如本領(lǐng)域技術(shù)人員所知,SCM裝置20中的軟件制品通常通過檢出和檢入過程來完成更新。當(dāng)用戶想要修改一個(gè)軟件制品時(shí),他首先通過SCM裝置20對(duì)其權(quán)限的核查,而將該制品從存儲(chǔ)庫中檢出。一旦檢出,SCM裝置20會(huì)修改該制品的狀態(tài)標(biāo)記,例如將其標(biāo)記為更新中。在檢出之后,用戶可以對(duì)上述制品進(jìn)行修改。在完成修改之后,用戶需要通過檢入的步驟來將更新的制品提交到SCM裝置20的存儲(chǔ)庫中。一旦將更新的制品檢入到存儲(chǔ)庫,SCM裝置20會(huì)將該制品的狀態(tài)標(biāo)記進(jìn)行修改,例如將其標(biāo)記為只讀。并且,響應(yīng)于該檢入動(dòng)作,SCM裝置20中的版本管理模塊就會(huì)認(rèn)定制品進(jìn)行了更新,因此會(huì)對(duì)該制品的版本信息進(jìn)行更新,例如從初始的版本號(hào)vO升級(jí)為vl。與此對(duì)應(yīng)地,在一個(gè)實(shí)施例中,信息更新單元26包括與上述檢出檢入相關(guān)的子模塊。圖4示出根據(jù)本發(fā)明一個(gè)實(shí)施例的信息更新單元的子結(jié)構(gòu)。如圖所示,信息更新單元26進(jìn)一步包括檢出模塊261,更新模塊263和檢入模塊265。檢出模塊261配置為,響應(yīng)于制品的檢出,將該制品對(duì)應(yīng)的相關(guān)性信息檢出;更新模塊263配置為,基于更新的制品,對(duì)相關(guān)性信息進(jìn)行更新;檢入模塊265配置為,響應(yīng)于更新的制品的檢入,將更新的相關(guān)性信息檢入。具體地,檢出模塊261使得相關(guān)性信息與對(duì)應(yīng)的制品一起被檢出,從而使得相關(guān)性信息的狀態(tài)也被SCM裝置20識(shí)別為更新中。接著,響應(yīng)于制品的更新(例如通過接收用戶對(duì)特定交互接口的操作),更新模塊263對(duì)相關(guān)性信息進(jìn)行更新,更新方式如前所述。然后,一旦用戶將更新的制品檢入到SCM裝置20,檢入模塊265就將與該更新的制品對(duì)應(yīng)的更新的相關(guān)性信息同步檢入到裝置20中?;蛘?,在另一個(gè)實(shí)施例中,更新模塊263和檢入模塊265可以組合一個(gè)更新檢入模塊,從而將已更新制品的檢入同時(shí)作為對(duì)相關(guān)性信息進(jìn)行更新的觸發(fā)條件。也就是說,利用該更新檢入模塊,一旦檢測到已更新制品的檢入,就基于該已更新制品來更新對(duì)應(yīng)的相關(guān)性信息,并將更新的相關(guān)性信息檢入到SCM裝置20。在信息更新單元26引入相關(guān)性信息的檢出和檢入功能的基礎(chǔ)上,版本更新單元28就可以完全復(fù)用SCM裝置20中已有的版本管理模塊。隨著相關(guān)性信息的檢入,版本管理模塊如對(duì)待其他軟件制品一祥,響應(yīng)于該檢入動(dòng)作而更新檢入文件的版本信息。也就是說,版本管理模塊按照一般制品的版本信息更新方式相應(yīng)地更新相關(guān)性信息的版本信息。由此,已有的版本管理模塊作用為版本更新単元28,自動(dòng)地為更新的相關(guān)性信息賦予了新的版本信息。通過以上各個(gè)實(shí)施例描述的SCM裝置20,用于進(jìn)行IA分析的相關(guān)性信息也以版本的形式進(jìn)行存儲(chǔ)和管理。并且,每當(dāng)SCM存儲(chǔ)庫中的制品發(fā)生了改變,其對(duì)應(yīng)的相關(guān)性信息也會(huì)得到更新,并且相關(guān)性信息的版本也隨之變化,以與制品的版本信息保持對(duì)應(yīng)。這使得開發(fā)人員和管理人員能夠獲得任一版本的相關(guān)性信息。此外,在并行協(xié)作開發(fā)環(huán)境下,上述裝置20很好地實(shí)現(xiàn)了相關(guān)性信息的復(fù)用。具體地,在上述開發(fā)環(huán)境下,每個(gè)開發(fā)人員基于項(xiàng)目的主干創(chuàng)建自己的專有分支。在創(chuàng)建了分支之后,該分支下的制品和相應(yīng)的相關(guān)性信息都可以從主干繼承獲得。由此,主干的相關(guān)性信息可以在各個(gè)開發(fā)人員之間共享和復(fù)用。并且,在開發(fā)人員更新各個(gè)軟件制品時(shí),對(duì)應(yīng)的相關(guān)性信息也得到更新。當(dāng)開發(fā)人員將修改的制品從其專有分支提交到主干時(shí),相關(guān)性信息也被合并并存儲(chǔ)到對(duì)應(yīng)的庫中,使得在不改變已有的并行開發(fā)體系架構(gòu)的情況下,在SCM裝置中維持更新而準(zhǔn)確的相關(guān)性信息。 為了使得SCM裝置20更好地與用戶交互,在一個(gè)實(shí)施例中,SCM裝置20還包括查詢單元,用于根據(jù)用戶請(qǐng)求,對(duì)制品的相關(guān)性信息進(jìn)行查詢。具體地,查詢單元可以提供一個(gè)接ロ,用于接收用戶的查詢請(qǐng)求,并將查詢結(jié)果通過該接ロ返回給用戶。在一個(gè)實(shí)施例中,用戶的請(qǐng)求可以是直接查詢請(qǐng)求,例如請(qǐng)求查閱特定版本的制品所對(duì)應(yīng)的相關(guān)性信息,或者直接請(qǐng)求查閱特定版本的相關(guān)性信息。這時(shí),查詢單元基于制品名稱和/或版本信息在存儲(chǔ)庫中進(jìn)行檢索,從而獲得所請(qǐng)求的相關(guān)性信息,并將其通過接ロ呈現(xiàn)給用戶。在一個(gè)實(shí)施例中,用戶的請(qǐng)求可以是嵌套查詢請(qǐng)求,例如請(qǐng)求查詢受特定制品影響的所有其他制品,包括直接影響和間接影響。此時(shí),查詢單元首先檢索并分析所請(qǐng)求的特定制品的相關(guān)性信息,從中可以獲知該制品以及其中的變量和函數(shù)被哪些制品所引用或調(diào)用。對(duì)于每個(gè)被確定為引用或調(diào)用上述特定制品的其他制品,查詢單元進(jìn)而對(duì)該制品的相關(guān)性信息進(jìn)行檢索和分析,繼續(xù)獲得受該制品直接影響的制品,直到所查閱的制品沒有被其他任何制品引用。圖5示出根據(jù)本發(fā)明一個(gè)實(shí)施例的嵌套查詢的示意圖。如圖5所示,文件I中定義了函數(shù)funcl, fund調(diào)用了文件2中的函數(shù)func2 ;通過分析文件2可以看至IJ,文件2中的函數(shù)func2又調(diào)用了文件3中的函數(shù)func3。圖5中的實(shí)線箭頭400,410示出了以上的調(diào)用關(guān)系。這樣的調(diào)用關(guān)系分別記錄在文件1-3各自的相關(guān)性信息中。如果用戶想要知道文件3的變更會(huì)影響哪些文件,那么就需要沿著與上述實(shí)線所示方向相反的虛線箭頭方向進(jìn)行回溯,從而確定受到文件3影響的其他文件。具體地,查詢單元通過檢索并分析文件3的相關(guān)性信息可以獲知,文件3中的func3被文件2所調(diào)用,于是查詢單元進(jìn)而檢索并分析文件2的相關(guān)性信息。當(dāng)查詢過程進(jìn)行到文件I吋,由于發(fā)現(xiàn)文件I沒有被其他文件引用,查詢單元就可以停止查詢和檢索,并將以上分析得到的結(jié)果返回給用戶。盡管在以上例子中,直到追溯到“根”制品,也就是沒有被任何其他制品引用的制品,查詢過程才停止,但是在一個(gè)實(shí)施例中,查詢單元還可以接受用戶對(duì)嵌套查詢的查詢步數(shù)的設(shè)定,從而使得查詢過程終止于特定引用層級(jí)處。
通過以上描述的SCM裝置20,相關(guān)性信息被版本化地存儲(chǔ)和管理,并可以方便地進(jìn)行檢索和查詢。由此,開發(fā)人員和管理人員可以方便地獲得更新、準(zhǔn)確、可恢復(fù)的相關(guān)性信息?;谕话l(fā)明構(gòu)思,本發(fā)明還提供了進(jìn)行軟件配置管理的方法。圖6示出根據(jù)本發(fā)明ー個(gè)實(shí)施例的用于軟件配置管理的方法的流程圖。如圖所示,用于SCM的方法包括步驟62,用于生成與制品對(duì)應(yīng)的相關(guān)性信息;步驟64,在該步驟中,響應(yīng)于所述相關(guān)性信息的生成,為該相關(guān)性信息生成與制品對(duì)應(yīng)的版本信息;步驟66,在該步驟中,響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息;以及步驟68,在該步驟中,響應(yīng)于所述相關(guān)性信息的更新,為更新的相關(guān)性信息賦予新的版本信息,使該新的版本信息對(duì)應(yīng)于已更新的制品的版本信息。在一個(gè)實(shí)施例中,步驟66進(jìn)ー步包括檢出步驟,更新步驟和檢入步驟。在檢出步驟中,響應(yīng)于制品的檢出,將該制品對(duì)應(yīng)的相關(guān)性信息檢出;在更新步驟中,基于更新的制 品,對(duì)相關(guān)性信息進(jìn)行更新;在檢入步驟中,響應(yīng)于更新的制品的檢入,將更新的相關(guān)性信息檢入?;蛘?,在另ー個(gè)實(shí)施例中,更新步驟和檢入模塊可以組合一個(gè)更新檢入步驟,在該步驟中,一旦檢測到已更新制品的檢入,就基于該已更新制品來更新對(duì)應(yīng)的相關(guān)性信息,并將更新的相關(guān)性信息檢入。在一個(gè)實(shí)施例中,用于SCM的方法還包括查詢步驟,用于根據(jù)用戶請(qǐng)求,對(duì)制品的相關(guān)性信息進(jìn)行查詢。用戶的請(qǐng)求可以是直接查詢請(qǐng)求,也可以是嵌套查詢請(qǐng)求。在嵌套查詢的情況下,查詢步驟包括,檢索并分析所請(qǐng)求的特定制品的相關(guān)性信息,從中獲得引用或調(diào)用該特定制品的其他制品;對(duì)于所述其他制品的每ー個(gè),檢索并分析其相關(guān)性信息,直到所獲得的制品沒有被其他任何制品引用。用于SCM的方法的具體實(shí)現(xiàn)方式可以參照上述對(duì)SCM裝置20的描述,在此不再贅述。通過以上方法,可以將軟件開發(fā)過程中與制品相關(guān)聯(lián)的相關(guān)性信息進(jìn)行版本化存儲(chǔ)和管理,便于開發(fā)人員和管理人員的獲取和分析。以上所述的SCM裝置20和用于SCM的方法可以利用計(jì)算系統(tǒng)來實(shí)現(xiàn)。圖7示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算系統(tǒng)100的框圖。如所示,計(jì)算機(jī)系統(tǒng)100可以包括CPU(中央處理單元)101、RAM(隨機(jī)存取存儲(chǔ)器)102、R0M(只讀存儲(chǔ)器)103、系統(tǒng)總線104、硬盤控制器105、鍵盤控制器106、串行接ロ控制器107、并行接ロ控制器108、顯示控制器109、硬盤110、鍵盤111、串行外部設(shè)備112、并行外部設(shè)備113和顯示器114。在這些設(shè)備中,與系統(tǒng)總線104耦合的有CPU 10URAM 102,ROM 103、硬盤控制器105、鍵盤控制器106、串行控制器107、并行控制器108和顯示控制器109。硬盤110與硬盤控制器105耦合,鍵盤111與鍵盤控制器106耦合,串行外部設(shè)備112與串行接ロ控制器107耦合,并行外部設(shè)備113與并行接ロ控制器108耦合,以及顯示器114與顯示控制器109耦合。應(yīng)當(dāng)理解,圖10所述的結(jié)構(gòu)框圖僅僅為了示例的目的而示出的,而不是對(duì)本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減少某些設(shè)備。附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含ー個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。雖然以上結(jié)合具體實(shí)施例,對(duì)本發(fā)明的各個(gè)裝置和方法進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此。本領(lǐng)域普通技術(shù)人員能夠在說明書教導(dǎo)之下對(duì)本發(fā)明進(jìn)行多種變換、替換 和修改而不偏離本發(fā)明的精神和范圍。應(yīng)該理解,所有這樣的變化、替換、修改仍然落入本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明的保護(hù)范圍由所附權(quán)利要求來限定。
權(quán)利要求
1.ー種用于軟件配置管理的裝置,包括 信息生成単元,配置為生成與制品對(duì)應(yīng)的相關(guān)性信息; 版本生成単元,配置為,響應(yīng)于所述相關(guān)性信息的生成,為該相關(guān)性信息生成與制品對(duì)應(yīng)的版本信息; 信息更新単元,配置為,響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息;以及 版本更新単元,配置為,響應(yīng)于所述相關(guān)性信息的更新,為更新的相關(guān)性信息賦予新的版本信息,使該新的版本信息對(duì)應(yīng)于已更新的制品的版本信息。
2.根據(jù)權(quán)利要求I所述的裝置,其中所述信息生成単元配置為,通過以下方式中的一項(xiàng)或多項(xiàng)來生成相關(guān)性信息靜態(tài)掃描; 程序編譯;以及 動(dòng)態(tài)掃描。
3.根據(jù)權(quán)利要求I或2所述的裝置,其中所述版本生成単元配置為,將生成的相關(guān)性信息視為ー種制品,按照制品的版本信息的創(chuàng)建方式為相關(guān)性信息生成版本信息。
4.根據(jù)權(quán)利要求I或2所述的裝置,其中所述版本生成単元配置為,采用與制品的版本信息的創(chuàng)建方式不同的方式為所述相關(guān)性信息生成版本信息。
5.根據(jù)權(quán)利要求I或2所述的裝置,其中所述信息更新単元配置為,通過以下方式中的一項(xiàng)或多項(xiàng)檢測所述制品的更新 檢測對(duì)交互接ロ的操作; 檢測所述制品的版本信息的改變; 定期掃描制品; 接收變更報(bào)告。
6.根據(jù)權(quán)利要求I或2所述的裝置,其中所述信息更新単元配置為,重新分析已更新的制品,再次生成相關(guān)性信息作為更新的相關(guān)性信息。
7.根據(jù)權(quán)利要求I或2所述的裝置,其中所述信息更新単元配置為,獲得更新前后的制品的差異部分,基于該差異部分對(duì)相關(guān)性信息進(jìn)行修改,由此得到更新的相關(guān)性信息。
8.根據(jù)權(quán)利要求I所述的裝置,其中所述信息更新単元包括 檢出模塊,配置為,響應(yīng)于制品的檢出,將該制品對(duì)應(yīng)的相關(guān)性信息檢出; 更新模塊,配置為,基于更新的制品,對(duì)相關(guān)性信息進(jìn)行更新;以及 檢入模塊,配置為,響應(yīng)于更新的制品的檢入,將更新的相關(guān)性信息檢入。
9.根據(jù)權(quán)利要求I所述的裝置,其中所述信息更新単元包括 檢出模塊,配置為,響應(yīng)于制品的檢出,將該制品對(duì)應(yīng)的相關(guān)性信息檢出;以及更新檢入模塊,配置為,響應(yīng)于更新的制品的檢入,基于該更新的制品來更新對(duì)應(yīng)的相關(guān)性信息,并將更新的相關(guān)性信息檢入。
10.根據(jù)權(quán)利要求8或9所述的裝置,其中所述版本更新単元配置為,響應(yīng)于相關(guān)性信息的檢入,按照制品的版本信息更新方式相應(yīng)地更新所述相關(guān)性信息的版本信息。
11.根據(jù)權(quán)利要求I或2所述的裝置,還包括查詢單元,配置為根據(jù)用戶請(qǐng)求,對(duì)制品的相關(guān)性信息進(jìn)行查詢,所述用戶請(qǐng)求包括直接查詢請(qǐng)求和/或嵌套查詢請(qǐng)求。
12.ー種用于軟件配置管理的方法,包括 生成與制品對(duì)應(yīng)的相關(guān)性信息; 響應(yīng)于所述相關(guān)性信息的生成,為該相關(guān)性信息生成與制品對(duì)應(yīng)的版本信息; 響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息;以及響應(yīng)于所述相關(guān)性信息的更新,為更新的相關(guān)性信息賦予新的版本信息,使該新的版本信息對(duì)應(yīng)于已更新的制品的版本信息。
13.根據(jù)權(quán)利要求12所述的方法,其中所述生成與制品對(duì)應(yīng)的相關(guān)性信息包括,通過以下方式中的ー項(xiàng)或多項(xiàng)來生成相關(guān)性信息 靜態(tài)掃描; 程序編譯;以及 動(dòng)態(tài)掃描。
14.根據(jù)權(quán)利要求12或13所述的方法,其中響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息包括,通過以下方式中的一項(xiàng)或多項(xiàng)檢測所述制品的更新 檢測對(duì)交互接ロ的操作; 檢測所述制品的版本信息的改變; 定期掃描制品; 接收變更報(bào)告。
15.根據(jù)權(quán)利要求12或13所述的方法,其中所述更新與制品對(duì)應(yīng)的相關(guān)性信息包括,重新分析已更新的制品,再次生成相關(guān)性信息作為更新的相關(guān)性信息。
16.根據(jù)權(quán)利要求12或13所述的方法,其中所述更新與制品對(duì)應(yīng)的相關(guān)性信息包括,獲得更新前后的制品的差異部分,基于該差異部分對(duì)相關(guān)性信息進(jìn)行修改,由此得到更新的相關(guān)性信息。
17.根據(jù)權(quán)利要求12所述的方法,其中響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息包括 響應(yīng)于制品的檢出,將該制品對(duì)應(yīng)的相關(guān)性信息檢出; 基于更新的制品,對(duì)相關(guān)性信息進(jìn)行更新;以及 響應(yīng)于更新的制品的檢入,將更新的相關(guān)性信息檢入。
18.根據(jù)權(quán)利要求12所述的方法,其中響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息包括 響應(yīng)于制品的檢出,將該制品對(duì)應(yīng)的相關(guān)性信息檢出;以及 響應(yīng)于更新的制品的檢入,基于該更新的制品來更新對(duì)應(yīng)的相關(guān)性信息,并將更新的相關(guān)性信息檢入。
19.根據(jù)權(quán)利要求17或18所述的方法,其中為更新的相關(guān)性信息賦予新的版本信息包括,響應(yīng)于相關(guān)性信息的檢入,按照制品的版本信息更新方式相應(yīng)地更新所述相關(guān)性信息的版本信息。
20.根據(jù)權(quán)利要求12或13所述的方法,還包括查詢步驟,其中根據(jù)用戶請(qǐng)求,對(duì)制品的相關(guān)性信息進(jìn)行查詢,所述用戶請(qǐng)求包括直接查詢請(qǐng)求和/或嵌套查詢請(qǐng)求。
全文摘要
提供了一種用于軟件配置管理的裝置和方法,所述裝置包括信息生成單元,配置為生成與制品對(duì)應(yīng)的相關(guān)性信息;版本生成單元,配置為,響應(yīng)于所述相關(guān)性信息的生成,為該相關(guān)性信息生成與制品對(duì)應(yīng)的版本信息;信息更新單元,配置為,響應(yīng)于所述制品的更新,更新與該制品對(duì)應(yīng)的相關(guān)性信息;以及版本更新單元,配置為,響應(yīng)于所述相關(guān)性信息的更新,為更新的相關(guān)性信息賦予新的版本信息,使該新的版本信息對(duì)應(yīng)于已更新的制品的版本信息。所述方法對(duì)應(yīng)于上述裝置。利用本發(fā)明的裝置和方法,可以將制品的相關(guān)性信息以版本的形式存儲(chǔ)和管理,提高軟件開發(fā)過程中的管理效率。
文檔編號(hào)G06F9/44GK102855131SQ20111018071
公開日2013年1月2日 申請(qǐng)日期2011年6月30日 優(yōu)先權(quán)日2011年6月30日
發(fā)明者凡思彬, 邵錦帆, 韓紅亮, 張連平 申請(qǐng)人:國際商業(yè)機(jī)器公司