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