




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件重用技術(shù)軟件重用是軟件設(shè)計(jì)的一種最新技術(shù),它能夠有效地提高軟件開(kāi)發(fā)效率,降低研發(fā)成本,提高軟件工程項(xiàng)目的經(jīng)濟(jì)和社會(huì)效益。通過(guò)這一技術(shù),現(xiàn)代軟件業(yè)必將在不斷積累與利用軟件的過(guò)程中獲得大力發(fā)展。本章概述了軟件重用的涵義、層次、分類(lèi)、特點(diǎn),以及軟件重用機(jī)會(huì)的識(shí)別,重點(diǎn)介紹了域工程的基本內(nèi)容、域分析、域建模和實(shí)現(xiàn),詳細(xì)介紹了構(gòu)件庫(kù)的開(kāi)發(fā)與管理。另外,對(duì)面向?qū)ο蟮能浖赜靡沧髁吮匾恼摷啊\浖赜媚軌蛱岣哕浖_(kāi)發(fā)效率,降低研發(fā)成本,提高項(xiàng)目創(chuàng)造的經(jīng)濟(jì)和社會(huì)效益。開(kāi)發(fā)軟件重用技術(shù),構(gòu)建可重用軟部件庫(kù),是軟件開(kāi)發(fā)、升級(jí)的基礎(chǔ)?,F(xiàn)代軟件事業(yè)必將在不斷積累軟部件并充分地利用軟部件的過(guò)程中,獲得大力發(fā)展。6.1軟件重用概述利用可重用的軟件成分開(kāi)發(fā)軟件的技術(shù),稱(chēng)為軟件重用技術(shù),它同時(shí)也指開(kāi)發(fā)可重用的軟件技術(shù)。軟件重用技術(shù)是一項(xiàng)非常重要的技術(shù),它徹底改變了軟件生產(chǎn)方式,從而在根本上提高了軟件的生產(chǎn)效率和質(zhì)量,也提高了大型軟件系統(tǒng)開(kāi)發(fā)的成功率。重用或復(fù)用是一種在開(kāi)展新工作時(shí)利用成功的舊經(jīng)驗(yàn)的常見(jiàn)活動(dòng),在軟件工程領(lǐng)域,程序員從計(jì)算萌芽時(shí)代就已開(kāi)始重用概念、對(duì)象、論據(jù)、抽象和過(guò)程。如今,隨著計(jì)算機(jī)技術(shù)的發(fā)展,要求開(kāi)發(fā)的軟件規(guī)模越來(lái)越大、越來(lái)越復(fù)雜,時(shí)間也要求越來(lái)越短,質(zhì)量也越來(lái)越高,這就需要有更有組織、更科學(xué)、更有效率的重用方法的出現(xiàn),這就是現(xiàn)代軟件的重用技術(shù)。現(xiàn)代軟件重用技術(shù)為計(jì)算機(jī)軟件的飛躍發(fā)展提供了基礎(chǔ)。1.軟件重用概念的涵義軟件重用,也稱(chēng)為軟件復(fù)用,是指軟件開(kāi)發(fā)人員利用某些已開(kāi)發(fā)的、對(duì)建立新軟件系統(tǒng)有用的軟件元素來(lái)生成新系統(tǒng)的活動(dòng)。軟件元素包括程序代碼、測(cè)試用例、設(shè)計(jì)文檔、設(shè)計(jì)過(guò)程、需求分析文檔甚至相關(guān)領(lǐng)域知識(shí)。通常,這些軟件元素對(duì)于一個(gè)新的軟件開(kāi)發(fā)項(xiàng)目而言,只是構(gòu)成整個(gè)目標(biāo)軟件系統(tǒng)的部件,或者在其中發(fā)揮某種作用,所以將其稱(chēng)為軟部件。被重用的軟件成分稱(chēng)為可重用構(gòu)件,無(wú)論對(duì)可重用構(gòu)件原封不動(dòng)地使用,還是做適當(dāng)?shù)匦薷暮笤偈褂?,只要是用它?gòu)造新軟件的,都可以看成是“重用”。2.軟件重用的層次軟件重用可分為三個(gè)層次,即知識(shí)重用、方法和標(biāo)準(zhǔn)重用、軟件成分重用。知識(shí)重用是指軟件工程知識(shí)的重用,是軟件重用的最高形式,主要包括知識(shí)工程和人工智能領(lǐng)域的知識(shí)。方法和標(biāo)準(zhǔn)重用是軟件工程方法或軟件開(kāi)發(fā)規(guī)范、標(biāo)準(zhǔn)、法律、法規(guī)等的重用,這一層次的軟件重用大多是重用其他軟件的體系結(jié)構(gòu),它能夠大大提高軟件開(kāi)發(fā)前期架設(shè)階段的工作效率。軟件成分重用是指一切可以用來(lái)構(gòu)造軟件系統(tǒng)成分的重用,包括軟件需求、設(shè)計(jì)規(guī)格、源程序代碼、模塊或其抽象結(jié)構(gòu)等。這個(gè)層次的重用是提高軟件生產(chǎn)率和軟件質(zhì)量的最有效方法。3.軟件重用的分類(lèi)軟件重用的分類(lèi)有多種方式,一般來(lái)說(shuō),主要有按重用方式分類(lèi)和按重用級(jí)別兩種分類(lèi)。(1)按重用方式分類(lèi)按重用的方式分類(lèi),軟件重用可分為組合式重用和生成式復(fù)用。①組合式重用是指對(duì)已有構(gòu)件不做修改或僅作部分修改,然后把構(gòu)件進(jìn)行組裝,從而構(gòu)造出新軟件系統(tǒng)的重用方式。例如,子程序庫(kù)技術(shù)、軟件IC技術(shù)等都屬組合式重用。②生成式重用是指在舊程序或程序段的基礎(chǔ)上,通過(guò)應(yīng)用生成器產(chǎn)生新的程序或程序段的重用方式。例如,UNIX中的詞法分析器Lex和語(yǔ)法分析器Yacc就是生成式重用。(2)按重用級(jí)別分類(lèi)按照級(jí)別重用可把軟件重用分為三類(lèi):①時(shí)間級(jí)重用:用以前的軟件作為新版本的基礎(chǔ),根據(jù)新需求,對(duì)舊軟件進(jìn)行加工改造,添加新功能。②平臺(tái)級(jí)重用:以某平臺(tái)上的軟件為基礎(chǔ),將舊軟件移植到新平臺(tái)上,使其運(yùn)行于新平臺(tái)。③應(yīng)用級(jí)重用:將舊軟件進(jìn)行大刀闊斧的修改或加工,使其能夠用于其他不同的應(yīng)用系統(tǒng),從而創(chuàng)造具有不同的功能和用途。4.可重用軟件的特點(diǎn)可重用軟件具備如下幾個(gè)方面的特點(diǎn):(1)模塊獨(dú)立性要強(qiáng)每個(gè)模塊要具有單一、完整的功能,且經(jīng)過(guò)反復(fù)測(cè)試極具可靠性和獨(dú)立性。它必須是一個(gè)不受或很少受外界干擾的內(nèi)部實(shí)現(xiàn),在外面是不可見(jiàn)的封裝體。(2)要具有高度可塑性要求一個(gè)軟構(gòu)件能滿(mǎn)足任何一個(gè)系統(tǒng)的設(shè)計(jì)需求是不現(xiàn)實(shí)的??芍赜玫能洏?gòu)件應(yīng)該具有高度可裁剪性,要能夠提供為適應(yīng)特定需求而擴(kuò)充或修改的簡(jiǎn)單、便捷的機(jī)制。(3)要接口清晰、簡(jiǎn)明、可靠軟構(gòu)件應(yīng)該具有清晰、簡(jiǎn)明、可靠的對(duì)外接口,而且還應(yīng)該有詳盡的配套文檔說(shuō)明。6.1.2
軟件重用的歷史和意義1.軟件重用的歷史(1)萌芽期1968~1978年。1968年德國(guó)的Garmish在北大西洋公約組織軟件工程會(huì)議上提出軟件重用概念。但以后的10年,軟件重用也僅僅是個(gè)概念,其研究并未取得任何實(shí)質(zhì)性的進(jìn)展。(2)發(fā)現(xiàn)期1979~1983年。1979年Lanergan在論文中提出軟件可“標(biāo)準(zhǔn)化并被重用”,使得軟件重用技術(shù)重新引起人們的關(guān)注。此后幾年,眾多軟件工程者投入到對(duì)軟件重用的研究,通過(guò)研究分析商業(yè)、金融等系統(tǒng)的軟件模塊,總結(jié)出了大量軟件重用的規(guī)律和規(guī)則,為軟件重用技術(shù)的大步發(fā)展,奠定了堅(jiān)實(shí)的理論基礎(chǔ)。(3)發(fā)展期1983~1994年。1983年,美國(guó)召開(kāi)了第一次軟件重用研討會(huì)。1991年,德國(guó)舉行了第一屆軟件重用國(guó)際研討會(huì),1993年又舉行了第二次研討會(huì)。在此期間,歐洲實(shí)施了幾個(gè)提供軟件重用的工具支持為目的的重點(diǎn)項(xiàng)目。在這個(gè)階段,軟件重用在使用上已取得重大突破,其主要的核心技術(shù)都已經(jīng)成熟。(4)成熟期1994年至今。本階段以1994年軟件重用國(guó)際研討會(huì)議改名為“軟件重用國(guó)際會(huì)議”為起始標(biāo)志。在此階段,軟件重用技術(shù)中面向?qū)ο蠹夹g(shù)異軍突起,出現(xiàn)了類(lèi)庫(kù)、構(gòu)件等新的重用方式。接著,互聯(lián)網(wǎng)的出現(xiàn)又引發(fā)了網(wǎng)上軟件類(lèi)庫(kù)的實(shí)現(xiàn)、應(yīng)用軟件的網(wǎng)上組合生產(chǎn)等問(wèn)題,大大激發(fā)了研究人員的熱情,推動(dòng)了軟件重用事業(yè)的蓬勃發(fā)展。目前,在提高軟件生產(chǎn)率與質(zhì)量,以及減少軟件開(kāi)發(fā)時(shí)間和成本的努力中,軟件重用已經(jīng)成了關(guān)鍵因素。6.1.2
軟件重用的歷史和意義2.軟件重用的意義軟件重用的目的是要使軟件開(kāi)發(fā)工作進(jìn)行得更快、更好、更省?!案臁笔侵搁_(kāi)發(fā)時(shí)間短,“更好”是指軟件運(yùn)行效率高,“更省”是指開(kāi)發(fā)和維護(hù)成本低。軟件重用可以大大減少軟件開(kāi)發(fā)所需的費(fèi)用和時(shí)間,且有利于提高軟件的可維護(hù)性和可靠性。具體地說(shuō),軟件重用的意義主要表現(xiàn)在三個(gè)方面:可以縮短開(kāi)發(fā)的時(shí)間、人力、物力、費(fèi)用,能夠提高軟件的生產(chǎn)效率,大大降低開(kāi)發(fā)成本。由于可重用構(gòu)件大都經(jīng)過(guò)嚴(yán)格的質(zhì)量驗(yàn)證,并在實(shí)際運(yùn)行環(huán)境中得到檢驗(yàn)。因此有助于改善軟件質(zhì)量,提高軟件的可靠性。大量使用可重用構(gòu)件,能夠大幅地提高軟件的靈活性和標(biāo)準(zhǔn)化程度。6.1.3
軟件重用機(jī)會(huì)的識(shí)別1.在分析時(shí)對(duì)可重用機(jī)會(huì)的識(shí)別2.在設(shè)計(jì)時(shí)對(duì)可重用機(jī)會(huì)的識(shí)別3.在實(shí)現(xiàn)時(shí)對(duì)可重用機(jī)會(huì)的識(shí)別6.2域工程域工程是識(shí)別和創(chuàng)建一組面向域的可重用構(gòu)件的過(guò)程,是新軟件開(kāi)發(fā)的基礎(chǔ)。域工程影響著一個(gè)或一組系統(tǒng)譜系的可了解性、可使用性和可重用性。域工程的最終成果是為所分析的域開(kāi)發(fā)域模型和通用體系結(jié)構(gòu),并基于模型和通用體系結(jié)構(gòu)識(shí)別可重用構(gòu)件。6.2.1
域工程的概念與特征1.域與域工程概念的涵義域是由一組具有類(lèi)似用戶(hù)需求的相關(guān)系統(tǒng)所組成的系統(tǒng)集,它展示了現(xiàn)有各系統(tǒng)的共性、個(gè)性和可重用資源,并為開(kāi)發(fā)相似系統(tǒng)提供了可參照的模型。域工程則是一組相似或相近系統(tǒng)應(yīng)用工程建立基本能力和必備基礎(chǔ)的過(guò)程,它包括了建立可重用軟件構(gòu)件的全部活動(dòng)。一個(gè)軟件域就是共享通用的、可控制功能的一組系統(tǒng)或應(yīng)用程序。6.2.1
域工程的概念與特征2.域特征在新軟件的設(shè)計(jì)過(guò)程中,有時(shí)候很難確定一個(gè)可重用軟件構(gòu)件在某種特定情況下是否確實(shí)可用。為了解決這個(gè)難題,就必須定義一組可以被論域中所有軟件共享的域特征。域特征定義了被論域中的所有產(chǎn)品的類(lèi)屬屬性??蓮?fù)用軟件的域特征的集合可用{Dp},集合中的每一項(xiàng)Dpi都表示某特定的域特征,賦給Dpi的值表示一個(gè)順序的等級(jí),它可分為5個(gè)等級(jí),分別表明了該特征對(duì)軟件制品P的相關(guān)性,如下:與新軟件沒(méi)有任何相關(guān)性。在一些不尋常的情況下相關(guān)。相關(guān)。軟件制品可以被修改以使其可以被重用。顯著相關(guān):若新軟件不具有此特征,則重用是低效的,但復(fù)用仍有可能。明顯地相關(guān):并且如果新軟件不具備這個(gè)特征,重用將是無(wú)效的,此時(shí)不推薦復(fù)用。如果想在某應(yīng)用域中創(chuàng)造一個(gè)新軟件w,則可為它導(dǎo)出一組域特征。然后在Dwi與Dpi之間進(jìn)行比較,以決定既存的軟件構(gòu)件P是否可以在新軟件w中復(fù)用。以及,其相關(guān)性的如何。3.域語(yǔ)言域語(yǔ)言是用于描述域特征、域?qū)ο?、域操作及其關(guān)系的語(yǔ)言,其用途主要是為了更好地確定重用對(duì)象。域語(yǔ)言提供了在域中進(jìn)行針對(duì)應(yīng)用的規(guī)格說(shuō)明構(gòu)造的手段。下面是一個(gè)檢查的項(xiàng)目清單:哪些軟件要素可以成為可重用構(gòu)件?構(gòu)件的功能在目標(biāo)系統(tǒng)實(shí)現(xiàn)中有什么作用?構(gòu)件功能的通用性是否強(qiáng)大?軟構(gòu)件是否必須依賴(lài)于具體硬件?在不同的軟件系統(tǒng)中,硬件可否保持不變?對(duì)硬件的細(xì)節(jié)要求能否在另一個(gè)構(gòu)件中?用戶(hù)能否將一個(gè)不可復(fù)用的構(gòu)件修改成為可復(fù)用構(gòu)件?構(gòu)件是否經(jīng)過(guò)少量修改就能夠?qū)崿F(xiàn)復(fù)用?能夠通過(guò)修改軟件要素實(shí)現(xiàn)復(fù)用嗎?一個(gè)不可復(fù)用構(gòu)件可否分解成一組可復(fù)用構(gòu)件?分解復(fù)用構(gòu)件執(zhí)行到什么程度最合適?6.2.2
域工程的目的、內(nèi)容與步驟
(1)域工程的目的域工程的目的是標(biāo)識(shí)、構(gòu)造、分類(lèi)和傳播一組軟件要素。從軟件工程的觀點(diǎn)來(lái)看,域就是向應(yīng)用軟件提供所需的問(wèn)題和背景知識(shí)。域工程的主要任務(wù)就是針對(duì)相似的域,以軟件復(fù)用為目標(biāo),探尋域或域族中能夠被其他軟件系統(tǒng)共用的軟件要素,并對(duì)它們進(jìn)行結(jié)構(gòu)化組織,并將其放入可復(fù)用構(gòu)件庫(kù),以備以后復(fù)用。(2)域工程的內(nèi)容域工程的三個(gè)內(nèi)容:域分析、通用體系結(jié)構(gòu)的開(kāi)發(fā)或域設(shè)計(jì)和域?qū)崿F(xiàn)。域工程是以域分析為出發(fā)點(diǎn)的。域分析產(chǎn)品包括域定義和域模型。2.域工程的步驟
域工程的實(shí)施步驟如下:①域分析。首先要收集域中典型性、代表性的應(yīng)用樣本,分析域中的公共部分或相似部分,抽取該域的抽象體系和結(jié)構(gòu)。②建立域特定的結(jié)構(gòu)模型。在域分析的基礎(chǔ)上,構(gòu)造該域的體系結(jié)構(gòu)。③標(biāo)識(shí)可供選構(gòu)件。在域分析和域結(jié)構(gòu)模型的基礎(chǔ)上標(biāo)識(shí)該域的可供選構(gòu)件。④分析構(gòu)件泛化和可變性。使可供選構(gòu)件泛化能被廣泛重用,提高其通用性。同時(shí)應(yīng)尋找可供選構(gòu)件在不同應(yīng)用中的變化點(diǎn),通過(guò)手段使可變部分局部化。⑤構(gòu)件重構(gòu)。在泛化和可變性分析的基礎(chǔ)上,對(duì)構(gòu)件進(jìn)行重構(gòu),使它成為具有較高通用性的可重用構(gòu)件。⑥構(gòu)件的測(cè)試。嚴(yán)格測(cè)試重構(gòu)的可重用構(gòu)件,及時(shí)處理測(cè)出來(lái)的問(wèn)題,以提高其可靠性。⑦構(gòu)件的包裝。根據(jù)構(gòu)件庫(kù)的要求,對(duì)經(jīng)測(cè)試過(guò)的構(gòu)件進(jìn)行包裝處理,構(gòu)件庫(kù)對(duì)該構(gòu)件分類(lèi)儲(chǔ)存和檢索做好準(zhǔn)備。⑧構(gòu)件入庫(kù)。包裝后的構(gòu)件便可以存入構(gòu)件庫(kù),以備以后提取使用。1.域分析概念的涵義20世紀(jì)80年代初,美國(guó)軟件專(zhuān)家JamesNeighbors提出了“域分析”這一概念,他認(rèn)為“域分析標(biāo)識(shí)一個(gè)特定問(wèn)題域中一類(lèi)相似系統(tǒng)的對(duì)象和操作的活動(dòng)”。域分析是發(fā)現(xiàn)和記錄某個(gè)領(lǐng)域共性和差異的過(guò)程,它是軟件系統(tǒng)化、形式化和有效重用的關(guān)鍵。在基于域工程的軟件開(kāi)發(fā)中,同一域中的系統(tǒng)需求和功能必然具有明顯的共性,域模型就描述不同軟件之間的共性。域分析的主要任務(wù)是以軟件重用為目標(biāo),針對(duì)單個(gè)或一族相似的域,尋找域族中能夠?yàn)槎鄠€(gè)目標(biāo)重用的軟部件,并經(jīng)結(jié)構(gòu)化組織后放入部件庫(kù)中。在域工程中,開(kāi)發(fā)人員的基本任務(wù)是對(duì)一個(gè)域中的所有系統(tǒng)進(jìn)行處理,而不是局限于個(gè)別系統(tǒng)。此外,域分析與需求分析有許多相似之處:都是基于應(yīng)用領(lǐng)域的開(kāi)發(fā)活動(dòng),要用域模型來(lái)描述。但是,域分析應(yīng)具有更廣闊的視角,因?yàn)樗粌H要服務(wù)于當(dāng)前的項(xiàng)目,還要服務(wù)于將來(lái)的項(xiàng)目。2.域分析方法域分析方法是指在一組相關(guān)或相似的系統(tǒng)中系統(tǒng)全面地尋找公共特性的方法。域分析方法主要用于標(biāo)識(shí)重用構(gòu)件,同時(shí)還為相關(guān)系統(tǒng)標(biāo)識(shí)和建模所形成的問(wèn)題空間,開(kāi)發(fā)類(lèi)屬需求以揭示領(lǐng)域內(nèi)將來(lái)出現(xiàn)的問(wèn)題,并確保在各種發(fā)生變化的情況下,仍能維持域內(nèi)各應(yīng)用系統(tǒng)的基本能力。常用的域分析方法有如下幾種:(1)FODA法FODA法是基于標(biāo)識(shí)系統(tǒng)類(lèi)中有特色的域分析方法。FODA法強(qiáng)調(diào)對(duì)域內(nèi)軟件系統(tǒng)的主要的或個(gè)性特征的標(biāo)識(shí)。所以,這種分析方法能夠充分體現(xiàn)用戶(hù)所希望的、滿(mǎn)足應(yīng)用需求的功能和體系結(jié)構(gòu)。FODA法也支持功能和體系結(jié)構(gòu)層上的重用。FODA法包括三個(gè)基本階段,即場(chǎng)景分析、域模型和體系結(jié)構(gòu)模型。(2)JODA法JODA法是對(duì)稱(chēng)連接的面向?qū)ο笥蚍治龇椒?。JODA法的主要思想:運(yùn)用面向?qū)ο蠓治黾夹g(shù)來(lái)獲取域模型中的信息,并定義域模型來(lái)產(chǎn)生可重用軟件對(duì)象及可重用需求。JODA法的使用過(guò)程也可分為3個(gè)階段:準(zhǔn)備域、定義域和模型化域。(3)DADP法DADP法比較注重軟件的重用過(guò)程,并依賴(lài)于特定的域分析和域設(shè)計(jì)。它通過(guò)各個(gè)系統(tǒng)工程來(lái)描述一個(gè)問(wèn)題空間及其條件,然后反復(fù)運(yùn)用軟件工程、硬件工程、人員工程來(lái)尋求問(wèn)題空間的解。DADP法還遵循面向?qū)ο蟮姆椒ǎ褂米皂斚蛳潞妥缘紫蛏系慕M合方式來(lái)標(biāo)識(shí)最大程度地軟構(gòu)件的重用潛力。DADP法的基本策略:標(biāo)識(shí)、獲取、組織、抽象和表示一個(gè)特定領(lǐng)域內(nèi)的共性和差異。DADP法是由標(biāo)識(shí)域、界定域、分析域、設(shè)計(jì)域四個(gè)階段組成。3.域分析過(guò)程域分析的過(guò)程一般如下:定義將要研究或分析的域。對(duì)從域中抽取出來(lái)的項(xiàng)進(jìn)行歸納和分類(lèi)。收集域中具有典型性和代表性的樣本。分析樣本中的每一個(gè)應(yīng)用。開(kāi)發(fā)對(duì)象的分析模型。6.2.4
域建模和實(shí)現(xiàn)1.域建模(1)域建模的階段域建模需要經(jīng)過(guò)兩個(gè)階段:①特征分析階段。本階段的主要任務(wù)是要獲得客戶(hù)對(duì)一類(lèi)系統(tǒng)特征的理解,這需要有效地與用戶(hù)進(jìn)行信息交互和了解,才能為系統(tǒng)的復(fù)用和改造打下良好基礎(chǔ)。②信息分析階段。在信息分析階段,要定義和分析域中應(yīng)用所需的域知識(shí)和數(shù)據(jù)需求,其目標(biāo)是用域?qū)嶓w及其相互之間的關(guān)系表示域特征,并使它們?cè)诓僮鞣治龊蜆?gòu)架建模中可以用來(lái)派生對(duì)象和數(shù)據(jù)定義,為軟件重用打下基礎(chǔ)。6.2.4
域建模和實(shí)現(xiàn)(2)域結(jié)構(gòu)建模結(jié)構(gòu)建模是一種基于模式的論域工程方法。結(jié)構(gòu)模型由基本的結(jié)構(gòu)元素構(gòu)成,用這些結(jié)構(gòu)元素可明確地表示交互的模式。使用結(jié)構(gòu)模型的系統(tǒng)體系結(jié)構(gòu)需要通過(guò)基本模型元素的合成來(lái)顯示特征化。每個(gè)應(yīng)用論域都可用一個(gè)結(jié)構(gòu)模型來(lái)顯示特征化。因此,結(jié)構(gòu)模型是一種跨越該域所有應(yīng)用的可復(fù)用的體系結(jié)構(gòu)。結(jié)構(gòu)點(diǎn)是結(jié)構(gòu)模型中不同的構(gòu)成成分,用于描述系統(tǒng)體系結(jié)構(gòu)中的模式。它有3個(gè)特征:一個(gè)結(jié)構(gòu)點(diǎn)是一個(gè)抽象,以及擁有有限數(shù)量的實(shí)例。指導(dǎo)結(jié)構(gòu)點(diǎn)的使用的規(guī)則能很容易地被理解。結(jié)構(gòu)點(diǎn)能通過(guò)隱藏內(nèi)部住處的復(fù)雜性而實(shí)現(xiàn)隱藏。建立了域模型之后,就可以派生出滿(mǎn)足這些被建模域需求的領(lǐng)域架構(gòu),同時(shí)將定義在域模型中的特征、功能和數(shù)據(jù)對(duì)象分配到進(jìn)程和模塊中。2.域?qū)崿F(xiàn)域?qū)崿F(xiàn)是以域分析模型和域領(lǐng)域架構(gòu)為基礎(chǔ)的,其作用是識(shí)別、開(kāi)發(fā)和組織域中的構(gòu)架和構(gòu)件等可重用資源。當(dāng)需要開(kāi)發(fā)同一域中的新軟件時(shí),可以根據(jù)域分析模型,確定新軟件的需求規(guī)約,根據(jù)特定域的軟件構(gòu)架形成新需要的設(shè)計(jì),并據(jù)此選擇可重用構(gòu)件進(jìn)行組裝,從而形成新的軟件系統(tǒng)。6.3構(gòu)件庫(kù)的開(kāi)發(fā)構(gòu)件庫(kù)是一種高效的軟件資產(chǎn),是高級(jí)別重用所需的基礎(chǔ)。構(gòu)件庫(kù)是由構(gòu)件及其關(guān)系組成的,是一種組織、收集、訪(fǎng)問(wèn)與管理構(gòu)件的手段和工具。構(gòu)件庫(kù)一般由如下4個(gè)部分組成:域范圍:描述構(gòu)件所應(yīng)用的領(lǐng)域。構(gòu)件索引:滿(mǎn)足一定要求的構(gòu)件信息。構(gòu)件規(guī)格說(shuō)明:包括構(gòu)件的功能描述和接口信息,便于對(duì)構(gòu)件的查詢(xún)等操作。構(gòu)件實(shí)體:構(gòu)件的內(nèi)容存儲(chǔ)在文件中。6.3.1
可重用構(gòu)件的開(kāi)發(fā)1.構(gòu)件的涵義和要素(1)構(gòu)件的涵義《計(jì)算機(jī)科學(xué)技術(shù)百科全書(shū)》中對(duì)“構(gòu)件”涵義的表述:軟件系統(tǒng)中具有相對(duì)獨(dú)立功能,可以明確標(biāo)識(shí),接口由規(guī)約指定,與語(yǔ)境有明顯依賴(lài)關(guān)系,可獨(dú)立部署,且多由第三方提供的可組裝軟件實(shí)體。軟件構(gòu)件須承載有用的功能,并遵循某種構(gòu)件模型,可重用構(gòu)件是指具有可重用價(jià)值的構(gòu)件。(2)構(gòu)件的要素構(gòu)件應(yīng)具有如下5個(gè)要素:①規(guī)格說(shuō)明:是關(guān)于構(gòu)件服務(wù)的抽象描述,是服務(wù)提供方與客戶(hù)方之間的契約。一般包括定義可用的操作、特殊情況下構(gòu)件的行為、約束條件、客戶(hù)與構(gòu)件的交互等內(nèi)容。②一個(gè)或多個(gè)實(shí)現(xiàn):在構(gòu)件符合規(guī)格說(shuō)明,且有一個(gè)或多個(gè)實(shí)現(xiàn)的時(shí)候,可以選擇任何一種合適的方法,但必須確保其實(shí)現(xiàn)符合規(guī)格說(shuō)明。③受約束的構(gòu)件標(biāo)準(zhǔn):由于構(gòu)件實(shí)現(xiàn)的程序語(yǔ)言、運(yùn)行環(huán)境等都可能不同,所以構(gòu)件必須具有統(tǒng)一的標(biāo)準(zhǔn),這樣才能支持異構(gòu)構(gòu)件間的實(shí)現(xiàn)。常用的構(gòu)件標(biāo)準(zhǔn)有COM/DCOM、CORBA等。④包裝方法。構(gòu)件可以按不同的方式分組,以這些分組為基本單位,來(lái)進(jìn)行可替換操作。不同的分組代表系統(tǒng)中的不同功能單元。⑤部署方法。一個(gè)成品構(gòu)件在運(yùn)行環(huán)境中,可以部署多個(gè)可執(zhí)行實(shí)例,而每一個(gè)實(shí)例都是獨(dú)立的,并在自己的進(jìn)程或線(xiàn)程中執(zhí)行,也可以和實(shí)例進(jìn)行交互,從而實(shí)現(xiàn)部署。2.可重用構(gòu)件的要求(1)具有較高通用性構(gòu)件的可重用性使用率越高,說(shuō)明可重用度越高,因此構(gòu)件必須盡可能地一般化,這樣才能為更多的軟件開(kāi)發(fā)所重用。因此,建造構(gòu)件時(shí),應(yīng)盡量使構(gòu)件泛化,提高其通用性。(2)構(gòu)件應(yīng)易于定制構(gòu)件還應(yīng)該具有可變性,因?yàn)樵谑褂脮r(shí)構(gòu)件是運(yùn)用在一個(gè)具體的開(kāi)發(fā)環(huán)境中,構(gòu)件的某些部分可能要修改,使原本泛化的構(gòu)件特化。因此在建造構(gòu)件時(shí),應(yīng)該提供構(gòu)件的特化和調(diào)整機(jī)制,以使其能夠適應(yīng)特定應(yīng)用的需要。(3)構(gòu)件應(yīng)易于組裝為了使構(gòu)件易于組裝,構(gòu)件應(yīng)具有良好的封裝性和良好的定義接口,構(gòu)件間應(yīng)具有松散的耦合度,同時(shí)還應(yīng)提供便于組裝的機(jī)制。(4)具有可檢索性構(gòu)件必須具有合適的描述機(jī)制,以便開(kāi)發(fā)人員能從構(gòu)件庫(kù)中檢索到所需的構(gòu)件。顯然,如果構(gòu)件沒(méi)有很好的可檢索性,那么被重用的概率將會(huì)很低。(5)必須經(jīng)過(guò)充分的測(cè)試構(gòu)件在入庫(kù)前必須經(jīng)過(guò)充分的測(cè)試,盡可能多地發(fā)現(xiàn)并糾正構(gòu)件中的缺陷。在重用過(guò)程中,當(dāng)發(fā)現(xiàn)構(gòu)件中潛在的缺陷時(shí),要及時(shí)更正,以使構(gòu)件中的缺陷數(shù)降到最低。3.需求及設(shè)計(jì)級(jí)構(gòu)件及代碼級(jí)構(gòu)件
域分析為構(gòu)件的選取提供了標(biāo)準(zhǔn),如果根據(jù)標(biāo)準(zhǔn)確定了某些軟件元素需要加入構(gòu)件庫(kù),開(kāi)發(fā)人員就必須構(gòu)造它們。在實(shí)際構(gòu)造它們的時(shí)候,要考慮到它們的特殊性,即如何使構(gòu)件更通用,更易于組裝,以及在新環(huán)境下如何更好地運(yùn)行。代碼級(jí)復(fù)用是最簡(jiǎn)單,也是用得最多的方法,它包括代碼構(gòu)件、論域知識(shí)、需求分析文檔、設(shè)計(jì)文檔、測(cè)試方案、測(cè)試用例等內(nèi)容。(1)需求級(jí)與設(shè)計(jì)級(jí)的構(gòu)件需求級(jí)構(gòu)件包括應(yīng)用領(lǐng)域的問(wèn)題描述、有關(guān)的域知識(shí)以及相應(yīng)的需求規(guī)格說(shuō)明。問(wèn)題描述和域知識(shí)說(shuō)明均要用域語(yǔ)言表示,必要時(shí)可以使用結(jié)構(gòu)化的自然語(yǔ)言。設(shè)計(jì)級(jí)構(gòu)件包括設(shè)計(jì)規(guī)格說(shuō)明、設(shè)計(jì)決策描述以及相應(yīng)的設(shè)計(jì)文檔。設(shè)計(jì)構(gòu)件同需求級(jí)構(gòu)件結(jié)合使用,使重用構(gòu)件時(shí)可以獲得部件的整個(gè)配置,既方便對(duì)構(gòu)件的理解,又簡(jiǎn)化構(gòu)件的組裝過(guò)程。需求級(jí)與設(shè)計(jì)級(jí)軟構(gòu)件的開(kāi)發(fā)必須遵循以下兩項(xiàng)原則:將構(gòu)件應(yīng)用的上下文與構(gòu)件嚴(yán)格分離。利用抽象化、參數(shù)化等方法提取公共性,增強(qiáng)構(gòu)件適應(yīng)不同應(yīng)用項(xiàng)目的能力。需求級(jí)、設(shè)計(jì)級(jí)與代碼級(jí)構(gòu)件相結(jié)合,有助于代碼級(jí)構(gòu)件的提取和理解。借助較高抽象級(jí)別的構(gòu)件能夠提高重用效能,因?yàn)檫@樣不僅可以重用代碼,還可以重用需求模型和設(shè)計(jì)方案。(2)代碼級(jí)構(gòu)件代碼級(jí)重用是目前研究最深入、應(yīng)用最廣泛的重用技術(shù)之一。代碼級(jí)軟件構(gòu)件不僅應(yīng)包含通常的程序代碼段,還應(yīng)輔以相應(yīng)的注釋和上下文說(shuō)明。這些輔助可以用結(jié)構(gòu)化語(yǔ)言或其他標(biāo)識(shí)機(jī)制描述,但最好以相應(yīng)的需求級(jí)或設(shè)計(jì)級(jí)軟件構(gòu)件的形式出現(xiàn)。開(kāi)發(fā)代碼級(jí)軟件構(gòu)件與程序設(shè)計(jì)活動(dòng)的區(qū)別:軟件開(kāi)發(fā)人員需要挖掘公共特征,分離構(gòu)件的應(yīng)用上下文、功能和行為,以提高其可重用性,具體有如下3種:①功能抽象。構(gòu)件的功能應(yīng)以接口的形式給出,避免由于構(gòu)件實(shí)現(xiàn)的改變而影響所有構(gòu)件的使用者。②數(shù)據(jù)抽象。隱藏?cái)?shù)據(jù)接口之外的所有數(shù)據(jù)。在使用構(gòu)件的功能時(shí),通常要給構(gòu)件功能傳遞適當(dāng)?shù)膮?shù),這些參數(shù)就是構(gòu)件的數(shù)據(jù)接口。③過(guò)程抽象。為多用戶(hù)、多線(xiàn)程并行訪(fǎng)問(wèn)構(gòu)件提供線(xiàn)程的可重入性。在構(gòu)件中建立請(qǐng)求隊(duì)列,用以對(duì)用戶(hù)的服務(wù)請(qǐng)求進(jìn)行排隊(duì),構(gòu)件在正常情況下,對(duì)請(qǐng)求進(jìn)行順序的處理或執(zhí)行。無(wú)論線(xiàn)程各動(dòng)作序列的相對(duì)關(guān)系如何變化,構(gòu)件在設(shè)計(jì)時(shí)都必須保證構(gòu)件界面元素的功能和行為在語(yǔ)義上的正確性。4.可重用構(gòu)件的
構(gòu)造原則和質(zhì)量標(biāo)準(zhǔn)(1)可重用構(gòu)件的構(gòu)件原則軟件構(gòu)件的開(kāi)發(fā),必須遵循如下程序設(shè)計(jì)原則:①顯式建立構(gòu)件的外部接口,保證接口在語(yǔ)義和語(yǔ)法上的清晰。如構(gòu)件有一個(gè)“獲得客戶(hù)信息”的接口,那么這個(gè)接口要真正返回客戶(hù)的基本信息。這就是語(yǔ)義上的清晰。②除參數(shù)外,接口中的成分不應(yīng)與外部環(huán)境相關(guān),即構(gòu)件與使用者之間的耦合只通過(guò)構(gòu)件數(shù)據(jù)接口實(shí)現(xiàn)。③構(gòu)件的功能應(yīng)與構(gòu)件的實(shí)現(xiàn)細(xì)節(jié)隔離,以便支持調(diào)用者和構(gòu)件的獨(dú)立改變。④構(gòu)件接口的定義、功能及使用方式應(yīng)遵循域分析時(shí)所確立的標(biāo)準(zhǔn)。(2)可復(fù)用構(gòu)件的質(zhì)量保證由于軟件構(gòu)件將在多種硬件和軟件環(huán)境下運(yùn)行,因此除采用一般軟件工程的質(zhì)量保證措施之外,還要針對(duì)可重用構(gòu)件的特征進(jìn)行特殊的質(zhì)量保證。構(gòu)件的質(zhì)量控制應(yīng)遵循如下的原則:①測(cè)試充分。由于構(gòu)件的應(yīng)用環(huán)境復(fù)雜多樣,所以對(duì)構(gòu)件的充分測(cè)試十分必要。②設(shè)計(jì)構(gòu)件時(shí)應(yīng)充分考慮構(gòu)件的可移植性以及構(gòu)件對(duì)不同運(yùn)行環(huán)境的適應(yīng)性。如果構(gòu)件的移植性和適應(yīng)性差,那么構(gòu)件的重用性就會(huì)比較差。③抽象環(huán)境相關(guān)的因素為構(gòu)件的參數(shù)。這樣就可以在使用構(gòu)件的時(shí)候進(jìn)行適當(dāng)?shù)膮?shù)化,擴(kuò)大重用的范圍。6.4面向?qū)ο蟮能浖赜?.4.1
類(lèi)構(gòu)件的重用方式面向?qū)ο蠓椒ㄖ械念?lèi)和對(duì)象是較為理想的可重用構(gòu)件,被稱(chēng)為類(lèi)構(gòu)件。類(lèi)構(gòu)件有三種重用方式:實(shí)例重用、繼承重用、多態(tài)重用。1.實(shí)例重用實(shí)例重用是最基本的重用方式。因?yàn)轭?lèi)具用封裝性,使用者無(wú)須了解其運(yùn)作細(xì)節(jié),就可以使用適當(dāng)?shù)臉?gòu)造函數(shù),按照需要?jiǎng)?chuàng)建類(lèi)的實(shí)例。然后向所創(chuàng)建的實(shí)例發(fā)送指令或消息,啟動(dòng)相應(yīng)服務(wù),完成需要的工作。此外,用幾個(gè)簡(jiǎn)單的對(duì)象作為類(lèi)的成員,創(chuàng)建出一個(gè)更復(fù)雜的類(lèi),也是實(shí)例重用的一種形式。2.繼承重用繼承重用的關(guān)鍵在于組織合理的、具有一定深度的類(lèi)構(gòu)件等級(jí)。當(dāng)現(xiàn)有的類(lèi)構(gòu)件不能完全滿(mǎn)足當(dāng)前系統(tǒng)需求時(shí),通過(guò)繼承重用機(jī)制可修改已有的類(lèi)構(gòu)件,進(jìn)行定制,形成特殊類(lèi)來(lái)滿(mǎn)足特定需要。類(lèi)的繼承性允許子類(lèi)在繼承父類(lèi)的屬性和方法的基礎(chǔ)上添入新的屬性和方法。這樣,不僅可以對(duì)類(lèi)進(jìn)行擴(kuò)充、修改,而且能夠降低每個(gè)類(lèi)模塊接口的復(fù)雜度,使子類(lèi)的可理解性得到提高。3.多態(tài)重用充分利用構(gòu)件的多態(tài)性,使對(duì)象的對(duì)外接口更加一般化,降低消息連接的復(fù)雜程度,形成更加簡(jiǎn)便可靠的軟構(gòu)件組合機(jī)制。系統(tǒng)運(yùn)行時(shí),會(huì)根據(jù)接收消息的對(duì)象類(lèi)型,由多態(tài)性機(jī)制去響應(yīng)輸入一般化的消息,從而簡(jiǎn)化消息界面和軟構(gòu)件連接過(guò)程。1.類(lèi)庫(kù)的構(gòu)造類(lèi)庫(kù)是將面向?qū)ο蟮目芍赜脴?gòu)件庫(kù),亦稱(chēng)為可重用類(lèi)庫(kù)??芍赜没?lèi)的建立取決于域分析階段對(duì)當(dāng)前應(yīng)用中有一般適用性的對(duì)象和類(lèi)的標(biāo)識(shí)。類(lèi)庫(kù)的組織一般采用類(lèi)的繼承層次結(jié)構(gòu)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)除草劑市場(chǎng)運(yùn)營(yíng)狀況發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)鋯英砂行業(yè)供需現(xiàn)狀及投資發(fā)展規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)連接器制造市場(chǎng)發(fā)展動(dòng)態(tài)及前景趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)輪滑鞋行業(yè)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)血漿增容劑行業(yè)運(yùn)行動(dòng)態(tài)與發(fā)展風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2025-2030年中國(guó)葵花油市場(chǎng)運(yùn)行態(tài)勢(shì)及發(fā)展盈利分析報(bào)告
- 2025-2030年中國(guó)藝術(shù)玻璃行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)管道檢測(cè)行業(yè)供需現(xiàn)狀及投資發(fā)展規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)空冷器市場(chǎng)運(yùn)行現(xiàn)狀及發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)種衣劑市場(chǎng)運(yùn)營(yíng)狀況及發(fā)展趨勢(shì)研究報(bào)告
- 《籃球規(guī)則》課件
- 中醫(yī)24節(jié)氣課件
- 《化工安全技術(shù)》教學(xué)設(shè)計(jì)(教學(xué)教案)
- 環(huán)衛(wèi)應(yīng)急預(yù)案8篇
- 《與顧客溝通的技巧》課件
- DB14-T2980-2024低品位鋁土礦資源綜合利用技術(shù)規(guī)范
- 2024小學(xué)語(yǔ)文新教材培訓(xùn):一年級(jí)語(yǔ)文教材的修訂思路和主要變化
- 上消化道異物的內(nèi)鏡處理
- 健康教育學(xué)全套課件完整版
- 2024年遼寧省中考語(yǔ)文真題含解析
- 農(nóng)產(chǎn)品食品檢驗(yàn)員二級(jí)技師技能理論考試題含答案
評(píng)論
0/150
提交評(píng)論