當前位置:工程項目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 南昌OA系統(tǒng) > 南昌OA信息化
主流軟件開發(fā)技術
當前軟件工程領域和軟件產(chǎn)業(yè)界的熱點技術包括原型開發(fā)方法、C/S與B/S結構、軟件構件、軟件復用等。本文針對這些當今軟件開發(fā)的主流技術加以評述,以期對實際工作做出指導。
原型法
原型法是近年來提出的一種以計算機為基礎的系統(tǒng)開發(fā)方法,利用原型法開發(fā)系統(tǒng)時首先構造一個功能簡單的原型系統(tǒng),然后通過對原型系統(tǒng)逐步求精,不斷擴充完善得到最終的軟件系統(tǒng)。
原型就是模型,原型系統(tǒng)就是應用系統(tǒng)的模型。它是待開發(fā)的實際系統(tǒng)的縮小比例模型,但是保留了實際系統(tǒng)的大部分性能。這個模型可在運行中被檢查、測試、修改,直到它的性能達到用戶需求為止,隨之這個工作模型很快就能轉換成需要的目標系統(tǒng)。
原型法的主要優(yōu)點在于它是一種支持用戶的方法,使得用戶在系統(tǒng)生存周期的設計階段起到積極的作用,能減少系統(tǒng)開發(fā)的風險。特別是在大型項目的開發(fā)中,由于用戶對系統(tǒng)功能認識的模糊性,使得對項目需求的分析難以一次完成,往往會造成已完成的項目多次修改,應用原型法則會避免這種風險。
原型法的概念既適用于系統(tǒng)的重新開發(fā),也適用于對系統(tǒng)的修改;利用原型法開發(fā)系統(tǒng)需要有良好的軟件開發(fā)環(huán)境、工具的支持。原型法也可以與傳統(tǒng)的生命周期方法相結合使用,以便擴大用戶參與需求分析、初步設計及詳細設計等階段的活動,加深對系統(tǒng)的理解。
微軟公司通常采用“同步-穩(wěn)定產(chǎn)品開發(fā)法”進行項目開發(fā)。典型項目的生命周期包括三個階段:
1. 計劃階段:完成項目的功能說明和進度表的制定;
2. 開發(fā)階段:寫出完整的的源代碼;
3. 穩(wěn)定化階段:完成產(chǎn)品,使之能夠批量生產(chǎn)。
這三大階段以及階段間內(nèi)在的循環(huán)方法與傳統(tǒng)的“瀑布”式開發(fā)方式很不相同,后者是由需求、詳盡設計、模塊化的代碼設計與測試、集成測試以及系統(tǒng)測試組成的。而微軟的三個階段更像是風險驅動的、漸進的“螺旋”式的生命周期模型。
構造原型是在計劃階段具體說明一件新產(chǎn)品或一個新版本的最好方法,這從許多方面來說特別是在系統(tǒng)可用性方面都使開發(fā)前測試成為可能,并且有助于對與用戶交互情況做出良好的理解,同時也能使產(chǎn)品說明更加緊湊。
微軟的開發(fā)人員通常采用VB構造用戶界面原型,對于構造計算機屏幕模型之類的工作,畫筆(Paintbrush)也是一個很好用的工具。通過原型法可以使死板的說明變成有生命的文件。
C/S與B/S結構
管理信息系統(tǒng)平臺模式大體上分為四種:主機終端模式、文件服務器模式、C/S模式和B/S模式。主機終端模式由于硬件選擇有限,硬件投資得不到保證,已被逐步淘汰。而文件服務器模式只適用小規(guī)模的局域網(wǎng),對于用戶多、數(shù)據(jù)量大的情況就會產(chǎn)生網(wǎng)絡瓶頸,特別是在互聯(lián)網(wǎng)上不能滿足用戶要求。因此,現(xiàn)代企業(yè)管理信息系統(tǒng)平臺模式應主要考慮C/S模式和B/S模式。
● C/S結構
兩層結構的C/S(Client/ Server)模式在上個世紀八九十年代得到大量的應用。C/S結構由兩部分構成:前端是客戶機,通常是PC;后端是服務器,運行數(shù)據(jù)庫管理系統(tǒng),提供數(shù)據(jù)庫的查詢和管理。
但兩層的C/S結構存在以下幾個局限:它是單一服務器且以局域網(wǎng)為中心的,所以難以擴展至大型企業(yè)廣域網(wǎng)或Internet;受限于供應商;軟、硬件的組合及集成能力有限;難以管理大量的客戶機。
因此,三層C/S結構應運而生。三層結構的C/S模式是伴隨著中間件技術的成熟而興起的,核心思想是利用中間件將應用分為表示層、業(yè)務邏輯層和數(shù)據(jù)存儲層三個不同的處理層次。三個層次的劃分是從邏輯上來分的,具體的物理分法可以有多種形式。
三層C/S結構具有以下優(yōu)點:具有靈活的硬件系統(tǒng)構成;提高程序的可維護性;利于變更和維護應用技術規(guī)范;進行嚴密的安全管理;越關鍵的應用,用戶的識別和存取權限設定愈重要。
● B/S結構
基于Web的B/S(Browser/ Server)方式其實也是一種客戶機/服務器模式,只不過它的客戶端是瀏覽器。
B/S結構中處于第一層的是客戶端,處于第二層的是應用服務器,由一臺或者多臺服務器組成,該層具有良好的可擴充性,可以隨著應用的需要增加服務器的數(shù)目。處于第三層的是數(shù)據(jù)層,由數(shù)據(jù)庫系統(tǒng)和遺留系統(tǒng)組成。
B/S的優(yōu)勢在于:簡化了客戶端;簡化了系統(tǒng)的開發(fā)和維護;用戶操作變得更簡單;適用于網(wǎng)上信息發(fā)布。
軟件構件技術
所謂軟件構件化,就是要讓軟件開發(fā)像機械制造工業(yè)一樣,可以用各種標準和非標準的零件來進行組裝。軟件的構件化和集成技術的目標是:軟件系統(tǒng)可以由不同廠商提供的,用不同語言開發(fā)的,在不同硬件平臺上實現(xiàn)的軟件構件,方便地、動態(tài)地集成。這些構件要求能互操作,它們可以放在本地的計算機上,也可以分布式地放置在網(wǎng)上異構環(huán)境下的不同結點上。
面向對象的方法和技術是繼結構化方法之后出現(xiàn)的、最有代表性的軟件開發(fā)方法,是當今軟件開發(fā)的主流技術。但是,面向對象所提供的優(yōu)點主要是針對分析、設計和源代碼等軟件開發(fā)階段的,當一個面向對象的代碼經(jīng)過編譯、連接后得到的可執(zhí)行軟件則是不可改變的、無法重用的。
因此,我們需要一種新的、不依賴于某種特定語言的、在二進制代碼級可復用的軟件“對象”,這種“對象”就是構件(Component)。
構件技術是一種軟件實現(xiàn)的技術和方法,是對面向對象方法在二進制代碼級的完善和補充。構件是由接口構成的,它把接口和接口的實現(xiàn)分離開了。接口是獨立于語言的一種描述,它將內(nèi)部的實現(xiàn)以及接口到實現(xiàn)的映射都封裝起來了,外界只能通過接口描述使用構件。因此,接口用哪種語言實現(xiàn)也就無關緊要了。
在現(xiàn)有的軟件市場上,有三種代表性的構件技術流派,它們分別是COM(Component Object Model,對象構件模型)、JavaBean和CORBA(the Common Object Request Broker Architecture,公共對象請求代理體系結構)。它們是由不同的機構提出的構件技術實現(xiàn)模型和標準,各有優(yōu)缺點。
● COM
COM是由Microsoft公司推出的構件接口標準,是軟件構件相互通信的一種方式,它是一種二進制和網(wǎng)絡標準,允許任意兩個組件互相通信。目前已有大量的基于COM的構件可供復用,原則上講,這些構件可以建立在任何環(huán)境下,但現(xiàn)有的COM構件大多都依賴于Microsoft環(huán)境,在Unix、Macintosh等其他操作系統(tǒng)環(huán)境下可復用的構件還很少,Microsoft公司正在努力開發(fā)更多的在其他操作系統(tǒng)環(huán)境下的COM構件。
傳統(tǒng)的應用程序在源代碼級可被分割為文件、模塊、類或函數(shù)等,以便于實施、修改和維護,但經(jīng)編譯、鏈接以后就生成了不可改變的二進制可執(zhí)行代碼,采用COM技術產(chǎn)生的源代碼則不同。
一個COM構件是由若干個接口組成的,而一個接口則是由若干個函數(shù)的說明組成的。COM是一個二進制標準,即接口編譯以后生成的二進制代碼的結構要滿足一定的內(nèi)存塊結構。該內(nèi)存塊結構是不依賴于任何語言的。圖1表示一個擁有Fun1和Fun2函數(shù)的IX接口的內(nèi)存塊結構。
其中,pIX是指向IX接口的指針,通過vtbl指針(接口指針)指向接口中函數(shù)的指針數(shù)組(稱為v表),v表中的元素是指向接口中函數(shù)實現(xiàn)的指針。后面我們將會看到函數(shù)指針在用代理-存根機制實現(xiàn)進程間、計算機間的接口調(diào)用時指向相應的代理。
任何語言的語法成分,只要其編譯后的目標代碼在結構滿足圖1的二進制形式結構,就稱其為該構件接口的一個實現(xiàn)。通常情況下,大多數(shù)程序設計語言和其COM支持工具都能將相應的語法自動地映射為這樣的結構,無需程序員做更多的工作。
COM是一個二進制標準。由于任何語言都要翻譯成二進制機器代碼才能最后執(zhí)行,所以COM可以作為各種高級語言的中間橋梁,使它們可以互操作;按COM標準實現(xiàn)的軟件也可以被所有的語言環(huán)境所共享。共享人類開發(fā)的、豐富的軟件資源是提出的COM的最初動機。
● JavaBean
目前的COM技術主要是針對PC市場的不依賴于語言的軟件構件技術,而JavaBean則是針對解決平臺依賴性和語言依賴性這兩個問題而提出來的軟件構件技術標準。
關于平臺依賴性問題是其他構件標準普遍存在的問題。盡管其他構件標準的接口是惟一的,即使用構件的方式是惟一的,但一個構件一旦在某種運行環(huán)境下實現(xiàn)就很難直接在另一種運行環(huán)境被復用。而這種平臺依賴性問題對進一步提高軟件復用力度卻是至關重要的。
由于Java本身在全球軟件界的影響,特別是Java獨立于平臺的、適宜于在Internet、易于構造B/S應用等等特點,Javasoft公司利用Java特殊的byteCode機制,很好地解決了其他構件標準難以解決的平臺依賴性問題,推出了它們自己的構件接口標準JavaBean。正像JavaSoft所描述的JavaBean是“一次性編寫,在任意地方可運行,在任意地方可重用”。
JavaBean的構件模型主要包括:構件和容器。模型的其他部分還包括事件處理、持續(xù)性、布局以及應用程序建立器(一種可視化的工具)等,這些都是通過JavaBean構件的標準接口實現(xiàn)的。
JavaBean構件有時也稱為JavaBean或Bean。它是由接口構成的,接口是由方法組成的。容器能夠使構件組合在一起并相互作用。這種機制主要是為了界面構件提出的,它本身也是一個構件,以便嵌套組合產(chǎn)生復雜的可視化GUI。JavaBean的主要特征為:
1. 屬性管理
根據(jù)屬性的使用類型可將其分為:一般屬性、索引屬性、依附屬性和約束屬性,通過一些標準的命名約定定義它們相應的訪問方法,使JavaBean API能用統(tǒng)一的方式對屬性進行管理。其中,依附屬性是基于自身值的變化而向感興趣的部分提供通知的屬性。約束屬性是一種在接收更改之前能使感興趣的部分對新屬性值執(zhí)行有效檢查的屬性。
2. 內(nèi)省功能
內(nèi)省功能是構件的內(nèi)部結構(屬性、方法和事件)展現(xiàn)給外部的機制。不同于COM,JavaBean不需要構件開發(fā)者開發(fā)這種額外的工作,它只需要開發(fā)者對構件的屬性、方法和事件的命名和類型符號遵守一個約定,通過標準的JavaBean API就可了解到bean的任何內(nèi)部信息。
JavaBean的事件處理模型是基于現(xiàn)存的AWT事件處理模型的。它決定bean如何對它自身狀態(tài)的變化做出反應,以及決定如何將這些變化傳遞給應用程序和其他bean。通過JavaBean API將一個事件接收器(處理某個事件的應用程序或其他bean)注冊到該事件上,完成外部對事件的控制。這是將bean組合起來的有效方法。
Java與JavaBean的區(qū)別是:Java是在源代碼級的復用;而JavaBean是在目標代碼級的復用,并且,通過JavaBean提供的標準接口,為在目標代碼級的動態(tài)組裝、版本升級、維護提供保證,并可利用一些相應的可視化工具方便、有效地定制JavaBean和建立應用程序。
盡管JavaBean是作為一種通用的構件模型提出來的,但它更主要地還是為解決可視化構件而設計的一套系統(tǒng),它類似于Microsoft的ActiveX。嚴格地講,目前的JavaBean在不同語言之間提供的互操作性方面是很弱的,它只是提供了在Java環(huán)境下的二進制代碼共享機制。增強JavaBean與其他構件技術之間的互操作是JavaBean今后發(fā)展的一個主要課題。
● CORBA
CORBA是由OMG(對象管理組)1990年首次為了解決分布式、異質的軟件和硬件環(huán)境下對象之間的互操作問題而提出的、基于中間件的構件技術。CORBA有兩個重要的特點:面向對象技術與分布式計算的結合;代理機制的中間件技術。
1. 面向對象與分布式技術的結合
CORBA是為了解決分布式問題而提出的分布式對象計算模型。利用計算機網(wǎng)絡進行分布式計算可以共享資源、平衡大型計算的負載等。但是,傳統(tǒng)的分布式計算模型還不夠成熟:客戶/服務關系不靈活、遠程服務層次太低、用戶使用不透明。面向對象中的對象是一個相對獨立的軟件實體,它有自己的內(nèi)部狀態(tài)和清晰的對外接口。但傳統(tǒng)的面向對象模型的實現(xiàn),只能在單計算機上進行。CORBA將這兩者有機地結合起來了。在CORBA中,對象是分布式計算模型中理想的節(jié)點描述模塊,對象既可以是“客戶”,也可以是“服務器”,它可自由地分布于計算機網(wǎng)絡上。通過CORBA,對象可網(wǎng)絡透明地相互訪問,CORBA屏蔽了位置信息和計算機的軟硬件環(huán)境,因此,CORBA建立了一個統(tǒng)一的分布式軟件開發(fā)平臺。
2. 代理機制的中間件——對象請求中介(Object Request Broker,簡稱ORB)
作為一種構件技術,CORBA要解決的另一個重要問題是二進制代碼之間的互操作問題。
不同于COM/DCOM技術,CORBA提供了一種中間的代理機制,將構件的接口與構件的實現(xiàn)分離開了。服務對象實現(xiàn)后,就將其接口登記在CORBA的代理中,客戶對象按照代理中的接口描述訪問服務對象,而不關心服務對象使用什么語言、在什么地方、在什么軟硬件環(huán)境下實現(xiàn)的。這些工作都由代理自動地、透明地為客戶對象完成。這種機制還可提供客戶與服務器之間動態(tài)匹配、一個服務器為多個客戶服務等功能。
ORB提供的機制是良好的,也提供了足以使客戶和服務器通信的服務,但這些服務是很低級的。用戶要熟練地掌握它們不是一件容易的事情,而且這些繁鎖的過程經(jīng)常重復。因此,CORBA對經(jīng)常使用的服務封裝內(nèi)部的細節(jié),提供簡化用戶使用的、方便的、標準的對象服務。對象服務是CORBA非常重要的一部分,是對ORB功能的擴充和補充。CORBA提供的15種服務可分為三大類:分布式系統(tǒng)相關的服務,如命名服務、事件服務、安全性服務和交易器服務;數(shù)據(jù)庫相關的服務,如事務處理、屬性、集合、關系、查詢、持久性、外表化、并發(fā)等服務;一般服務,如生命期、計時、特許等服務。大多數(shù)應用都是在這些服務的基礎上建立的。
公共設施是CORBA提供的另一種比對象服務更高一層的框架服務。它是特定應用領域的框架復用,如復合文檔構件設施等。CORBA的公共設施還很少,還有大量的設施需要集成,如圖形系統(tǒng)、移動代理等。
CORBA沒有定義二進制代碼的標準,而是在高層定義了一個標準的接口描述語言IDL,并通過擴展機制提供各種語言到IDL之間的映射,以IDL為中間的橋梁,達到各種語言之間的互操作。
● 三種構件模型的特點
COM是一種二進制標準的構件技術,它實現(xiàn)簡單、實用,但要完成真正意義的、獨立于硬件和操作系統(tǒng)的二進制標準,還有大量的工作要做。目前,COM還只是Microsoft環(huán)境下的二進制標準。
CORBA是一種以IDL為橋梁、基于ORB的中間件的構件技術。它是以IDL為標準的,與實現(xiàn)構件接口的語言、軟件平臺和硬件平臺無關。但它卻無法支持Internet上大量的移動計算的需求,一個構件的實現(xiàn)是與軟硬件平臺相關的,即一個構件的實現(xiàn)是不能在網(wǎng)上移動的。
JavaBean是一種能提供在網(wǎng)上移動的構件技術,它通過bytecode技術,提供在“任何地方運行,任何地方重用”的功能,但它卻是與語言相關的。
從軟件體系結構的角度看,構件技術中的構件只是提供一個軟件模塊的實現(xiàn),作為一個軟件系統(tǒng),它還需要連接子(connector)將軟件模塊組織成一個整體。有各種各樣組織軟件模塊的形式:管道和過濾器、層次、基于事件的隱式調(diào)用等等。管道和過濾器模型最容易實現(xiàn)軟件模塊的集成,但只能處理簡單的、流式的應用,沒有普遍性。層次模型可提供不同級別的抽象,但層與層之間存在著緊密的耦合,而且,這種模型也沒有普遍性?;谑录碾[式調(diào)用的方式是,構件向系統(tǒng)發(fā)出請求,已經(jīng)向系統(tǒng)注冊響應該事件的構件就響應該事件。這種模型將調(diào)用者和被調(diào)用者徹底地分開,這種軟件體系結構模型具有很強的靈活性,也具有通用性。
構件技術的初衷是為了能充分地利用在各種環(huán)境下,用各種程序設計語言開發(fā)的軟件模塊而提出的一種二進制代碼級的軟件復用技術。通過接口這種不依賴于具體語言的中性機制,使各種語言之間可以互操作,也就是說一種語言可通過接口訪問另一種語言開發(fā)的軟件,而不需要移植工作,這大大地提高了軟件的復用程度。
軟件復用技術
軟件復用就是將已有的軟件成分用于構造新的軟件系統(tǒng)??梢员粡陀玫能浖煞忠话惴Q作可復用構件,無論對可復用構件原封不動地使用還是作適當?shù)男薷暮笤偈褂?,只要是用來構造新軟件,則都可稱作復用。軟件復用不僅僅是對程序的復用,它還包括對軟件生產(chǎn)過程中任何活動所產(chǎn)生的制成品的復用。但如果是在一個系統(tǒng)中多次使用一個相同的軟件成分,則不稱作復用,而稱作共享;對一個軟件進行修改,使它運行于新的軟硬件平臺也不稱作復用,而稱作軟件移值。
● 軟件復用級別
未來最有可能產(chǎn)生顯著效益的復用是對軟件生命周期中一些主要開發(fā)階段的軟件制品的復用,按抽象程度的高低,可以劃分為如下的復用級別:
1.代碼的復用
包括目標代碼和源代碼的復用。其中目標代碼的復用級別最低,歷史也最久,當前大部分編程語言的運行支持系統(tǒng)都提供了連接(Link)、綁定(Binding)等功能來支持這種復用。源代碼的復用級別略高于目標代碼的復用,程序員在編程時把一些想復用的代碼段復制到自己的程序中,但這樣往往會產(chǎn)生一些新舊代碼不匹配的錯誤。想大規(guī)模實現(xiàn)源程序的復用只有依靠含有大量可復用構件的構件庫。如“對象鏈接及嵌入”(OLE)技術,既支持在源程序級定義構件并用以構造新的系統(tǒng),又使這些構件在目標代碼的級別上仍然是一些獨立的可復用構件,能夠在運行時被靈活地重新組合為各種不同的應用。
2.設計的復用
設計結果比源程序的抽象級別更高,因此它的復用受實現(xiàn)環(huán)境的影響較少,從而使可復用構件被復用的機會更多,并且所需的修改更少。這種復用有三種途徑:第一種途徑是從現(xiàn)有系統(tǒng)的設計結果中提取一些可復用的設計構件,并把這些構件應用于新系統(tǒng)的設計;第二種途徑是把一個現(xiàn)有系統(tǒng)的全部設計文檔在新的軟硬件平臺上重新實現(xiàn),也就是把一個設計運用于多個具體的實現(xiàn);第三種途徑是獨立于任何具體的應用,有計劃地開發(fā)一些可復用的設計構件。
3.分析的復用
這是比設計結果更高級別的復用,可復用的分析構件是針對問題域的某些事物或某些問題的抽象程度更高的解法,受設計技術及實現(xiàn)條件的影響很少,所以可復用的機會更大。復用的途徑也有三種,即從現(xiàn)有系統(tǒng)的分析結果中提取可復用構件用于新系統(tǒng)的分析;用一份完整的分析文檔作輸入產(chǎn)生針對不同軟硬件平臺和其他實現(xiàn)條件的多項設計;獨立于具體應用,專門開發(fā)一些可復用的分析構件。
4.測試信息的復用
主要包括測試用例的復用和測試過程信息的復用。前者是把一個軟件的測試用例在新的軟件測試中使用,或者在軟件作出修改時在新的一輪測試中使用。后者是在測試過程中通過軟件工具自動地記錄測試的過程信息,包括測試員的每一個操作、輸入?yún)?shù)、測試用例及運行環(huán)境等一切信息。這種復用的級別不便和分析、設計、編程的復用級別作準確的比較,因為被復用的不是同一事物的不同抽象層次,而是另一種信息,但從這些信息的形態(tài)看,大體處于與程序代碼相當?shù)募墑e。
由于軟件生產(chǎn)過程主要是正向過程,即大部分軟件的生產(chǎn)過程是使軟件產(chǎn)品從抽象級別較高的形態(tài)向抽象級別較低的形態(tài)演化,所以較高級別的復用容易帶動較低級別的復用,因而復用的級別越高,可得到的回報也越大,因此分析結果和設計結果在目前很受重視。用戶可購買生產(chǎn)商的分析件和設計件,自己設計或編程,掌握系統(tǒng)的剪裁、擴充、維護、演化等活動。
● 軟件復用的困難
軟件復用各方面的困難,無論是技術問題還是非技術問題,都影響著軟件復用的廣泛實行。
首先構件與應用系統(tǒng)之間的存在差異。一些開發(fā)者開發(fā)的構件,要做到在被另一些人開發(fā)的系統(tǒng)中使用時正好合適,從內(nèi)容到對外接口都恰好相符,或者作很少的修改,這不是一件簡單的事。
其次構件要達到一定的數(shù)量,才能支持有效的復用,而大量構件的獲得需要有很高的投入和長期的積累;當構件達到較大的數(shù)量時,使用者要從中找到一個自己想要的構件,并斷定它確實是自己需要的,也不是一件輕而易舉的事;基于復用的軟件開發(fā)方法和軟件過程是一個新的研究實踐領域,需要一些新的理論、技術及支持環(huán)境,目前這方面的研究成果和實踐經(jīng)驗都不夠充分。
最后,人的因素、管理因素、教育因素、法律因素等等都使軟件的復用更為困難。
●面向對象方法對軟件復用的支持
支持軟件復用是人們對面向對象方法寄托的主要希望之一,也是這種方法受到廣泛重視的主要原因之一。面向對象方法之所以特別有利于軟件復用,是由于它的主要概念及原則與軟件復用的要求十分吻合。
面向對象方法從面向對象的編程發(fā)展到面向對象的分析與設計,使這種方法支持軟件復用的固有特征能夠從軟件生命周期的前期階段開始發(fā)揮作用,從而使面向對象方法對軟件復用的支持達到了較高的級別。與其他軟件工程方法相比,面向對象方法的一個重要優(yōu)點是,它可以在整個軟件生命周期達到概念、原則、術語及表示法的高度一致。這種一致性使得各個系統(tǒng)成分盡管在不同的開發(fā)與演化階段有不同的形態(tài),但可具有貫穿整個軟件生命周期的良好映射。這一優(yōu)點使面向對象方法不但能在各個級別支持軟件復用,而且能對各個級別的復用形成統(tǒng)一的、高效的支持,達到良好的全局效果。做到這一點的必要條件是,從面向對象軟件開發(fā)的前期階段——面向對象分析就把支持軟件復用作為一個重點問題來考慮。運用面向對象分析方法所定義的對象類具有適合作為可復用構件的許多特征,面向對象分析結果對問題域的良好映射,使同類系統(tǒng)的開發(fā)者容易從問題出發(fā),在已有的面向對象分析結果中發(fā)現(xiàn)不同粒度的可復用構件。
●復用技術對面向對象方法的支持
面向對象的軟件開發(fā)和軟件復用之間的關系是相輔相成的。一方面,面向對象方法的基本概念、原則與技術提供了實現(xiàn)軟件復用的有利條件;另一方面,軟件復用技術也對面向對象的軟件開發(fā)提供了有力的支持。
1.類庫
在面向對象的軟件開發(fā)中,類庫是實現(xiàn)對象類復用的基本條件。人們己經(jīng)開發(fā)了許多基于各種OOPL的編程類庫,有力地支持了源程序級的軟件復用,但要在更高的級別上實現(xiàn)軟件復用,僅有編程類庫是不夠的。實現(xiàn)面向對象分析結果和面向對象設計結果的復用,必須有分析類庫和設計類庫的支持。為了更好地支持多個級別的軟件復用,可以在面向對象分析類庫、面向對象設計類庫和面向對象編程類庫之間建立各個類在不同開發(fā)階段的對應與演化關系。即建立一種線索,表明每個面向對象分析的類對應著哪個(或哪些)面向對象設計類,以及每個面向對象設計類對應著各種面向對象編程語言類庫中的哪個面向對象編程類。
2.構件庫
類庫可以看作一種特殊的可復用構件庫,它為在面向對象的軟件開發(fā)中實現(xiàn)軟件復用提供了一種基本的支持。但類庫只能存儲和管理以類為單位的可復用構件,不能保存其他形式的構件;但是它可以更多地保持類構件之間的結構與連接關系。構件庫中的可復用構件,既可以是類,也可以是其他系統(tǒng)單位;其組織方式,可以不考慮對象類特有的各種關系,只按一般的構件描述、分類及檢索方法進行組織。在面向對象的軟件開發(fā)中,可以提煉比對象類粒度更大的可復用構件,例如把某些結構或某些主題作為可復用構件;也可以提煉其他形式的構件,例如use case 或交互圖。這些構件庫中,構件的形式及內(nèi)容比類庫更豐富,可為面向對象的軟件開發(fā)擔供更強的支持。
3.工具
有效地實行軟件復用需要有一些支持復用的軟件工具,包括類庫或構件/構架庫的管理、維護與瀏覽工具,構件提取及描述工具,以及構件檢索工具等等。以復用支持為背景的面向對象分析工具和面向對象設計工具在設計上也有相應的要求,工具對面向對象分析/面向對象設計過程的支持功能應包括:從類庫或構件/構架庫中尋找可復用構件;對構件進行修改,并加入當前的系統(tǒng)模型;把當前系統(tǒng)開發(fā)中新定義的類(或其它構件)提交到類庫(或構件庫)。 (ccw)
- 1網(wǎng)關平臺選購的關鍵指標
- 2協(xié)同OA撬動電子政務新變革
- 3三問IE7反釣魚欺詐
- 4政府云的應用
- 5南昌OA系統(tǒng)數(shù)據(jù)整合(1):借款與報銷
- 6布線在亂局與希望中成長
- 7怎樣提高NCPI的可用性
- 8服務器技術八大走勢
- 9核心網(wǎng)網(wǎng)絡測試技術
- 10如何創(chuàng)建Web服務
- 11走進CCXML標準
- 12利用辦公自動化OA解決企業(yè)管理和辦公難題
- 13管理思想 企業(yè)OA系統(tǒng)的靈魂
- 14企業(yè)管理離不開OA協(xié)同這個潤滑劑
- 15Linux系統(tǒng)包管理器簡化操作
- 16如何配置Linux安全服務管理工具
- 17知識經(jīng)濟方興未艾OA不止于知識容器
- 18網(wǎng)站交互式功能利弊談
- 19泛普軟件:OA辦公系統(tǒng)市場下半年發(fā)展趨勢分析
- 20如何保護VoIP網(wǎng)絡
- 21完全攻略Oracle數(shù)據(jù)庫備份與恢復
- 22如何全面了解云計算?
- 23網(wǎng)絡改造要充分利用現(xiàn)有網(wǎng)絡環(huán)境
- 24未來OA的專、精、細之路
- 25解讀我國服裝產(chǎn)業(yè)信息化現(xiàn)狀及發(fā)展趨勢
- 26簡述硬盤保護技術
- 27信息化現(xiàn)狀分析 企業(yè)IT規(guī)劃成關鍵
- 28消滅網(wǎng)絡擁塞
- 29整體安全注重哪些細節(jié)
- 302013年運營商發(fā)力行業(yè)信息化
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓