




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-.z摘要:構(gòu)件組裝技術(shù)是支持軟件復(fù)用的核心技術(shù),構(gòu)件組裝平臺(tái)的使用將系統(tǒng)開發(fā)的重點(diǎn)從程序設(shè)計(jì)轉(zhuǎn)移到已有構(gòu)件的選取、組裝和部署;在構(gòu)件模型的支持下,通過復(fù)用已有的構(gòu)件,軟件開發(fā)者可以“即插即用〞地快速構(gòu)造應(yīng)用系統(tǒng);在此,給出了一個(gè)基于*ML的構(gòu)件組裝平臺(tái)的設(shè)計(jì)與描述,并且根據(jù)構(gòu)件自身特點(diǎn)和構(gòu)件組裝的需要自定義了基于*ML的軟件構(gòu)造描述(SAD),其中包括基于*ML的構(gòu)件描述、連接子描述和組裝構(gòu)造描述,這些描述對(duì)連接子生成與構(gòu)件組裝提供了根本的信息支持。關(guān)鍵字:*ML,構(gòu)件化Abstract:ponentassemblytechnologyisthecoretechnologyofsoftwarereuse,ponentassemblyplatformsuccessfullyfulfillsthemainpointsofsystemdeveloping,suchasponentsearching,ponentassemblyandponenttransforminginsteadofprogramdesign.Undersustainingofponentmodel,reusingponent,softwaredevelopercouldquicklyconstructapplicationsystemasplugandplay.Adesignmethodanddescriptionofa*ML-basedponentassemblyplatformareproposedhere.Accordingtoponent-selfcharacterandrequirementofponentassembly,asoftwarearchitecturedescription:SAD(includesponentdescription,connectordescriptionandassemblydescription)isdefinedindetail,whichgivesbasicinformationalsupportforconnectorbuildingandponentassembly.Keywords:ponentassembly;connector;ponentassemblydescription目錄TOC\o"1-3"\h\u155111構(gòu)件分類、粒度劃分、業(yè)務(wù)模型1123281.1構(gòu)件分類1315241.2粒度劃分212891.3業(yè)務(wù)模型之間的關(guān)系3251182典型構(gòu)件模型技術(shù)3119062.1構(gòu)件的模型3252442.2基于CORBA的CCM技術(shù)4281402.3E技術(shù)5150603典型構(gòu)件模型技術(shù)及開展展望757654構(gòu)件組裝流程總體設(shè)計(jì)7203214.1用戶需求的輸入分析8182904.2構(gòu)件搜索與獲取892214.3構(gòu)件匹配選擇9312094.4構(gòu)件組裝9183234.5程序校驗(yàn)和執(zhí)行10312415軟件構(gòu)造描述SAD10133025.1基于*ML的構(gòu)件描述11264165.2基于*ML的連接子描述11275745.3基于*ML的組裝構(gòu)造描述12327576組裝平臺(tái)的實(shí)現(xiàn)16-.z基于*ML的構(gòu)件組裝平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)1構(gòu)件分類、粒度劃分、業(yè)務(wù)模型1.1構(gòu)件分類對(duì)大量構(gòu)件進(jìn)展分類有三個(gè)好處:便于組織管理、方便查詢和輔助理解.構(gòu)件分類是建立和維護(hù)構(gòu)件目錄信息的活動(dòng),構(gòu)件的檢索方法依賴于構(gòu)件的表示和分類。目前有很多構(gòu)件的分類和檢索方法。從構(gòu)件表示出發(fā)可分為人工智能方法、超文本方法和信息科學(xué)方法三類;而根據(jù)復(fù)雜度和檢索效果的不同則可以分為基于文本、基于詞法描述和基于規(guī)約的編碼和檢索三類。信息科學(xué)方法是軟件復(fù)用工程中應(yīng)用較為成功的一類,并且以枚舉、刻面、屬性值-關(guān)鍵詞幾種方法較為常見,其中刻面分類方法能夠表達(dá)豐富的構(gòu)件信息,為人關(guān)注。構(gòu)件的分類方式有多種,為了檢索和重用構(gòu)件時(shí)更好的了解構(gòu)件的性質(zhì),我們可以將構(gòu)件分類如下:根據(jù)構(gòu)件的復(fù)用方式,分為兩種構(gòu)件。一種是黑匣構(gòu)件,我們不需要知道其內(nèi)部是怎么工作,只需從外部使用它,能夠到達(dá)即插即用;一種是白匣構(gòu)件,需要經(jīng)過修改才能重用;根據(jù)使用的*圍,分為通用構(gòu)件和專用構(gòu)件。根據(jù)構(gòu)件顆粒度的大小,分為小型構(gòu)件,一般為根本數(shù)據(jù)構(gòu)造類構(gòu)件,如:窗口、按鈕、菜單等;中型構(gòu)件,具體指一些功能構(gòu)建,如:錄入、查詢、刪除等;大型構(gòu)件,一般都是系統(tǒng)級(jí)構(gòu)件,如一些系統(tǒng)框架等;根據(jù)功能用途,分為系統(tǒng)構(gòu)件,實(shí)在整個(gè)構(gòu)件集成環(huán)境和運(yùn)行環(huán)境都使用的構(gòu)件;支撐構(gòu)件,是在構(gòu)件集成環(huán)境、構(gòu)件庫管理系統(tǒng)中使用的構(gòu)件;領(lǐng)域構(gòu)建愛你,是為專用領(lǐng)域開發(fā)的構(gòu)件;〔5〕根據(jù)構(gòu)件的構(gòu)造,分為原子構(gòu)件和組合構(gòu)件。1.1.1枚舉分類通過定義一個(gè)層次構(gòu)造來對(duì)構(gòu)件進(jìn)展分類。構(gòu)件庫中的可復(fù)用構(gòu)件按照*種標(biāo)準(zhǔn)被分成了假設(shè)干個(gè)大類,每個(gè)大類中的構(gòu)件再分成假設(shè)干個(gè)小類,這樣就形成了一個(gè)構(gòu)件分類的層次構(gòu)造。層次構(gòu)造的最低層羅列的就是實(shí)際的構(gòu)件。1.1.2刻面分類一個(gè)刻面描述構(gòu)件*一個(gè)方面的特征??堂娣诸悇t是從不同的側(cè)面對(duì)構(gòu)件進(jìn)展分類,每一種分類方式稱為一個(gè)刻面。不同的刻面根據(jù)其重要性可以設(shè)置不同的優(yōu)先級(jí)。對(duì)構(gòu)件的每個(gè)刻面賦予相應(yīng)的值,用以描述該構(gòu)件??堂娣诸惥哂休^好的靈活性,易于參加新的刻面值,因此刻面分類比枚舉分類更易于擴(kuò)展和修改。支持多重觀點(diǎn)對(duì)構(gòu)件進(jìn)展分類,例如從構(gòu)件的應(yīng)用領(lǐng)域、構(gòu)件所描述的對(duì)象、構(gòu)件的觀點(diǎn)和編程語言等不同的方式來分類。每一種分類方式稱為一個(gè)刻面。每個(gè)刻面把構(gòu)件集合劃分為一個(gè)子集,各刻面所劃分的子集形成一些較小的交集。檢索一個(gè)構(gòu)件時(shí),給出一組刻面值,將確定一組子集合,在這些子集合的交集中,確認(rèn)所需的構(gòu)件。構(gòu)件可用屬性描述,例如構(gòu)件類型、開發(fā)單位、作者、提交日期等屬性。檢索時(shí)通過構(gòu)件的屬性可以縮小搜索*圍??堂婧蛯傩远疾簧婕皹?gòu)件內(nèi)部實(shí)現(xiàn),只是為了便于構(gòu)件的管理、檢索和使用。如果把構(gòu)件比作一只箱子,其內(nèi)容如同箱子中裝的東西,刻面和屬性則如同箱子外邊的標(biāo)簽??堂娣诸惙梢钥醋鲗哟畏诸惙ǖ臄U(kuò)大。1.1.3屬性-值分類該方法首先是為構(gòu)件庫中的所有構(gòu)件定義一組屬性,并賦予相應(yīng)的屬性值。開發(fā)人員通過指定一組屬性值在構(gòu)件庫中對(duì)構(gòu)件進(jìn)展檢索。該分類方法與刻面分類方法有幾點(diǎn)不同之處:屬性的數(shù)量沒有限制,而刻面描述一般限制在7或8個(gè)刻面;屬性沒有優(yōu)先級(jí),而刻面根據(jù)其重要程度,有相應(yīng)的優(yōu)先級(jí)。1.2粒度劃分構(gòu)件粒度是軟件構(gòu)件的一個(gè)重要屬性,將粒度引入軟件領(lǐng)域,是因?yàn)榱6瓤梢杂脕砗饬繕?gòu)件的規(guī)模,并在一定程度上影響著構(gòu)件的可復(fù)用性。粒度過大,靈活性小,難以實(shí)現(xiàn)復(fù)用,粒度過小,管理本錢提升,使得復(fù)用性也很難改善。構(gòu)件的粒度可以分為粗粒度、中等粒度、細(xì)粒度。對(duì)于粗粒度的構(gòu)件來講,往往含有非常復(fù)雜的業(yè)務(wù)邏輯,比方提供數(shù)據(jù)、數(shù)據(jù)構(gòu)造、數(shù)據(jù)定義等功能的構(gòu)件。中等粒度的構(gòu)件是由細(xì)粒度的構(gòu)件組成的,其中含有一些不復(fù)雜卻很特殊的業(yè)務(wù)邏輯。細(xì)粒度構(gòu)件往往是有一些RAD工具提供的,它具有很清晰的邏輯構(gòu)造,例如JAVA的GUI組件,Active*和JavaBeans等。1.3業(yè)務(wù)模型之間的關(guān)系構(gòu)件是從業(yè)務(wù)模型映射得到的。不穩(wěn)定的業(yè)務(wù)模型需要頻繁發(fā)生變化,與之相對(duì)應(yīng)的構(gòu)件要能夠包容這種變化,即構(gòu)件要能夠在頻繁變化的業(yè)務(wù)需求和相對(duì)穩(wěn)定的軟件系統(tǒng)之間建立緩沖,防止因業(yè)務(wù)的頻繁變化而導(dǎo)致軟件系統(tǒng)的頻繁變化。這就需要構(gòu)件本身應(yīng)具備適應(yīng)變化的能力,即構(gòu)件能夠通過對(duì)自身的配置和重構(gòu)來滿足不同的業(yè)務(wù)需求,但不會(huì)或極少影響到軟件系統(tǒng)的變化。如果業(yè)務(wù)模型的這種變化不能通過*種抽象的形式描述出來并以可配置的形式封裝在構(gòu)件中,就不得不降低構(gòu)件的粒度,將這些變化交由構(gòu)件復(fù)用人員針對(duì)具體的復(fù)用環(huán)境在復(fù)用過程中去完成,否則,構(gòu)件將不得不面臨著因日后頻繁重構(gòu)而帶來的巨大本錢。由此可知,構(gòu)件的粒度與構(gòu)件所實(shí)現(xiàn)的業(yè)務(wù)模型的穩(wěn)定性密切相關(guān)。模型越穩(wěn)定,可能發(fā)生變化的時(shí)機(jī)就越少,則相應(yīng)的構(gòu)件所需要包容的變化就越少,構(gòu)件的粒度就可以越大。反之,模型越不穩(wěn)定,模型的變化就越多,構(gòu)件要包容這些變化的難度就越大,就不得不將該模型分解為假設(shè)干個(gè)粒度較小的構(gòu)件。因此,對(duì)穩(wěn)定的業(yè)務(wù)模型,可直接映射為大粒度構(gòu)件;對(duì)不穩(wěn)定的業(yè)務(wù)模型,通過對(duì)其進(jìn)展分解,得到一組子業(yè)務(wù)模型,并將穩(wěn)定的子業(yè)務(wù)元素映射為構(gòu)件,其它不穩(wěn)定元素繼續(xù)進(jìn)展分解,直到所有的業(yè)務(wù)元素都映射為構(gòu)件為止。2典型構(gòu)件模型技術(shù)2.1構(gòu)件的模型軟件構(gòu)件模型是對(duì)軟件構(gòu)件本質(zhì)特征的抽象描述,是對(duì)開發(fā)可重用軟件構(gòu)件和構(gòu)件之間相互通信的一組標(biāo)準(zhǔn)的描述,它一般規(guī)定了創(chuàng)立和實(shí)現(xiàn)構(gòu)件的知道原則,構(gòu)件借口的構(gòu)造,構(gòu)件與軟件架構(gòu)及構(gòu)件與構(gòu)件間的交互機(jī)制。構(gòu)件模型主要有構(gòu)件和容器兩個(gè)局部組成。構(gòu)件模型分為兩類:客戶端構(gòu)件模型和效勞器端構(gòu)件模型。建立構(gòu)件模型要考慮的幾個(gè)要素:表達(dá)能力、簡(jiǎn)單性、語言無關(guān)性、一致性、完備性、可擴(kuò)展性。對(duì)象模型、構(gòu)件技術(shù)和Web技術(shù)的融合徹底改變了軟件的構(gòu)造方法。在分布式系統(tǒng)中,對(duì)象被用來表示分布的、可移動(dòng)的、可通信的實(shí)體;構(gòu)件化的軟件開發(fā)方法使對(duì)象被加在網(wǎng)絡(luò)上,到達(dá)跨平臺(tái)的互操作和高的可伸縮性;Web技術(shù)使應(yīng)用對(duì)象可以在Internet這個(gè)開放的計(jì)算平臺(tái)上移動(dòng)。這是一個(gè)全新的計(jì)算模式,核心是可互操作的對(duì)象,即軟件對(duì)象間可透明地進(jìn)展相互通信,并且地位對(duì)等地使用對(duì)方的效勞,而不管這些對(duì)象是處于同一編址空間,還是不同的編址空間,或是根本不同的機(jī)器上。分布式構(gòu)件技術(shù)主要有三種:對(duì)象管理組織OMG的基于公共對(duì)象請(qǐng)求代理構(gòu)造(CORBA)的CCM,SUN公司的E和Microsoft公司的/D/+。2.2基于CORBA的CCM技術(shù)CORBA是對(duì)象管理小組(OMG)的一個(gè)規(guī)*,它的底層和核心局部是對(duì)象請(qǐng)求代理(ORB)。從*種意義上說,CORBA是“軟件總線〞。CORBA的實(shí)質(zhì)是RPC與面向?qū)ο蠹夹g(shù)的有機(jī)結(jié)合。在CORBA中,每一個(gè)構(gòu)件是一個(gè)對(duì)象,有一個(gè)基于面向?qū)ο蟮慕涌?內(nèi)部代碼實(shí)現(xiàn)可以是OO或非OO的語言,總線上的對(duì)象能夠被任何其它對(duì)象所使用。CORBA提供了接口語言定義語言(IDL)到C,C++,Java,COBOL等語言的映射機(jī)制IDL編譯器,它可以生成效勞器方的Skeleton和客戶方Stub代碼,通過分別與客戶端和效勞器端的聯(lián)編即可得到效勞方和客戶方的程序。對(duì)一個(gè)CORBA客戶機(jī)來說,效勞器的位置是透明的,客戶機(jī)通過接口與效勞器構(gòu)件進(jìn)展通信。CORBA同時(shí)提供了一系列的公共效勞規(guī)*,其中包括名字效勞、永久對(duì)象效勞、生命周期效勞、事務(wù)處理效勞、對(duì)象事件效勞和平安效勞等,它們相當(dāng)于一類用于企業(yè)級(jí)計(jì)算的公共構(gòu)件。最新的CORBA規(guī)*主要包含以下內(nèi)容:ORB核心、OMG界面定義語言、語言映射、存根(Stub)和框架(Skele-ton)、動(dòng)態(tài)調(diào)用和倉庫、對(duì)象適配器和ORB之間的互操作。CORBA的構(gòu)造:IDL語言;ORB核心;客戶程序;對(duì)象實(shí)現(xiàn)。2.3E技術(shù)SUN公司的E是一種基于構(gòu)件的開發(fā)模型,它是Java效勞器端效勞框架的規(guī)*。E詳細(xì)地定義了一個(gè)可以方便地部署Java構(gòu)件的效勞框架模型,用于創(chuàng)立可伸縮、多層次、跨平臺(tái)、分布式的應(yīng)用,并可創(chuàng)立具有動(dòng)態(tài)擴(kuò)展性的效勞器端的應(yīng)用。E效勞器實(shí)現(xiàn)了對(duì)E對(duì)象構(gòu)件的管理,并提供對(duì)系統(tǒng)效勞的。E效勞器也可以提供其它軟件接口標(biāo)準(zhǔn),如優(yōu)化的數(shù)據(jù)庫接口,對(duì)CORBA效勞的,對(duì)SSL3.0的支持等。E以構(gòu)件的形式組織效勞器E的構(gòu)件實(shí)現(xiàn)僅需考慮應(yīng)用需求,其系統(tǒng)級(jí)效勞諸如事務(wù)管理、平安性、構(gòu)件生命周期和線程等,都是通過E效勞器自動(dòng)進(jìn)展管理的。E的體系構(gòu)造具有面向?qū)ο?、分布式、跨平臺(tái)、可擴(kuò)大性、平安性以及便于開發(fā)等優(yōu)點(diǎn)。同時(shí)它還是以協(xié)議為中心的,任何協(xié)議都可以被利用,如IIOP,HTTP等。由此可見,E技術(shù)很好地補(bǔ)充了CORBA體系規(guī)*,在CORBA體系上引入E技術(shù)使得建造應(yīng)用程序更為容易。事實(shí)上最近發(fā)布的CORBA規(guī)*中在建立Java語言的CORBA構(gòu)件時(shí)已大量參考了E的體系構(gòu)造。1996年10月,SUN公司推出的JavaBean,經(jīng)過幾次升級(jí)已成為比較重要的軟件構(gòu)件。按照SUN公司的定義,JavaBean是一種“能在開發(fā)工具中被可視化操作的、可重用的軟件構(gòu)件〞。它的最初目的是定義一種Java的軟件構(gòu)件模型,使第三廠方可以生成和銷售供其他人員使用的Java構(gòu)件。Bean可以被放置在“容器〞中,提供具體的操作性能。E規(guī)*是SUN于1997年12月發(fā)布的JavaBean構(gòu)件模型。一個(gè)E是特定的在效勞器上運(yùn)行的Jav-aBean,并且E能在可視化的工具下裝配成新的應(yīng)用。效勞器構(gòu)件是運(yùn)行在效勞器上的被包容器管理的Bean。包容器充當(dāng)構(gòu)件協(xié)調(diào)者的角色,使用標(biāo)準(zhǔn)的JAR從其包容器或工具中導(dǎo)入E。一旦E處于包容器內(nèi),就可以參加事件處理、狀態(tài)管理、自動(dòng)激活或撤銷等功能。E框架的優(yōu)點(diǎn)是以說明的方式定義效勞器方運(yùn)行時(shí)的屬性。因此,可以通過可視工具管理和設(shè)置效勞器方構(gòu)件的屬性,包括它們的事務(wù)處理、平安性和狀態(tài)管理器。RMI(RemoteMethodInvocation)是JDK1.1引入的ORB,可看作是Java的RPC機(jī)制。它定義了一組遠(yuǎn)程接口,可用于生成遠(yuǎn)程對(duì)象,客戶機(jī)可以像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程對(duì)象。RMI直接把分布式對(duì)象模型嵌入到Java語言內(nèi)部,使Java程序員自然地編寫分布式程序,不必離開Java環(huán)境或者涉及CORBAIDL,以及Java到CORBA的類型轉(zhuǎn)換。然而,RMI不遵循CORBA標(biāo)準(zhǔn),根本上是JavatoJava技術(shù),它要求客戶方、效勞器方程序由Java編寫,難以實(shí)現(xiàn)與其它語言編寫的對(duì)象間的互操作。技術(shù)是Microsoft推出的,它是一個(gè)二進(jìn)制代碼的標(biāo)準(zhǔn),經(jīng)歷了OLE,,Active*,D和+等幾個(gè)階段。目前+把消息通信模塊MSMQ和解決關(guān)鍵業(yè)務(wù)的交易模塊MTS都加進(jìn)去了,是分布對(duì)象計(jì)算的一個(gè)比較完整的平臺(tái)。Microsoft的平臺(tái)效率比較高,同時(shí)它有一系列相應(yīng)的開發(fā)工具支持,應(yīng)用開發(fā)相對(duì)簡(jiǎn)單。但它一個(gè)致命的弱點(diǎn)就是的跨平臺(tái)性較差,如何實(shí)現(xiàn)與第三方廠商的互操作性始終是它的一大問題。Java提供了一個(gè)概念清晰、構(gòu)造緊湊的分布計(jì)算模型和構(gòu)件互操作的方法,為構(gòu)件應(yīng)用開發(fā)提供了相當(dāng)?shù)撵`活性。但由于它還處于開展時(shí)期,因此其形態(tài)很難界定。CORBA是一種集成技術(shù),而不是編程技術(shù)。它提供了對(duì)各種功能模塊進(jìn)展構(gòu)件化處理并將它們捆綁在一起的粘合劑。Java和CORBA在很大的程度上可以看作是互補(bǔ)的。為了適應(yīng)WEB應(yīng)用的開展要求,許多軟件廠商都急于促成CORBA和Java技術(shù)的結(jié)合,將來的RMI可能建立在IIOP之上。CORBA不只是對(duì)象請(qǐng)求代理ORB,也是一個(gè)非常完整的分布式對(duì)象平臺(tái)。CORBA可以擴(kuò)展Java在網(wǎng)絡(luò)、語言、組件邊界、操作系統(tǒng)中的各種應(yīng)用。其次,Java也不僅僅是與CORBA捆綁的語言,它還是一個(gè)易變的對(duì)象系統(tǒng),也是一個(gè)運(yùn)行對(duì)象的便攜式OS,而且允許CORBA對(duì)象在主機(jī)、網(wǎng)絡(luò)計(jì)算機(jī)和蜂窩等應(yīng)用上運(yùn)行。Java還簡(jiǎn)化了大型CORBA系統(tǒng)中的代碼分配,其中內(nèi)置的多線程和垃圾收集使編寫可靠的網(wǎng)絡(luò)對(duì)象更為方便。此外,Java能創(chuàng)立可移動(dòng)對(duì)象并將它們分發(fā)出去,而采用CORBA可以將它們連接在一起,并與計(jì)算環(huán)境中的數(shù)據(jù)庫、遺留系統(tǒng)、其他語言編寫的對(duì)象和應(yīng)用相互集成。3典型構(gòu)件模型技術(shù)及開展展望作為Internet上影響最大的Web應(yīng)用,CORBA和Java的參加,不僅大大改善了Web應(yīng)用的質(zhì)量,如客戶端可直接動(dòng)態(tài)調(diào)用效勞器上的程序、多對(duì)象效勞群平衡處理輸入的客戶請(qǐng)求等,而且對(duì)于分布式對(duì)象的普及起到了積極的作用,它們的結(jié)合無疑是開發(fā)基于Web應(yīng)用的最正確技術(shù)。/D/+技術(shù)雖然是由微軟公司獨(dú)家支配和制定,但其支撐和開發(fā)工具非常齊全,開發(fā)效率非常高;加之Windows系列平臺(tái)在微機(jī)中的普遍使用,使人們不得不成認(rèn)它已經(jīng)成為了一種事實(shí)上的標(biāo)準(zhǔn),并被大量使用。所以,/D/+是開發(fā)基于Windows平臺(tái)應(yīng)用的有效技術(shù)。分布構(gòu)件技術(shù)已是目前企業(yè)信息系統(tǒng)和電子商務(wù)等大規(guī)模軟件開發(fā)的主流技術(shù),掌握它們的工作機(jī)理并加以靈活的應(yīng)用,無疑是每個(gè)軟件開發(fā)人員的必備能力。4構(gòu)件組裝流程總體設(shè)計(jì)從軟件工程的角度看,構(gòu)件組裝平臺(tái)特別適合于原形法和瀑布法軟件過程模型。構(gòu)件組裝總體流程[2]:給定任務(wù)——軟件模型——軟件構(gòu)造[3]——組裝構(gòu)造——組裝實(shí)現(xiàn)——測(cè)試部署。整個(gè)構(gòu)件組裝分為5個(gè)局部嗎,分別是用戶需求的輸入分析[4]、構(gòu)件搜索與獲取、構(gòu)件匹配選擇、構(gòu)件組裝、程序校驗(yàn)和執(zhí)行。構(gòu)件組裝流程總體設(shè)計(jì)如圖1所示。圖1構(gòu)件組裝平臺(tái)總流程4.1用戶需求的輸入分析在系統(tǒng)用戶界面中,由于用戶只關(guān)心自己所需程序的功能,所提出的請(qǐng)求往往帶有一定的不確定性和模糊性。為了幫助用戶更準(zhǔn)確地提交請(qǐng)求,需要提供友好的輸入界面。通過提供主題詞表和圖文導(dǎo)航目錄等方法讓用戶通過輸入界面提交有限定的非歧義的請(qǐng)求,為在相應(yīng)的*圍內(nèi)高效獲取可用構(gòu)件創(chuàng)造條件。用戶選定的關(guān)鍵詞或圖標(biāo)及相關(guān)聯(lián)關(guān)系是用戶所需程序的初步描述,對(duì)用戶請(qǐng)求的分析就是將問題按照應(yīng)用領(lǐng)域和求解規(guī)則進(jìn)展分解,將要解決的問題分解成小的模塊,找出他們之間的依賴關(guān)系,直到各子問題可以通過*個(gè)構(gòu)件或*些構(gòu)件的組合實(shí)現(xiàn)為止。用戶請(qǐng)求分析與構(gòu)件搜索、獲取嚴(yán)密聯(lián)系,如果找不到相應(yīng)的實(shí)現(xiàn)構(gòu)件,就需要根據(jù)搜索結(jié)果重新調(diào)整分解策略,直到獲得滿足要求的問題分解與構(gòu)件組裝方案[5]。4.2構(gòu)件搜索與獲取通過對(duì)用戶計(jì)算需求的分析,得到初步的構(gòu)件組裝方案,方案中的構(gòu)件描述,形成構(gòu)件搜索條件。搜索條件由構(gòu)件的應(yīng)用領(lǐng)域、功能描述、類別、接口特征等方面的屬性組合而成,構(gòu)件搜索代理的數(shù)量根據(jù)構(gòu)件搜索任務(wù)的大小決定。構(gòu)件搜索代理首先構(gòu)件目錄效勞器,通過目錄協(xié)議查詢構(gòu)件目錄信息庫,得到相關(guān)或相近構(gòu)件的位置信息。然后構(gòu)件搜索代理在提供構(gòu)件的庫效勞器間自主移動(dòng)并與庫效勞器進(jìn)展快速的本地交互,得到包含待選構(gòu)件的資源文件,轉(zhuǎn)交給下一步驟的代理處理。構(gòu)件搜索過程分為兩步進(jìn)展:構(gòu)件搜索代理首先在本地構(gòu)件目錄庫中快速搜索需要的構(gòu)件,如果本地庫中沒有,則馬上返回錯(cuò)誤信息,系統(tǒng)將該信息反響到上一階段,要求重新調(diào)整分解策略,滿足實(shí)時(shí)性要求高的應(yīng)用的要求;對(duì)于對(duì)實(shí)時(shí)性要求不高的用戶,系統(tǒng)可以啟動(dòng)代理通過相鄰的構(gòu)件目錄效勞器到遠(yuǎn)程構(gòu)件效勞器上繼續(xù)搜索,獲取需要的構(gòu)件。4.3構(gòu)件匹配選擇待選構(gòu)件的分析選擇取決于前面的結(jié)果。在建立構(gòu)件目錄信息庫階段,構(gòu)造出了描述構(gòu)件靜態(tài)屬性以及動(dòng)態(tài)行為的構(gòu)件描述符,并做了分類組織,這是在構(gòu)件層次上的描述;對(duì)用戶需求的分析則得到用戶所需程序的功能規(guī)約和自上而下的程序分解方案,這是應(yīng)用層的描述。構(gòu)件分析的任務(wù)就是根據(jù)用戶需求分析階段得到的程序描述和分解方案,按照相反的順序自下而上驗(yàn)證分解方案的可行性,從分析構(gòu)件的功能和依賴關(guān)系開場(chǎng),逐步綜合,得到更高抽象層次的構(gòu)件組合,再進(jìn)一步分析構(gòu)件組合之間的關(guān)系,最終得到基于構(gòu)件組裝的程序,建立起應(yīng)用層次和構(gòu)件描述層次之間的聯(lián)系。在分析待選構(gòu)件的過程中,由于由多個(gè)構(gòu)件實(shí)現(xiàn)一樣或相似的功能,并且在組合過程中對(duì)外部條件有不同的要求,因此在實(shí)際組裝之前需要對(duì)構(gòu)件進(jìn)展選擇和優(yōu)化。構(gòu)件選擇主要從兩個(gè)層次進(jìn)展:首先對(duì)功能相近的構(gòu)件進(jìn)展比較分析,綜合考慮執(zhí)行效率、時(shí)空開銷等因素,對(duì)構(gòu)件進(jìn)展取舍,以滿足用戶的實(shí)際需要;另外,在更高一個(gè)層次上,對(duì)于實(shí)現(xiàn)一樣功能的構(gòu)件組合,也同樣存在比較和取舍問題,確保構(gòu)件組合在執(zhí)行過程中不互相影響。這兩方面的取舍對(duì)于整個(gè)過程的優(yōu)化有重要意義。經(jīng)過構(gòu)件的分析選擇,最終確定了待組裝的構(gòu)件和構(gòu)件組裝方案。4.4構(gòu)件組裝在組裝環(huán)境中,按照構(gòu)件組裝方案定義的構(gòu)件和調(diào)用關(guān)系,對(duì)選定的構(gòu)件進(jìn)展連線和組裝。在組裝過程中,需要根據(jù)用戶的具體需求調(diào)整和設(shè)置各個(gè)構(gòu)件的可定制屬性,通過事前觸發(fā)和方法調(diào)用將構(gòu)件連接成統(tǒng)一的整體,并自動(dòng)生成相關(guān)的程序代碼,完成用戶所要求的計(jì)算功能。在組裝過程中,自動(dòng)生成的代碼主要包括構(gòu)件之間的動(dòng)態(tài)參數(shù)傳遞,以及支持整個(gè)程序執(zhí)行的靜態(tài)入口方法和變量設(shè)置等等。軟構(gòu)件之間的調(diào)用關(guān)系可以用*種構(gòu)件配置的和連接語言描述,例如:*ML來描述JavaBean之間的調(diào)用和依賴關(guān)系,進(jìn)展JavaBean的連接和組裝。4.5程序校驗(yàn)和執(zhí)行這一步的主要任務(wù)是在組裝程序提交給用戶之前,進(jìn)展驗(yàn)證和測(cè)試,確保得到的程序能夠完成用戶需要的功能,并且在運(yùn)行過程中不會(huì)給客戶端系統(tǒng)帶來不良影響。程序的校驗(yàn)在以下幾個(gè)方面進(jìn)展:組裝程序的有效性和可靠性,程序功能規(guī)約的一致性和正確性,構(gòu)件間依賴關(guān)系的描述的正確性,以及功能規(guī)約到實(shí)現(xiàn)轉(zhuǎn)換的有效性。構(gòu)件的組裝將生成新構(gòu)件,將新構(gòu)件信息登記到構(gòu)件目錄信息庫是構(gòu)件再造和知識(shí)積累的過程。以上幾個(gè)階段相互聯(lián)系,相互影響,形成一個(gè)統(tǒng)一的構(gòu)件組裝流程。5軟件構(gòu)造描述SAD構(gòu)件組裝的本質(zhì)是在構(gòu)件之間建立關(guān)聯(lián),根據(jù)這種關(guān)聯(lián)來協(xié)調(diào)構(gòu)件的行為,把它們組織成為一個(gè)有機(jī)的整體。構(gòu)件之間的組裝關(guān)系,宏觀上由組裝構(gòu)造描述[6](簡(jiǎn)稱組裝描述)定義,構(gòu)件之間復(fù)雜的行為關(guān)系,微觀上由連接子描述。主要完成從軟件體系構(gòu)造到系統(tǒng)組裝構(gòu)造描述的映射過程,自定義了軟件構(gòu)造描述,給出系統(tǒng)的抽象規(guī)約描述,它是構(gòu)件描述、連接子描述和組裝構(gòu)造描述的統(tǒng)稱,并根據(jù)描述語言映射為最終的實(shí)現(xiàn)語言,生成應(yīng)用系統(tǒng)骨架。SAD從構(gòu)件、連接子和兩者之間的組裝構(gòu)造關(guān)系三方面來建模系統(tǒng)。SAD有11個(gè)主要元素:(1)ponentName(構(gòu)件名):構(gòu)件有代表性的正規(guī)名稱,也是構(gòu)件的唯一性標(biāo)識(shí);(2)Function(構(gòu)件功能):對(duì)構(gòu)件功能的自然語言描述;(3)ponentLocation(構(gòu)件位置):構(gòu)件來源信息,一般與構(gòu)件的獲取方式相關(guān);(4)Inputpara(輸入?yún)?shù)):構(gòu)件操作的輸入?yún)?shù)數(shù)據(jù)類型以及參數(shù)名。包括兩個(gè)項(xiàng),分別是ParaName(參數(shù)名)和ParaType(參數(shù)類型);(5)Outputpara(輸出參數(shù)):構(gòu)件操作完后的輸出參數(shù)數(shù)據(jù)類型以及參數(shù)名。同樣包括兩個(gè)項(xiàng),分別是ParaName(參數(shù)名)和ParaType(參數(shù)類型);(6)ConnectorName(連接子名稱):標(biāo)識(shí)連接子的名字;(7)ConnectorFunction(連接子功能):連接子的功能,連接子功能化分為兩個(gè):數(shù)據(jù)的傳遞(Paratransmitter)和數(shù)據(jù)類型的轉(zhuǎn)換匹配(Paramatching);(8)ponentObjects(連接的構(gòu)件對(duì)象描述):對(duì)連接子連接的上一構(gòu)件(Up_ponent)與下一構(gòu)件(Down_ponent)的描述;(9)OutputParalist(來源參數(shù)列表):連接子接收的輸入信息的參數(shù)序列;(10)InputParalist(目的參數(shù)列表):經(jīng)連接子處理后發(fā)往下一個(gè)構(gòu)件的輸出,也是一個(gè)參數(shù)序列;(11)Condition(條件約束):這是一個(gè)條件約束,這個(gè)條件一般用自然語言描述,在由連接子描述映射到連接子實(shí)體時(shí),半自動(dòng)化生成選擇語句的條件表達(dá)式。5.1基于*ML的構(gòu)件描述軟件體系構(gòu)造人員根據(jù)用戶需求,對(duì)構(gòu)件的功能和其它特征進(jìn)展刻畫,形成構(gòu)件描述[7]。在本文定義的構(gòu)件描述中,與組裝相關(guān)的構(gòu)件描述分為兩個(gè)局部,第一局部是構(gòu)件的一般信息描述,包括構(gòu)件名稱、來源、功能等;第二局部是構(gòu)件內(nèi)部構(gòu)造的詳細(xì)說明,包括操作的名稱及參數(shù)列表等。構(gòu)件描述包含了SAD中的5個(gè)元素:ponentName,F(xiàn)unction,ponentLocation,Inputpara,Outputpara。其中ponentName,F(xiàn)unction和ponentLocation的數(shù)據(jù)類型是String類型,Inputpara和Outputpara是復(fù)雜類型。5.2基于*ML的連接子描述在軟件組裝構(gòu)造中,連接子是一類特殊構(gòu)件,它不但具有邏輯意義上的獨(dú)立性,而且與構(gòu)件和一樣,都是獨(dú)立的二進(jìn)制實(shí)體。連接子實(shí)現(xiàn)構(gòu)件之間的數(shù)據(jù)傳送、控制轉(zhuǎn)移(順序、選擇、循環(huán)、并行等)等功能,是構(gòu)件之間建立聯(lián)系的中介。本文所述的組裝關(guān)系最終都被映射到一類特殊的構(gòu)件?-連接子上。連接子定義、連接子處理方法和連接子接口,都被封裝在連接子中。因此,構(gòu)件之間的組裝關(guān)系,分散在對(duì)連接子的描述中。連接子的描述方法,其包括邏輯關(guān)系描述和組裝描述,主要研究連接子的一般規(guī)約模型。規(guī)*化描述接連子是使連接子作為獨(dú)立構(gòu)件的根底,也是使連接子工具化的第一步。由于連接子是軟件高層設(shè)計(jì)的構(gòu)件,因此,它的描述不同于傳統(tǒng)程序設(shè)計(jì)語言中的程序單元。它所描述的不是具體的實(shí)現(xiàn)功能、操作等,而應(yīng)該明確、顯示地描述它在體系構(gòu)造中所扮演的抽象角色。連接子描述包括功能、約束、非功能屬性描述等,它包含了SAD中的6個(gè)元素:ConnectorName,ConnectorFunction,ponentObjects,OutputParalist,InputParalist,Condition。5.3基于*ML的組裝構(gòu)造描述組裝構(gòu)造描述是軟件構(gòu)造描述的重點(diǎn),它規(guī)定了應(yīng)用系統(tǒng)中各個(gè)構(gòu)件之間的作用形式和構(gòu)件在運(yùn)行期間的通信機(jī)制,其它描述都是直接為它效勞的。*ML表示的組裝構(gòu)造描述(簡(jiǎn)稱組裝描述)是對(duì)軟件系統(tǒng)各個(gè)組成局部之間關(guān)系的準(zhǔn)確刻畫,它反映了構(gòu)件、連接子之間的交互關(guān)系。構(gòu)件組裝平臺(tái)的各個(gè)局部,可以根據(jù)自身在組裝描述中的位置,確定構(gòu)件與構(gòu)件以及構(gòu)件與連接子間的邏輯連接關(guān)系。每一個(gè)節(jié)點(diǎn)代表一個(gè)構(gòu)件或連接子,節(jié)點(diǎn)之間代表數(shù)據(jù)的流向。數(shù)據(jù)的傳遞以及數(shù)據(jù)類型的匹配在連接子中完成。構(gòu)件組裝描述中的節(jié)點(diǎn)、前驅(qū)節(jié)點(diǎn)、后繼節(jié)點(diǎn)定義如下:(1)節(jié)點(diǎn)(Node):節(jié)點(diǎn)是組裝描述的根本元素,有兩種類型的節(jié)點(diǎn),一種是構(gòu)件,另一種是連接子。連接子結(jié)點(diǎn)描述了構(gòu)件之間的組裝關(guān)系,是構(gòu)件之間的粘合劑!。(2)前驅(qū)節(jié)點(diǎn)(PreNode):表示當(dāng)前節(jié)點(diǎn)在組裝構(gòu)造中的前驅(qū)節(jié)點(diǎn)名稱,前驅(qū)節(jié)點(diǎn)的類型可以是構(gòu)件或連接子。(3)后繼節(jié)點(diǎn)(Ne*tNode):表示當(dāng)前節(jié)點(diǎn)在組裝構(gòu)造中的后繼節(jié)點(diǎn)名稱,后繼節(jié)點(diǎn)的類型可以是構(gòu)件或連接子。組裝構(gòu)造的邏輯描述如下:<CL><DesObject><ClassName>構(gòu)件名稱</ClassName><MethodName>方法名稱</MethodName><Inputpara><ParaName>參數(shù)名稱</ParaName><ParaType>參數(shù)類型</ParaType></Inputpara><Outputpara><ParaName>參數(shù)名稱</ParaName><ParaType>參數(shù)類型</ParaType></Outputpara></DesObject><NodeListVersion=""Name="cl_table"><NodeName="start"><Ne*tNodes><Ne*tNodeName="構(gòu)件名稱"><Condition>true</Condition></Ne*tNode></Ne*tNodes></Node><NodeName="構(gòu)件名稱"><ClassType>構(gòu)件類型</ClassType><MethodName>方法名稱</MethodName><PreNode>前驅(qū)構(gòu)件</PreNode><Inputpara><ParaName>參數(shù)名稱</ParaName><ParaType>參數(shù)類型</ParaType></Inputpara><Outputpara><ParaName>參數(shù)名稱</ParaName><ParaType>參數(shù)類型</ParaType></Outputpara><Ne*tNodes><Ne*tNodeName="構(gòu)件名稱"><Condition>條件</Condition></Ne*tNode><Ne*tNodeName="構(gòu)件名稱"><Condition>條件</Condition></Ne*tNode></Ne*tNodes></Node><NodeName="連接子名稱"><ClassType>連接子類型</ClassType><MethodName>方法名稱</MethodName><PreNode>前驅(qū)構(gòu)件</PreNode><Inputpara><ParaName>參數(shù)名稱</ParaName><ParaType>參數(shù)類型</ParaType></Inputpara><Outputpara><ParaName>參數(shù)名稱</ParaName><ParaType>參數(shù)類型</ParaType></Outputpara><Ne*tNodes><Ne*tNodeName="構(gòu)件名稱"><Condition>條件</Condition></Ne*tNode><Ne*tNodeName="構(gòu)件名稱"><Condition>條件</Condition></Ne*tNode></Ne*tNodes></Node><NodeName="構(gòu)件名稱
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 私人借款合同范本【常用版】8篇
- 公路路基工程施工合同
- 2025年江蘇貨運(yùn)從業(yè)資格證模擬考試下載什么軟件
- 中小企業(yè)合同管理流程控制
- 2025年迪慶貨運(yùn)從業(yè)資格證模擬考試題目
- 教育培訓(xùn)范文及案例分享
- 勞務(wù)分包合同臨建
- 訂餐配送合同7篇
- 合同協(xié)議鋼材采購合同8篇
- 高層精裝二手房買賣合同書7篇
- 2025年上半年潛江市城市建設(shè)發(fā)展集團(tuán)招聘工作人員【52人】易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 旋轉(zhuǎn)類機(jī)電設(shè)備故障預(yù)測(cè)、診斷研究
- 旅游電子商務(wù)(第2版) 課件全套 周春林 項(xiàng)目1-8 電子商務(wù)概述-旅游電子商務(wù)數(shù)據(jù)挖掘
- 企業(yè)承包經(jīng)營(yíng)合同范本
- 中學(xué)校長(zhǎng)2025春開學(xué)典禮講話:以黃旭華之魂、DeepSeek 之智、哪吒之氣逐夢(mèng)新程
- 【課件】自然環(huán)境課件-2024-2025學(xué)年七年級(jí)地理下冊(cè)人教版
- 2025年01月公安部第三研究所公開招聘人民警察筆試筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025-2030全球鋰電池用隔膜行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年南京鐵道職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 《抖音高活躍群體研究報(bào)告》
- 2025年高考作文備考訓(xùn)練之二元思辨作文題目解析及范文:我與“別人”
評(píng)論
0/150
提交評(píng)論