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

        ?

        基于可變點(diǎn)的數(shù)據(jù)展現(xiàn)子系統(tǒng)定制化開(kāi)發(fā)方法

        2016-09-26 07:19:51邢戎飛沈立煒趙文耘
        關(guān)鍵詞:定義特征用戶(hù)

        邢戎飛 沈立煒 趙文耘

        (復(fù)旦大學(xué)軟件學(xué)院 上海 201203) (上海市數(shù)據(jù)科學(xué)重點(diǎn)實(shí)驗(yàn)室(復(fù)旦大學(xué)) 上海 200433)

        ?

        基于可變點(diǎn)的數(shù)據(jù)展現(xiàn)子系統(tǒng)定制化開(kāi)發(fā)方法

        邢戎飛沈立煒趙文耘

        (復(fù)旦大學(xué)軟件學(xué)院上海 201203) (上海市數(shù)據(jù)科學(xué)重點(diǎn)實(shí)驗(yàn)室(復(fù)旦大學(xué))上海 200433)

        數(shù)據(jù)密集型系統(tǒng)已經(jīng)廣泛應(yīng)用于不同的行業(yè)與領(lǐng)域。在分層的數(shù)據(jù)密集型系統(tǒng)中,數(shù)據(jù)展現(xiàn)子系統(tǒng)是其重要的組成部分。使用軟件產(chǎn)品線的方法開(kāi)發(fā)一組具有相似需求的數(shù)據(jù)展現(xiàn)子系統(tǒng)能夠有效提高開(kāi)發(fā)人員的效率。然而,傳統(tǒng)的軟件產(chǎn)品線構(gòu)造與定制方法并不能完全適用于該類(lèi)子系統(tǒng)的可變性特性。針對(duì)這種情況,提出一套基于可變點(diǎn)的數(shù)據(jù)展現(xiàn)子系統(tǒng)定制化開(kāi)發(fā)方法。該方法首先對(duì)軟件產(chǎn)品線特征元模型進(jìn)行了擴(kuò)展,并基于該元模型總結(jié)出一套面向需求文檔的特征建模過(guò)程和可變點(diǎn)實(shí)現(xiàn)技術(shù)方案。另外,該方法提出兩階段的定制過(guò)程支持子系統(tǒng)的定制化開(kāi)發(fā)。最后,通過(guò)一個(gè)財(cái)務(wù)數(shù)據(jù)系統(tǒng)中的數(shù)據(jù)展現(xiàn)子系統(tǒng)實(shí)例驗(yàn)證了方法的可行性與有效性。

        軟件產(chǎn)品線數(shù)據(jù)展現(xiàn)子系統(tǒng)可變性

        0 引 言

        數(shù)據(jù)密集型系統(tǒng)是以數(shù)據(jù)為核心,對(duì)數(shù)據(jù)進(jìn)行收集、分析、處理與展現(xiàn)的軟件應(yīng)用系統(tǒng)[1]。當(dāng)前,數(shù)據(jù)密集型系統(tǒng)已經(jīng)廣泛應(yīng)用于電信、金融、政府、制造等,積累了大規(guī)模數(shù)據(jù)的行業(yè)與領(lǐng)域。就數(shù)據(jù)密集型系統(tǒng)本身的結(jié)構(gòu)而言,它一般具有系統(tǒng)規(guī)模大、多應(yīng)用類(lèi)型、多層次結(jié)構(gòu)等特點(diǎn)。其中,多層次特性表示一個(gè)完整的數(shù)據(jù)密集型系統(tǒng),可以被劃分為不同實(shí)現(xiàn)層次,并由不同的子系統(tǒng)按照一定的規(guī)則進(jìn)行集成后得到。在組成數(shù)據(jù)密集型系統(tǒng)的一組子系統(tǒng)中,數(shù)據(jù)展現(xiàn)子系統(tǒng)主要負(fù)責(zé)以各種方式可視化地展現(xiàn)系統(tǒng)所處理的數(shù)據(jù)以及處理的結(jié)果,例如一種通行做法是以報(bào)表的形式展現(xiàn)數(shù)據(jù)。報(bào)表本身又可分為多種類(lèi)型(由國(guó)家、行業(yè)規(guī)定的報(bào)表,或者企業(yè)自定義的報(bào)表),每種報(bào)表也可由不同的數(shù)據(jù)項(xiàng)組合而成。另外,圖表也是一種較為常見(jiàn)的數(shù)據(jù)展現(xiàn)形式。

        通過(guò)分析不同的數(shù)據(jù)密集型系統(tǒng),我們發(fā)現(xiàn)這些系統(tǒng)在數(shù)據(jù)展現(xiàn)方面具有類(lèi)似的功能,例如類(lèi)似的數(shù)據(jù)預(yù)處理以及數(shù)據(jù)集展現(xiàn)方式等。此外,還包括權(quán)限控制等這一類(lèi)與數(shù)據(jù)處理、顯示無(wú)直接關(guān)聯(lián),但影響子系統(tǒng)使用的功能[2,3]。另一方面,不同的應(yīng)用對(duì)數(shù)據(jù)展現(xiàn)的需求也存在差異,例如商業(yè)報(bào)表系統(tǒng)主要以表格的形式展示數(shù)據(jù),而地質(zhì)信息展示平臺(tái)則需要根據(jù)地理坐標(biāo)等數(shù)據(jù)在地圖上進(jìn)行繪制。

        為了降低重復(fù)開(kāi)發(fā)數(shù)據(jù)展現(xiàn)子系統(tǒng)的工作量,保持?jǐn)?shù)據(jù)展現(xiàn)效果的一致性,可以采用軟件產(chǎn)品線開(kāi)發(fā)方法以定制化的方式來(lái)開(kāi)發(fā)一個(gè)數(shù)據(jù)展現(xiàn)子系統(tǒng)。軟件產(chǎn)品線是針對(duì)特定領(lǐng)域的、具有一組相似特征,并從預(yù)先生產(chǎn)的核心資產(chǎn)開(kāi)發(fā)而來(lái)的軟件產(chǎn)品的集合[4,5],其開(kāi)發(fā)方法依賴(lài)于領(lǐng)域核心平臺(tái),通過(guò)對(duì)領(lǐng)域內(nèi)的可變性進(jìn)行定制的方式開(kāi)發(fā)出單個(gè)軟件產(chǎn)品。相比于傳統(tǒng)的面向領(lǐng)域的軟件產(chǎn)品線,集成在不同領(lǐng)域應(yīng)用產(chǎn)品中的數(shù)據(jù)展現(xiàn)子系統(tǒng)可以視作為一種跨領(lǐng)域的特殊類(lèi)型的軟件產(chǎn)品線。一方面,這種產(chǎn)品線同樣涉及需求的共性/可變性分析、可變點(diǎn)的定制方案設(shè)計(jì)等活動(dòng);另一方面,數(shù)據(jù)展現(xiàn)子系統(tǒng)中的可變性類(lèi)型更為豐富,例如,商業(yè)報(bào)表系統(tǒng)在生成的報(bào)表范圍以及單個(gè)報(bào)表的內(nèi)部結(jié)構(gòu)等不同層次方面都存在可變性,同時(shí)針對(duì)這些可變點(diǎn)的定制也涉及更多的角色與時(shí)間點(diǎn)。因此,需要針對(duì)這些特性化的需求改造軟件產(chǎn)品線的分析與構(gòu)建過(guò)程以及特定的數(shù)據(jù)展現(xiàn)子系統(tǒng)的定制化開(kāi)發(fā)過(guò)程。

        基于以上實(shí)際需求,本文旨在搭建一個(gè)面向數(shù)據(jù)展現(xiàn)子系統(tǒng)的軟件產(chǎn)品線,并歸納出基于可變點(diǎn)的數(shù)據(jù)展現(xiàn)子系統(tǒng)的定制化開(kāi)發(fā)方法。首先,本文提出一種擴(kuò)展可變性類(lèi)型的軟件產(chǎn)品線特征模型元模型,該元模型從數(shù)據(jù)功能維度和數(shù)據(jù)展現(xiàn)維度對(duì)特征屬性進(jìn)行了擴(kuò)充,涵蓋更多語(yǔ)義。其次,基于該元模型總結(jié)出一套針對(duì)需求文檔的特征建模過(guò)程,并為識(shí)別出的不同類(lèi)型的可變性提出了相應(yīng)的可變點(diǎn)實(shí)現(xiàn)技術(shù)方案。再次,為了支持基于可變點(diǎn)的子系統(tǒng)實(shí)例的定制化開(kāi)發(fā),提出一套兩階段(開(kāi)發(fā)者定制和用戶(hù)定制)的可變點(diǎn)定制過(guò)程。該過(guò)程用于確定在某個(gè)階段應(yīng)被定制的可變點(diǎn),并且保證可變點(diǎn)定制結(jié)果的一致性。最后,本文基于兩階段定制過(guò)程,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)半自動(dòng)化的可變點(diǎn)定制工具。另外,使用該工具配置了一個(gè)數(shù)據(jù)示例系統(tǒng),驗(yàn)證了可變點(diǎn)實(shí)現(xiàn)方案與定制過(guò)程的可行性。

        1 相關(guān)工作

        與本文相關(guān)的工作分為數(shù)據(jù)展現(xiàn)子系統(tǒng)的構(gòu)造以及軟件產(chǎn)品線開(kāi)發(fā)方法兩個(gè)方面。

        文獻(xiàn)[2,3]分別介紹了基于Web的多維數(shù)據(jù)平臺(tái)和地質(zhì)數(shù)據(jù)平臺(tái)的構(gòu)造過(guò)程。開(kāi)發(fā)者基于分模塊的原則針對(duì)單個(gè)數(shù)據(jù)展現(xiàn)系統(tǒng)分析其需求并設(shè)計(jì)其架構(gòu),設(shè)計(jì)出的模塊包括數(shù)據(jù)收集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)處理和數(shù)據(jù)展現(xiàn)等。與之相比,本文的工作面向一組具有相似需求的數(shù)據(jù)展現(xiàn)子系統(tǒng),采用軟件產(chǎn)品線的方法分析其需求的共性與可變性,并以可變點(diǎn)定制的方式支持快速的應(yīng)用產(chǎn)品開(kāi)發(fā)。

        傳統(tǒng)的軟件產(chǎn)品線開(kāi)發(fā)方法涉及從需求文檔到特征模型、再到軟件體系結(jié)構(gòu)的映射過(guò)程。在軟件產(chǎn)品線開(kāi)發(fā)中,特征建模是反映產(chǎn)品線中共性和可變性的一種手段,目的是將領(lǐng)域需求映射為用分層的樹(shù)狀結(jié)構(gòu)表示的特征模型[6,7]。特征建模中一項(xiàng)重要的工作是可變性識(shí)別。可變性是指產(chǎn)品線所涵蓋的各個(gè)產(chǎn)品之間的差異性[8]??勺冃砸话銜?huì)關(guān)聯(lián)到某個(gè)可變點(diǎn)上??勺凕c(diǎn)是可變性在產(chǎn)品線所覆蓋的軟件產(chǎn)品中的具體體現(xiàn),而變體則是軟件產(chǎn)品中各個(gè)可變點(diǎn)上各種特定的可變性實(shí)例[9]。Kang提出的FORM方法對(duì)從特征模型到系統(tǒng)設(shè)計(jì)的過(guò)程進(jìn)行了細(xì)化[10],將領(lǐng)域工程劃分為領(lǐng)域分析和領(lǐng)域結(jié)構(gòu)設(shè)計(jì)[11]。在領(lǐng)域分析中,開(kāi)發(fā)者需要從特征模型中抽取候選對(duì)象,并將這些候選模塊組織成對(duì)象模型。在領(lǐng)域體系結(jié)構(gòu)設(shè)計(jì)中,將不同層次的軟件體系結(jié)構(gòu)抽象為逐步細(xì)化的不同層次的模型:子系統(tǒng)模型、進(jìn)程模型和模塊模型。此外,不同的特征從不同的層次對(duì)問(wèn)題域進(jìn)行了抽象,對(duì)于這些不同的特征,可以將其建模為不同的對(duì)象。文獻(xiàn)[11]中,提出了一系列對(duì)不同類(lèi)型特征建模的原則,如將服務(wù)特征建模為服務(wù)狀態(tài)隱藏對(duì)象,將操作特征建模為用戶(hù)角色對(duì)象等。文獻(xiàn)[12]提出了一種改進(jìn)過(guò)的面向特征的模型映射方法,該方法將軟件體系結(jié)構(gòu)分為三種視圖,使不同類(lèi)型的特征對(duì)應(yīng)于不同的視圖,即軟件開(kāi)發(fā)的不同階段。

        對(duì)已經(jīng)建模完成的特征模型進(jìn)行實(shí)現(xiàn)也是軟件產(chǎn)品線中一個(gè)重要的主題。在文獻(xiàn)[13]中,對(duì)影響可變性實(shí)現(xiàn)的因素進(jìn)行了闡述,對(duì)從可變性的識(shí)別到實(shí)現(xiàn)的整個(gè)過(guò)程進(jìn)行了詳細(xì)的介紹,并提出了一些對(duì)于不同可變性的實(shí)現(xiàn)技術(shù),如常量條件、變量條件等。在文獻(xiàn)[14]中,針對(duì)不同的特征約束形式推薦了模塊的設(shè)計(jì)方法。在代碼級(jí)別的實(shí)現(xiàn)方面,文獻(xiàn)[15,16]進(jìn)行了較為詳細(xì)的闡述,包括聚合/代理、繼承、框架、反射等面向?qū)ο蟮膶?shí)現(xiàn)方法,也有面向方面的實(shí)現(xiàn)方法。

        2 可變性擴(kuò)展及特征元模型

        2.1數(shù)據(jù)展現(xiàn)子系統(tǒng)的特點(diǎn)分析

        基于對(duì)數(shù)據(jù)密集型系統(tǒng)的實(shí)際開(kāi)發(fā)經(jīng)驗(yàn),軟件開(kāi)發(fā)人員發(fā)現(xiàn)這些不同的數(shù)據(jù)密集系統(tǒng)存在結(jié)構(gòu)上的共性,總結(jié)出分層、分模塊開(kāi)發(fā)的原則。這樣能夠使不同的層次/模塊之間只通過(guò)接口和固定的數(shù)據(jù)格式與約束進(jìn)行通信,降低模塊之間的耦合度。與此同時(shí),這種分層、分模塊的開(kāi)發(fā)方式也能夠提高系統(tǒng)的可維護(hù)性和可復(fù)用性。當(dāng)用戶(hù)需求發(fā)生變動(dòng)、某個(gè)模塊的結(jié)構(gòu)或功能發(fā)生變化時(shí),其他模塊并不會(huì)受到影響。

        在數(shù)據(jù)展現(xiàn)子系統(tǒng)中,數(shù)據(jù)展現(xiàn)部分,或者稱(chēng)為數(shù)據(jù)展現(xiàn)模塊的主要功能是將從數(shù)據(jù)存儲(chǔ)模塊或者數(shù)據(jù)處理模塊中的得到的數(shù)據(jù)集合以約定好的方式展現(xiàn)給使用者。此外,還可能存在一些輔助功能,如用戶(hù)權(quán)限設(shè)置,打印格式設(shè)置等。本文認(rèn)為,數(shù)據(jù)展現(xiàn)模塊的輸入是一個(gè)符合預(yù)先定義好的格式的數(shù)據(jù)集,輸出是不同類(lèi)型的數(shù)據(jù)顯示。

        在開(kāi)發(fā)的過(guò)程中,開(kāi)發(fā)者需要和用戶(hù)合作對(duì)輸入數(shù)據(jù)集的格式進(jìn)行定義。對(duì)于某個(gè)特定的數(shù)據(jù)展現(xiàn)子系統(tǒng)而言,會(huì)存在具有多個(gè)不同定義的數(shù)據(jù)集;而對(duì)于兩個(gè)或者一組數(shù)據(jù)展現(xiàn)子系統(tǒng)而言,會(huì)出現(xiàn)它們的數(shù)據(jù)集定義大部分相同,只存在少許差異的現(xiàn)象。圖1列出了兩個(gè)商業(yè)系統(tǒng)的數(shù)據(jù)集部分定義,該數(shù)據(jù)集以報(bào)表的形式出現(xiàn)。對(duì)比之后可以看出,兩個(gè)數(shù)據(jù)集定義大部分都相同,只是在“本月數(shù)”大項(xiàng)之下所細(xì)分的方式不同。當(dāng)有多個(gè)用戶(hù)的數(shù)據(jù)集定義出現(xiàn)如示例1和示例2中所示的“大部分相同,少部分不同”的情況時(shí),開(kāi)發(fā)人員可以定制一個(gè)通用模版,將部分的數(shù)據(jù)集定義工作交由具體的用戶(hù)完成,減少開(kāi)發(fā)人員的工作量。這在開(kāi)發(fā)多個(gè)相似系統(tǒng)時(shí)對(duì)于人力成本的節(jié)約尤為突出。

        圖1 數(shù)據(jù)集及模板示例

        2.2特征元模型

        本文的目的是使用產(chǎn)品線來(lái)進(jìn)行面向不同領(lǐng)域,不同行業(yè)的數(shù)據(jù)展現(xiàn)子系統(tǒng)產(chǎn)品的開(kāi)發(fā)。針對(duì)數(shù)據(jù)展現(xiàn)子系統(tǒng)的特點(diǎn),我們對(duì)可變性類(lèi)型和約束類(lèi)型進(jìn)行了不同維度上的擴(kuò)展。加入擴(kuò)展可變性類(lèi)型和擴(kuò)展約束類(lèi)型的的特征元模型如圖2所示。在該元模型中,特征模型類(lèi)FeatureModel代表著整個(gè)特征模型,其中包含若干對(duì)應(yīng)單個(gè)特征的類(lèi)Feature。一個(gè)Feature可以是復(fù)合的,即可以包含若干個(gè)其他Feature。當(dāng)存在Feature間的聚集關(guān)系時(shí),這個(gè)關(guān)系對(duì)應(yīng)的是特征模型中特征之間的層次關(guān)系。和經(jīng)典的特征模型相同,在本文提出的元模型中,層次關(guān)系分為Mandatory、Optional、Alternative與Or四種,由VariableType屬性進(jìn)行描述。

        圖2 擴(kuò)展的特征模型元模型

        首先,我們對(duì)特征的類(lèi)型進(jìn)行了擴(kuò)展。在元模型中,特征類(lèi)型由FeatureType屬性描述,分為數(shù)據(jù)集特征和非數(shù)據(jù)集特征。我們將描述數(shù)據(jù)集性質(zhì)的特征稱(chēng)為數(shù)據(jù)集特征。例如,對(duì)一張報(bào)表的表頭、細(xì)目等元素的展現(xiàn)等。相對(duì)地,描述系統(tǒng)中除數(shù)據(jù)集之外其他部分的特征稱(chēng)為非數(shù)據(jù)集特征。不同領(lǐng)域的不同應(yīng)用產(chǎn)品對(duì)數(shù)據(jù)集有不一樣的要求,根據(jù)前文所述數(shù)據(jù)集的特點(diǎn),又可以將數(shù)據(jù)集特征細(xì)化為組級(jí)特征和組內(nèi)特征。組級(jí)特征對(duì)應(yīng)于數(shù)據(jù)集本身的定義,組級(jí)特征將數(shù)據(jù)集作為一個(gè)整體來(lái)分析,主要關(guān)注該數(shù)據(jù)集和數(shù)據(jù)展現(xiàn)子系統(tǒng)的關(guān)系;組內(nèi)特征對(duì)應(yīng)于數(shù)據(jù)集內(nèi)部的定義,組內(nèi)特征主要關(guān)注數(shù)據(jù)集內(nèi)部的定義和不同數(shù)據(jù)集之間的相似關(guān)系。在元模型中,F(xiàn)eatureLayer屬性描述的是特征所處的層級(jí),其取值范圍為NULL、GroupLevel和InGroupLevel。當(dāng)特征不屬于數(shù)據(jù)集特征時(shí),其取值為NULL;當(dāng)特征屬于數(shù)據(jù)集特征時(shí),則根據(jù)其描述的內(nèi)容選擇取值為GroupLevel或者InGrouplevel。

        其次,我們對(duì)特征的依賴(lài)關(guān)系進(jìn)行了擴(kuò)展。在元模型中,約束由Constraint關(guān)系描述,Target屬性指向和當(dāng)前Feature存在約束關(guān)系的另一個(gè)Feature實(shí)體,其中的ConstraintType屬性取值在Require、Exclude、Influence和Sequence中選擇。在數(shù)據(jù)展現(xiàn)子系統(tǒng)產(chǎn)品線中,擴(kuò)展增加了影響和順序關(guān)系。影響關(guān)系表示的是模型中一個(gè)特征變體的實(shí)現(xiàn)手段或者配置會(huì)對(duì)另一個(gè)特征變體的實(shí)現(xiàn)造成影響,但并沒(méi)有兩個(gè)變體必須同時(shí)綁定的限制。例如在數(shù)據(jù)展現(xiàn)子系統(tǒng)中,對(duì)數(shù)據(jù)集的合法性檢查公式會(huì)受到數(shù)據(jù)集自身定義的影響,那么可以稱(chēng)“數(shù)據(jù)集定義”對(duì)“數(shù)據(jù)集合法性檢查”具有影響關(guān)系。順序關(guān)系表示的是兩個(gè)特征所對(duì)應(yīng)的功能在軟件使用過(guò)程中固定的執(zhí)行先后順序。例如,在每次進(jìn)行數(shù)據(jù)集顯示之前必須對(duì)當(dāng)前用戶(hù)的權(quán)限進(jìn)行檢查,以確定該用戶(hù)可以查看哪些顯示的數(shù)據(jù),那么稱(chēng)“用戶(hù)權(quán)限檢查”和“數(shù)據(jù)集顯示”具有順序關(guān)系。

        最后,我們對(duì)特征的綁定屬性進(jìn)行了擴(kuò)展。在元模型中,綁定屬性由BindOption關(guān)系描述,其中包含BindTime和BindRole屬性。BindTime屬性代表著該特征的綁定時(shí)間,其取值范圍為Compile-Time、Load-time和Run-Time。BindRole屬性代表著該特征的綁定者,其取值在Developer和User中選擇,分別代表著開(kāi)發(fā)者綁定該特征和用戶(hù)綁定該特征。通常來(lái)講,產(chǎn)品的組裝及變體的綁定是根據(jù)各個(gè)可變點(diǎn)約定的綁定時(shí)間由開(kāi)發(fā)者進(jìn)行定制。在實(shí)際的應(yīng)用場(chǎng)景中,會(huì)出現(xiàn)通過(guò)交互性機(jī)制使用戶(hù)決定可變點(diǎn)變體綁定的情況。對(duì)這類(lèi)可變點(diǎn)的分析、建模及實(shí)現(xiàn)不能僅僅依靠可變點(diǎn)綁定時(shí)間屬性,因?yàn)檫@樣并不能識(shí)別該可變點(diǎn)是由用戶(hù)負(fù)責(zé)選擇變體還是由程序根據(jù)條件自行選擇。在本文中我們擴(kuò)展增加了綁定角色屬性。

        3 面向文檔的特征建模過(guò)程及特征實(shí)現(xiàn)設(shè)計(jì)

        數(shù)據(jù)展現(xiàn)子系統(tǒng)產(chǎn)品線的開(kāi)發(fā)流程總體遵循經(jīng)典軟件產(chǎn)品線的開(kāi)發(fā)流程,需要經(jīng)過(guò)需求規(guī)約、明確數(shù)據(jù)展現(xiàn)子系統(tǒng)范圍、特征建模、特征實(shí)現(xiàn)等一系列活動(dòng)。首先,通過(guò)分析功能描述文檔和數(shù)據(jù)集定義文檔,可以得到特征的規(guī)約描述及特征之間的層次關(guān)系。其次,通過(guò)對(duì)用例文檔進(jìn)行分析,可以得到特征之間的約束關(guān)系。通過(guò)這兩步分析,開(kāi)發(fā)者可以確定數(shù)據(jù)展現(xiàn)子系統(tǒng)的特征模型并將特征模型以特定方式進(jìn)行存儲(chǔ)。最終可根據(jù)存儲(chǔ)的特征模型采取不同的策略提出特征的實(shí)現(xiàn)方案。

        在具體的執(zhí)行過(guò)程中,相比經(jīng)典軟件產(chǎn)品線,數(shù)據(jù)展現(xiàn)子系統(tǒng)產(chǎn)品線對(duì)數(shù)據(jù)集特征和非數(shù)據(jù)集特征需要有不同的規(guī)約和實(shí)現(xiàn)策略,這是由數(shù)據(jù)集本身的性質(zhì)所決定的。數(shù)據(jù)集特征有以下兩個(gè)特點(diǎn):(1) 包含的特征數(shù)量大。在數(shù)據(jù)密集型系統(tǒng)中,需要被處理并顯示的數(shù)據(jù)集其類(lèi)型和數(shù)量都可能會(huì)很龐大。(2) 數(shù)據(jù)集定義變化迅速。數(shù)據(jù)密集型系統(tǒng)的業(yè)務(wù)覆蓋面和業(yè)務(wù)邏輯通常會(huì)不斷的變化,導(dǎo)致在業(yè)務(wù)中使用的數(shù)據(jù)集集合持續(xù)的發(fā)生改變。

        3.1特征規(guī)約

        對(duì)于非數(shù)據(jù)集特征,其特征規(guī)約的來(lái)源為功能描述文檔。功能描述文檔主要包含對(duì)數(shù)據(jù)展現(xiàn)子系統(tǒng)所能完成的功能的列舉,對(duì)應(yīng)于一組能夠滿(mǎn)足用戶(hù)需求的功能項(xiàng)。開(kāi)發(fā)人員遵循一定的規(guī)則對(duì)特征進(jìn)行規(guī)約,如將功能描述對(duì)應(yīng)為功能特征,將功能或整個(gè)系統(tǒng)的約束描述對(duì)應(yīng)為非功能特征等。隨后通過(guò)產(chǎn)品—特征矩陣方法確定特征之間的層次關(guān)系,以及每個(gè)特征的可變性類(lèi)型,初步確定特征模型。

        對(duì)于數(shù)據(jù)集特征,其特征規(guī)約的來(lái)源為數(shù)據(jù)集定義文檔。數(shù)據(jù)定義文檔不僅和需求文檔一樣描述了該數(shù)據(jù)集的名稱(chēng)和在系統(tǒng)中表示的含義,而且定義了數(shù)據(jù)集內(nèi)部的具體組織方式。對(duì)數(shù)據(jù)集特征的規(guī)約也要分為兩部分:數(shù)據(jù)集描述和內(nèi)部結(jié)構(gòu)定義。數(shù)據(jù)集介紹部分的規(guī)約可以參照非數(shù)據(jù)集特征的規(guī)約方法。對(duì)于數(shù)據(jù)集內(nèi)部結(jié)構(gòu),可以使用XML進(jìn)行定義。一個(gè)使用XML的數(shù)據(jù)集內(nèi)部結(jié)構(gòu)定義應(yīng)如下所示。

        //name of the block

        GroupName

        我們使用來(lái)定義一個(gè)完整的數(shù)據(jù)集,其中可以包含任意個(gè)用標(biāo)簽表示的塊。塊在數(shù)據(jù)集中是一個(gè)相對(duì)獨(dú)立的部分,以商業(yè)報(bào)表舉例,塊對(duì)應(yīng)其中大型報(bào)表中每個(gè)獨(dú)立的子表。每個(gè)塊中有若干個(gè)組,使用標(biāo)簽表示。組表示數(shù)據(jù)集中的復(fù)合屬性集,例如圖1中的“本月支出”就屬于復(fù)合屬性,對(duì)應(yīng)數(shù)據(jù)集內(nèi)部結(jié)構(gòu)定義的。在數(shù)據(jù)集定義中,每個(gè)內(nèi)可以包含任意個(gè)其他的標(biāo)簽。標(biāo)簽對(duì)應(yīng)的是單個(gè)的屬性,可以出現(xiàn)在標(biāo)簽或者標(biāo)簽中。

        在對(duì)于數(shù)據(jù)展現(xiàn)子系統(tǒng)的分析中,曾經(jīng)提到在實(shí)際場(chǎng)景中會(huì)出現(xiàn)需要對(duì)多個(gè)數(shù)據(jù)集抽象出一個(gè)模版,在不同用戶(hù)對(duì)系統(tǒng)的使用過(guò)程中各自進(jìn)行定制的情況。在數(shù)據(jù)集定義中本文引入了抽象類(lèi)型的概念,類(lèi)似于面向?qū)ο蠹夹g(shù)中的抽象類(lèi),對(duì)于抽象部分可以通過(guò)不同的實(shí)現(xiàn)手段形成用戶(hù)需要的不同的數(shù)據(jù)集。如果一個(gè)、是抽象類(lèi)型,可以將其標(biāo)簽中的Type設(shè)為Abstract。

        若要確定哪些塊、復(fù)合屬性、單個(gè)屬性屬于抽象類(lèi)型,那么需要由開(kāi)發(fā)人員對(duì)相似的數(shù)據(jù)集進(jìn)行分析,并對(duì)其中數(shù)據(jù)集定義的重合部分進(jìn)行提取,得到帶有抽象部分的數(shù)據(jù)集定義。本文把每個(gè)數(shù)據(jù)集看作一個(gè)特征,被提取出的數(shù)據(jù)集模版成為這些相似數(shù)據(jù)集的父特征,這些父特征覆蓋了多個(gè)產(chǎn)品。在產(chǎn)品的定制中,存在抽象部分的特征需要被其覆蓋的一組產(chǎn)品分別定制,即對(duì)組內(nèi)特征進(jìn)行的定制。而由于在定義中不存在抽象部分的數(shù)據(jù)集一般對(duì)應(yīng)于單個(gè)產(chǎn)品,因此它們不需要被再次定制。

        3.2特征約束確定

        表示需求的特征之間的約束關(guān)系能夠從用例文檔中獲得。首先對(duì)于需求文檔中的每一個(gè)用例,要分析出該用例對(duì)應(yīng)哪些特征以及特征的執(zhí)行順序。其次,要對(duì)該用例所包含的特征進(jìn)行分析,確定是否存在約束關(guān)系。開(kāi)發(fā)者可以根據(jù)以下用例場(chǎng)景來(lái)識(shí)別約束關(guān)系的類(lèi)型。

        1) 如果某個(gè)特征A在執(zhí)行中需要“用到”其他的特征B或者B的執(zhí)行結(jié)果,即在用例流程中去掉B后,A不能正確運(yùn)行,則認(rèn)為特征A依賴(lài)特征B,記作require(A,B)。

        2) 如果某個(gè)特征A和特征B同時(shí)出現(xiàn)在一個(gè)用例之中時(shí),A和B的執(zhí)行關(guān)系總是確定的,并且A總是在前或者B總是在前,則認(rèn)為特征A和特征B具有順序關(guān)系,記作Sequence(A,B)或Sequence(B,A)。

        3) 如果在用例中,特征A的變體或者參數(shù)選擇會(huì)對(duì)特征B的執(zhí)行邏輯或順序產(chǎn)生影響,則認(rèn)為特征A影響特征B,記作Influence(A,B)。

        在對(duì)每一個(gè)用例進(jìn)行分析后,我們可以得到特征—特征約束對(duì),并對(duì)特征的Constraint屬性集進(jìn)行賦值。此外,在該步驟中還可以確定Bind-Time和Bind-Role的值。通常在為用戶(hù)部署該子系統(tǒng)之前就需要確認(rèn)的變體所在可變點(diǎn)的Bind-Role為Developer,用戶(hù)在得到該子系統(tǒng)之后才能決定的變體所在可變點(diǎn)的Bind-Role為User。在系統(tǒng)開(kāi)始運(yùn)行前就需要確定的變體所在可變點(diǎn)的Bind-Time一般為Compile-time,在系統(tǒng)啟動(dòng)時(shí)才進(jìn)行一次或者永久設(shè)置的變體所在可變點(diǎn)的Bind-time為L(zhǎng)oad-Time,在系統(tǒng)運(yùn)行中需要用戶(hù)動(dòng)態(tài)地進(jìn)行設(shè)置變體所在可變點(diǎn)的Bind-Time為Run-time。

        3.3特征模型存儲(chǔ)

        軟件產(chǎn)品線是在不斷演化的,需要對(duì)這些可變點(diǎn)進(jìn)行管理使之能適應(yīng)未來(lái)可能的演化。同時(shí),用戶(hù)的需求也會(huì)發(fā)生變化,這有可能造成所綁定變體的改變。本文中使用特征配置庫(kù)對(duì)特征進(jìn)行管理。該配置庫(kù)可以存儲(chǔ)可變點(diǎn)的位置和對(duì)變體的選擇,并保證了系統(tǒng)本身的相對(duì)獨(dú)立。當(dāng)變體綁定發(fā)生改變時(shí),可以只對(duì)配置庫(kù)進(jìn)行改變而不侵入代碼本身。

        一般來(lái)說(shuō),特征配置庫(kù)要存儲(chǔ)以下四種內(nèi)容:(1) 存儲(chǔ)特征模型,具體的定義如圖2中的元模型所示,包括特征的層次關(guān)系、特征的屬性以及特征之間的約束關(guān)系。(2) 數(shù)據(jù)展現(xiàn)子系統(tǒng)產(chǎn)品線所覆蓋的專(zhuān)業(yè)領(lǐng)域軟件產(chǎn)品,它體現(xiàn)為一個(gè)產(chǎn)品列表。(3) 存儲(chǔ)特征的范圍矩陣,即每個(gè)特征覆蓋的產(chǎn)品。(4) 特征實(shí)現(xiàn)方法,不同類(lèi)型可變特征的存儲(chǔ)方式與內(nèi)容各不相同,例如可通過(guò)配置文件、參數(shù)或者數(shù)據(jù)集定義的方式。一個(gè)較為完整的特征配置庫(kù)定義如下所示。

        //具體定義見(jiàn)特征模型元模型定義

        其中,是第一級(jí)標(biāo)簽,標(biāo)記著特征配置庫(kù)的開(kāi)始和結(jié)束,在其下有四個(gè)二級(jí)標(biāo)簽,分別是、、和< FeatureImplement>。它們分別對(duì)應(yīng)需要存儲(chǔ)在特征配置庫(kù)中的四類(lèi)內(nèi)容,即特征模型、產(chǎn)品列表、特征范圍矩陣和特征實(shí)現(xiàn)方法。的具體定義可以參考前文對(duì)特征模型元模型的定義。在中,可以有任意個(gè)標(biāo)簽,其中存儲(chǔ)了產(chǎn)品的名稱(chēng)、版本號(hào)和對(duì)產(chǎn)品的文字描述。中可以有任意個(gè)標(biāo)簽,它們對(duì)應(yīng)于中的特征定義,在中的每個(gè)標(biāo)簽代表著特征覆蓋了這個(gè)產(chǎn)品。中同樣可以有任意個(gè)標(biāo)簽,其中的對(duì)應(yīng)了中的同名定義,就是在對(duì)特征進(jìn)行設(shè)計(jì)實(shí)現(xiàn)時(shí)選擇的特征實(shí)現(xiàn)手法,可以有參數(shù)、配置文件等不同的取值。其中,標(biāo)簽對(duì)應(yīng)的內(nèi)容指向特征對(duì)應(yīng)實(shí)現(xiàn)參數(shù)或配置文件的地址,例如當(dāng)取值為參數(shù)形式時(shí),可以存儲(chǔ)一組參數(shù)和這些參數(shù)對(duì)應(yīng)的變體描述;當(dāng)取值為配置文件形式時(shí),可以存儲(chǔ)該配置文件的地址。

        3.4特征實(shí)現(xiàn)

        對(duì)特征的實(shí)現(xiàn)同樣要針對(duì)數(shù)據(jù)集特征和非數(shù)據(jù)集特征兩部分分別進(jìn)行。對(duì)于非數(shù)據(jù)集特征,其實(shí)現(xiàn)方式可以借鑒文獻(xiàn)[15-17]中提出的原則,對(duì)不同類(lèi)型的特征,如Mandatory、Optional、Or和Alternative可以使用不同的方法。例如,可以使用設(shè)計(jì)模式、繼承、參數(shù)化方法和面向方面編程等方法進(jìn)行實(shí)現(xiàn)。

        對(duì)數(shù)據(jù)集特征的實(shí)現(xiàn)指的是對(duì)組內(nèi)特征的定制,即對(duì)帶有抽象塊、抽象復(fù)合屬性和抽象屬性的數(shù)據(jù)集模版的定制。通常來(lái)說(shuō)對(duì)于這樣的組內(nèi)特征的定制場(chǎng)景都是相對(duì)一致的,即改變數(shù)據(jù)集中部分內(nèi)容的定義。對(duì)于這樣的場(chǎng)景可以使用配置文件進(jìn)行實(shí)現(xiàn),數(shù)據(jù)集特征可以通過(guò)對(duì)配置文件的修改完成對(duì)變體的綁定。一段典型的數(shù)據(jù)集特征實(shí)現(xiàn)代碼如下所示。每個(gè)數(shù)據(jù)集實(shí)例對(duì)應(yīng)一個(gè)ConfigFile配置文件,當(dāng)該實(shí)例初始化時(shí),讀入數(shù)據(jù)集模版DataSetTemplate,并由用戶(hù)配置其中的抽象部分。初始化完畢之后,基于該數(shù)據(jù)集可執(zhí)行填表、顯示等一系列操作。

        Public Class DataSetTemplate{

        Static ConfigFile template;

        }

        Public Class DataSet{

        DataSet(){

        ConfigFile AFile = DataSetTemplate.template;

        AFile.ConfigAbstract();

        //配置抽象部分

        AFile.SaveAs(filename);

        //存儲(chǔ)配置文件

        }

        }

        Public Class Report{

        CreateDataSet(){

        DataSet D;

        D.ReadConfigFile(filename)

        D.Fill();

        //填表

        D.Show();

        //顯示

        }

        }

        4 兩階段可變點(diǎn)定制過(guò)程

        本文提出了兩階段配置數(shù)據(jù)展現(xiàn)子系統(tǒng)的策略,即開(kāi)發(fā)者配置和用戶(hù)配置,分別通過(guò)開(kāi)發(fā)者配置工具和用戶(hù)配置工具完成。開(kāi)發(fā)者配置工具主要完成的工作有兩項(xiàng):(1) 對(duì)Bind-Role屬性值為Developer的特征進(jìn)行配置。(2) 選擇用戶(hù)配置工具可以選擇的變體范圍。而用戶(hù)配置工具的主要工作就是從開(kāi)發(fā)者配置工具選擇的變體范圍中進(jìn)行選擇和配置。兩階段的可變點(diǎn)定制流程如圖3所示。

        圖3 兩階段的定制流程

        從兩個(gè)角度來(lái)明確特征的總體定制順序。一方面,對(duì)于綁定角色不同的特征存在定制順序。在產(chǎn)品線的每一次迭代過(guò)程中,開(kāi)發(fā)者定制在前,用戶(hù)定制在后,開(kāi)發(fā)者定制的結(jié)果是用戶(hù)定制的前提。另一方面,具有關(guān)聯(lián)的特征之間存在定制順序。對(duì)綁定角色的定制順序算法如算法4所示,該算法根據(jù)特征的綁定角色屬性對(duì)特征進(jìn)行分類(lèi)。首先,要獲得標(biāo)注為開(kāi)發(fā)者配置的特征列表DevConfigList,由開(kāi)發(fā)者按照該特征列表進(jìn)行配置。其次,需要獲得覆蓋了當(dāng)前專(zhuān)業(yè)領(lǐng)域產(chǎn)品的特征列表UserConfigList,該列表根據(jù)特征配置庫(kù)中的特征范圍部分得到。最后用戶(hù)根據(jù)UserConfigList列表對(duì)相應(yīng)特征進(jìn)行定制。

        For each Feature in Repository.Featuremodel

        If Feature.Bind-Role = Developer

        Add Feature to DevConfigList

        Else If Feature.Bind-Role = User

        Add Feature to UserConfigList

        ConfigFeature(DevConfigList)

        For each Feature in UserConfigList

        If Product not in FeatureScope.Feature.Product

        Delete Feature from UserConfigList

        ConfigFeature(UserConfigList)

        而對(duì)于已經(jīng)確定的特征列表,如DevConfigList,UserConfigList的特征定制順序算法如算法5所示。在定制中,有以下幾個(gè)原則可以作為確定特征順序的參考。(1) 對(duì)于特征層次關(guān)系,定制的順序?yàn)橄榷ㄖ谱犹卣?,再定制父特征?2) 對(duì)于特征依賴(lài)關(guān)系 require(A,B),定制的順序?yàn)橄榷ㄖ票灰蕾?lài)特征B,再定制特征A。(3) 對(duì)于特征順序關(guān)系A(chǔ) 和特征B之間的順序關(guān)系Sequence(A,B),按照其順序的先后關(guān)系對(duì)特征A、B進(jìn)行定制。(4) 對(duì)于特征影響關(guān)系influence(A,B),按照先定制影響特征A,后定制被影響特征B的順序進(jìn)行。

        Set 0 to SeqMatrix

        For each Feature in List

        Set 1 to SeqMatrix(Feature, Father(Feature))

        For each Constraint in Feature

        If Constraint.ConstaintType is require or Sequence or influence

        Set 1 to SeqMatrix(Feature, Constraint.target)

        For each Feature in List

        If Colomn(Feature) = 0

        Set Feature to StartList

        For each Feature in StartList

        Config(Feature)

        If SeqMatrix(Feature, NextFeature) = 1

        Set NextFeature to StartList

        Delete Feature from StartList

        5 工具與實(shí)例

        5.1工具實(shí)現(xiàn)

        本文對(duì)數(shù)據(jù)展現(xiàn)子系統(tǒng)的定制需要經(jīng)過(guò)開(kāi)發(fā)者定制和用戶(hù)定制兩個(gè)階段,可變點(diǎn)定制工具也分為開(kāi)發(fā)者定制工具和用戶(hù)定制工具兩部分來(lái)實(shí)現(xiàn)。開(kāi)發(fā)者定制工具和用戶(hù)定制工具的設(shè)計(jì)結(jié)構(gòu)如圖4所示。

        圖4 開(kāi)發(fā)者定制工具和用戶(hù)定制工具的結(jié)構(gòu)

        在實(shí)際的定制流程中,數(shù)據(jù)展現(xiàn)子系統(tǒng)向定制工具提供一個(gè)定制接口,使定制工具可以對(duì)特征進(jìn)行變體綁定。不同特征接口具有不同的實(shí)現(xiàn)方法,例如由開(kāi)發(fā)者工具維護(hù)一個(gè)整體的特征庫(kù),其中存放了覆蓋整個(gè)數(shù)據(jù)展現(xiàn)子系統(tǒng)產(chǎn)品線的特征定義。當(dāng)需要進(jìn)行某一個(gè)具體的數(shù)據(jù)展現(xiàn)子系統(tǒng)的定制時(shí),首先由開(kāi)發(fā)者工具在總體的特征庫(kù)中進(jìn)行選擇,對(duì)Bind-Role屬性為Developer的特征進(jìn)行定制,然后將選擇好的Bind-Role屬性為User的特征及其相關(guān)信息復(fù)制到特定的數(shù)據(jù)展現(xiàn)子系統(tǒng)中的特征庫(kù),并把該未定制完成的子系統(tǒng)分發(fā)給用戶(hù)。用戶(hù)收到該子系統(tǒng)后,通過(guò)用戶(hù)配置工具讀取子系統(tǒng)中的配置庫(kù)信息,并根據(jù)工具提供的特征綁定順序依次進(jìn)行定制。

        5.2實(shí)例分析

        商業(yè)報(bào)表系統(tǒng)是面向企業(yè)或事業(yè)單位的一個(gè)專(zhuān)業(yè)領(lǐng)域應(yīng)用系統(tǒng),其中存儲(chǔ)有大量以報(bào)表形式存在的數(shù)據(jù)集。同時(shí),該系統(tǒng)具有數(shù)據(jù)展現(xiàn)的需求。本節(jié)以商業(yè)報(bào)表系統(tǒng)為示例進(jìn)行系統(tǒng)定制,以驗(yàn)證配置工具和配制方法的有效性。在進(jìn)行定制之前,要先進(jìn)行特征的建模和約束確定工作。對(duì)數(shù)據(jù)展現(xiàn)子系統(tǒng)的功能進(jìn)行分類(lèi)總結(jié)和分析建模后,生成的非數(shù)據(jù)集特征模型如圖5所示。由于篇幅原因,本文僅在圖6中展示數(shù)據(jù)集特征所對(duì)應(yīng)的部分XML語(yǔ)句。

        圖5 非數(shù)據(jù)集的特征模型

        圖6 數(shù)據(jù)集特征的部分XML表示

        對(duì)數(shù)據(jù)展現(xiàn)子系統(tǒng)的定制取決于存放在特征配置庫(kù)中的對(duì)數(shù)據(jù)集特征和非數(shù)據(jù)集特征的分析結(jié)果,由配置工具根據(jù)算法4和算法5中所述算法確定定制步驟,并引導(dǎo)開(kāi)發(fā)者和用戶(hù)進(jìn)行可變點(diǎn)配置工作。在開(kāi)發(fā)者和用戶(hù)的兩階段定制完成后,我們對(duì)生成的數(shù)據(jù)展現(xiàn)子系統(tǒng)進(jìn)行測(cè)試,其功能符合預(yù)期。

        6 結(jié) 語(yǔ)

        數(shù)據(jù)展現(xiàn)是普遍存在于數(shù)據(jù)密集型系統(tǒng)中的一類(lèi)功能,其中包含了一些類(lèi)似的對(duì)數(shù)據(jù)集的操作。基于此前提本文將數(shù)據(jù)展現(xiàn)模塊視為集成在其他數(shù)據(jù)密集型系統(tǒng)之中的、相對(duì)獨(dú)立的子系統(tǒng),這些子系統(tǒng)具有功能上的相似性?;谶@些系統(tǒng)間的共性與可變性,本文采用軟件產(chǎn)品線方法搭建可復(fù)用平臺(tái)并通過(guò)定制化的手段開(kāi)發(fā)單個(gè)數(shù)據(jù)展現(xiàn)子系統(tǒng)。為了應(yīng)對(duì)數(shù)據(jù)展現(xiàn)子系統(tǒng)需求的特性,本文對(duì)特征模型元模型進(jìn)行了擴(kuò)展,提出了對(duì)應(yīng)的實(shí)現(xiàn)手段和兩階段的數(shù)據(jù)展現(xiàn)子系統(tǒng)定制方法。最后,通過(guò)一個(gè)定制的實(shí)例驗(yàn)證了本文所提出方法的可行性。目前本文的工作涉及的需求場(chǎng)景較為簡(jiǎn)單,而且在實(shí)際情況中數(shù)據(jù)展現(xiàn)子系統(tǒng)一般不會(huì)獨(dú)立存在,而是被集成在特定專(zhuān)業(yè)領(lǐng)域的數(shù)據(jù)密集型系統(tǒng)之中。在未來(lái)的工作中,不僅要對(duì)更復(fù)雜的需求場(chǎng)景進(jìn)行深入分析,擴(kuò)充相應(yīng)的實(shí)現(xiàn)方案,而且需要考慮開(kāi)發(fā)完成的子系統(tǒng)與其他系統(tǒng)的集成問(wèn)題。

        [1] Wang L Z,Tao J,Ranjan R,et al.G-Hadoop:MapReduce distributed data centers for data-intensive computing[J].Future generation computer systems-the international journal of grid computing and escience,2013,29(3):739-750.

        [2] 曹劍.基于Web的多維數(shù)據(jù)工具的設(shè)計(jì)與實(shí)現(xiàn)[D].華中科技大學(xué),2009.

        [3] 林關(guān)煜.地質(zhì)數(shù)據(jù)的展現(xiàn),傳輸及格式轉(zhuǎn)換的相關(guān)研究[D].中國(guó)地質(zhì)大學(xué),2013.

        [4] Clements P,Northrop L.Software product lines: practices and patterns[M].Reading:Addison-Wesley,2002.

        [5] Nyholm C.Product line development-an overview[R].Extended report for “Building reliable component-based systems”,I. Crnkovic, M. Larsson (eds), Artech House,2002.

        [6] Reid Turner C,Fuggetta A,Lavazza L,et al.A conceptual basis for feature engineering[J].Journal of Systems and Software,1999,49(1):3-15.

        [7] Chen K,Zhang W,Zhao H,et al.An approach to constructing feature models based on requirements clustering[C]//Requirements Engineering,2005.Proceedings.13th IEEE International Conference on.IEEE,2005:31-40.

        [8] Jaring M,Bosch J.Representing variability in software product lines:A case study[M]//Software product lines,Springer Berlin Heidelberg,2002:15-36.

        [9] Van der linden F,Pohl K.Software product line engineering:foundations,principles,and techniques[M].Springer-Verlag Berlin and Heidelberg GmbH & Co.K,2005.

        [10] Lee K,Kang K C,Chae W,et al.Feature-based approach to object-oriented engineering of applications for reuse[J].Software-Practice and Experience,2000,30(9):1025-1046.

        [11] Kang K C,Kim S,Lee J,et al.FORM:A feature-oriented reuse method with domain-specific reference architectures[J].Annals of Software Engineering,1998,5(1):143-168.

        [12] 劉東云,梅宏.從需求到軟件體系結(jié)構(gòu):一種面向特征的映射方法[J].北京大學(xué)學(xué)報(bào):自然科學(xué)版,2004,40(3):372-378.

        [13] Lee K,Kang K C.Feature dependency analysis for product line component design[M]//Software reuse: methods, techniques, and tools. Springer Berlin Heidelberg,2004:69-85.

        [14] Svahnberg M,Van Gurp J,Bosch J.A taxonomy of variability realization techniques[J].Software:Practice and Experience,2005,35(8):705-754.

        [15] Gacek C,Anastasopoules M.Implementing product line variabilities[J].ACM SIGSOFT Software Engineering Notes,ACM,2001,26(3):109-117.

        [16] 祝家意,彭鑫,趙文耘.基于OOP和AOP的軟件產(chǎn)品線實(shí)現(xiàn)技術(shù)研究[J].計(jì)算機(jī)科學(xué),2009,36(7):120-123.

        A CUSTOMISED DEVELOPMENT METHOD FOR DATA PRESENTATION SUBSYSTEM BASED ON VARIATIONS

        Xing RongfeiShen LiweiZhao Wenyun

        (SchoolofSoftware,FudanUniversity,Shanghai201203,China) (ShanghaiKeyLaboratoryofDataScience,FudanUniversity,Shanghai200433,China)

        Data-intensive systems have been widely used in different industries and sectors. Data presentation subsystem is an important constituent element of the layered data-intensive system. To develop a group of data presentation subsystems with similar requirements based on the software product line method can effectively helps to increase the efficiency of developers. However, traditional construction and customisation methods for software product line are not fully applicable to such data presentation subsystem due to its variation characteristics. In view of this, we propose a variations-based customised development method for data presentation subsystems. First, the method extends the feature meta-model of software product line. Based on it, the method summarises a set of required documents-oriented feature modelling processes and technical solutions for variations implementation. Besides, the method proposes a two-step customisation process to support the customised development of subsystems. In end of the paper, we verify the feasibility and effectiveness of the method through an example of data presentation subsystem in a financial data system.

        Software product lineData presentation subsystemVariability

        2014-11-28。邢戎飛,碩士生,主研領(lǐng)域:軟件工程。沈立煒,講師。趙文耘,教授。

        TP3

        A

        10.3969/j.issn.1000-386x.2016.03.007

        猜你喜歡
        定義特征用戶(hù)
        如何表達(dá)“特征”
        不忠誠(chéng)的四個(gè)特征
        抓住特征巧觀察
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        如何獲取一億海外用戶(hù)
        線性代數(shù)的應(yīng)用特征
        河南科技(2014年23期)2014-02-27 14:19:15
        修辭學(xué)的重大定義
        久久精品无码一区二区三区蜜费| 无码av中文一区二区三区| 国产精品户外野外| 国产呦精品系列在线播放| 日本人妻少妇精品视频专区| 中文字幕一区二区av| 中文字幕网伦射乱中文| 亚洲av色先锋资源电影网站| 国产美女精品AⅤ在线老女人| 日韩av在线亚洲女同| 成 人 免 费 黄 色| 天堂在线www中文| 亚洲AV无码日韩一区二区乱| 久久这里都是精品99| 99国产精品自在自在久久| 麻豆AⅤ无码不卡| 亚洲成av在线免费不卡| 国产免费一区二区三区精品视频| 欧美放荡的少妇| 国产在线美女| 午夜亚洲精品一区二区| 中文字幕一区二区三区四区五区| 国产97在线 | 免费| 无码人妻丝袜在线视频| 日本视频一区二区三区在线 | 99国产超薄丝袜足j在线观看| 亚洲高清自偷揄拍自拍| 五月开心婷婷六月综合| 中文字幕精品久久久久人妻| 免费一级国产大片| av在线免费观看男人天堂| 成人欧美日韩一区二区三区| 久久久窝窝午夜精品| 男女羞羞的视频免费网站| 中文字幕一区二区三区视频| 国产精品久久久久久影视| 亚洲精品日本| 少妇太爽了在线观看免费| 中文无码日韩欧| 国产精品福利小视频| 强迫人妻hd中文字幕|