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

        ?

        基于軟件庫的軟件生產(chǎn)線模型研究

        2014-01-14 00:43:34金星波
        關(guān)鍵詞:生產(chǎn)線領(lǐng)域軟件

        金星波

        (中國人民解放軍92493部隊,遼寧葫蘆島125000)

        0 引 言

        關(guān)于軟件生產(chǎn)線(SPL:Software-Product Line)的研究最早可追溯至上個世紀(jì)70年代初,David[1]對程序家族進(jìn)行了研究,但軟件生產(chǎn)線的實際應(yīng)用始于上個世紀(jì)80年代中期,并在一些項目上取得了成功。其中瑞士CelsiusTech公司從軍方獲取艦艇防御系統(tǒng)的研制項目,利用產(chǎn)品線技術(shù),同時進(jìn)行了兩個艦艇的防御系統(tǒng)開發(fā),使系統(tǒng)開發(fā)時間大大縮短,(從9年降低至3年);并大大降低軟件開發(fā)費用,系統(tǒng)軟硬件費用比由65∶35下降到20∶80[2]。

        從20世紀(jì)90年代,學(xué)者開始對軟件生產(chǎn)線的理論系統(tǒng)進(jìn)行研究,當(dāng)時主要的研究對象都是一些實例,從實例分析中建立生產(chǎn)線的理論模型。從此對軟件生產(chǎn)線的理論研究以及實際系統(tǒng)的研制一直都是軟件工程中的焦點,其發(fā)展非常迅猛,最具代表性的的卡內(nèi)基梅隆大學(xué)軟件工程學(xué)院(SEI)的研究,如諾基亞的生產(chǎn)即采用了SEI的技術(shù)。直到目前,仍有很多學(xué)者對軟件生產(chǎn)線進(jìn)行研究,如Thum等[3]對特征模型進(jìn)行了探討,Vierhauser等[4]對軟件生產(chǎn)線模型以及支持工具進(jìn)行了研究。

        國內(nèi)也有許多學(xué)者對生產(chǎn)線技術(shù)進(jìn)行了研究,并對軟件生產(chǎn)線的關(guān)鍵技術(shù)以及建模方法進(jìn)行了深入的探討[5-7]。雖然生產(chǎn)技術(shù)已日趨成熟,但仍有缺陷。筆者針對該缺陷,提出過程模型和遷移模型。并根據(jù)該模型建立模擬系統(tǒng)。經(jīng)實例驗證,該模型可以解決軟件生產(chǎn)線初期投入大且遷移困難的問題。

        1 軟件生產(chǎn)線理論簡述

        1.1 軟件生產(chǎn)線的定義

        許多學(xué)者從不同角度出發(fā),對軟件生產(chǎn)線給出了多種定義。如Weiss等[8]提出將利用產(chǎn)品之間的共同部分,并提前對產(chǎn)品的可變性進(jìn)行充分考慮的產(chǎn)品家族定義為生產(chǎn)線;Margaret[9]提出生產(chǎn)線是由多個系統(tǒng)構(gòu)成的軟件家族,這些系統(tǒng)在功能方面及組成的元素方面具有共性(communalities),并具有個性(variabilities),系統(tǒng)間有一定的相似性。這些定義都從一定角度描述了生產(chǎn)線的特征,也都非常經(jīng)典,但筆者更傾向于卡內(nèi)基梅隆大學(xué)軟件工程學(xué)院的定義,它更全面、準(zhǔn)確的描述了軟件生產(chǎn)線的主要基本特性。

        軟件生產(chǎn)線是多個軟件密集系統(tǒng)組成的集合,這些系統(tǒng)共享一個公共的、可管理的特征集,該特征集能滿足選定的市場或任務(wù)領(lǐng)域的特定需求,這些系統(tǒng)遵循一個預(yù)描述的方式,在公共的核心資源(core assets)基礎(chǔ)上開發(fā)的。

        1.2 STARS雙生命周期經(jīng)典模型

        STARS最早提出了生產(chǎn)線的理論模型[10],該模型將生產(chǎn)線的生產(chǎn)過程分成兩個相互交叉的生命周期,分別命名為領(lǐng)域工程部分以及應(yīng)用工程部分。領(lǐng)域工程部分分為領(lǐng)域分析、領(lǐng)域設(shè)計和領(lǐng)域?qū)崿F(xiàn)3個階段;相似的,應(yīng)用工程部分也分為需求分析、系統(tǒng)設(shè)計及系統(tǒng)實現(xiàn)3個階段。圖1給出了該模型。

        圖1 STARS軟件生產(chǎn)線雙周期生命模型Fig.1 STARS model of double life cycle of SPL

        SRARS模型定義了經(jīng)典的軟件生產(chǎn)線的開發(fā)過程與進(jìn)化方式,當(dāng)前有許多生產(chǎn)線的開發(fā)模型都是基于此設(shè)計的。

        2 軟件生產(chǎn)線缺陷分析及應(yīng)對策略

        2.1 目前軟件生產(chǎn)線存在的缺陷

        經(jīng)過多年的發(fā)展,軟件生產(chǎn)線技術(shù)已經(jīng)越來越成熟,但始終有部分缺陷未能克服。

        1)大部分生產(chǎn)線技術(shù)都是依托SRARS模型或其發(fā)展進(jìn)化生成的模型,如此軟件生產(chǎn)線的開發(fā)多數(shù)都分為兩個開發(fā)團(tuán)隊(卡梅隆模型則分為3個團(tuán)隊,多了一個管理團(tuán)隊):核心資源(Core Assets)團(tuán)隊、應(yīng)用工程(Application Engineering)團(tuán)隊。應(yīng)用工程團(tuán)隊的開發(fā)人員要利用核心資源,針對特定的產(chǎn)品,分析其結(jié)構(gòu),并手工去除在核心資源的代碼中粘貼特定產(chǎn)品的代碼,或反之;由于人與人之間是有差別的,這就難以保證代碼的統(tǒng)一,并且安全性上也無法保證。另外,一個軟件生產(chǎn)線的產(chǎn)品有可能多,產(chǎn)品越多,應(yīng)用工程的團(tuán)隊也會越大,帶來的問題也會越來越多。

        2)一個生產(chǎn)線上的產(chǎn)品在對核心資源進(jìn)行復(fù)用時,往往有自己的上下文。有時,這些在應(yīng)用工程中的成果應(yīng)該充實到核心資源中,但因其獨特的環(huán)境因素,往往很難實現(xiàn)。這就導(dǎo)致在生產(chǎn)線對多個產(chǎn)品進(jìn)行生產(chǎn)時,只能為每個單獨的產(chǎn)品編寫它單獨的代碼,降低了生產(chǎn)線的實用價值。

        3)在一個軟件生產(chǎn)線的生產(chǎn)過程中往往有兩個單獨的團(tuán)隊,這會導(dǎo)致若產(chǎn)品出現(xiàn)了偏差,很難辨別是哪個團(tuán)隊出現(xiàn)了問題。為了改善此問題,SEI的生產(chǎn)線生命模型增加了一個管理團(tuán)隊協(xié)調(diào)工作,但在實際生產(chǎn)過程中還是很容易出現(xiàn)團(tuán)隊間的矛盾,互相推卸責(zé)任,導(dǎo)致開發(fā)效率的降低。

        4)開發(fā)產(chǎn)品時使用生產(chǎn)線技術(shù),不論是資金、人員以及時間,初期都需要較大的投入,而且在采用生產(chǎn)線技術(shù)時,往往第1個產(chǎn)品的出現(xiàn)時間要遠(yuǎn)遠(yuǎn)長于采用非產(chǎn)品線技術(shù)開發(fā)所得,即這些投入可能短時間得不到任何回報。因此除了技術(shù)上的原因,這也是中小型公司較少采用生產(chǎn)線技術(shù)進(jìn)行產(chǎn)品開發(fā)的重要原因之一。

        5)隨著一個生產(chǎn)線技術(shù)在實踐中的不斷應(yīng)用,其核心資源也在一步步的擴(kuò)張,其復(fù)雜程度也是越來越高,不論生產(chǎn)線的維護(hù)還是它的擴(kuò)展都需要越來越多的費用,以至最后難以維持。這也導(dǎo)致一個生產(chǎn)線利用另一個生產(chǎn)線的資源難以實現(xiàn),想把一個生產(chǎn)線的核心資源遷移至另一個生產(chǎn)線其難度則更大。

        2.2 生產(chǎn)線缺陷分析以及相應(yīng)的對案研究

        以上討論了軟件生產(chǎn)線的相關(guān)缺陷,現(xiàn)對其進(jìn)行分析。

        1)對于實際應(yīng)用于工業(yè)上的生產(chǎn)線,如汽車生產(chǎn)線,其開發(fā)上沒有兩個獨立的團(tuán)隊,生產(chǎn)一輛汽車并不需要工人去做生產(chǎn)線的再次開發(fā)工作。這也給予軟件生產(chǎn)線一個提示,若一個軟件生產(chǎn)線沒有應(yīng)用工程開發(fā)團(tuán)隊,而只有一個唯一的開發(fā)團(tuán)隊(核心資源團(tuán)隊),缺陷1)~3)都已不存在。所以筆者認(rèn)為,應(yīng)用工程團(tuán)隊?wèi)?yīng)給予取消,即核心資源應(yīng)該可以直接對產(chǎn)品進(jìn)行開發(fā)。

        2)對于缺陷4),即初期投資龐大是生產(chǎn)線實際應(yīng)用的一個重大限制,尤其對中小型的軟件公司。其產(chǎn)生的原因主要有兩點:①生產(chǎn)線的開發(fā)不同于一個單獨產(chǎn)品的開發(fā),要經(jīng)過多個領(lǐng)域?qū)<覍φ麄€領(lǐng)域進(jìn)行分析建立產(chǎn)品集的領(lǐng)域模型,而且還要考慮產(chǎn)品未來各種可能的發(fā)展方向;②核心資源的目的之一即是要為復(fù)用服務(wù),其編寫時自然多了很多的限制條件,這也增加了代碼編寫的復(fù)雜程度。針對這兩個原因,如果:①領(lǐng)域模型的變化并不會導(dǎo)致軟件有較大的變化;②代碼在縮寫時能遵守一定的即定規(guī)則,就可滿足被復(fù)用的條件。那么這兩個問題將會得到很大程度的弱化。

        3)針對缺陷5),數(shù)據(jù)庫技術(shù)是此缺陷的天然解決方案,把軟件依不同級別的復(fù)用粒度分別放在數(shù)據(jù)庫中,而關(guān)系數(shù)據(jù)庫其強(qiáng)大的組織以及檢索功能,恰恰可為生產(chǎn)線的維護(hù)以及遷移提供強(qiáng)大的支持。

        3 軟件生產(chǎn)線過程、遷移模型以及一個實例

        基于以上分析,筆者提出了兩個模型:軟件生產(chǎn)線過程模型和軟件生產(chǎn)線無縫遷移模型。二者間關(guān)系密切,此軟件生產(chǎn)線過程模型在很大程度上考慮到遷移問題,是為了盡可能簡單地復(fù)用以往的資源,如代碼、模塊等;而遷移后生產(chǎn)線的資源也可以很容易歸并至軟件庫中,與之前的資源一起可以為下一個遷移所利用。

        3.1 軟件生產(chǎn)線過程模型

        軟件生產(chǎn)線的過程模型如圖2所示。

        圖2 軟件生產(chǎn)線過程模型Fig.2 A process model of SPL

        1)軟件庫分為4層。

        基礎(chǔ)庫層:位于軟件庫的最底層,由開發(fā)語言本身提供的類庫與COST構(gòu)件庫組成。

        自定義類庫層:建立在基礎(chǔ)庫上,存儲依據(jù)實際需要建立的類。

        模塊庫層:存儲相互獨立、可組裝的模塊。

        模板庫層:存儲模板,提供的是類似于配置器的程序,通過模板即可生產(chǎn)出所需產(chǎn)品。

        2)生產(chǎn)線建立流程。

        ①進(jìn)行領(lǐng)域分析,建立領(lǐng)域模型。領(lǐng)域模型的建立應(yīng)盡可能全面覆蓋領(lǐng)域范疇,采用大規(guī)模軟件定制的策略,充分考慮生產(chǎn)線的可擴(kuò)展性與可裁剪性。但可以只開發(fā)與當(dāng)前產(chǎn)品相關(guān)的模塊及代碼。

        ②將領(lǐng)域模型轉(zhuǎn)化為AO樹特征模型。

        ③依據(jù)AO樹特征模型劃分功能模塊。本步驟與②是為了方便將領(lǐng)域模型轉(zhuǎn)化為計算機(jī)實現(xiàn),實現(xiàn)的方法并不限于AO樹。

        ④依據(jù)需求建立需要的自定義類。在此如何去建立需要的類也可以根據(jù)自身狀況靈活掌握,可以采用面向?qū)ο蟮姆椒?,也可以采用面向方面的方法,但必須將此類繼承自何類或引用或使用的方法必須標(biāo)注在數(shù)據(jù)表中。

        ⑤建立模塊。與④相同,也須將本模塊包含的類標(biāo)注在數(shù)據(jù)表中。

        ⑥組織模板,軟件生產(chǎn)線建成。

        3.2 軟件生產(chǎn)線無縫遷移模型

        依據(jù)上述軟件生產(chǎn)線過程模型建立生產(chǎn)線,則生產(chǎn)線的維護(hù)及遷移問題就轉(zhuǎn)化為軟件庫中數(shù)據(jù)的轉(zhuǎn)移問題。模型如圖3所示。

        圖3 軟件生產(chǎn)線無縫遷移模型Fig.3 A seamless migration model of SPL

        從原軟件庫向新軟件庫轉(zhuǎn)移時,仍應(yīng)遵循自項而下的模式,首先對新的領(lǐng)域進(jìn)行分析,建立領(lǐng)域模型,建立AO特征模型。然后依據(jù)AO模型先從原軟件庫中提取可用的模塊,提取可用的自定義類,在提取模塊時須能同進(jìn)提取此模塊所涉及至的自定義類及COTS構(gòu)件,提取自定義類時亦如此。此后新生產(chǎn)線的建立依前述生產(chǎn)線過程模型建立即可。

        3.3 實例

        依托軟件生產(chǎn)線過程模型,筆者建立了一個車載多媒體模擬系統(tǒng)。系統(tǒng)包括領(lǐng)域分析過程、形式化過程、AO模型建立過程等,并在SQL Server之上建立了系統(tǒng)的支持工具,詳細(xì)情況見文獻(xiàn)[10]。系統(tǒng)可以根據(jù)用戶的選擇自動生成所需要的產(chǎn)品。生產(chǎn)線的建立并不比生產(chǎn)一個產(chǎn)品復(fù)雜多少,而且因為關(guān)系數(shù)據(jù)庫的作用可以相對容易剝離出較大粒度的復(fù)用,利于生產(chǎn)線的遷移。

        4 結(jié) 語

        在研究了軟件產(chǎn)品線的概念、相關(guān)方法的基礎(chǔ)上,深入分析了當(dāng)前軟件產(chǎn)品線方法的一些不足之處,并提出了相應(yīng)的對策。在此基礎(chǔ)上,筆者提出軟件生產(chǎn)線過程模型及無縫遷移模型。這兩個模型可以有效降低生產(chǎn)線的初期投入,并對日后的遷移建立了基礎(chǔ),具有一定的實用價值以及推廣價值。

        [1]DAVID PARNAS.On the Criteria to be Used in Decomposing Systems into Modules[C]∥Communication of the ACM.[S.l.]:ACM,1972:1053-1058.

        [2]LISA BROWNSWORD,PAUL CLEMENTS.A Case Study in Sueeessful Produet Line Development[R].[S.l.]:Software Engineering Institute,Carnegie Mellon University,1996,10.

        [3]THUM T,BATORY D,KASTNER C.Reasoning about Rdits to Feature Models[C]∥Software Engineering,2009.ICSE 2009.IEEE 31st International Conference on.Vancouver,Canada:IEEE,2009:254-264.

        [4]VIERHAUSER M,HOLL G,RABISER R.A Deployment Infrastructure for Product Line Models and Tools[C]∥Software Product Line Conference(SPLC),2011 15th International.Munich,Germany:IEEE,2011:287-294.

        [5]聶坤明,張莉,樊志強(qiáng).軟件產(chǎn)品線可變性建模技術(shù)系統(tǒng)綜述[J].軟件學(xué)報,2013,24(9):2001-2019.NIE Kunming,ZHANG Li,F(xiàn)AN Zhiqiang.Systematic Literature Review of Software Product Line Variability Modeling Techniques[J].Journal of Software,2013,24(9):2001-2019.

        [6]孫連山,王今雨.一種面向特征的軟件產(chǎn)品線非功能需求建模方法[J].計算機(jī)工程與科學(xué),2013,39(5):67-76.SUN Lianshan,WANG Jinyu.A Feature-Oriented Approach to Modeling Non-Functional Requirements in Software Prodect Line[J].Computer Engineering& Science,2013,39(5):67-76.

        [7]趙卓,吳慧玲.基于復(fù)用的軟件產(chǎn)品線工程關(guān)鍵技術(shù)研究[J].計算機(jī)與數(shù)字工程,2013,41(12):2012-2015.ZHAO Zhuo,WU Huiling.Towards Software Reuse and Its Applications in Software Product Line Engineering[J].Computer& Digital Engineering,2013,41(12):2012-2015.

        [8]WEISS DAVID M,CHI TAU LAI.Software Product-Line Engineering:A Family-Based Software Development Approach[J].Addison-Wesley,1999,41(3):49-56.

        [9]MARGARET J DAVIS.Reengineering and the Product Line Approach to Software Development[J].Boeing Defense& Space Group,1995,29(4):128-131.

        [10]金星波.軟件產(chǎn)品線方法研究及在嵌入式軟件開發(fā)中的應(yīng)用[D].長春:吉林大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,2011.JIN Xingbo.Research Software Production Line and Its Application in hte Embedded Software Development[D].Changchun:College of Computer Science and Technology,Jilin University,2011.

        猜你喜歡
        生產(chǎn)線領(lǐng)域軟件
        方便小米粥億級生產(chǎn)線投入運行
        禪宗軟件
        英語文摘(2021年10期)2021-11-22 08:02:26
        16000t鍛造壓力機(jī)生產(chǎn)線將交付
        領(lǐng)域·對峙
        青年生活(2019年23期)2019-09-10 12:55:43
        軟件對對碰
        生長在生產(chǎn)線上
        Hazelett生產(chǎn)線熔煉工藝探討
        新常態(tài)下推動多層次多領(lǐng)域依法治理初探
        談軟件的破解與保護(hù)
        精品(2015年9期)2015-01-23 01:36:01
        肯定與質(zhì)疑:“慕課”在基礎(chǔ)教育領(lǐng)域的應(yīng)用
        国产成人精品免费久久久久| 亚洲熟女综合色一区二区三区| 黑人上司粗大拔不出来电影| 亚洲熟妇20| 日本一区二区三本视频在线观看| 国产午夜精品视频观看| 乱色欧美激惰| 成人精品综合免费视频| 蜜桃一区二区三区在线看| 99热婷婷一区二区三区| 精品亚洲麻豆1区2区3区| 久久精品国产第一区二区三区 | 一本色道无码道在线观看| 91制服丝袜| 日韩精品少妇专区人妻系列| 国产亚洲av看码精品永久| 国精品无码一区二区三区在线蜜臀 | 亚洲av熟女天堂系列| 国产精品大片一区二区三区四区| 亚洲精品久久久www小说| 国产一区二区三区在线观看精品| 亚洲精品国产av一区二区| 在线观看视频日本一区二区| 中文乱码字慕人妻熟女人妻| 久久久久亚洲AV无码专| 看中文字幕一区二区三区| 欧美肥妇毛多水多bbxx水蜜桃| 熟妇人妻无码中文字幕| 福利片免费 亚洲| 一区二区三区四区草逼福利视频| 亚瑟国产精品久久| 久久半精品国产99精品国产| 中文字幕日产人妻久久| 无码视频一区二区三区在线播放| 国产性感午夜天堂av| 亚洲一区自拍高清亚洲精品| 亚洲一区欧美二区| av在线男人的免费天堂| 成年丰满熟妇午夜免费视频 | 精品国产亚洲AⅤ麻豆| 久久色悠悠亚洲综合网|