亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于工廠模式的OSLC數(shù)據(jù)集成接口設(shè)計與實現(xiàn)

        2021-04-22 02:45:30王開陽江云松高棟棟李尚書孟繁鑫
        關(guān)鍵詞:規(guī)范設(shè)計管理

        趙 輝, 王開陽, 江云松, 高棟棟, 李尚書, 孟繁鑫

        1. 西安電子科技大學(xué), 西安 710071 2. 北京控制工程研究所, 北京 100090

        0 引 言

        隨著空間信息技術(shù)的高速發(fā)展,航天器及其信息系統(tǒng)功能越來越強(qiáng)大,航天器上運(yùn)行的軟件系統(tǒng)的規(guī)模越來越大,軟件復(fù)雜度也越來越高,其質(zhì)量保證已成為影響航天產(chǎn)品質(zhì)量的關(guān)鍵要素[1].針對復(fù)雜軟件系統(tǒng)的開發(fā),包括高可靠的航天軟件系統(tǒng)研發(fā),往往單一團(tuán)隊難以在規(guī)定時間內(nèi)完成開發(fā)與測試開發(fā),需要不同地域的不同團(tuán)隊來共同協(xié)作工作,即軟件協(xié)同開發(fā).然而,軟件協(xié)同開發(fā)也使得軟件開發(fā)過程越來越復(fù)雜[2],產(chǎn)生的軟件代碼、軟件文檔及相應(yīng)的測試數(shù)據(jù)等也越來越多.由于不同的團(tuán)隊可能使用不同的開發(fā)與測試工具,這些工具生成的數(shù)據(jù)格式往往是不一致的,也沒有統(tǒng)一的存取接口,對這些數(shù)據(jù)的成和管理集將面臨著很多問題.

        首先,數(shù)據(jù)格式不一致.軟件協(xié)同開發(fā)不同階段生成的數(shù)據(jù)格式各都不相同,這些數(shù)據(jù)包括純文本、圖像、視頻等不同存儲格式,如何有效進(jìn)行數(shù)據(jù)交互存在很大的困難.其次,數(shù)據(jù)存取接口不兼容.不同的團(tuán)隊往往使用不同的開發(fā)測試工具,這些工具生成的數(shù)據(jù)存取接口也沒有統(tǒng)一標(biāo)準(zhǔn),需要針對每一種工具實現(xiàn)一套數(shù)據(jù)存取API,影響軟件協(xié)同開發(fā)的效率,也不利于軟件協(xié)同開發(fā)過程中新工具的加入.為了提高協(xié)同開發(fā)效率,需要對不同階段的數(shù)據(jù)提供統(tǒng)一的數(shù)據(jù)模型和存取接口.

        開放式生命周期協(xié)作服務(wù)OSLC(open services of lifecycle collaboration)是由IBM提出的技術(shù)規(guī)范,主要用于解決產(chǎn)品生命周期內(nèi)各種工具的集成問題,消除不同工具之間數(shù)據(jù)交互的障礙.OSLC規(guī)范由核心規(guī)范[4-5]和領(lǐng)域規(guī)范[6-7]組成.核心規(guī)范用于對核心的集成技術(shù)及通用概念進(jìn)行描述.領(lǐng)域規(guī)范則是對具體的工程領(lǐng)域展開,如需求管理、配置管理、質(zhì)量管理、資產(chǎn)管理、變更管理等傳統(tǒng)軟件工程領(lǐng)域.OSLC將軟件研發(fā)生命周期的工件進(jìn)行資源化.例如一條需求、一個測試用例、一個開發(fā)計劃等都是HTTP URI標(biāo)識的資源,用戶可以通過HTTP協(xié)議對這些資源進(jìn)行訪問[8].

        圖1 OSLC 系統(tǒng)架構(gòu)Fig.1 OSLC system architecture

        國內(nèi)外已經(jīng)有很多研究者針對OSLC規(guī)范展開了研究.例如,SAADATMAND等[9]研究了OSLC和系統(tǒng)工程之間的關(guān)系,重點介紹了OSLC如何將系統(tǒng)工程原理和概念應(yīng)用到工具集成場景中,并討論了系統(tǒng)工程概念和方法能否應(yīng)用于工具集成.挪威奧斯陸大學(xué)的ZHANG等[10]基于OSLC Web服務(wù)討論了一種用于管理工具集成的類建模方法,該方法可用于生成OSLC規(guī)范,以及使用OSLC Web服務(wù)構(gòu)建工具適配器的實現(xiàn)代碼.然而,OSLC只給出了軟件協(xié)同開發(fā)過程中數(shù)據(jù)集成的規(guī)范,并沒有給出具體的統(tǒng)一的數(shù)據(jù)集成接口.例如,OSLC規(guī)范對數(shù)據(jù)進(jìn)行資源化,并通過統(tǒng)一的HTTP協(xié)議對這些資源進(jìn)行訪問.但是,不同工具產(chǎn)生的數(shù)據(jù)格式和結(jié)構(gòu)等都各不相同,提供的數(shù)據(jù)存取接口也不相同.若要集成不同工具的數(shù)據(jù),還需要針對每一種工具開發(fā)其數(shù)據(jù)集成接口,靈活性和擴(kuò)展性較差.

        工廠模式是軟件設(shè)計中常用的一種創(chuàng)建型設(shè)計模式,主要用于解決接口選擇的問題.在工廠模式中,可以將對象的創(chuàng)建和使用相分離[11-12],有利于減少類間的耦合度,提高代碼復(fù)用性和擴(kuò)展性.例如,王志樂等[13]采用抽象工廠模式將機(jī)載飛行顯示系統(tǒng)所有圖形庫按產(chǎn)品族和產(chǎn)品等級進(jìn)行抽象,建立圖形處理模型、圖形繪制模型和顯示模型三級架構(gòu).甄超[14]等基于工廠方法模式對具體網(wǎng)絡(luò)通信設(shè)備的管理和使用進(jìn)行了抽象,實現(xiàn)了通信中間件業(yè)務(wù)邏輯與具體設(shè)備的解耦.但是,工廠模式只是軟件設(shè)計常用的一種模式,它并未涉及到如何實現(xiàn)符合OSLC規(guī)范的數(shù)據(jù)集成.

        基于上述分析,針對航天軟件系統(tǒng)協(xié)同研發(fā)過程中存在數(shù)據(jù)難以集成的問題,本文首次結(jié)合工廠模式和OSLC規(guī)范設(shè)計并實現(xiàn)數(shù)據(jù)集成接口.首先,抽象出統(tǒng)一的數(shù)據(jù)集成接口,基于工廠模式將不同工具的數(shù)據(jù)集成抽象成統(tǒng)一的公共接口,在工廠類中依據(jù)傳入的參數(shù),生成對應(yīng)的產(chǎn)品對象,創(chuàng)建所需的產(chǎn)品對象;其次,在具體的產(chǎn)品對象中實現(xiàn)具體的數(shù)據(jù)集成功能,基于OSLC規(guī)范來設(shè)計工廠模式數(shù)據(jù)操作時序圖,針對具體工具完成符合OSLC規(guī)范的數(shù)據(jù)集成,從而實現(xiàn)不同工具的數(shù)據(jù)集成.目前,以符合OSLC規(guī)范的Bugzilla缺陷管理系統(tǒng)和Jenkins持續(xù)集成工具的集成為例,以面向航天軟件系統(tǒng)研發(fā)的SunwiseAEM一體化研發(fā)管理平臺為載體,基于工廠模式實現(xiàn)了符合OSLC規(guī)范的數(shù)據(jù)集成系統(tǒng),實現(xiàn)了不同工具間的數(shù)據(jù)集成.工廠模式具有良好的擴(kuò)展性,若要集成其它工具的數(shù)據(jù),只需要根據(jù)統(tǒng)一的公共接口實現(xiàn)該工具的數(shù)據(jù)集成即可,不會對其它工具的數(shù)據(jù)集成產(chǎn)生影響,因而可以提供一種通用的、可擴(kuò)展的數(shù)據(jù)集成方式.

        1 數(shù)據(jù)集成接口設(shè)計

        工廠類是整個工廠模式的關(guān)鍵,包含了必要的邏輯判斷,根據(jù)外界給定的信息,決定究竟應(yīng)該創(chuàng)建哪個具體類的對象.使用工廠類,有助于隱藏對象創(chuàng)建的細(xì)節(jié),將產(chǎn)品的實例推遲到子類中去.客戶端無需關(guān)心使用哪一個產(chǎn)品,只需要知道用哪一個工廠即可.下面以符合OSLC規(guī)范的Bugzilla缺陷管理系統(tǒng)和Jenkins持續(xù)集成工具兩個工具的集成為例,詳細(xì)介紹基于OSLC規(guī)范的工廠模式類圖設(shè)計和時序圖設(shè)計.

        1.1 基于OSLC規(guī)范的工廠模式類圖設(shè)計

        基于OSLC規(guī)范的工廠模式中工廠類設(shè)計如圖2所示,它主要包含有OSLCOperatorFactory工廠類、OSLCOperatorAction操作類型類和OSLCOperatorDao接口類.使用工廠模式,在OSLCOperatorFactory中根據(jù)OSLCOperatorAction類型集成不同的OSLCOperatorDao對象;OSLCOperatorDao接口類提供統(tǒng)一的Operate()接口,由其子類具體實現(xiàn).以Bugzilla和Jenkins集成為例,主要包括Bug數(shù)據(jù)管理、軟件項目管理、部門管理和Jenkins任務(wù)管理,通過BugzillaDao類、ProjectDao類、DepartmentDao類、UserDao類和JenkinsDao類,分別實現(xiàn)了上述功能.

        圖2 OSLC Operator 相關(guān)類圖Fig.2 The class diagram about OSLC Operator

        工廠模式中Bug數(shù)據(jù)管理相關(guān)的類設(shè)計如圖3所示.其中BugzillaDao類繼承自上面介紹的OSLCOperatorDao接口類,具體實現(xiàn)了Operate()方法.同樣,BugzillaDao類也使用了工廠模式,在該類中根據(jù)Bug操作類型集成不同的Bugzilla_ActionDao對象.Bugzilla_ActionDao類提供統(tǒng)一的doAction()接口,由其子類具體實現(xiàn),通過Bugzilla_Bug_update類、Bugzilla_Bug_delete類、Bugzilla_Bug_insert類、Bugzilla_Bug_queryall類各自實現(xiàn)doAction()方法,實現(xiàn)對Bugzilla中的Bug修改、刪除、插入、查詢等.

        工廠模式中Jenkins任務(wù)管理相關(guān)的類設(shè)計如圖4所示.其中JenkinsDao類繼承自上面介紹的OSLCOperatorDao接口類,也具體實現(xiàn)了Operate()方法.同樣地,JenkinsDao類也使用工廠模式,在該類中根據(jù)Jenkins操作類型集成不同的Jenkins_ActionDao對象.Jenkins_ActionDao類提供統(tǒng)一的doAction()接口,由其子類具體實現(xiàn),具體實現(xiàn)的類有Jenkins_insert類、Jenkins_start類、Jenkins_close類等;這些類各自實現(xiàn)doAction()方法,從而實現(xiàn)創(chuàng)建Jenkins任務(wù)、啟動Jenkins任務(wù)、刪除Jenkins任務(wù)等.其它的類設(shè)計與上述類相似,故這里不再贅述.

        圖3 Bugzilla相關(guān)類圖Fig.3 The class diagram about Bugzilla

        圖4 Jenkins相關(guān)類圖Fig.4 The class diagram about Jenkins

        圖5 查詢Bug時序圖Fig.5 Sequence diagram of querying bug

        1.2 基于OSLC規(guī)范的工廠模式時序圖設(shè)計

        基于工廠模式設(shè)計相關(guān)類后,還需要進(jìn)一步描述相關(guān)操作的時序圖.例如,查詢Bug的時序圖如圖5所示.用戶需要查詢Bug時,首先調(diào)用前端頁面JavaScript代碼的query_all_bug()函數(shù),然后admin.jsp傳遞一個post函數(shù);HttpClient傳遞一個doPost()函數(shù)到后臺AdminDao類,它執(zhí)行后臺操作Operator(),通過工廠類OSLCOperatorFactory分發(fā)到所屬的BugzillaDao類,再判斷此操作為查詢操作,傳遞一個doAction()到Bugzilla_Bug_queryall類,這個類來執(zhí)行具體的doAction()查詢操作,返回相應(yīng)的Bug數(shù)據(jù).當(dāng)執(zhí)行成功后,返回一個query_success消息.

        查詢Jenkins任務(wù)的時序圖與圖5類似.用戶需要查詢Jenkins任務(wù)時,首先調(diào)用前端頁面JavaScript代碼的query_all_jenkins()函數(shù),然后admin.jsp傳遞一個post函數(shù);HttpClient傳遞一個doPost()函數(shù)到后臺AdminDao類,它執(zhí)行后臺操作Operater(),通過工廠類OSLCOperatorFactory分發(fā)到所屬的JenkinsDao類,再判斷此操作為查詢操作,傳遞一個doAction()到Jenkins_queryall類,這個類來執(zhí)行具體的doAction()查詢操作,返回相應(yīng)的Jenkins任務(wù)數(shù)據(jù).當(dāng)執(zhí)行成功后,返回一個query_success消息.

        其他操作的時序圖與上述時序圖類似,故不再贅述.

        2 實驗驗證

        本文以符合OSLC規(guī)范的Bugzilla缺陷管理系統(tǒng)和Jenkins持續(xù)集成工具的集成為例,以SunwiseAEM一體化研發(fā)管理平臺為載體,采用工廠模式設(shè)計數(shù)據(jù)集成接口,完成基于OSLC的數(shù)據(jù)集成系統(tǒng)的設(shè)計與開發(fā),實現(xiàn)了不同工具間的數(shù)據(jù)集成,對數(shù)據(jù)集成接口進(jìn)行驗證.

        2.1 實驗環(huán)境

        操作系統(tǒng):Win7及以上.

        開發(fā)環(huán)境:MySQL、Eclipse.

        運(yùn)行環(huán)境:IE10.0、Chrome.

        硬件環(huán)境要求:內(nèi)存在 1GB 以上,顯卡內(nèi)存在 64MB 以上.

        2.2 基于OSLC的數(shù)據(jù)集成系統(tǒng)

        本文以SunwiseAEM一體化研發(fā)管理平臺為載體來部署和驗證基于OSLC的數(shù)據(jù)集成系統(tǒng).SunwiseAEM是北京軒宇信息技術(shù)有限公司自主研發(fā)的一體化研發(fā)管理平臺,支持工程管理過程,包括需求、設(shè)計、開發(fā)、測試與缺陷各個階段的結(jié)構(gòu)化管理,形成有效支持需求管理、代碼管理、測試管理、持續(xù)集成、自動化測試與發(fā)布全流程、工具鏈集成,具有強(qiáng)大的工具集成功能,平臺提供100%的API接口,可與第三方工具進(jìn)行無縫集成.該平臺的架構(gòu)圖如圖6所示.

        根據(jù)OSLC規(guī)范和工廠模式設(shè)計思想,設(shè)計數(shù)據(jù)集成系統(tǒng)架構(gòu)圖如圖7所示.其中,數(shù)據(jù)集成系統(tǒng)視圖層工作于SunwiseAEM平臺的表示層,通過瀏覽器的JavaScript頁面實現(xiàn)用戶數(shù)據(jù)的輸入、系統(tǒng)數(shù)據(jù)的顯示等功能;數(shù)據(jù)集成系統(tǒng)接口層工作于SunwiseAEM平臺的接口層,采用工廠模式設(shè)計并實現(xiàn)OSLC數(shù)據(jù)集成接口,通過工廠類管理和調(diào)用相應(yīng)的接口;數(shù)據(jù)集成系統(tǒng)功能接口層工作于SunwiseAEM平臺的功能接口層,基于HTTP協(xié)議實現(xiàn)對符合OSLC規(guī)范的Bugzilla和Jenkins工具APIs的調(diào)用,實現(xiàn)對符合OSLC規(guī)范的Bugzilla和Jenkins工具的集成.

        圖6 SunwiseAEM平臺架構(gòu)圖Fig.6 System architecture of SunwiseAEM Platform

        圖7 系統(tǒng)架構(gòu)圖Fig.7 System architecture diagram

        該系統(tǒng)實現(xiàn)了如下功能:登錄注冊、組群管理、項目管理、用戶管理、Bug管理,以及Jenkins持續(xù)集成管理,包括查看任務(wù)、創(chuàng)建任務(wù)、啟動任務(wù)、禁用任務(wù)、刪除任務(wù)、構(gòu)建任務(wù)以及下載任務(wù).功能結(jié)構(gòu)圖如圖8所示.

        仍以查詢Bugzilla工具的Bug數(shù)據(jù)為例,在JavaScript頁面點擊查看所有Bug,后端接收到這個請求后,解析出request中的字段,通過工廠類OSLCOperatorFactory獲取BugzillaDao類對象.通過BugzillaDao類,獲取Bugzilla_Bug_queryall類對象,調(diào)用Bugzilla_Bug_queryall類doAction()方法,在doAction()方法中通過調(diào)用Bugzilla的API實現(xiàn)對Bugzilla工具的Bug數(shù)據(jù)查詢.獲取的Bug信息顯示如表1所示.其中,ID為Bug序號;項目名稱為Bug所屬的項目;描述為詳細(xì)的Bug信息,可以是文本、圖片等;版本為Bug所屬項目的版本號;狀態(tài)是當(dāng)前Bug所處的狀態(tài),如未分配、已分配、修改中、回歸測試中等狀態(tài).

        圖8 功能結(jié)構(gòu)圖Fig.8 Functional block diagram

        ID項目名稱描述版本狀態(tài)1XX管理系統(tǒng)登錄頁面密碼輸入可以為空.建議修改為提示密碼不能為空.V1.1修改中2XX管理系統(tǒng)新增人員信息后保存提示不明確.建議給出明確的提示信息.V1.1未分配

        同樣,以查詢Jenkins工具的任務(wù)數(shù)據(jù)為例,在JavaScript頁面點擊查看所有任務(wù),后端接收到這個請求后,解析出request中的字段,通過工廠類OSLCOperatorFactory獲取JenkinsDao類對象.通過JenkinsDao類,獲取Jenkins_queryall類對象,調(diào)用Jenkins_queryall類doAction()方法,在doAction()方法中通過調(diào)用Jenkins的API實現(xiàn)對Jenkins工具的任務(wù)數(shù)據(jù)查詢.獲取的任務(wù)信息顯示如表2所示.其中,ID為任務(wù)的序號;任務(wù)名稱為Jenkins任務(wù)的名稱;任務(wù)描述為詳細(xì)的任務(wù)介紹;任務(wù)狀態(tài)表示任務(wù)當(dāng)前的狀態(tài),如啟動、未啟動等.

        表2 查詢Jenkins任務(wù)信息Table 2 Querying all Jenkins tasks

        該系統(tǒng)其它功能與查詢Bug數(shù)據(jù)和Jenkins任務(wù)數(shù)據(jù)的過程類似,故不再贅述.

        4 結(jié) 論

        本文分析了軟件協(xié)同開發(fā)過程中數(shù)據(jù)集成存在的問題,并調(diào)研了開放式生命周期協(xié)作服務(wù)(OSLC)規(guī)范用于數(shù)據(jù)集成的工作,結(jié)合工廠模式和OSLC規(guī)范來設(shè)計數(shù)據(jù)集成接口,將不同工具的數(shù)據(jù)集成抽象成公共接口,工廠類根據(jù)傳入的參數(shù),創(chuàng)建所需的產(chǎn)品對象,再實現(xiàn)具體工具的數(shù)據(jù)集成,有利于優(yōu)化軟件系統(tǒng)體系結(jié)構(gòu).目前,以符合OSLC規(guī)范的Bugzilla缺陷管理系統(tǒng)和Jenkins持續(xù)集成工具的集成為例,以面向航天軟件系統(tǒng)研發(fā)的SunwiseAEM一體化研發(fā)管理平臺為載體,基于工廠模式設(shè)計并實現(xiàn)了符合OSLC規(guī)范的數(shù)據(jù)集成系統(tǒng),實現(xiàn)了不同工具的數(shù)據(jù)集成.

        本文實現(xiàn)的數(shù)據(jù)集成系統(tǒng)只集成了Bugzilla缺陷管理系統(tǒng)和Jenkins持續(xù)集成工具兩個工具,并沒有對數(shù)據(jù)進(jìn)行深入的分析和處理,無法對軟件協(xié)同開發(fā)提供過多的幫助.當(dāng)前,云計算、大數(shù)據(jù)與人工智能技術(shù)給軟件協(xié)同開發(fā)也帶來了巨大的改變,隨著軟件協(xié)同開發(fā)過程中各類數(shù)據(jù)的產(chǎn)生,包括數(shù)據(jù)集成系統(tǒng)在內(nèi)的一體化研發(fā)管理平臺需要進(jìn)一步融合人工智能和大數(shù)據(jù)分析技術(shù),為軟件協(xié)同開發(fā)帶來智能化服務(wù).另外,數(shù)據(jù)安全/數(shù)據(jù)泄露事件頻發(fā),也使得數(shù)據(jù)安全成為數(shù)據(jù)集成領(lǐng)域的熱點問題.一旦發(fā)生數(shù)據(jù)安全問題,對數(shù)據(jù)集成系統(tǒng)的影響將更加嚴(yán)重.因此,如何保障數(shù)據(jù)集成系統(tǒng)的數(shù)據(jù)安全也是下一步要考慮的問題.

        猜你喜歡
        規(guī)范設(shè)計管理
        棗前期管理再好,后期管不好,前功盡棄
        來稿規(guī)范
        來稿規(guī)范
        PDCA法在除顫儀規(guī)范操作中的應(yīng)用
        來稿規(guī)范
        瞞天過海——仿生設(shè)計萌到家
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        “這下管理創(chuàng)新了!等7則
        雜文月刊(2016年1期)2016-02-11 10:35:51
        人本管理在我國國企中的應(yīng)用
        韩国无码av片在线观看网站| 国产午夜免费一区二区三区视频| 亚洲av天堂免费在线观看| 国精产品一区一区三区有限公司杨| 国产乱子伦精品无码码专区| 人人妻人人澡av| 99久久婷婷国产精品综合| 风情韵味人妻hd| 18禁无遮挡羞羞污污污污网站| 亚洲综合色婷婷久久| 国产色视频在线观看了| 国内精品久久久久影院优| 中文字幕乱码人妻一区二区三区 | 日韩精品成人一区二区三区| 少妇无套裸按摩呻吟无呜| 中文字幕久久精品一二三区| 九九精品无码专区免费| 丰满少妇又爽又紧又丰满动态视频 | 国内精品女同一区二区三区| 久久综合99re88久久爱| 中文字幕日韩精品无码内射| 亚洲欧美日韩国产精品网| 永久免费看黄网站性色| 国产情侣真实露脸在线| 狠狠躁夜夜躁人人爽天天天天97| 91日本在线精品高清观看| 亚洲av乱码一区二区三区人人| 3d动漫精品啪啪一区二区免费| 久久人妻公开中文字幕| 一区二区三区免费观看在线视频| 日本男人精品一区二区| 精品淑女少妇av久久免费| 免费无码又爽又刺激高潮的视频网站| 亚洲大胆视频在线观看| 国产 精品 自在 线免费| 亚洲精品无码mv在线观看| 亚洲性无码av在线| 在线免费观看蜜桃视频| 边喂奶边中出的人妻| 狠狠躁夜夜躁AV网站中文字幕| 免费黄网站一区二区三区|