專利名稱:用于建立軟件套件的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及個人計算機。
背景技術(shù):
個人計算機(例如Sony的VAI0 計算機)包含一組為每個項目構(gòu)建的規(guī)范而創(chuàng) 建的定制軟件部件。換句話說,某些計算機必須具有第一套軟件,例如文字處理軟件、音 頻-視頻軟件,而另一組計算機可能被指定具有第二套不同的軟件,以此向顧客提供更多 的選擇。在這里“軟件套件”指計算機的完備的和全部的軟件集合、以及發(fā)布到比如各廠家 和測試小組的部件,這些部件作為整個項目發(fā)布的部分被組裝在一起。創(chuàng)建每個定制程序組需要許多的步驟,其中涉及多個互相分離的程序。迄今為止, 在匯編程序組的各個程序時,工程師們不得不從一個或多個中央數(shù)據(jù)庫中手工定位所期望 的程序并且將這些程序復(fù)制到比如用于將軟件載入到計算機上的光盤上。這些操作費時并 且為了從零開始構(gòu)建新指定的程序組而需要人工干預(yù)。此外,由于“構(gòu)建”不是自動的,因 此錯誤和不一致性不可避免地出現(xiàn)在這樣的“構(gòu)建”中。經(jīng)審察而知,理想的方式是提供一種為計算機組匯編軟件套件的自動方法。然而, 正如這里進一步認(rèn)識到的,匯編者可能不具備編程語言(例如C++)的專業(yè)知識。因此,本 發(fā)明認(rèn)識到需要提供一種不需要正規(guī)的編程知識就能夠自動匯編軟件套件的方法。
發(fā)明內(nèi)容
一種為計算機匯編軟件包的方法包括將XML結(jié)構(gòu)呈現(xiàn)給用戶、并允許用戶使用該 結(jié)構(gòu)來構(gòu)造XML腳本,所述腳本定義了軟件包的內(nèi)容。該方法還包括解析腳本以提交C++ 軟件代碼以及執(zhí)行該C++軟件代碼從而自動地將內(nèi)容匯編成軟件包。在優(yōu)選實施例中,該結(jié)構(gòu)是面向?qū)ο蟮木幊汰h(huán)境中的類。該類可在計算機顯示器 上的類窗口中呈現(xiàn)給用戶,以供用戶對其進行選擇。在執(zhí)行期間,用戶可被提示輸入與例如 軟件包的標(biāo)識相關(guān)的信息。另一方面,用于自動將至少兩個軟件應(yīng)用程序匯編成軟件包并將其載入到計算機 上的系統(tǒng)中,包括用于識別腳本中應(yīng)用程序的分層的面向?qū)ο蠓椒āT撓到y(tǒng)還包括將腳本 解析成可執(zhí)行代碼的方法。提供了用于執(zhí)行代碼以自動匯編軟件包的方法。在又一方面,軟件系統(tǒng)包括模型部件,所述模型部件包含可用于生成軟件應(yīng)用程 序列表的面向?qū)ο髴?yīng)用程序編程接口(API)??刂破鞑考c模型部件進行通信,并且控制器 部件包含分析程序,分析程序?qū)⒘斜斫馕龀捎糜趫?zhí)行的代碼,以將應(yīng)用程序自動匯編成軟
3件包。查看部件與控制器部件進行通信來將對象類呈現(xiàn)給用戶,以在生成列表時使用對象 類。
參考附圖可更好地理解本發(fā)明的細(xì)節(jié)(關(guān)于其結(jié)構(gòu)和操作),其中相同的標(biāo)記指 相同的部分,附圖中圖1是本系統(tǒng)的框圖;圖2是軟件結(jié)構(gòu)的框圖;圖3是本發(fā)明的通用邏輯單元的流程圖;圖4是示出XML腳本分層圖的示意圖;以及圖5是示出用戶顯示的屏幕截圖。
具體實施例方式首先參見圖1,示出的是一般表示為10的系統(tǒng),其中包括載入定義計算機12,所述 載入定義計算機12具有一個或多個輸入裝置14 (例如鼠標(biāo)、鍵盤等)以及一個或多個輸出 裝置16 (例如計算機監(jiān)視器、打印機、網(wǎng)絡(luò)等)。載入計算機12與一個或多個軟件應(yīng)用程序 的數(shù)據(jù)源(例如載入數(shù)據(jù)庫18)進行通信,以將應(yīng)用程序匯編成程序組或軟件包,所述的程 序組或軟件包可被復(fù)制到例如光盤20上用于將這些軟件應(yīng)用程序載入到目標(biāo)計算機上, 例如可以是比如SonyVAIO 電腦的膝上型計算機22上。圖2示出了可由載入計算機12執(zhí)行的軟件結(jié)構(gòu),圖3以非限制性的流程圖格式示 出了該結(jié)構(gòu)的主要功能性。如圖2所示,本軟件可包括模型部件24、控制器部件26和查看 部件28。模型部件24包含系統(tǒng)應(yīng)用程序編程接口(API),它是用于生成軟件應(yīng)用程序列表 的最好的XML面向?qū)ο蠼Y(jié)構(gòu)。因此,API是一組為編程自動化提供公用窗口命令的函數(shù)。模 型部件24實質(zhì)上是工具箱和信息庫,該信息庫包含了從文件處理和程序執(zhí)行到消息顯示 和數(shù)據(jù)庫18訪問的若干函數(shù)。更具體地說,模型部件24創(chuàng)建了動態(tài)鏈接庫(DLL)文件,根據(jù)下文的公開內(nèi)容通 過微軟公司的“.NET”系統(tǒng)可理解動態(tài)鏈接庫(DLL)文件。模型部件24還是用戶為獲得應(yīng) 用程序可選擇的所有XML對象類的知識庫。另外,模型部件24可包括具有用于通用包裝函 數(shù)的適配器的控制部分,以使原始C++數(shù)據(jù)類型結(jié)構(gòu)(例如“int”和“char*”)分別被轉(zhuǎn) 換成Object*和String*。它還具有可用來記錄任何命令執(zhí)行結(jié)果的設(shè)置類。這實際上可 通過類內(nèi)的C++函數(shù)實現(xiàn)。每個API命令可以是單(single)類內(nèi)的函數(shù),或者可以作為個 別(individual)類來實現(xiàn)??刂破髂K26包含了系統(tǒng)語言結(jié)構(gòu)背后所有的業(yè)務(wù)邏輯,系統(tǒng)語言結(jié)構(gòu)包括變 量說明和條件語句,并且該模塊代表了將收自用戶的應(yīng)用程序列表解析成用于執(zhí)行的代碼 以將應(yīng)用程序自動匯編成軟件包的分析程序。為此,控制器模塊26包含了在查看部件28 和模型部件24之間的最小限度的耦合,并在兩者之間提供了清晰的分隔。如果該代碼轉(zhuǎn)換 成另兩個部件中的任何一個,則控制器模塊26不需要重新編譯。查看模塊28是用戶界面,它允許通過控制器部件26訪問模型部件24以將對象類 呈現(xiàn)給用戶,以在生成定義將要匯編成軟件包的應(yīng)用程序的列表或腳本時使用對象類???br>
4以有兩個查看,一個僅用于程序執(zhí)行以及可在命令行運行的調(diào)試,而另一個是用于創(chuàng)建、編 輯以及執(zhí)行系統(tǒng)腳本的用戶界面。兩者都可以從XML腳本或者另外通過界面內(nèi)的API選擇 來接收輸入。圖3示出了嵌入系統(tǒng)10的總體邏輯。從方框30開始,在比如基于XML對象類中 的所期望的功能性被置于模型部件24中。在方框32處,調(diào)用查看部件28以在圖1所示的 監(jiān)視器16上向用戶呈現(xiàn)在下文中將進一步討論的功能類。在方框34處,用戶可以選擇不 同的類以生成將要匯編成軟件包或軟件套件的應(yīng)用程序的腳本或列表。一旦完成,該邏輯 轉(zhuǎn)到方框36,通過將XML解析成可執(zhí)行代碼(例如C++)并且然后執(zhí)行代碼從而執(zhí)行該腳 本,根據(jù)包含在腳本中的指令(例如,可以發(fā)現(xiàn)某些應(yīng)用程序的位置),自動地檢索在腳本 中被標(biāo)識的應(yīng)用程序并將其匯編成軟件包。作為執(zhí)行的一部分,可用變量名、值以及其他信 息(例如軟件包名稱等)提示用戶。圖4表明根據(jù)上述原理生成的腳本38可以是分層的,并且因此將其作為命令的 分層序列來對待,這個命令的分層序列被組合以形成可執(zhí)行的程序。腳本內(nèi)的所有命令可 方便地利用被稱為文檔類型定義或DTD的所有可能命令的主文件來驗證。在執(zhí)行前通過對 照DTD驗證XML腳本中的所有命令,保證語法是正確的。如上所述,將XML解析成比如C++可在控制器部件26內(nèi)完成,控制器部件26 處理所有的系統(tǒng)語言結(jié)構(gòu)。在某些實施例中,可使用微軟公司的.NET系統(tǒng)的API類 XMLValidatingReader處理腳本的驗證,所述XMLValidatingReader將XMLi吾法從頭到尾每 次一個節(jié)點地讀進存儲器用以驗證??衫?NET的API類XPathNavigator完成實際的解 析,它使用W3C文檔對象模型或D0M[3]。與僅允許向前解析XML代碼的XMLTextReader不 同,DOM還允許向后導(dǎo)航。對于大多數(shù)基本系統(tǒng)命令來說,僅向前解析是足夠的,但是對于 需要條件語句或者循環(huán)的高級命令來說,還需要向后解析,這意味著DOM風(fēng)格的解析并將 全部代碼保持在存儲器中。因此,可提供基本的和高級的兩類命令。當(dāng)其來自模型部件24時可使用基本命 令。它們可獨立于任何語言結(jié)構(gòu)并且事實上組成了大部分的系統(tǒng)API。另一方面,高級命令 需要額外的XML解析,所述額外的XML解析可能會要求多次調(diào)用同一命令。另外,某些高級 命令(例如條件和循環(huán)語句)允許嵌套命令。圖4所示的XML腳本38的分層結(jié)構(gòu)通常類 似于樹。根據(jù)腳本布局,其結(jié)構(gòu)可以是淺層的并代表一個或多個灌木,或者可以是深層的并 代表樹或森林。的確,圖4描述了應(yīng)用于條件語句以及XML腳本本身的嵌套能力。圖4中 的圖解以腳本中的相同方式呈現(xiàn),該圖從左到右和從上到下讀取。在某些實施例中,為了跟蹤通過嵌套命令的向前和向后導(dǎo)航,必需知道深度和當(dāng) 前節(jié)點。在腳本執(zhí)行期間,可記錄返回值以確定所期望的路徑。非期望的路徑被拋棄。這 通過在一組堆棧中記錄信息而實現(xiàn)。對節(jié)點的當(dāng)前指針通過解析條件語句而移進樹的更深 處。執(zhí)行完條件語句后的當(dāng)前深度被推進堆棧。當(dāng)指針通過嵌套的條件語句向更深處移 動或者在完成后向更淺處移動時,當(dāng)前深度分別被推進堆棧或者從堆棧中彈出。另外,有若 干個類似的堆棧以跟蹤按條件的返回值。盡管可以有四個用于條件語句的堆棧,但是IF和 ELSE語句二者都用一個來跟蹤深度,還用一個來跟蹤返回值。通過將當(dāng)前節(jié)點的值與堆棧 中的當(dāng)前值進行比較,系統(tǒng)10能夠理解甚至最復(fù)雜的嵌套結(jié)構(gòu)。本發(fā)明認(rèn)識到會出現(xiàn)兩種其中類結(jié)構(gòu)必須被知道的場合。第一種為用戶界面所
5需,用以顯示所有系統(tǒng)API命令的名稱和參數(shù)。第二種為控制器模塊26所需,控制器模塊 26在執(zhí)行期間動態(tài)地解釋系統(tǒng)API命令參數(shù),以傳遞輸入并調(diào)用各命令。圖5示出了示范性的用戶界面40,其中系統(tǒng)API (實質(zhì)上是功能性類)的列表42 被呈現(xiàn)于右側(cè)方格區(qū),示范的消息框命令的參數(shù)被呈現(xiàn)于底部方格區(qū)44。通過向上或向下 滾動右側(cè)方格區(qū),其他命令的參數(shù)也可在底部方格區(qū)中被顯示。還可方便地設(shè)置工具條46。 也可設(shè)置主方格區(qū)50。每個系統(tǒng)API命令不必要求控制器26內(nèi)單獨的解析函數(shù)來處理每個命令的可變 數(shù)目的參數(shù),而是共用.NET API的通用解析函數(shù)來動態(tài)地解釋和調(diào)用系統(tǒng)API命令。這可 通過被稱作自省的面向?qū)ο蟛考拍钜约皠討B(tài)調(diào)用來實現(xiàn)。取自XML腳本的輸入被動態(tài)地 傳遞到系統(tǒng)API命令以作動態(tài)調(diào)用。這意味著輸入(XML腳本)可改變而無需重新編譯控 制器部件26。通常,在未應(yīng)用這些概念的情況下,對于通過常規(guī)應(yīng)用程序的靜態(tài)調(diào)用,參數(shù) 值將是固定的。只有高級命令需要明確的、單獨的解析函數(shù)。上文已提到.NET內(nèi)部過程調(diào)用。通過直接或者間接引用的系統(tǒng)API完全被包含 在模型部件24內(nèi)。沒有直接被包含在模型部件24內(nèi)的所有API命令被要求具有將控制器 部件26指向它們各自位置的包裝函數(shù)。在某些場合,可能需要許多嵌套的包裝函數(shù),它們 再次使用已有的、幾乎未修改的代碼和編程成果。在一些實施例中,獨立于語言的代碼的再 次使用可通過微軟公司的部件對象模型(COM)而方便實現(xiàn)。在一些非限定性的實施例中,沒有提供需要增加邏輯的用戶界面。一旦部件被注 冊,該部件就可加以應(yīng)用,如同代碼是直接在模型部件24中的相關(guān)類內(nèi)一樣。圖1所示的 數(shù)據(jù)庫18的數(shù)據(jù)輸入可通過具有包含了專用于其任務(wù)的GUI字段的用戶界面的COM對象 方便實現(xiàn)。它可以是單個功能塊,但是它本身不是完整的應(yīng)用程序,而是一個對象,例如是 包含用戶交互和后端功能性的應(yīng)用程序塊。它不能就這樣使用,因此必須在使用前將其置 于容器中。本系統(tǒng)10提供了這樣一個稱作ControlForm的容器。該類基本上是具有兩個 按鈕-OK和Cancel的窗口。實際的功能性來自被置于ControlForm容器中的一個或多個 可交換的COM對象。作為其多態(tài)性的一例,該容器對象是一個窗口,該窗口在一種場合請求 數(shù)據(jù)庫18登錄數(shù)據(jù)輸入而在另一場合請求數(shù)據(jù)庫18項目選擇數(shù)據(jù)輸入。一個顯示可交換 部件的容器之使用意味著,通用容器邏輯以及OK與Cancel按鈕不需要設(shè)在每個COM部件 內(nèi)。它還意味著,如果需要也不必專門創(chuàng)建唯一的新表格與部件就可在同一表格上顯示不 止一個部件。根據(jù)本發(fā)明的原理,各系統(tǒng)API命令最好返回一個告知命令是否正確執(zhí)行的值, 使得根據(jù)布爾真或假來解析高級結(jié)構(gòu)成為可能。除了所需要的布爾返回值,各命令還可返 回近乎無限的專用于命令的值。.NET的ArrayList結(jié)構(gòu)通過將數(shù)據(jù)存儲為動態(tài)可擴展的對 象陣列而使之成為可能。對象可以是允許轉(zhuǎn)換到任何其他類型的類屬.NET結(jié)構(gòu)??梢灾皇桥R時將Arraylist返回結(jié)構(gòu)保持在存儲器中。對于每個由XML腳本執(zhí)行 的命令,其返回結(jié)構(gòu)被下一命令的返回結(jié)構(gòu)所代替。這要求在執(zhí)行系統(tǒng)API命令之后立即 保存任何的返回值。在執(zhí)行高級系統(tǒng)命令時,該過程自動執(zhí)行。當(dāng)使用用戶定義的變量時, 用戶可以手動地將返回值從存儲器保存到變量中。在一些實施例中,可提供四種說明用戶定義的變量的方法。第一種是通過系統(tǒng) API命令A(yù)ddVariable,它在運行前需要將變量名與值置于腳本中。各變量類型作為字符串存儲,并且各命令內(nèi)部的每個參數(shù)首先作為字符串被讀取,稍后通過當(dāng)前系統(tǒng)命令或通過 另一系統(tǒng)命令轉(zhuǎn)換成另一類型。說明變量的第二種方法是通過系統(tǒng)API命令PromptAddVariable,它與 AddVariable類似,但它只在用于變量值的執(zhí)行時提示用戶。該變量名仍然在腳本內(nèi)說明, 并且在運行時固定。說明變量的第三種方法是通過系統(tǒng)API命令A(yù)ddVarFromMem,它根據(jù)前一命令的 ArrayList返回結(jié)構(gòu)中的指定位置存儲返回值。這需要對前一命令和可用的返回結(jié)構(gòu)有一 些了解。說明變量的第四種方法是AddMultipleFromMem,它類似于AddVarFromMem,但是 允許將前一命令的所有返回值存儲到多個用戶定義的變量中。通過利用AddVarFromMem或AddMultipleFromMem,在程序運行時,臨時存儲的返 回值可被保留在存儲器中。通過使用上述四個命令的組合,用戶可說明變量并且為變量賦 值、將用戶輸入讀入變量并將變量指派給另一命令的輸出。系統(tǒng)專用語言命令可包括“If”、“For”和“While”。系統(tǒng)API命令可包 括 CopyFolder、DeleteFolder、RenameFolder CopyFile、DeleteFile、RenameFile、 ExecuteProgram> AddRegKey> RemoveRegKey> CreateFile、WriteToFile、AddlniSection、 RemoveIniSection> AddlniKey、RemovelniKey、Settings、SetStatus、MsgBox、IsFile、 IsDir、IsInFile、IsRegKey>IsRegValue、IsIniSection、IsIniKey、IsNT0以下呈現(xiàn)的是一些所謂的“用例”,它們代表沒有經(jīng)過正式的XML格式化的腳本。1. 1創(chuàng)建INI配置文件Description Create INI file or files for a given recovery toolUse Case identifier BlAuthorDate 5/01/2003RevisedActors Release EngineerPre-conditions FI-% Project name% -PAC File-BOM is lockedActions (Use AddVarToText after each command)Run Program to generate INI script filesopen VSMS databaseQuery Project(GetProject)open FI-project-Pac File BOM(GetBOMData )Assign Pac Files (AutoAssignPACFiles)Update multiplie(set all to compressed)(SetARCDCompressed )open Program to generate INI script filesGenerate ARCD recovery media Scripts (GenerateARCDScripts)Select Drive to generate files toView Scripts(Optional) Check-in INI configuration files (Checkin)
7
Upload to VSMS database (UploadFiles)Send Release Mail for INI(DumpText)Subject 二 VAIO INI FILES RELEASE NOTIFICATION % projectname %% phase %ProjectPC ModelBuildINI File name and unique identifierlist changes from last buildPost-conditions Tested during PAC File Creation processIncludes Check-InUploadExtendsGeneralizes1. 2創(chuàng)建Pac文件(套裝軟件)Description Creates PAC file(s)for software recovery toolsUse Case identifier B2AuthorDate 5/01/2003RevisedActors Release EngineerPre-conditions INI file(s)createdActions Copy files to local driveOpen browserBrowse to ARCD Scripts directoryExecute program to copy individual software locally from the network(ExecuteProgram)Verify files are copied to local driveExecute program to package each directory (ExecuteProgram)Check-in PAC File(s)(CheckIn)Upload to VSMS database (UploadFiles)Send Release Mail for PAC File(s)(DumpText)Subject 二 VAIO PAC FILES RELEASE NOTIFICATION % projectname %% phase %ProjectPC Model
8
PhaseDMI information#PAC FilesPAC File NamesChanges from Last BuildKnown IssuesSpecial NotesPost-conditions Must be tested during software download and
recoveryprocessIncludes Create INICheck-InUpload PAC File(s)Extends Create-INIGeneralizes1. 3創(chuàng)建RDVD恢復(fù)媒體Description Creates RDVD(s)for HDD Recovery machines that haveDVD drivesUse Case identifier B5AuthorDate 5/02/2003RevisedActors Release EngineerPre-conditions Pac File(s), INI File (s), and Image File(s)arecreatedActions Create PAC File(s)Create Recovery PartitionTest Recovery FunctionalityCopy files to local driveCopy PI Contents LocalCopy Foundation Image files (s)localDelete the Minint FolderCopy RDVD Boot files to LocalCreate ISO File(s)Create master RDVD(s)TestCheck-in RDVD(s)Turn-in RDVD(s)to Software LibrarianSend Release Mail for RDVD0138]Subject = VAIO RDVD FILES RELEASE NOTIFICATION % project
0139]name %
0140]% phase %
0141]Project
0142]PC Model
0143]Phase
0144]Image Unique identifier
0145]RDVD Unique identifier
0146]Recovery partition Unique identifier
0147]DMI information
0148]Version
0149]Media
0150]Volume Labels
0151]Changes from Last Build
0152]Known Issues
0153]Special Notes
0154]Post ISO File(s)
0155]Post-conditions Must be tested with the correct machine(s), DMI
0156]information
0157]Includes Check-In
0158]Post ISO (not created yet)
0159]Extends None
0160]Generalizes None
0161]1. 4創(chuàng)建HRCD恢復(fù)媒體
0162]Description Creates HRCD(s)for HDD Recovery machines that do not
0163]have DVD drives
0164]Use Case identifier B6
0165]Author
0166]Date 5/02/2003
0167]Revised
0168]Actors Release Engineer
0169]Pre-conditions Pac File(s),INI File (s), and Image File (s)are created
0170]Actions Create PAC File(s)
0171]Create Recovery Partition
0172]Test Recovery Functionality
0173]Create master HRCD(s)
0174]Create ISO File(s)
0175]Test
0176]Check-in HRCD (s)
10
Turn-in HRCD(s)to Software LibrarianSend Release Mail for HRCDSubject 二 VAIO HRCD FILES RELEASE NOTIFICATION % projectname %% phase %ProjectPC ModelPhaseImage Unique identifierHRCD Unique identifierRecovery Partition Unique identifierDMI informationVersionMediaVolume LabelsChanges from Last BuildKnown IssuesSpecial NotesPost ISO File(s)Post-conditions Must be tested with the correct machine(s), DMIinformationIncludes Check-InPost ISO (not created yet)Extends NoneGeneralizes None1. 5 登記Description Check in any item into VSMS databaseUse Case identifier SlAuthorDate 5/02/2003RevisedActors Release EngineerPre-conditions NoneActions Check-in an itemOpen VSMS databaseSelect Software Release/SubmitSelect VendorSelect Component/Release NameClick Submit
11
Fill in the form completely with all applicable dataClick SubmitPost-conditions NoneIncludes NoneExtends NoneGeneralizes None1. 6加載到VSMS數(shù)據(jù)庫Description Upload an item to the appropriate locationsUse Case identifier S2AuthorDate 5/02/2003RevisedActors Release EngineerPre-conditions Item is checked in to VSMS databaseActions Open VSMS databaseSelect Software Release/QuerySelect VendorSelect Component/Release NameClick on the Unique identifier for the ItemSelect view itemClick on UploadFollow on screen promptsPost-conditions NoneIncludes NoneExtends NoneGeneralizes None1. 7加載ISO文件Description Upload an item to the appropriate locationsUse Case identifier S2AuthorDate 5/02/2003RevisedActors Release EngineerPre-conditions NoneActions Check-in an itemOpen VSMS databaseSelect Software Release/QuerySelect VendorSelect Component/Release Name
Click SubmitPost-conditions NoneIncludes NoneExtends NoneGeneralizes None盡管這里所示并被詳細(xì)描述的、特別的“用于建立軟件套件的系統(tǒng)和方法”完全能 獲得本發(fā)明的上述對象,但是當(dāng)會理解,它是本發(fā)明目前的優(yōu)選實施例且因此是本發(fā)明廣 泛考慮的主題的代表,本發(fā)明的范圍完全包括本領(lǐng)域技術(shù)人員顯而易見的其他實施例,除 了所附權(quán)利要求之外,本發(fā)明的范圍不受任何其他限制,文中以單數(shù)形式提到一個元件并 意指“僅有一個”(除非明確說明),而是指“一個或多個”。一個裝置或方法不必處理本發(fā) 明試圖解決的每一個問題,因為這些問題由本發(fā)明的權(quán)利要求涵蓋。此外,無論元件、部件 或方法步驟是否在權(quán)利要求中被明確列舉,本公開中沒有意在奉獻于公眾的元件、部件或 方法步驟。凡本文未明確定義的,權(quán)項將給出所有普通的和慣常的含意,它們與本說明及申 請檔案資料沒有沖突。
權(quán)利要求
一種用于匯編軟件包的方法,包括將XML結(jié)構(gòu)呈現(xiàn)給用戶,所述結(jié)構(gòu)是能用于獲得應(yīng)用程序的、面向?qū)ο蟮木幊汰h(huán)境中的類;允許所述用戶使用所述結(jié)構(gòu)來構(gòu)造XML腳本,所述腳本定義所述軟件包的內(nèi)容,以便包含通過所述用戶使用的、用于構(gòu)造該腳本的所述結(jié)構(gòu)而能獲得的應(yīng)用程序;以及解析所述腳本以提供軟件代碼。
2.如權(quán)利要求1所述的方法,包括執(zhí)行所述軟件代碼以自動地將由所述腳本定義的一 個或多個應(yīng)用程序匯編成軟件包。
3.如權(quán)利要求1所述的方法,包括在計算機顯示器(40)的類窗口(42)中呈現(xiàn)至少 某些類,以供用戶對其進行選擇。
4.如權(quán)利要求1所述的方法,包括提示至少與所述軟件包的標(biāo)識有關(guān)的信息,以便開 始所述執(zhí)行動作。
5.一種匯編軟件包的設(shè)備,包括用于向用戶呈現(xiàn)XML結(jié)構(gòu)的部件,所述結(jié)構(gòu)是能用于獲得應(yīng)用程序的、面向?qū)ο蟮木?程環(huán)境中的類;用于允許所述用戶使用所述結(jié)構(gòu)來構(gòu)造XML腳本的部件,所述腳本定義所述軟件包的 內(nèi)容,以便包含通過用戶使用的、用于構(gòu)造該腳本的所述結(jié)構(gòu)而能獲得的應(yīng)用程序;以及用于解析所述腳本以提供軟件代碼的部件。
6.如權(quán)利要求5所述的設(shè)備,包括用于執(zhí)行所述軟件代碼以自動地將由所述腳本定 義的一個或多個應(yīng)用程序匯編成軟件包的部件。
7.一種匯編用于計算機的軟件包的系統(tǒng),所述系統(tǒng)包括模型部件(24),包含用于生成一個或多個軟件應(yīng)用程序列表的面向?qū)ο蟮膽?yīng)用程序編 程接口(API);控制器部件(26),與所述模型部件(24)進行通信并包含分析程序,所述分析程序?qū)⑺?述列表解析成將其執(zhí)行的代碼,以便自動將所述一個或多個應(yīng)用程序匯編成軟件包;以及查看部件(28),與所述控制器部件(26)進行通信來將用于獲得應(yīng)用程序的對象類呈 現(xiàn)給用戶,以便在生成列表時使用所述對象類。
8.如權(quán)利要求7所述的系統(tǒng),其中,所述列表包含與所述應(yīng)用程序相關(guān)聯(lián)的存儲位置。
9.如權(quán)利要求7所述的系統(tǒng),其中所述API是基于XML的。
10.如權(quán)利要求9所述的系統(tǒng),其中所述代碼是C++。
11.如權(quán)利要求10所述的系統(tǒng),包括在計算機顯示器(40)的類窗口(42)中呈現(xiàn)至 少一些類以便由用戶對其進行選擇的裝置。
12.如權(quán)利要求11所述的系統(tǒng),包括對至少與所述軟件包的標(biāo)識有關(guān)的信息進行提 示的裝置。
全文摘要
本發(fā)明提供了基于XML的編程語言、工具箱以及開發(fā)環(huán)境(24、26、28),無需正規(guī)的軟件編程技術(shù)就可以容易地使用并理解它們,以便為計算機匯編完整的軟件套件。
文檔編號G06F9/445GK101907988SQ201010167158
公開日2010年12月8日 申請日期2004年10月14日 優(yōu)先權(quán)日2003年11月7日
發(fā)明者J·T·薩爾姆, S·A·巴頓, V·G·雷哈, V·M·卡利安普爾 申請人:索尼電子有限公司