久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

      <small id="aebxz"><menu id="aebxz"></menu></small>
    1. 計(jì)算機(jī)軟件開(kāi)發(fā)的進(jìn)展研究論文

      時(shí)間:2022-07-04 09:17:15 計(jì)算機(jī)軟件 我要投稿
      • 相關(guān)推薦

      計(jì)算機(jī)軟件開(kāi)發(fā)的進(jìn)展研究論文

        1引言

      計(jì)算機(jī)軟件開(kāi)發(fā)的進(jìn)展研究論文

        當(dāng)前,計(jì)算機(jī)技術(shù)的迅速更新、軟件處理對(duì)象如企業(yè)業(yè)務(wù)過(guò)程的不斷變化以及軟件開(kāi)發(fā)競(jìng)爭(zhēng)的日趨激烈已經(jīng)使傳統(tǒng)的從源代碼級(jí)開(kāi)發(fā)軟件系統(tǒng)的方法面臨越來(lái)越大的挑戰(zhàn)。利用傳統(tǒng)開(kāi)發(fā)方法開(kāi)發(fā)的大多數(shù)系統(tǒng)所使用的是在開(kāi)發(fā)初始時(shí)所能得到的技術(shù),面向的是當(dāng)時(shí)所需處理的問(wèn)題,要使這些軟件系統(tǒng)適應(yīng)處理對(duì)象如業(yè)務(wù)過(guò)程的變化以及計(jì)算機(jī)技術(shù)的進(jìn)步是一件非常復(fù)雜的工作,往往必須對(duì)原有系統(tǒng)在代碼上進(jìn)行重大修改,這種修改代價(jià)較高并且也有一定的風(fēng)險(xiǎn),從而造成軟件的可擴(kuò)充性Scalabiltiy)較差。在開(kāi)發(fā)過(guò)程中,為減少軟件開(kāi)發(fā)費(fèi)用、縮短軟件開(kāi)發(fā)周期,保持開(kāi)發(fā)者的技術(shù)水平變得越來(lái)越重要,因?yàn)橹挥羞@樣才能達(dá)到一個(gè)較高的開(kāi)發(fā)效率,使得項(xiàng)目按時(shí)完成。而在傳統(tǒng)的開(kāi)發(fā)方法中,由于開(kāi)發(fā)不同的軟件時(shí)常需要不同的開(kāi)發(fā)工具,這使得開(kāi)發(fā)者必須不斷學(xué)習(xí)新的開(kāi)發(fā)工具,原有的技巧以及已具備的經(jīng)驗(yàn)難以被再次利用。當(dāng)今的軟件開(kāi)發(fā)經(jīng)常需要利用現(xiàn)有成果,開(kāi)發(fā)時(shí)可能要集成不同的系統(tǒng)、新的應(yīng)用、標(biāo)準(zhǔn)的軟件包以及已在業(yè)務(wù)開(kāi)展中使用了的與任務(wù)有關(guān)的現(xiàn)有數(shù)據(jù)與系統(tǒng),通過(guò)集成可以減少不必要的工作量,提高軟件的可用性,加快開(kāi)發(fā)進(jìn)度。但是傳統(tǒng)的代碼開(kāi)發(fā)方法主要著眼于從無(wú)到有的構(gòu)造,對(duì)軟件集成Integration)的支持不夠,大量的開(kāi)發(fā)時(shí)間被投入到底層編程中,這種編程不僅耗時(shí)而且可能是重復(fù)勞動(dòng),從長(zhǎng)遠(yuǎn)看還會(huì)造成代碼難于維護(hù)。

        隨著軟件構(gòu)件技術(shù)的成熟,大量的構(gòu)件作為現(xiàn)成的商品在軟件市場(chǎng)出現(xiàn),基于構(gòu)件的軟件開(kāi)發(fā)CBSD:Component-basedSoftwareDevelopment)也作為一種新的工業(yè)化的軟件開(kāi)發(fā)方法被提了出來(lái)。該方法是對(duì)以前傳統(tǒng)開(kāi)發(fā)方法的一種改變,它使得軟件開(kāi)發(fā)從代碼開(kāi)發(fā)轉(zhuǎn)移到對(duì)已測(cè)試、已使用的,并且在內(nèi)部互操作的構(gòu)件的集成是軟件重用的一種實(shí)例。通過(guò)加強(qiáng)系統(tǒng)的靈活性以及可維護(hù)性,CBSD可以被用來(lái)減少軟件的開(kāi)發(fā)費(fèi)用、快速的集成系統(tǒng)以及減少與支持升級(jí)大型系統(tǒng)相關(guān)的維護(hù)費(fèi)用,從而使軟件開(kāi)發(fā)者處于有利的競(jìng)爭(zhēng)地位。該方法的基礎(chǔ)是基于這樣的假設(shè):大型軟件系統(tǒng)的某些部分會(huì)不斷重現(xiàn);系統(tǒng)的公用部分應(yīng)當(dāng)編寫一次而不是多次;公共系統(tǒng)應(yīng)通過(guò)重用被集成而不是一而再,再而三的重寫,它體現(xiàn)了FredBrooks所支持的購(gòu)買而不構(gòu)造”的開(kāi)發(fā)思想。在CBSD中的構(gòu)件主要是指可以通過(guò)商業(yè)手段獲取的構(gòu)件CommercialOff-the-shellComponent),主要是遵循已有的C0M/DC0M、C0GBA以及JAVABEALS構(gòu)件標(biāo)準(zhǔn)的構(gòu)件、開(kāi)發(fā)者可以加以剪裁的應(yīng)用框架以及已被其他應(yīng)用集成或擴(kuò)展的獨(dú)立軟件系統(tǒng)。當(dāng)今世界上許多研宄機(jī)構(gòu)如美國(guó)的卡耐基梅隆大學(xué)、加拿大的國(guó)立研宄委員會(huì)NationalResearchCouncil)都在積極對(duì)CBSD展開(kāi)研究,該文將對(duì)這一領(lǐng)域的研究成果、進(jìn)展加以綜述。

        2CBSD的主要活動(dòng)

        CBSD的開(kāi)展主要是通過(guò)集成已存在的構(gòu)件來(lái)進(jìn)行的,這與傳統(tǒng)的開(kāi)發(fā)方法有著明顯的不同,在后者中,系統(tǒng)集成通常是實(shí)現(xiàn)工作的結(jié)束部分,而在CBSD中,構(gòu)件集成是構(gòu)造系統(tǒng)的核心內(nèi)容。因此,在決定獲取、重用甚至構(gòu)造構(gòu)件時(shí),可集成性是所需考慮的關(guān)鍵因素。

        CBSD由4個(gè)主要活動(dòng)組成:構(gòu)件的評(píng)選、構(gòu)件的適配、構(gòu)件的組裝以及系統(tǒng)的演化。

        2.1構(gòu)件的評(píng)選

        構(gòu)件的評(píng)選是一個(gè)從市場(chǎng)上的一批相互競(jìng)爭(zhēng)的構(gòu)件中加以選擇的過(guò)程,該過(guò)程要求在眾多侯選者中選出最適合在該軟件環(huán)境中使用的構(gòu)件。在安全性要求較高的應(yīng)用中,構(gòu)件的選擇可以擴(kuò)充到包括對(duì)創(chuàng)建與維護(hù)構(gòu)件的開(kāi)發(fā)過(guò)程的選擇,但這樣也會(huì)減少使用現(xiàn)有構(gòu)件的一些好處。

        一個(gè)適合使用的構(gòu)件可能本身就是一個(gè)復(fù)雜的軟件,為了有效地使用該構(gòu)件,必須深入了解它。但較好地了解一個(gè)構(gòu)件并不是一件容易的事情。首先構(gòu)件的文檔可能不全或者錯(cuò)誤。即使構(gòu)件的提供者有意識(shí)作好文檔,一個(gè)復(fù)雜的軟件是不可能在文檔中被完全并且正確說(shuō)明的。即使不完全的文檔可能也是龐大的,除了非常有經(jīng)驗(yàn)的使用者,其他人將很難理解;其次構(gòu)件的接口可能非常復(fù)雜。許多構(gòu)件有上百個(gè)API調(diào)用,即使編制這些構(gòu)件的人都很難知道每個(gè)API調(diào)用的行為或者特殊調(diào)用序列的結(jié)果;最后在構(gòu)件中存在錯(cuò)誤。所有這些問(wèn)題都對(duì)了解構(gòu)件造成困難。

        構(gòu)件的評(píng)選有兩個(gè)階段:發(fā)現(xiàn)與評(píng)價(jià)。在發(fā)現(xiàn)階段,要判別構(gòu)件的特性。這些特性包括構(gòu)件的功能提供什么樣的服務(wù))、構(gòu)件界面的其他方面如使用的標(biāo)準(zhǔn))以及其他難以分離出的質(zhì)量特點(diǎn)如構(gòu)件的可靠性,可預(yù)測(cè)性以及可用性。在一些情況下,在發(fā)現(xiàn)構(gòu)件時(shí)也應(yīng)該考慮構(gòu)件的非技術(shù)特性,如提供者的市場(chǎng)占有率、以前的業(yè)績(jī)以及構(gòu)件開(kāi)發(fā)組織的過(guò)程成熟度。發(fā)現(xiàn)構(gòu)件是一個(gè)艱難的無(wú)法精確定義的過(guò)程,所需的信息很難量化,有時(shí)也難以得到。

        構(gòu)件的評(píng)價(jià)是一種決策。評(píng)價(jià)構(gòu)件用來(lái)支持作出編制還是購(gòu)買、買A還是買B以及使用特征A還是使用特征B的決定。當(dāng)前已經(jīng)存在了一些相對(duì)成熟的評(píng)價(jià)技術(shù),如ISO的通用標(biāo)準(zhǔn)以及IEEE的特定域的構(gòu)件評(píng)價(jià)技術(shù),但就構(gòu)件評(píng)價(jià)本身來(lái)說(shuō)是不確定的,這主要是由于使用難以互相比較的標(biāo)準(zhǔn)、不明確的系統(tǒng)期望、不精確的評(píng)價(jià)方法以及構(gòu)件的快速修改,這意味著構(gòu)件評(píng)價(jià)帶有一定的錯(cuò)誤。確定構(gòu)件的適應(yīng)性是構(gòu)件評(píng)價(jià)的目標(biāo),構(gòu)件對(duì)系統(tǒng)百分之百的適應(yīng)是不大可能的,一般都存在一定的權(quán)衡,而構(gòu)件對(duì)系統(tǒng)的不適應(yīng)程度由不適應(yīng)的類型、修補(bǔ)不適應(yīng)的費(fèi)用以及不適應(yīng)性所導(dǎo)致的風(fēng)險(xiǎn)所決定。對(duì)于每一個(gè)評(píng)價(jià)活動(dòng),由于存在各自不同類型的決定、系統(tǒng)環(huán)境評(píng)價(jià)過(guò)程都是有針對(duì)性的,對(duì)開(kāi)發(fā)者有用的應(yīng)該是一種系統(tǒng)的方法,該方法能夠在眾多可變的因素中加以選擇以說(shuō)明有用的評(píng)價(jià)標(biāo)準(zhǔn)。

        2.2構(gòu)件的適配

        由于每個(gè)構(gòu)件在編制時(shí)針對(duì)的是滿足不同需求的,并且是基于上下文的不同假設(shè),在應(yīng)用到一個(gè)新系統(tǒng)時(shí)構(gòu)件常常必須被改寫。構(gòu)件必須被改寫的前提是保證構(gòu)件間的沖突最小。對(duì)構(gòu)件內(nèi)部結(jié)構(gòu)的理解程度決定了對(duì)構(gòu)件適應(yīng)的不同方法*2+:

        1)白盒子法。用戶可以獲得構(gòu)件的源碼,這樣可以通過(guò)改寫構(gòu)件以使構(gòu)件能與其他構(gòu)件進(jìn)行互操作。這種方法可以對(duì)構(gòu)件的特性進(jìn)行非常細(xì)致的控制,不過(guò)由于需要修改源碼,從長(zhǎng)遠(yuǎn)看可能會(huì)導(dǎo)致嚴(yán)重的維護(hù)和升級(jí)的問(wèn)題,使得基于構(gòu)件開(kāi)發(fā)的許多優(yōu)點(diǎn)被丟失。

        2)黑盒子法。只能得到構(gòu)件的二進(jìn)制可執(zhí)行形式,構(gòu)件沒(méi)有提供擴(kuò)展機(jī)制或API。

        3)灰盒子法。在這種情況下,構(gòu)件的源碼是不可更改的,但構(gòu)件提供了它自身的擴(kuò)展機(jī)制或可編程的接口API。

        對(duì)構(gòu)件自身的擴(kuò)展機(jī)制加以調(diào)用的方式一般稱之為構(gòu)件的剪裁ComponentTailoring),它指構(gòu)件的使用者以構(gòu)件提供者所提供的方式來(lái)增強(qiáng)構(gòu)件的功能,包括腳本Script)、插件Plug-in)的使用和繼承inheritance)三種方式。卻本方式是指構(gòu)件在某些特定事件下執(zhí)行某一特定的腳本過(guò)程,早期的腳本是由簡(jiǎn)單的宏語(yǔ)言來(lái)編寫的,在當(dāng)前許多新的應(yīng)用中腳本描述能力已經(jīng)越來(lái)越高級(jí),用戶可以使用完善的編程語(yǔ)言和解釋器來(lái)編寫腳本如VBA、tcl以及Perl。插件是指在一個(gè)封閉應(yīng)用中注冊(cè)的構(gòu)件,當(dāng)應(yīng)用需要該插件功能時(shí)會(huì)對(duì)插件執(zhí)行一個(gè)回調(diào)Callback)。繼承允許構(gòu)件內(nèi)部的某一特定部分被修改和限定,當(dāng)前的面向?qū)ο髽?biāo)準(zhǔn)允許構(gòu)件被開(kāi)發(fā)者使用,盡管使用者只能得到構(gòu)件的二進(jìn)制代碼,繼承的使用要求深入了解構(gòu)件結(jié)構(gòu),在通常情況下僅僅被專業(yè)開(kāi)發(fā)者所使用。對(duì)構(gòu)件可編程接口的調(diào)用一般會(huì)涉及到在構(gòu)件周圍編寫一個(gè)屏蔽構(gòu)件工作區(qū)以及延伸的包容器Wrapper)以提供對(duì)構(gòu)件接口的更高級(jí)抽象。把構(gòu)件包容起來(lái)有很多好處:可以使構(gòu)件遵循標(biāo)準(zhǔn),如在已有系統(tǒng)上的COGBA包容器;為某一范圍的構(gòu)件提供一個(gè)標(biāo)準(zhǔn)接口;增加或隱藏)構(gòu)件的功能;為構(gòu)件提供一個(gè)單一的訪問(wèn)接口;盡管該集成者無(wú)法控制構(gòu)件,構(gòu)件的包容器能給構(gòu)件的集成者一種直觀的感覺(jué)。構(gòu)件的集成者可以控制和訪問(wèn)包容器。

        2.3構(gòu)件的組裝

        構(gòu)件的組裝較易發(fā)生錯(cuò)誤,需要一定量的編碼,并且難以調(diào)試和測(cè)試,此外,構(gòu)件還較易發(fā)生變化,商業(yè)構(gòu)件經(jīng)常面臨頻繁的升級(jí)。這些升級(jí)所增加的功能或消除的問(wèn)題不一定是用戶所希望的,在上一版本的關(guān)鍵功能可能在后續(xù)的版本中被刪去了,在這種情況下,用戶可能會(huì)希望在系統(tǒng)新的發(fā)布版本中使用由其他供應(yīng)商提供的同類型構(gòu)件。

        為了處理在搭建系統(tǒng)時(shí)所遇到的問(wèn)題,集成構(gòu)件的體系結(jié)構(gòu)應(yīng)該有以下一些特點(diǎn):

        1)構(gòu)件可插拔。系統(tǒng)的體系結(jié)構(gòu)必須允許構(gòu)件的替換,這種替換包括更新為構(gòu)件的新版本和將構(gòu)件替換為由其他供應(yīng)商所提供的同類型構(gòu)件。

        2)構(gòu)件間松散耦合。構(gòu)件間的耦合必須盡可能的小,耦合可能包括功能耦合如過(guò)程調(diào)用以及其他類型的依賴如資源競(jìng)爭(zhēng)或結(jié)構(gòu)上的假設(shè)。體系結(jié)構(gòu)必須允許構(gòu)件間的隔離。

        3)隱藏不必要的功能。為了使自己的構(gòu)件區(qū)別于其他人提供的構(gòu)件,構(gòu)件供應(yīng)商給他的構(gòu)件加上過(guò)多功能,這對(duì)構(gòu)件的組裝不利,系統(tǒng)結(jié)構(gòu)設(shè)計(jì)者可能因此希望去掉這些功能,系統(tǒng)的體系結(jié)構(gòu)必須提供對(duì)功能隱藏的支持。

        4)調(diào)試與測(cè)試。由于在開(kāi)發(fā)過(guò)程中構(gòu)件基本上是以灰/黑盒子的形式來(lái)使用的,所以不可能對(duì)構(gòu)件內(nèi)部加以調(diào)試和測(cè)試。軟件的體系結(jié)構(gòu)無(wú)法克服這一問(wèn)題,但是它可以包括在運(yùn)行時(shí)對(duì)構(gòu)件的行為加以監(jiān)控及驗(yàn)證的能力,并且可以防止構(gòu)件的錯(cuò)誤擴(kuò)展到系統(tǒng)的其他部分。

        在由構(gòu)件開(kāi)發(fā)軟件系統(tǒng)時(shí),可以使用以下幾種體系結(jié)構(gòu)類型:

        1)數(shù)據(jù)庫(kù)結(jié)構(gòu)。在該結(jié)構(gòu)中對(duì)所有操作數(shù)據(jù)的集中控制是系統(tǒng)在構(gòu)件間共享信息的關(guān)鍵。

        2)黑板模型。構(gòu)件間的數(shù)據(jù)共享是隨意的,涉及降低系統(tǒng)的開(kāi)銷水平。

        3)消息總線。構(gòu)件有各自不同的數(shù)據(jù)存儲(chǔ),這些局部數(shù)據(jù)通過(guò)變化消息來(lái)加以協(xié)調(diào)。

        4)消息請(qǐng)求代理0)B)協(xié)調(diào),0)*技術(shù)提供了與語(yǔ)言無(wú)關(guān)的接口定義和對(duì)象定位與激發(fā)的機(jī)制。

        組裝構(gòu)件時(shí),在許多時(shí)候必須編寫一些粘接代碼GlueCode),這些代碼可以通過(guò)必須的數(shù)據(jù)轉(zhuǎn)換等手段來(lái)消除構(gòu)件間接口不兼容的問(wèn)題,使底層構(gòu)件的功能按需激發(fā),從而提供把不同的構(gòu)件結(jié)合在一起的功能。不僅如此,通過(guò)捕獲異常,粘接代碼還能為系統(tǒng)提供統(tǒng)一的異常處理機(jī)制。

        2.4系統(tǒng)的演化

        系統(tǒng)是不斷改變的;系統(tǒng)中的構(gòu)件也是不斷變化的。系統(tǒng)與其構(gòu)件的演化對(duì)系統(tǒng)的維護(hù)造成了多種影響。在把新版本的構(gòu)件加入到系統(tǒng)時(shí)需要做許多工作,對(duì)于一個(gè)由多個(gè)構(gòu)件組成的系統(tǒng),每個(gè)構(gòu)件都有其自身的升級(jí)安排,把每個(gè)構(gòu)件的每一個(gè)新版本加入到系統(tǒng)中代價(jià)非常高昂,造成這種困難的原因是因?yàn)樵跇?gòu)件的新版本中,構(gòu)件的行為、界面、前提、性能以及錯(cuò)誤的消除都可能發(fā)生變化;在舊版本的構(gòu)件上進(jìn)行的定制、擴(kuò)展以及相關(guān)工作必須施加到新構(gòu)件上。

        在基于構(gòu)件的系統(tǒng)中沒(méi)有在機(jī)械系統(tǒng)中定義的‘一致”的概念,在機(jī)械系統(tǒng)中各個(gè)部件完美結(jié)合而在軟件系統(tǒng)中各構(gòu)件的結(jié)合是在一定的限度之內(nèi)的。一種處理系統(tǒng)演化的方法是假發(fā)生,系統(tǒng)可能依賴于已不再使用或已被升級(jí)的特殊平臺(tái);也可能在新版本中需要去除錯(cuò)誤。集成新版本的構(gòu)件需要作出較大的努力。首先,新版本的構(gòu)件必須被評(píng)價(jià)以確定在舊版本上作了什么改變;其次,新構(gòu)件必須被集成到系統(tǒng)中。這可能包括添加或移去構(gòu)件的工作區(qū),增加新的擴(kuò)充以考慮構(gòu)件新的行為,升級(jí)文檔和培訓(xùn)過(guò)程等等;最后,系統(tǒng)必須被測(cè)試和確認(rèn)。

        3使用CBSD的優(yōu)缺點(diǎn)

        作為一種新的軟件開(kāi)發(fā)方法,CBSD具有自身的特點(diǎn),這些特點(diǎn)把它與傳統(tǒng)的代碼開(kāi)發(fā)方法區(qū)分開(kāi)來(lái)。使用CBSD可以給軟件開(kāi)發(fā)帶來(lái)以下好處構(gòu)件的開(kāi)發(fā)者可以使用最適合的開(kāi)發(fā)工具而不必學(xué)習(xí)新的語(yǔ)言和工具,這樣就允許企業(yè)可以利用已有的技術(shù);當(dāng)使用預(yù)先創(chuàng)建及測(cè)試的構(gòu)件時(shí),在組裝過(guò)程中應(yīng)用的開(kāi)發(fā)者可以關(guān)注業(yè)務(wù)問(wèn)題而不用擔(dān)心技術(shù)以及外部設(shè)施等問(wèn)題,減少了系統(tǒng)完成時(shí)間。

        在市場(chǎng)上出現(xiàn)的構(gòu)件大多經(jīng)過(guò)市場(chǎng)的檢驗(yàn)而變的比較成熟,對(duì)這些構(gòu)件的使用可以使系統(tǒng)比在使用自己編制的構(gòu)件的情況下更可靠、設(shè)計(jì)更合理。

        由于系統(tǒng)的開(kāi)發(fā)基于組裝過(guò)程,構(gòu)件能被較容易的替換為更便宜、有更多附加值、使用更好技術(shù)并且具有類似功能的構(gòu)件。這樣使得系統(tǒng)的靈活性更好,開(kāi)發(fā)者也不會(huì)過(guò)分依賴于某個(gè)供應(yīng)商。

        CBSD可以降低軟件開(kāi)發(fā)費(fèi)用,由于構(gòu)件的供應(yīng)商開(kāi)發(fā)及維護(hù)構(gòu)件是針對(duì)多個(gè)用戶的,那么使用該構(gòu)件的軟件在該構(gòu)件部分的開(kāi)發(fā)及維護(hù)費(fèi)用被多個(gè)用戶分擔(dān)。

        雖然CBSD有許多優(yōu)點(diǎn),但也存在不少缺點(diǎn),這些缺點(diǎn)給軟件開(kāi)發(fā)帶來(lái)一定的風(fēng)險(xiǎn)。

        首先開(kāi)發(fā)者無(wú)法得到構(gòu)件的源碼,也就無(wú)法通過(guò)修改源碼來(lái)改變構(gòu)件的功能,這就意味著分析、調(diào)試以及測(cè)試構(gòu)件必須完全以黑盒子的形式進(jìn)行。不僅如此,在許多時(shí)候,完整并且正確的特性說(shuō)明也是拿不到的。雖然構(gòu)件的提供商提供了功能描述但是對(duì)于那些想掌握構(gòu)件更詳細(xì)的特性以及所需資源的開(kāi)發(fā)者來(lái)說(shuō),這種說(shuō)明往往難以滿足需要。構(gòu)件集成者也可能會(huì)使用未被構(gòu)件提供商所預(yù)見(jiàn)的構(gòu)件使用方式。

        其次,構(gòu)件的使用者無(wú)法控制構(gòu)件的升級(jí)。構(gòu)件的使用者僅僅是構(gòu)件提供商許多客戶中的一個(gè),雖然從總體來(lái)說(shuō),構(gòu)件的升級(jí)是由客戶來(lái)驅(qū)動(dòng)的,但單個(gè)客戶不可能有對(duì)構(gòu)件升級(jí)的全部控制權(quán)。

        再次,在構(gòu)件集成時(shí),所選用的構(gòu)件之間可能不匹配或者是作為單獨(dú)應(yīng)用設(shè)計(jì)的構(gòu)件與軟件的其他部分不易交互。構(gòu)件之間的不匹配可以由許多原因?qū)е拢鐢?shù)據(jù)模型、功能不匹配、資源沖突、過(guò)程模型等等。在有些時(shí)候這種不匹配在開(kāi)發(fā)階段的后期才會(huì)暴露出來(lái)。

        4CBSD開(kāi)發(fā)時(shí)建議遵循的原則

        通過(guò)對(duì)大量基于構(gòu)件軟件開(kāi)發(fā)過(guò)程的分析,可以得到一套有助于利用構(gòu)件成功開(kāi)發(fā)軟件的原則43,|。這些原則從經(jīng)驗(yàn)中來(lái),遵循這些原則,可以簡(jiǎn)化開(kāi)發(fā)及系統(tǒng)演化的工作。

        1)包容所有的構(gòu)件

        系統(tǒng)中所有的構(gòu)件都應(yīng)該有包容器把它們給包容起來(lái)。提出這一原則的理由在于包容器提供了系統(tǒng)開(kāi)發(fā)者對(duì)構(gòu)件界面以及構(gòu)件間交互的唯一機(jī)制,并且使系統(tǒng)的其他構(gòu)件不受該構(gòu)件改變的影響。此外,系統(tǒng)中所有提供重要功能而由手工編寫的部分應(yīng)與對(duì)待構(gòu)件相似的方式對(duì)待,也應(yīng)該用包容器包起來(lái),這樣當(dāng)以后如果出現(xiàn)同樣功能的構(gòu)件時(shí),開(kāi)發(fā)者可以較容易地把手工編寫部分改成構(gòu)件。

        2)粘接代碼獨(dú)立于構(gòu)件

        粘接代碼應(yīng)該獨(dú)立于與其粘接的構(gòu)件,在構(gòu)件替換時(shí)不必改寫,構(gòu)件的替換被構(gòu)件的包容和剪裁獨(dú)立所隱藏,粘接代碼與構(gòu)件的交互是通過(guò)包容器間接進(jìn)行的。粘接代碼所提供的功能不應(yīng)該依賴于所訪問(wèn)的特定構(gòu)件,諸如異常處理、控制流等服務(wù)的升級(jí)應(yīng)獨(dú)立于多粘接的構(gòu)件,這樣當(dāng)構(gòu)件升級(jí)或修改時(shí),粘接代碼可以保持不變。通過(guò)提供構(gòu)件周圍用來(lái)隔絕的包容器粘接代碼可以使用標(biāo)準(zhǔn)方法訪問(wèn)構(gòu)件。

        3)檢驗(yàn)構(gòu)件的版本一致性

        構(gòu)件以新版本發(fā)布的形式快速升級(jí),系統(tǒng)通常與使用構(gòu)件的哪一個(gè)版本運(yùn)行有關(guān)系,一個(gè)特殊的構(gòu)件被升級(jí)到一個(gè)新版本經(jīng)常意味著包容器以及其他構(gòu)件也要被升級(jí)。

        系統(tǒng)的開(kāi)發(fā)者無(wú)論如何都需要保證當(dāng)前構(gòu)件的配置版本一致,理想的版本檢查是自動(dòng)進(jìn)行的,版本驗(yàn)證可以在創(chuàng)建、安裝或運(yùn)行時(shí)進(jìn)行,這與構(gòu)件的連接時(shí)間有關(guān)。Perl和使用Ac?tiveX構(gòu)件的VisualBasic都有對(duì)版本驗(yàn)證的支持。在Perl中,構(gòu)件開(kāi)發(fā)者在每個(gè)發(fā)布的軟件模塊中加入一個(gè)版本號(hào),構(gòu)件使用者在連接該模塊時(shí)必須說(shuō)明所需的版本,在運(yùn)行時(shí)系統(tǒng)會(huì)檢查所連的模塊的版本是否等于或高于所需版本。ActiveX構(gòu)件對(duì)構(gòu)件及接口都有一個(gè)版本號(hào),構(gòu)件的版本號(hào)是由開(kāi)發(fā)者確定的,它被安裝程序使用來(lái)決定已安裝的構(gòu)件是否應(yīng)該被新版本的構(gòu)件所替換。接口的版本號(hào)是在編譯時(shí)自動(dòng)分配的,它用來(lái)記錄一個(gè)構(gòu)件接口的不同版本的一致性。在運(yùn)行時(shí),當(dāng)一個(gè)VisualBasic程序連接到ActiveX構(gòu)件時(shí),一個(gè)驗(yàn)證構(gòu)件所暴露的接口是否是VisualBasic程序所預(yù)期接口的檢查會(huì)自動(dòng)進(jìn)行。如果版本不一致的話,系統(tǒng)集成者可以捕獲異常。

        4)在包容及粘接中加入斷言

        在許多情況下為了確認(rèn)運(yùn)行時(shí)的斷言在包容及粘接中所進(jìn)行的高層次檢查是非常有用的。這些斷言可以僅僅是驗(yàn)證參數(shù)值或類型,也可以更為復(fù)雜,斷言數(shù)據(jù)值之間的關(guān)系或所需要事件的臨時(shí)順序。這種運(yùn)行時(shí)的檢查主要位于包容器及粘接代碼中,通過(guò)在構(gòu)件間添加斷言并且在斷言違背時(shí)發(fā)出異常,錯(cuò)誤能很快被發(fā)現(xiàn)并且從系統(tǒng)中分離出來(lái)。

        5)使用開(kāi)放的標(biāo)準(zhǔn)

        使用遵循開(kāi)放標(biāo)準(zhǔn)的構(gòu)件能使不同供應(yīng)商的構(gòu)件間較容易地替換,而選擇遵循特殊標(biāo)準(zhǔn)的構(gòu)件會(huì)給系統(tǒng)的可移植性以及用不同來(lái)源的構(gòu)件配置系統(tǒng)時(shí)帶來(lái)問(wèn)題。如果使用不開(kāi)放的標(biāo)準(zhǔn),系統(tǒng)開(kāi)發(fā)者會(huì)過(guò)分依賴某一特定的供應(yīng)商,即使有其他供應(yīng)商提供相同功能并且性能或費(fèi)用上更可取的構(gòu)件,開(kāi)發(fā)者也無(wú)法采用。

        6)—致的體系結(jié)構(gòu)類型

        通常開(kāi)發(fā)者無(wú)法控制構(gòu)件內(nèi)部的結(jié)構(gòu)以及構(gòu)件的演化與維護(hù),他們所能決定的是系統(tǒng)體系結(jié)構(gòu)及體系結(jié)構(gòu)類型。通過(guò)定義在系統(tǒng)整個(gè)生命周期內(nèi)都可維護(hù)的靈活的體系結(jié)構(gòu)并且保證構(gòu)件都遵循這一結(jié)構(gòu)能使在系統(tǒng)中添加構(gòu)件較易進(jìn)行,系統(tǒng)內(nèi)的服務(wù)也能按照需要剪裁和修改。如果在開(kāi)發(fā)過(guò)程中過(guò)早地束縛于一個(gè)特殊的體系結(jié)構(gòu),會(huì)使構(gòu)件的集成變得困難,構(gòu)件的完全利用也不太可能實(shí)現(xiàn)。

        5小結(jié)

        基于構(gòu)件的軟件開(kāi)發(fā)已經(jīng)越來(lái)越廣泛地應(yīng)用于包括企業(yè)信息系統(tǒng)在內(nèi)的多個(gè)領(lǐng)域的軟件生產(chǎn)中,并且成功地開(kāi)發(fā)出許多系統(tǒng),但在對(duì)安全性要求苛刻的系統(tǒng)中,使用該方法風(fēng)險(xiǎn)仍然太大。為了方便該方法的開(kāi)展,當(dāng)前出現(xiàn)了不少開(kāi)發(fā)工具如compuware公司的Uniface、SuperNova公司的Visualconcepts,這些工具在構(gòu)件組裝、部署等方面提供了許多支持,使得基于構(gòu)件的開(kāi)發(fā)能更加有效地進(jìn)行。

      【計(jì)算機(jī)軟件開(kāi)發(fā)的進(jìn)展研究論文】相關(guān)文章:

      計(jì)算機(jī)軟件開(kāi)發(fā)實(shí)習(xí)周報(bào)04-21

      生物學(xué)研究論文03-03

      水利工程中計(jì)算機(jī)的運(yùn)用研究論文范文(通用7篇)05-11

      計(jì)算機(jī)軟件開(kāi)發(fā)合同06-20

      幼兒舞蹈教學(xué)研究論文01-03

      技工院校軟件開(kāi)發(fā)專業(yè)項(xiàng)目課程實(shí)踐探索論文03-23

      計(jì)算機(jī)軟件開(kāi)發(fā)合同2篇04-09

      計(jì)算機(jī)軟件開(kāi)發(fā)合同5篇11-05

      計(jì)算機(jī)軟件開(kāi)發(fā)合同(3篇)01-25

      計(jì)算機(jī)軟件開(kāi)發(fā)合同3篇01-25