專利名稱:一種軟件生產(chǎn)線構(gòu)造方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)軟件領(lǐng)域,具體涉及一種新的軟件生產(chǎn)環(huán)境一軟件生產(chǎn)線、 構(gòu)造軟件生產(chǎn)線的方法一軟件生產(chǎn)線框架、和軟件生產(chǎn)線框架系統(tǒng)。
背景技術(shù):
軟件生產(chǎn)工具是一類用來(lái)輔助計(jì)算機(jī)軟件開發(fā)、運(yùn)行、維護(hù)、管理、支持等過(guò)程中 的活動(dòng)或任務(wù)的軟件。使用軟件生產(chǎn)工具能節(jié)省軟件生產(chǎn)開銷,提高軟件生產(chǎn)率和產(chǎn)品質(zhì) 量。軟件生產(chǎn)環(huán)境是指軟件生產(chǎn)過(guò)程中所有構(gòu)件,包括工具、制品、平臺(tái)支撐集成的基礎(chǔ)設(shè) 施(平臺(tái)服務(wù)),協(xié)同工作,形成統(tǒng)一、一致、和諧的整體。最早的軟件生產(chǎn)環(huán)境是一種集代碼編寫、調(diào)試、運(yùn)行等工具于一體的集成開發(fā)環(huán) 境(Integrated Development Environment, IDE)。集成開發(fā)環(huán)境提供的特性主要聚焦于 以語(yǔ)法為導(dǎo)向的編輯器擴(kuò)展,增強(qiáng)用戶的開發(fā)過(guò)程體驗(yàn)。典型的代表為Smalltalk、第一個(gè) PC圖形化IDE工具Visual Basic、支持增量編譯的Rational開發(fā)環(huán)境,后期微軟的Visual Studio、IBM 的 WebSphere Studio 以及 Sun 的 Studio One 也屬于此類。雖然集成開發(fā)環(huán)境是一個(gè)集成了編碼、編譯、調(diào)試、運(yùn)行功能的統(tǒng)一生產(chǎn)環(huán)境,但 是仍然只局限于“以編碼為中心的軟件開發(fā)過(guò)程”。隨著人們對(duì)軟件過(guò)程概念認(rèn)識(shí)的逐步提 高以及軟件應(yīng)用規(guī)模的不斷上升,支持軟件需求分析、設(shè)計(jì)、編碼、測(cè)試、維護(hù)和管理等活動(dòng) 的軟件生產(chǎn)工具逐步在軟件生產(chǎn)過(guò)程中發(fā)揮了越來(lái)越大的作用,并逐漸形成了擴(kuò)展開發(fā)環(huán) 境(extended Development Environment, XDE)。擴(kuò)展開發(fā)環(huán)境不僅支持時(shí)間上的松耦合 開發(fā),也支持空間上的分布開發(fā),并且開始考慮對(duì)非軟件依賴因素的管理。擴(kuò)展開發(fā)環(huán)境的 典型代表是支持軟件開發(fā)全生命周期的Rational XDE。軟件開發(fā)不僅僅是單純的編碼,也是團(tuán)隊(duì)開發(fā)者相互合作設(shè)計(jì)解決方案, 構(gòu)建高質(zhì)量代碼的協(xié)同過(guò)程,從而出現(xiàn)了以協(xié)同開發(fā)思想為基礎(chǔ)的協(xié)同開發(fā)環(huán)境 (CollaborativeDevelopment Environment, CDE)。協(xié)同開發(fā)環(huán)境以協(xié)同開發(fā)思想為基礎(chǔ), 通過(guò)整合協(xié)同工具,實(shí)現(xiàn)無(wú)縫、完整的軟件開發(fā)。協(xié)同開發(fā)環(huán)境的使用者擴(kuò)展到了目標(biāo)軟 件的行業(yè)領(lǐng)域?qū)<?、網(wǎng)絡(luò)與硬件工程師等,使得軟件產(chǎn)品相關(guān)的所有利益相關(guān)方均能配置 其感興趣的屬性,在互動(dòng)的軟件開發(fā)協(xié)作過(guò)程中及時(shí)溝通并做出對(duì)策。協(xié)同開發(fā)環(huán)境提供 的特性包括虛擬團(tuán)隊(duì)、即時(shí)通訊、網(wǎng)絡(luò)會(huì)議、論壇等協(xié)同機(jī)制。典型的代表為Collabnet的 SourceForge、Team Forge(http://www. collab. net/), IBM 的 Jazz(http://jazz, net/)寸。軟件產(chǎn)品線(Software Product Line)是多個(gè)軟件密集系統(tǒng)組成的集合,這些系 統(tǒng)共享一個(gè)公共的、可管理的特征集,這個(gè)特征集能滿足選定的市場(chǎng)或任務(wù)領(lǐng)域的特定需 求。軟件產(chǎn)品線遵循一個(gè)預(yù)描述的方式,在公共的核心資源(Core Assets)基礎(chǔ)上開發(fā)的。 (CMU, http://www. sei. emu. edu/productlines/frame_report/terminology, htm)軟件產(chǎn) 品線強(qiáng)調(diào)的是軟件產(chǎn)品家族。本發(fā)明涉及的軟件生產(chǎn)線(Software Production Line)強(qiáng) 調(diào)的是軟件生產(chǎn)工具和構(gòu)件有序組織起來(lái)的軟件開發(fā)環(huán)境,能夠?yàn)檐浖_發(fā)提供完整的、成套的軟件開發(fā)支撐。當(dāng)前軟件生產(chǎn)環(huán)境仍然有一些工具集成問(wèn)題需要解決。(1)面向不同領(lǐng)域的工具 集成需求隨著軟件開發(fā)技術(shù)的發(fā)展,積累了越來(lái)越多的工具輔助軟件開發(fā)實(shí)踐,不同領(lǐng)域 的軟件開發(fā)具有不同的領(lǐng)域特征,面向領(lǐng)域的工具集成復(fù)雜;(2)軟件工具間需要靈活的 過(guò)程邏輯當(dāng)前的軟件生產(chǎn)工具集成方法在集成過(guò)程中缺失工具的使用邏輯,并且軟件的 開發(fā)邏輯無(wú)法顯式化、可定制化;(3)開發(fā)者、工具、制品數(shù)據(jù)之間更加不可分割的關(guān)系制 品加工活動(dòng)、加工操作人員與制品數(shù)據(jù)管理間相互關(guān)聯(lián)與依存,而當(dāng)前生產(chǎn)環(huán)境割裂這三 者之間的關(guān)系。針對(duì)這些問(wèn)題,研究靈活、可擴(kuò)展的軟件工具集成框架、實(shí)現(xiàn)軟件生產(chǎn)工具、 制品、和開發(fā)協(xié)同平臺(tái)之間的集成方法和交互機(jī)制,支持生產(chǎn)線的靈活構(gòu)造,進(jìn)而規(guī)范軟件 工具、制品的集成和共享能力。
發(fā)明內(nèi)容
針對(duì)上述軟件生產(chǎn)環(huán)境中所存在的問(wèn)題和不足,本發(fā)明的目的是定義一種面向互 聯(lián)網(wǎng)的、集成化、可擴(kuò)展、協(xié)同化的軟件開發(fā)環(huán)境——軟件生產(chǎn)線,提出構(gòu)造軟件生產(chǎn)線的 方法——軟件生產(chǎn)線框架,指導(dǎo)構(gòu)建靈活、高效的軟件開發(fā)環(huán)境,從而提高軟件開發(fā)效率、 提升軟件產(chǎn)品質(zhì)量;同時(shí)提供軟件生產(chǎn)線框架系統(tǒng),為軟件生產(chǎn)線的實(shí)施提供幫助。軟件生產(chǎn)線是將軟件開發(fā)過(guò)程中涉及的開發(fā)者、工具、制品等要素,按照一定的軟 件開發(fā)方法,有序組織起來(lái),并使其相互協(xié)作,形成集成化、可擴(kuò)展、協(xié)同化的軟件開發(fā)環(huán) 境。軟件生產(chǎn)線能夠提供成套的軟件開發(fā)支撐,其內(nèi)在驅(qū)動(dòng)是軟件生產(chǎn)活動(dòng),目的是生產(chǎn)軟 件制品。軟件生產(chǎn)線框架系統(tǒng)是用于支撐軟件生產(chǎn)線的基礎(chǔ)設(shè)施,為生產(chǎn)線的構(gòu)造和運(yùn)行 提供基礎(chǔ)服務(wù)。本發(fā)明的技術(shù)方案為一種軟件生產(chǎn)線構(gòu)造方法,其步驟為1)客戶端根據(jù)軟件開發(fā)環(huán)境的需求創(chuàng)建軟件生產(chǎn)線模型文件并將其保存到服務(wù) 器端;2)客戶端裝配模塊從服務(wù)器端下載并解析該軟件生產(chǎn)線模型文件,獲得該軟件生 產(chǎn)線中的角色信息;3)客戶端裝配模塊依據(jù)客戶端的角色和軟件生產(chǎn)線模型文件中角色與加工步驟、 加工步驟與工具集的映射信息,獲得該客戶端所需的工具集地址,并從服務(wù)器端下載工具 集裝配該客戶端;4)客戶端任務(wù)管理模塊定期輪詢服務(wù)器端任務(wù)管理模塊,下載與所在客戶端相關(guān) 的任務(wù)信息;其中任務(wù)信息包括輸入制品信息、輸出制品信息、所需工具;5)客戶端制品管理模塊根據(jù)下載的任務(wù)信息完成該任務(wù),并將該任務(wù)狀態(tài)改為完 成。進(jìn)一步的,創(chuàng)建所述軟件生產(chǎn)線模型文件的方法為1)根據(jù)軟件生產(chǎn)線元模型,將軟件開發(fā)過(guò)程提取為一組有序的加工步驟;所述軟 件生產(chǎn)線元模型包含加工工序、加工步驟、角色、工具和制品五個(gè)元素以及它們之間的關(guān) 系;2)設(shè)定每個(gè)加工步驟相關(guān)的角色信息、所需工具集、輸入制品信息和輸出制品信 息,建立軟件生產(chǎn)線元模型實(shí)例,形成所述的軟件生產(chǎn)線模型文件。
進(jìn)一步的,采用基于Eclipse插件的生產(chǎn)線圖形化建模工具創(chuàng)建所述軟件生產(chǎn)線 模型文件。進(jìn)一步的,所述軟件生產(chǎn)線模型文件為XML格式文件。進(jìn)一步的,所述客戶端裝配模塊利用XML解析器解析所述軟件生產(chǎn)線模型文件。進(jìn)一步的,所述客戶端裝配模塊通過(guò)HTTP協(xié)議從服務(wù)器端下載并解析該軟件生 產(chǎn)線模型文件。進(jìn)一步的,所述客戶端裝配模塊采用Eclipse插件更新機(jī)制從服務(wù)器端獲得客戶 端所需的工具集。進(jìn)一步的,所述任務(wù)信息還包括增加任務(wù)的時(shí)機(jī)、任務(wù)類型、完成任務(wù)的人員、 任務(wù)計(jì)劃持續(xù)時(shí)間、任務(wù)實(shí)際持續(xù)的時(shí)間、任務(wù)計(jì)劃的剩余時(shí)間、任務(wù)對(duì)應(yīng)的生產(chǎn)線加工工序。一種軟件生產(chǎn)線構(gòu)造系統(tǒng),其特征在于包括服務(wù)器端和若干客戶端,服務(wù)器端和 客戶端通過(guò)HTTP協(xié)議互聯(lián);其中服務(wù)器端包括生產(chǎn)線管理模塊、工具管理模塊、任務(wù)管理模塊、制品管理模塊;所述生產(chǎn)線管理模塊,用于維護(hù)軟件生產(chǎn)線模型文件;所述工具管理模塊,用于將生產(chǎn)線中涉及的工具按照Eclipse更新站點(diǎn)的形式進(jìn) 行組織管理;所述任務(wù)管理模塊,用于輸入任務(wù)說(shuō)明,并維護(hù)任務(wù)的狀態(tài);所述制品管理模塊,用于存儲(chǔ)、提取、更新軟件開發(fā)過(guò)程中所產(chǎn)生的軟件制品,支 持制品在整個(gè)軟件開發(fā)過(guò)程中的共享;客戶端包括生產(chǎn)線建模工具、客戶端裝配模塊、客戶端任務(wù)管理模塊、客戶端制品 管理模塊;所述生產(chǎn)線建模工具,用于根據(jù)軟件開發(fā)環(huán)境創(chuàng)建軟件生產(chǎn)線模型文件;所述客戶端裝配模塊,用于從所述工具管理模塊的生產(chǎn)線工具庫(kù)中下載并安裝相 應(yīng)的工具集,裝配出所需的客戶端;所述客戶端任務(wù)管理模塊,用于從服務(wù)器端的所述任務(wù)管理模塊中獲取客戶端相 關(guān)的軟件開發(fā)任務(wù),并根據(jù)任務(wù)描述的制品位置,提取待加工制品;在制品加工完成后,根 據(jù)制品輸出位置存儲(chǔ)制品;所述客戶端制品管理模塊,用于從服務(wù)器端的所述制品管理模塊終獲取制品信 息、更新制品信息或者提交工具產(chǎn)生的制品。進(jìn)一步的,所述任務(wù)說(shuō)明包括加工步驟的開發(fā)任務(wù),任務(wù)的屬性信息,任務(wù)的要 求;服務(wù)器端的所述制品管理模塊采用配置管理系統(tǒng)管理生產(chǎn)線中的制品;所述軟件生產(chǎn) 線模型文件為XML格式文件。本發(fā)明中生產(chǎn)線框架包括軟件生產(chǎn)線建模、軟件生產(chǎn)線裝配和加工任務(wù)執(zhí)行三部 分。1.軟件生產(chǎn)線建模軟件生產(chǎn)線不僅是開發(fā)者、工具、制品的靜態(tài)集合,更是一種動(dòng)態(tài)的、能夠反映軟 件開發(fā)方法的軟件開發(fā)環(huán)境。這種動(dòng)態(tài)特性通過(guò)軟件生產(chǎn)線過(guò)程模型表達(dá),軟件生產(chǎn)線過(guò) 程模型是對(duì)軟件生產(chǎn)線的過(guò)程抽象,描述了基于某種軟件開發(fā)方法的軟件開發(fā)過(guò)程,是反映軟件生產(chǎn)線特征的關(guān)鍵。軟件生產(chǎn)線過(guò)程模型是由一系列制品加工步驟組成的加工工 序。軟件生產(chǎn)線模型以軟件生產(chǎn)線過(guò)程模型為核心,將軟件生產(chǎn)線中開發(fā)者、工具、制品等 要素有機(jī)聯(lián)系在一起,如圖1所示。本發(fā)明定義軟件生產(chǎn)線元模型及其過(guò)程元模型如圖2 所示。軟件生產(chǎn)線元模型包含以下要素 加工工序,是一組用于描述軟件開發(fā)過(guò)程的軟件生產(chǎn)活動(dòng)序列,是對(duì)軟件生產(chǎn) 線的過(guò)程抽象。 加工步驟,是加工工序中的一道“工序”環(huán)節(jié),是對(duì)一類軟件生產(chǎn)活動(dòng)的抽象。 角色,是對(duì)軟件生產(chǎn)線用戶在利用軟件生產(chǎn)線實(shí)施軟件開發(fā)實(shí)踐的過(guò)程中所承 擔(dān)的職能的定義。 工具,是軟件生產(chǎn)線中用以輔助完成軟件生產(chǎn)活動(dòng)的各類軟件。 軟件制品,是軟件工具作用的對(duì)象。軟件生產(chǎn)線中可能存在各種形態(tài)的制品,例 如代碼編輯器產(chǎn)生的源代碼文件,需求工具產(chǎn)生的需求分析文檔等。加工工序由一組有序的加工步驟組成。加工步驟定義本步驟相關(guān)的角色、工具集 以及制品集,同時(shí)定義軟件生產(chǎn)線中開發(fā)者、工具、制品間的關(guān)聯(lián)。加工步驟需要對(duì)應(yīng)一個(gè) 特定的工具集、一個(gè)特定的輸出制品集,以及一個(gè)或多個(gè)可能的輸入制品集,如圖2所示。項(xiàng)目管理人員依據(jù)軟件開發(fā)環(huán)境的需要,比如需要的軟件開發(fā)過(guò)程、軟件開發(fā)工 具等,在軟件生產(chǎn)線元模型的基礎(chǔ)上,將軟件生產(chǎn)線中的加工工序、加工步驟、工具集、軟件 制品等實(shí)例化,形成具有一定格式的軟件生產(chǎn)線模型,比如利用XML表示的軟件生產(chǎn)線模 型。2.軟件生產(chǎn)線裝配在完成軟件生產(chǎn)線模型設(shè)計(jì)后,客戶端裝配模塊利用該軟件生產(chǎn)線模型,構(gòu)建個(gè) 人工作平臺(tái)。軟件生產(chǎn)線裝配的步驟(圖3)如下1)客戶端裝配模塊通過(guò)HTTP協(xié)議從服務(wù)器端的生產(chǎn)線管理模塊獲得一個(gè)軟件生 產(chǎn)線模型文件;2)客戶端裝配模塊利用XML解析器解析該生產(chǎn)線模型文件,獲得該軟件生產(chǎn)線中 的角色信息;3)開發(fā)者根據(jù)需要,選擇自己對(duì)應(yīng)的角色;依據(jù)選擇的角色,客戶端裝配模塊通 過(guò)軟件生產(chǎn)線模型文件中定義角色與加工步驟、加工步驟與工具集的映射信息,獲得個(gè)人 工作平臺(tái)需要的工具集的地址;4)客戶端裝配模塊從工具管理模塊下載相應(yīng)的工具集;5)客戶端裝配模塊依據(jù)Eclipse插件更新機(jī)制,安裝下載的工具集;6)客戶端裝配模塊熱啟動(dòng)相應(yīng)的工具集。3.加工任務(wù)執(zhí)行上一步完成客戶端裝配,這一步利用客戶端完成任務(wù)加工;軟件生產(chǎn)線裝配完成 后,形成了個(gè)人工作平臺(tái)。開發(fā)者基于個(gè)人工作平臺(tái)開始執(zhí)行加工任務(wù)??蛻舳巳蝿?wù)管理模 塊從服務(wù)器端任務(wù)管理模塊接收相應(yīng)的開發(fā)任務(wù),并開始相應(yīng)的開發(fā)活動(dòng),具體步驟(圖 4)如下1)客戶端任務(wù)管理模塊定期輪詢服務(wù)器端任務(wù)管理模塊,并從服務(wù)器端任務(wù)管理 模塊中下載用戶相關(guān)的任務(wù);
2)任務(wù)中包括該任務(wù)相關(guān)的輸入制品信息,客戶端制品管理模塊依據(jù)該任務(wù)的輸 入制品信息,下載任務(wù)中指定的輸入制品;3)任務(wù)中包含執(zhí)行該任務(wù)需要的生產(chǎn)工具,用戶利用該生產(chǎn)工具,加工輸入制
P
m ;4)任務(wù)中包含任務(wù)輸出制品的存儲(chǔ)位置,客戶端制品管理模塊將加工后生成的制 品存入到任務(wù)指定的制品輸出位置;5)客戶端任務(wù)管理模塊修改任務(wù)狀態(tài),將該任務(wù)狀態(tài)修改為“完成”。與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為本發(fā)明提出一種面向互聯(lián)網(wǎng)的、集成化、可擴(kuò)展、協(xié)同化的軟件開發(fā)環(huán)境——軟件 生產(chǎn)線以及構(gòu)造軟件生產(chǎn)線的方法,其優(yōu)點(diǎn)和應(yīng)用如下1、本發(fā)明的方法以更細(xì)粒度的方法提出軟件生產(chǎn)線的構(gòu)造方法,為基于領(lǐng)域的生 產(chǎn)線構(gòu)造提供指導(dǎo)。2、本發(fā)明提出的基于軟件生產(chǎn)過(guò)程的生產(chǎn)線構(gòu)造方法,彌補(bǔ)了軟件開發(fā)中生產(chǎn)過(guò) 程、工具、制品、開發(fā)者之間關(guān)系的缺失,實(shí)現(xiàn)工具之間數(shù)據(jù)集成、控制集成、過(guò)程集成需求。
圖1軟件生產(chǎn)線概念模型;圖2軟件生產(chǎn)線元模型;圖3軟件生產(chǎn)線裝配步驟;圖4加工任務(wù)執(zhí)行步驟;圖5軟件生產(chǎn)線框架系統(tǒng)。
具體實(shí)施例方式本發(fā)明的目的是提出軟件生產(chǎn)線框架。軟件生產(chǎn)線框架的核心思想是利用其他領(lǐng) 域的生產(chǎn)線思想,為軟件開發(fā)提供一個(gè)軟件工具集成方法;同時(shí)提供制品管理、軟件工具管 理、任務(wù)管理以及工具便捷的組裝,形成一個(gè)協(xié)同的、深度集成的軟件開發(fā)環(huán)境。在軟件生產(chǎn)線框架中,軟件生產(chǎn)線模型采用XML(http://www.w3. org/XML/)描 述,如下列描述所示<software_production_line><name>ISCAS_BPCI</name>〈description〉支持異構(gòu)集成的生產(chǎn)線〈/description〉<roles>......</roles>〈toolsets〉......〈/toolsets〉<spl_process>......
</spl_process></software_production_line>其中,軟件生產(chǎn)線元素由<software_production_line>標(biāo)識(shí),它由生產(chǎn)線名字 <name>、生產(chǎn)線描述〈description〉、生產(chǎn)線中涉及的角色<roles>、生產(chǎn)線中涉及的工具 集<toolesets>以及生產(chǎn)線的加工工序<spl_process>組成。軟件生產(chǎn)線涉及多個(gè)角色,每個(gè)角色<role>由名字<name>和描述〈description〉 組成,如下列描述所示<roles><role><name>BPMNDeveloper</name>〈description〉〈/description〉</role>......</roles>軟件生產(chǎn)線涉及多個(gè)工具集,每個(gè)工具集〈toolset〉由工具集名字〈name〉、工具 集描述〈description〉和工具集更新地址<url>組成,如下列描述所示〈toolsets〉〈toolset〉<name>process_design_toolset</name>〈description〉、流程建模工具〈/description〉<url>http//localhost/toolsets/process_design_tool_updateSite</ url>〈/toolset〉......</toolsets>軟件生產(chǎn)線的加工工序由一系列加工步驟組成,每個(gè)加工步驟<spl_st印〉由加
工步驟的名字Oname、加工步驟的描述〈description〉、加工步驟涉及的角色〈require, ro 1 e>、加工步驟涉及的輸入制品位置〈artifact_input>和輸出制品位置〈artifact output〉組成。如下列描述所示<spl_process><spl_st印 name = 〃流程建模〃 >〈description/〉<require_role ref = “ BPMNDeveloper" /><required_toolset ref = “ process_design_toolset“ /><artifact_input/><artifact_output>http//localhost/repostrunk/BPMN</artifact output)</spl_step>......
</spl_process>本發(fā)明中的軟件生產(chǎn)線框架系統(tǒng)在軟件生產(chǎn)線模型的基礎(chǔ)上,實(shí)現(xiàn)了軟件生產(chǎn)線 的構(gòu)建,其中包括服務(wù)器端和若干客戶端,服務(wù)器端包括生產(chǎn)線管理模塊、工具管理模塊、 任務(wù)管理模塊、制品管理模塊;客戶端包括生產(chǎn)線建模工具、客戶端裝配模塊、客戶端任務(wù) 管理模塊、客戶端制品管理模塊(如圖5所示)。服務(wù)器端和客戶端通過(guò)HTTP協(xié)議互聯(lián),具 體描述如下1)生產(chǎn)線建模工具軟件生產(chǎn)線框架系統(tǒng)基于Eclipse GEF(http//www. eclipse, org/gef/)和 GMF(http//www. eclipse, org/modeling/gmp/),實(shí)現(xiàn)了基于 Eclipse 插件的生產(chǎn)線圖形 化建模工具。項(xiàng)目管理人員根據(jù)自身軟件生產(chǎn)環(huán)境的需要,利用生產(chǎn)線建模工具,構(gòu)建軟件 生產(chǎn)線模型,并最終形成基于XML的軟件生產(chǎn)線模型。軟件生產(chǎn)線建模工具將生成的軟件 生產(chǎn)線模型通過(guò)HTTP協(xié)議保存在生產(chǎn)線管理模塊中。2)生產(chǎn)線管理模塊生產(chǎn)線管理模塊是基于Web的服務(wù)器應(yīng)用。利用生產(chǎn)線管理模塊,可以添加、修 改、刪除服務(wù)器上的軟件生產(chǎn)線模型文件。個(gè)人工作平臺(tái)裝配客戶端通過(guò)HTTP協(xié)議從生產(chǎn) 線管理模塊中獲得軟件生產(chǎn)線模型文件。3)工具管理模塊工具管理模塊將生產(chǎn)線中涉及的工具按照Eclipse更新站點(diǎn)的形式組織 (http://www. eclipse, org/articles/article. php ? file = Article-Update/index, html)??蛻舳搜b配模塊采用Eclipse插件更新機(jī)制,從工具管理模塊下載新的工具或者更 新軟件工具。4)任務(wù)管理模塊利用任務(wù)管理模塊,輸入任務(wù)說(shuō)明,并在執(zhí)行過(guò)程中,修改任務(wù)的狀態(tài)。在軟件開 發(fā)過(guò)程中,利用任務(wù)管理模塊制定各個(gè)加工步驟的開發(fā)任務(wù),設(shè)置任務(wù)的相關(guān)屬性(如輸 入/輸出制品位置),制定任務(wù)的要求(如任務(wù)的完成時(shí)間)等。并在任務(wù)執(zhí)行過(guò)程中,由 客戶端任務(wù)管理模塊更新任務(wù)的狀態(tài)。任務(wù)的屬性描述如下所示task_dep Ioyment task_category task_people task_during task_actual_during task_rest_time task_spl_step task_input_artifact
增加任務(wù)的時(shí)機(jī) 任務(wù)類型 完成任務(wù)的人員 任務(wù)計(jì)劃持續(xù)時(shí)間 任務(wù)實(shí)際持續(xù)的時(shí)間 任務(wù)計(jì)劃的剩余時(shí)間 任務(wù)對(duì)應(yīng)的生產(chǎn)線加工工序 任務(wù)對(duì)應(yīng)的輸入制品位置task_output_artifact 任務(wù)對(duì)應(yīng)的輸出制品位置5)制品管理模塊制品管理模塊負(fù)責(zé)存儲(chǔ)、提取、更新軟件開發(fā)過(guò)程中所產(chǎn)生的軟件制品,支持制品 在整個(gè)軟件開發(fā)過(guò)程中的共享。軟件生產(chǎn)線框架采用配置管理系統(tǒng)管理生產(chǎn)線中的制品, 比如 SVN(http//subversion, tigris. org/)。
6)客戶端裝配模塊客戶端裝配模塊是基于Eclipse插件的工具,幫助用戶靈活構(gòu)建個(gè)人工作平臺(tái)。 在軟件開發(fā)過(guò)程中,客戶端裝配模塊通過(guò)HTTP協(xié)議,從生產(chǎn)線工具庫(kù)中下載并安裝相應(yīng)的 工具集,以此形成個(gè)人工作平臺(tái)(即客戶端)。7)客戶端任務(wù)管理模塊客戶端任務(wù)管理模塊采用Client/Server架構(gòu),獲得軟件生產(chǎn)線中的任務(wù)信息。 客戶端任務(wù)管理模塊從服務(wù)器端任務(wù)管理模塊中獲取本用戶相關(guān)的軟件開發(fā)任務(wù),根據(jù)任 務(wù)描述的制品位置,提取待加工制品;在制品加工完成后,根據(jù)制品位置存儲(chǔ)制品。8)客戶端制品管理模塊客戶端制品管理模塊負(fù)責(zé)從服務(wù)器端制品管理模塊獲取制品信息、更新制品信息 或者提交工具產(chǎn)生的制品。基于上述軟件生產(chǎn)線框架與系統(tǒng),可以實(shí)現(xiàn)軟件工具集成。項(xiàng)目管理人員利用生 產(chǎn)線建模工具構(gòu)建軟件生產(chǎn)線模型;并在此基礎(chǔ)上,利用客戶端生產(chǎn)線裝配模塊構(gòu)建開發(fā) 人員的個(gè)人工作平臺(tái),并在客戶端任務(wù)管理模塊的指導(dǎo)下,完成開發(fā)任務(wù)。盡管為說(shuō)明目的公開了本發(fā)明的具體實(shí)施例和附圖,其目的在于幫助理解本發(fā)明 的內(nèi)容并據(jù)以實(shí)施,但是本領(lǐng)域的技術(shù)人員可以理解在不脫離本發(fā)明及所附的權(quán)利要求 的精神和范圍內(nèi),各種替換、變化和修改都是可能的。因此,本發(fā)明不應(yīng)局限于最佳實(shí)施例 和附圖所公開的內(nèi)容。
權(quán)利要求
一種軟件生產(chǎn)線構(gòu)造方法,其步驟為1)客戶端根據(jù)軟件開發(fā)環(huán)境的需求創(chuàng)建軟件生產(chǎn)線模型文件并將其保存到服務(wù)器端;2)客戶端裝配模塊從服務(wù)器端下載并解析該軟件生產(chǎn)線模型文件,獲得該軟件生產(chǎn)線中的角色信息;3)客戶端裝配模塊依據(jù)客戶端的角色和軟件生產(chǎn)線模型文件中角色與加工步驟、加工步驟與工具集的映射信息,獲得該客戶端所需的工具集地址,并從服務(wù)器端下載工具集裝配該客戶端;4)客戶端任務(wù)管理模塊定期輪詢服務(wù)器端任務(wù)管理模塊,下載與所在客戶端相關(guān)的任務(wù)信息;其中任務(wù)信息包括輸入制品信息、輸出制品信息、所需工具;5)客戶端制品管理模塊根據(jù)下載的任務(wù)信息完成該任務(wù),并將該任務(wù)狀態(tài)改為完成。
2.如權(quán)利要求1所述的方法,其特征在于創(chuàng)建所述軟件生產(chǎn)線模型文件的方法為1)根據(jù)軟件生產(chǎn)線元模型,將軟件開發(fā)過(guò)程提取為一組有序的加工步驟;所述軟件生 產(chǎn)線元模型包含加工工序、加工步驟、角色、工具和制品五個(gè)元素以及它們之間的關(guān)系;2)設(shè)定每個(gè)加工步驟相關(guān)的角色信息、所需工具集、輸入制品信息和輸出制品信息,建 立軟件生產(chǎn)線元模型實(shí)例,形成所述的軟件生產(chǎn)線模型文件。
3.如權(quán)利要求2所述的方法,其特征在于采用基于Eclipse插件的生產(chǎn)線圖形化建模 工具創(chuàng)建所述軟件生產(chǎn)線模型文件。
4.如權(quán)利要求3所述的方法,其特征在于所述軟件生產(chǎn)線模型文件為XML格式文件。
5.如權(quán)利要求4所述的方法,其特征在于所述客戶端裝配模塊利用XML解析器解析所 述軟件生產(chǎn)線模型文件。
6.如權(quán)利要求1或2或3或4或5所述的方法,其特征在于所述客戶端裝配模塊通過(guò) HTTP協(xié)議從服務(wù)器端下載并解析該軟件生產(chǎn)線模型文件。
7.如權(quán)利要求1所述的方法,其特征在于所述客戶端裝配模塊采用Eclipse插件更新 機(jī)制從服務(wù)器端獲得客戶端所需的工具集。
8.如權(quán)利要求1所述的方法,其特征在于所述任務(wù)信息還包括增加任務(wù)的時(shí)機(jī)、任務(wù) 類型、完成任務(wù)的人員、任務(wù)計(jì)劃持續(xù)時(shí)間、任務(wù)實(shí)際持續(xù)的時(shí)間、任務(wù)計(jì)劃的剩余時(shí)間、任 務(wù)對(duì)應(yīng)的生產(chǎn)線加工工序。
9.一種軟件生產(chǎn)線構(gòu)造系統(tǒng),其特征在于包括服務(wù)器端和若干客戶端,服務(wù)器端和客 戶端通過(guò)HTTP協(xié)議互聯(lián);其中服務(wù)器端包括生產(chǎn)線管理模塊、工具管理模塊、任務(wù)管理模塊、制品管理模塊;所述生產(chǎn)線管理模塊,用于維護(hù)軟件生產(chǎn)線模型文件;所述工具管理模塊,用于將生產(chǎn)線中涉及的工具按照Eclipse更新站點(diǎn)的形式進(jìn)行組 織管理;所述任務(wù)管理模塊,用于輸入任務(wù)說(shuō)明,并維護(hù)任務(wù)的狀態(tài);所述制品管理模塊,用于存儲(chǔ)、提取、更新軟件開發(fā)過(guò)程中所產(chǎn)生的軟件制品,支持制 品在整個(gè)軟件開發(fā)過(guò)程中的共享;客戶端包括生產(chǎn)線建模工具、客戶端裝配模塊、客戶端任務(wù)管理模塊、客戶端制品管理 模塊;所述生產(chǎn)線建模工具,用于根據(jù)軟件開發(fā)環(huán)境創(chuàng)建軟件生產(chǎn)線模型文件; 所述客戶端裝配模塊,用于從所述工具管理模塊的生產(chǎn)線工具庫(kù)中下載并安裝相應(yīng)的 工具集,裝配出所需的客戶端;所述客戶端任務(wù)管理模塊,用于從服務(wù)器端的所述任務(wù)管理模塊中獲取客戶端相關(guān)的 軟件開發(fā)任務(wù),并根據(jù)任務(wù)描述的制品位置,提取待加工制品;在制品加工完成后,根據(jù)制 品輸出位置存儲(chǔ)制品;所述客戶端制品管理模塊,用于從服務(wù)器端的所述制品管理模塊終獲取制品信息、更 新制品信息或者提交工具產(chǎn)生的制品。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于所述任務(wù)說(shuō)明包括加工步驟的開發(fā)任務(wù), 任務(wù)的屬性信息,任務(wù)的要求;服務(wù)器端的所述制品管理模塊采用配置管理系統(tǒng)管理生產(chǎn) 線中的制品;所述軟件生產(chǎn)線模型文件為XML格式文件。
全文摘要
本發(fā)明公開了一種軟件生產(chǎn)線構(gòu)造方法及系統(tǒng),屬于計(jì)算機(jī)軟件領(lǐng)域。本方法為1)客戶端創(chuàng)建軟件生產(chǎn)線模型文件并將其保存到服務(wù)器端;2)客戶端裝配模塊從服務(wù)器端下載并解析該軟件生產(chǎn)線模型文件,獲得該軟件生產(chǎn)線中的角色信息;3)客戶端裝配模塊依據(jù)客戶端的角色和軟件生產(chǎn)線模型文件獲得該客戶端所需的工具集地址,并從服務(wù)器端下載工具集裝配該客戶端;4)客戶端任務(wù)管理模塊輪詢服務(wù)器端任務(wù)管理模塊,下載與所在客戶端相關(guān)的任務(wù)信息;5)客戶端制品管理模塊根據(jù)下載的任務(wù)信息完成該任務(wù),并將該任務(wù)狀態(tài)改為完成。本發(fā)明彌補(bǔ)了軟件開發(fā)中生產(chǎn)過(guò)程、工具、制品、開發(fā)者之間關(guān)系的缺失,實(shí)現(xiàn)工具之間數(shù)據(jù)集成、控制集成、過(guò)程集成。
文檔編號(hào)H04L29/06GK101957753SQ20101027906
公開日2011年1月26日 申請(qǐng)日期2010年9月10日 優(yōu)先權(quán)日2010年9月10日
發(fā)明者張若定, 王偉, 白琳, 竇文生, 鐘華, 陳偉, 高楚舒, 魏峻, 黃濤 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所