專利名稱:用于管理軟件的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件技術(shù),尤其涉及用于管理軟件的方法和系統(tǒng)。
背景技術(shù):
現(xiàn)在,計(jì)算機(jī)以及具有計(jì)算功能的計(jì)算裝置的應(yīng)用越來(lái)越普及。有時(shí),一個(gè)復(fù)雜的軟件產(chǎn)品包括許多個(gè)軟件組件單元。例如,國(guó)際商業(yè)機(jī)器公司
的Rational Software Development Platform(SDP)包括幾百個(gè)eclipse插件。一個(gè)軟件組件單元(component)用于執(zhí)行軟件的一個(gè)基本功能,該
軟件組件單元可以包括一個(gè)或一組文件。軟件組件單元是軟件系統(tǒng)或結(jié)構(gòu)
中可以分立的部分(A component is a discrete part of a larger software
system or structure )。
用戶在安裝軟件的時(shí)候, 一般可以選擇性地安裝基本功能模塊。但是
即使被選擇的基本功能模塊,用戶對(duì)于其中的多個(gè)功能一般也不會(huì)全部使
用。在一些情況下,用戶僅僅使用其多個(gè)功能中的一小部分功能,對(duì)于其
它未被使用功能并不了解。
有些軟件提供了個(gè)性化安裝/卸載功能,可以選擇安裝/卸載的基本功
能模塊。用戶一般可以使用,或者通過(guò)學(xué)習(xí)可以使用基于基本功能模塊的
安^/卸載。但是,即使如此安裝軟件,用戶往往仍然覺(jué)得所安裝的軟件太
大,占用的系統(tǒng)資源太多。
發(fā)明內(nèi)容
鑒于已有技術(shù)的不足,本發(fā)明提供了一種用于管理軟件的方法,該軟件包括多個(gè)軟件組件單元(component)以及全部軟件組件單元列表,所述方法包括a)響應(yīng)于該軟件被使用,確定被使用的軟件組件單元,以便
4形成已使用的軟件組件單元列表;b)根據(jù)所述全部軟件組件單元列表以及所述已使用的軟件組件單元列表,確定可刪除的軟件組件單元列表;c)從軟件中刪除可刪除的軟件組件單元列表中的軟件組件單元。
在本發(fā)明的另一實(shí)施例中,該軟件進(jìn)一步包括預(yù)先確定的核心軟件組件單元列表,所述步驟b )進(jìn)一步配置為根據(jù)所述全部軟件組件單元列表、預(yù)先確定的核心軟件組件單元列表以及所述被使用的軟件組件單元,確定可刪除的軟件組件單元列表。其中,在該軟件被使用預(yù)訂的時(shí)間后執(zhí)行步驟b ),或者在該軟件被使用預(yù)訂的次數(shù)后執(zhí)行步驟b )。
在本發(fā)明的另 一實(shí)施例中,該軟件具有eclipse架構(gòu),所述軟件組件單元為eclipse插件。
在本發(fā)明的另 一實(shí)施例中,所述軟件組件單元包括一個(gè)或多個(gè)文件。
在本發(fā)明的另 一實(shí)施例中,該方法進(jìn)一步包括將被刪除的軟件組件單元加入已刪除軟件組件單元列表;以及響應(yīng)于對(duì)被刪除的軟件組件單元的調(diào)用,重新安裝該被刪除的軟件組件單元。
本發(fā)明還提供了 一種用于管理軟件的系統(tǒng),該軟件包括多個(gè)軟件組件單元(component)以及全部軟件組件單元列表,所述系統(tǒng)包括用于確定軟件組件單元^f吏用的裝置,其響應(yīng)于該軟件被使用,確定被使用的軟件組件單元,以便形成已使用的軟件組件單元列表;用于確定可刪除的軟件組件單元的裝置,其根據(jù)所迷全部軟件組件單元列表以及所述已使用的軟件組件單元列表,確定可刪除的軟件組件單元列表;用于刪除軟件組件單元的裝置,用于從軟件中刪除可刪除的軟件組件單元列表中的軟件組件單元。
在本發(fā)明的另一實(shí)施例中,該軟件進(jìn)一步包括預(yù)先確定的核心軟件組件單元列表,所述用于確定可刪除的軟件組件單元的裝置進(jìn)一步配置為才艮據(jù)所述全部軟件組件單元列表、預(yù)先確定的核心軟件組件單元列表以及所述被使用的軟件組件單元,確定可刪除的軟件組件單元列表。
在本發(fā)明的另一實(shí)施例中,在該軟件被使用預(yù)訂的時(shí)間后,用于確定可刪除的軟件組件單元的裝置根據(jù)所述全部軟件組件單元列表以及所述已使用的軟件組件單元列表,確定可刪除的軟件組件單元列表。
在本發(fā)明的另一實(shí)施例中,在該軟件被使用預(yù)訂的次數(shù)后,用于確定可刪除的軟件組件單元的裝置根據(jù)所述全部軟件組件單元列表以及所述已使用的軟件組件單元列表,確定可刪除的軟件組件單元列表。
在本發(fā)明的另一實(shí)施例中,進(jìn)一步包括用于確定已刪除軟件組件單元
裝置,用于將被刪除的軟件組件單元加入已刪除軟件組件單元列表;以及重新安裝裝置,其響應(yīng)于對(duì),皮刪除的軟件組件單元的調(diào)用,重新安裝該祐:刪除的軟件組件單元。
圖l是根據(jù)本發(fā)明一實(shí)施例的流程圖。
具體實(shí)施例方式
圖1是根據(jù)本發(fā)明一實(shí)施例的流程圖。在步驟IOO, 一軟件被安裝到一計(jì)算機(jī)中。該軟件包括多個(gè)軟件組件單元(component)以及全部軟件組件單元列表140。
在本發(fā)明的一個(gè)實(shí)施例中, 一個(gè)軟件組件單元(component)用于執(zhí)行軟件的一個(gè)基本功能,該軟件組件單元可以包括一個(gè)或一組文件。軟件組件單元是軟件系統(tǒng)或結(jié)構(gòu)中可以分立的部分(Acomponent is a discretepart of a larger software system or structure )。軟件組件單元是安裝或卸載一個(gè)軟件時(shí),可以分別管理的最小軟件組件。例如,可以為儲(chǔ)存系統(tǒng)加載一個(gè)軟件組件單元或卸載一個(gè)軟件組件單元。
例如, 一個(gè)文件可以成為一個(gè)軟件組件單元。在基于Eclipse的軟件中, 一個(gè)插件可以成為一個(gè)軟件組件單元。 一個(gè)Eclips插件可以包括遵循插件標(biāo)準(zhǔn)而開(kāi)發(fā)的一組文件,并且可以安裝到Eclipse架構(gòu)中。在開(kāi)發(fā)軟件時(shí),還可以定義包括多個(gè)文件的軟件組件單元。
軟件組件單元(component software),能夠和其它組件組合在一起構(gòu)成一個(gè)完整程序的組件化例程或組件。程序員可以多次使用現(xiàn)存的組件而無(wú)需知道它內(nèi)部是如何工作的,只需知道其它程序是如何調(diào)用它以及如何與它進(jìn)行數(shù)據(jù)交換就可以了 。
全部軟件組件單元列表(all component list)包括軟件的全部軟件組件單元的名稱和/或組成軟件組件單元的全部文件的列表。全部軟件組件單元列表,可以在軟件開(kāi)發(fā)時(shí)形成,也可以在軟件安裝時(shí)形成。在本發(fā)明的一個(gè)實(shí)施例中,全部軟件組件單元列表不包括軟件運(yùn)行時(shí)產(chǎn)生的文件/數(shù)據(jù)文件,也不包括用戶創(chuàng)建的文件/數(shù)據(jù)文件。在執(zhí)行清除或軟件的其它功能,一些文件或軟件組件單元被從軟件中刪除后,可以修改全部軟件組件單元列表。
該軟件還可以包括一核心軟件組件單元列表130。在軟件開(kāi)發(fā)時(shí),還可以確定用于確保軟件正常運(yùn)行的核心軟件組件單元(core component )。不允許從軟件中卸載核心軟件組件單元。卸載或刪除核心軟件組件單元將導(dǎo)致軟件無(wú)法正常運(yùn)行或出現(xiàn)異常。在本發(fā)明的一個(gè)實(shí)施例中,在軟件分發(fā)之前,如在開(kāi)發(fā)時(shí),可以確定核心軟件組件單元,并形成核心軟件組件單元列表。該核心軟件組件單元列表可以與軟件一起被分發(fā)。
在步驟110,用戶使用該軟件。在步驟120,監(jiān)控軟件組件單元的使用,響應(yīng)于該軟件被使用,確定被使用的軟件組件單元,以便形成已使用的軟件組件單元列表150。
已使用的軟件組件單元列表,用于記錄用戶已經(jīng)使用過(guò)的軟件組件。一個(gè)軟件組件單元^皮使用,表示該軟件組件單元被所屬軟件加載(請(qǐng)求)過(guò)。有多種因素使得一軟件組件單元被加載。例如,用戶在軟件中執(zhí)行一操作,使得相應(yīng)功能的軟件組件單元被加載;軟件組件單元A依賴于軟件組件單元B。軟件組件單元A被調(diào)用,使得軟件組件單元B也被調(diào)用;軟件系統(tǒng)自動(dòng)執(zhí)行一些功能,使得一些軟件組件單元^皮加載;其他系統(tǒng)調(diào)用該軟件的軟件組件單元,使得其被加載。
在本發(fā)明的一個(gè)實(shí)施例中,可以通過(guò)多種方法來(lái)確定軟件組件單元是否曾經(jīng)被加載。如果一個(gè)軟件組件單元包括一個(gè)或多個(gè)文件,軟件組件單元中的任何文件;陂該軟件讀過(guò)或?qū)戇^(guò),就說(shuō)明該軟件組件單元曾經(jīng)被加載過(guò)。如果一軟件組件單元是一個(gè)eclipse插件,該插件曾經(jīng)被eclipse架構(gòu)加載,就可以確定該插件曾經(jīng)被加載。
在本發(fā)明的另 一 實(shí)施例中,僅僅第三方軟件或操作系統(tǒng)曾經(jīng)對(duì)一軟件組件單元進(jìn)行讀或?qū)?,并不將該軟件組件單元加入到已使用的軟件組件單元列表。例如,用戶利用一第三方軟件打開(kāi)一軟件組件單元的文件;用戶對(duì)于全部安裝的軟件進(jìn)行病毒掃描;或者操作系統(tǒng)為了執(zhí)行檢索而對(duì)軟件組件單元的文件進(jìn)行讀或?qū)?。?duì)于這樣的操作,并不將該軟件組件單元加入到已使用的軟件組件單元列表。
圖1中,在步驟120,還進(jìn)一步根據(jù)所述全部軟件組件單元列表140以及所述已使用的軟件組件單元列表150,確定可刪除的軟件組件單元列表160。
未被使用的軟件組件單元列表,包括可以從軟件中刪除的軟件組件單元。在本發(fā)明的一實(shí)施例中,未被使用的軟件組件單元列表,可以通過(guò)全部軟件組件單元列表以及已使用的軟件組件單元列表來(lái)得到。從全部軟件組件單元列表中去除已使用的軟件組件單元列表的內(nèi)容,就可以得到未被使用的軟件組件單元列表或者可刪除的軟件組件單元列表。
在本發(fā)明的另一實(shí)施例中,未被使用的軟件組件單元列表,可以通過(guò)核心軟件組件單元列表、全部軟件組件單元列表以及已使用的軟件組件單元列表來(lái)得到。從全部軟件組件單元列表中去除核心軟件組件單元列表的內(nèi)容,并去除已使用的軟件組件單元列表的內(nèi)容,就可以得到未被使用的軟件組件單元列表或者可刪除的軟件組件單元列表。
在步驟180,由用戶或自動(dòng)觸發(fā)清除操作。在步驟200,從軟件中刪除可刪除的軟件組件單元列表160中的軟件組件單元。
清除操作將清除未曾使用的軟件組件單元,包括從文件系統(tǒng)中清除軟件組件單元所屬的文件。在清除操作之后,保留的軟件組件單元就構(gòu)成了用戶的個(gè)性化安裝庫(kù)(customized installation base ),其中的軟件組件單元都是用戶所需要的。這樣,就完成了軟件安裝的優(yōu)化。
在整個(gè)優(yōu)化過(guò)程中,用戶不需要了解軟件的組成。用戶僅僅需要了解如何使用該軟件。該軟件將確定哪些軟件組件單元是用戶需要的,哪些軟件組件單元是用戶不需要的。
已經(jīng)被刪除的軟件組件單元的信息,可以存儲(chǔ)到已刪除的軟件組件單
元列表170。這樣,就得到了用戶需要的個(gè)性化安裝庫(kù)200。
信息。該信息可以用于確定用戶是否正在試圖訪問(wèn)已經(jīng)被刪除的軟件組件單元。當(dāng)用戶請(qǐng)求的功能,使得安裝的軟件試圖調(diào)用已經(jīng)被刪除的軟件組件單元時(shí),該軟件將無(wú)法完成該調(diào)用。響應(yīng)于軟件將無(wú)法完成該調(diào)用,在已刪除的軟件組件單元列表檢索該軟件組件單元。如果檢索到,則可以將相應(yīng)結(jié)果通知用戶。用戶還可以通過(guò)重新安裝,來(lái)加載所需的已刪除的軟件組件單元。
基于Eclipse的軟件
基于Eclipse的軟件包括多個(gè)插件。在這種情況下,軟件組件單元為Eclipse插件。才艮據(jù)本發(fā)明的另一實(shí)施例,可以監(jiān)測(cè)哪些Eclipse插件祐J吏用了。在軟件安裝后,全部插件構(gòu)成全部軟件組件單元列表。經(jīng)過(guò)一段時(shí)間,如7天,或者經(jīng)過(guò)一定的軟件使用次數(shù),如100次。被使用過(guò)的插件被加入到已使用的軟件組件單元列表。這樣,根據(jù)全部軟件組件單元列表和已使用的軟件組件單元列表,就可以確定哪些插件未被使用過(guò)或可以被刪除。進(jìn)而,可以刪除這些未被使用過(guò)或可以纟皮刪除的插件。為了確保軟件的正常使用,或者確保某些基本的功能始終被保留,可以在開(kāi)發(fā)軟件時(shí)或者安裝時(shí)將特定的插件確定為核心軟件組件單元。不允許從安裝的軟件中刪除這些核心插件。在這種情況下,根據(jù)全部軟件組件單元列表、核心軟件組件單元和已使用的軟件組件單元列表,來(lái)確定哪些插件未被使用過(guò)或可以被刪除。
基于文件的軟件
對(duì)于基于文件的軟件,文件是該軟件管理的最小單元。在這種情況下,軟件組件單元為文件??梢栽谖募缴瞎芾碥浖陌惭b/卸載。從安裝的軟件中,如果某個(gè)文件被讀或?qū)懀蛯⒃撐募尤胍咽褂玫能浖M件單元
9列表。根據(jù)本發(fā)明的另一實(shí)施例,經(jīng)過(guò)一定的時(shí)間或次數(shù)后,就可以從安裝的軟件中刪除那些可以刪除的文件。
根據(jù)已有技術(shù),用戶在安裝軟件的時(shí)候, 一般可以選擇性地安裝基本功能模塊。但是即使被選擇的基本功能模塊,用戶對(duì)于其中的多個(gè)功能一般也不會(huì)全部使用。在一些情況下,用戶僅僅使用其多個(gè)功能中的一小部分功能,對(duì)于其它未被使用功能及其相應(yīng)的軟件組件單元并不了解。 一般,僅僅該軟件的相關(guān)專業(yè)人員才關(guān)心并可能了解軟件的功能及其相應(yīng)的軟件組件單元。
根據(jù)已有技術(shù),在用戶安裝完一軟件后,開(kāi)始使用該軟件。該軟件一般包括多個(gè)基本功能模塊,這些基本功能模塊又分別包括許多軟件組件單元。這些軟件組件單元分別與相應(yīng)的功能相對(duì)應(yīng)。有些軟件的功能會(huì)被使用到,而有些軟件的功能不會(huì)被使用。很多用戶對(duì)于這些不會(huì)被使用的功能不關(guān)心,甚至^f艮本不知道。而這個(gè)軟件中的這些未被使用的功能所對(duì)應(yīng)的軟件組件單元,用戶可能也根本不知道它們的存在。并且,'經(jīng)過(guò)一段預(yù)定的時(shí)間之后,那些未被使用的功能將來(lái)被使用到的可能性非常小。但是,這些未被使用的軟件組件單元卻占據(jù)著系統(tǒng)的資源。
根據(jù)已有技術(shù),安裝軟件時(shí),所安裝的文件或軟件組件單元,往往多于用戶真正使用的文件或軟件組件單元。而經(jīng)過(guò)一段時(shí)間后,那些未被使用的文件或軟件組件單元就變成了冗余的,它們占據(jù)磁盤空間,影響計(jì)算機(jī)系統(tǒng)或軟件的性能。事實(shí)上,用戶并不需要這些冗余的軟件部分。但是,清除這些冗余的軟件文件或軟件組件單元,對(duì)于用戶來(lái)說(shuō)比較困難。
根據(jù)已有技術(shù),對(duì)于一般用戶而言,其可能并不知道他使用的功能對(duì)應(yīng)于哪些軟件組件單元。用戶通過(guò)學(xué)習(xí)使用軟件,可以理解其通過(guò)軟件的
用戶接口 (UI)利用軟件所執(zhí)行的功能或操作,但是用戶一般無(wú)法了解或不了解UI功能與軟件組件單元之間的對(duì)應(yīng)關(guān)系。此外,用戶一般無(wú)法了
解或不了解軟件組件單元之間的依賴關(guān)系。因而,用戶無(wú)法確定哪些軟件組件單元已經(jīng)祐 使用,哪些軟件組件單元可以從系統(tǒng)中刪除。
根據(jù)已有技術(shù),有些軟件提供了個(gè)性化安裝/卸載功能,可以選擇安裝/卸載的基本功能模塊。用戶一般可以使用,或者通過(guò)學(xué)習(xí)可以使用基于基本功能模塊的安^/卸載。
但是基于更細(xì)粒度的軟件組件單元的安裝/卸載,對(duì)于軟件的知識(shí)要求比較多。從成百上千甚至上萬(wàn)個(gè)軟件組件單元中,進(jìn)行有選擇的安裝/卸載,對(duì)于用戶來(lái)說(shuō)是不現(xiàn)實(shí)的。
根據(jù)本發(fā)明的上述描述可以理解,即使用戶對(duì)于的軟件組件單元以及相應(yīng)的功能了解不多,4艮據(jù)本發(fā)明的用于管理軟件的方法和系統(tǒng),也可以進(jìn)行基于更細(xì)粒度的軟件組件單元的安裝/卸載。
本發(fā)明還提供了 一種存儲(chǔ)介質(zhì)或信號(hào)載體,其中包括用于執(zhí)行根據(jù)本發(fā)明的方法的指令。
以上結(jié)合優(yōu)選法方案對(duì)本發(fā)明進(jìn)行了詳細(xì)的描述,但是可以理解,以上實(shí)施例僅用于說(shuō)明而非限定本發(fā)明。本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明的所示方案進(jìn)行修改而不脫離本發(fā)明的范圍和精神。
權(quán)利要求
1.一種用于管理軟件的方法,該軟件包括多個(gè)軟件組件單元(component)以及全部軟件組件單元列表,所述方法包括a)響應(yīng)于該軟件被使用,確定被使用的軟件組件單元,以便形成已使用的軟件組件單元列表;b)根據(jù)所述全部軟件組件單元列表以及所述已使用的軟件組件單元列表,確定可刪除的軟件組件單元列表;c)從軟件中刪除可刪除的軟件組件單元列表中的軟件組件單元。
2. 根據(jù)權(quán)利要求l所述的方法,其中該軟件進(jìn)一步包括預(yù)先確定的核 心軟件組件單元列表,所述步驟b )進(jìn)一步配置為根據(jù)所述全部軟件組件 單元列表、預(yù)先確定的核心軟件組件單元列表以及所述被使用的軟件組件 單元,確定可刪除的軟件組件單元列表。
3. 根椐權(quán)利要求l所述的方法,其中在該軟件被使用預(yù)訂的時(shí)間后執(zhí) 行步驟b )。
4. 根據(jù)權(quán)利要求l所述的方法,其中在該軟件被使用預(yù)訂的次數(shù)后執(zhí) 行步驟b )。
5. 根據(jù)權(quán)利要求l所述的方法,其中該軟件具有eclipse架構(gòu),所述 軟件組件單元為eclipse插件。
6. 根據(jù)權(quán)利要求l所述的方法,其中所述軟件組件單元包括一個(gè)或多 個(gè)文件。
7. 根據(jù)權(quán)利要求l所述的方法,其中進(jìn)一步包括將被刪除的軟件組件 單元加入已刪除軟件組件單元列表;以及響應(yīng)于對(duì)被刪除的軟件組件單元 的調(diào)用,重新安裝該被刪除的軟件組件單元。
8. —種用于管理軟件的系統(tǒng),該軟件包括多個(gè)軟件組件單元 (component)以及全部軟件組件單元列表,所述系統(tǒng)包括用于確定軟件組件單元使用的裝置,其響應(yīng)于該軟件被使用,確定被 使用的軟件組件單元,以便形成已使用的軟件組件單元列表;用于確定可刪除的軟件組件單元的裝置,其根據(jù)所述全部軟件組件單 元列表以及所述已使用的軟件組件單元列表,確定可刪除的軟件組件單元列表;用于刪除軟件組件單元的裝置,用于從軟件中刪除可刪除的軟件組件 單元列表中的軟件組件單元。
9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其中該軟件進(jìn)一步包括預(yù)先確定的核心軟件組件單元列表,所述用于確定可刪除的軟件組件單元的裝置進(jìn)一步 配置為根據(jù)所述全部軟件組件單元列表、預(yù)先確定的核心軟件組件單元列 表以及所述被使用的軟件組件單元,確定可刪除的軟件組件單元列表。
10. 根據(jù)權(quán)利要求8所述的系統(tǒng),其中在該軟件被使用預(yù)訂的時(shí)間后, 用于確定可刪除的軟件組件單元的裝置根據(jù)所述全部軟件組件單元列表以 及所述已使用的軟件組件單元列表,確定可刪除的軟件組件單元列表。
11. 才艮據(jù)權(quán)利要求8所述的系統(tǒng),其中在該軟件被使用預(yù)訂的次數(shù)后, 用于確定可刪除的軟件組件單元的裝置根據(jù)所述全部軟件組件單元列表以 及所述已使用的軟件組件單元列表,確定可刪除的軟件組件單元列表。
12. 根據(jù)權(quán)利要求8所述的系統(tǒng),其中該軟件具有eclipse架構(gòu),所述 軟件組件單元為eclipse插件。
13. 根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述軟件組件單元包括一個(gè)或 多個(gè)文件。
14. 根據(jù)權(quán)利要求8所述的系統(tǒng),其中進(jìn)一步包括用于確定已刪除軟 件組件單元裝置,用于將被刪除的軟件組件單元加入已刪除軟件組件單元 列表;以及重新安裝裝置,其響應(yīng)于對(duì)被刪除的軟件組件單元的調(diào)用,重 新安裝該被刪除的軟件組件單元。
全文摘要
本發(fā)明提供了一種用于管理軟件的方法和系統(tǒng)。該軟件包括多個(gè)軟件組件單元(component)以及全部軟件組件單元列表。所述方法包括響應(yīng)于該軟件被使用,確定被使用的軟件組件單元,以便形成已使用的軟件組件單元列表。然后,根據(jù)所述全部軟件組件單元列表以及所述已使用的軟件組件單元列表,確定可刪除的軟件組件單元列表。最后,從軟件中刪除可刪除的軟件組件單元列表中的軟件組件單元。
文檔編號(hào)G06F9/44GK101593102SQ20081010818
公開(kāi)日2009年12月2日 申請(qǐng)日期2008年5月30日 優(yōu)先權(quán)日2008年5月30日
發(fā)明者歌 宋, 陳樟洪 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司