Web服務(wù)和面向服務(wù)體系結(jié)構(gòu)的特性鼓勵重用,實際上從本質(zhì)上來說它們也需要重用,因為服務(wù)的唯一目標(biāo)是將一整套功能向多個消費者公開。假如這都不是重用,那什么是呢?另外,因為服務(wù)意味著部署一次,就能在適當(dāng)?shù)奈恢迷L問它,它們鼓勵跨越應(yīng)用程序邊界的業(yè)務(wù)流程集合的概念 -- 使一系列支持業(yè)務(wù)流程的服務(wù)交織在一起,業(yè)務(wù)流程可能通過圖形化的設(shè)計時用戶界面來描述。盡管支持這一概念的工具和底層機制還處于初期,但是一些計劃,如BPEL4WS(Business PRocess Execution Language For Web Services),在啟用這種形式的應(yīng)用程序開發(fā)時做出了很大的承諾。盡管期望圖形應(yīng)用程序集合將會完全取代其他開發(fā)技術(shù)的想法不太現(xiàn)實,但是它確實在那些技術(shù)旁找到了自己的位置,并且在這個過程中,鼓勵底層服務(wù)的更有效的重用。 服務(wù)和組件之間具有支持軟件重用的共生關(guān)系。組件通常是服務(wù)背后的底層機制,或者完全實現(xiàn)了服務(wù)所定義的功能,或者為使用一個或多個遺留系統(tǒng)連接到現(xiàn)代web服務(wù)基礎(chǔ)結(jié)構(gòu)提供了必需的附帶代碼。
軟件工程過程和工具 過去的十年已經(jīng)朝著遵守規(guī)則和有效的軟件開發(fā)環(huán)境邁進了一大步。迭代方法,比如RUP(Rational Unified Process)鼓勵要害需求的早期發(fā)現(xiàn)、實施和提煉。在有規(guī)律和及時基礎(chǔ)上的增量改進與重量級的瀑布方法有巨大差別,瀑布方法經(jīng)常導(dǎo)致軟件的晚交付,并且無法滿足用戶需求,這種情況不少,因為用戶需求經(jīng)常會隨時間改變。 RUP和其他軟件開發(fā)環(huán)境通過在開發(fā)過程中引入特定的Software Development Asset (SDA)搜索和重用回顧檢查點來鼓勵重用。這些搜索和回顧活動發(fā)生在開發(fā)生命周期的所有層次上,從最初的需求定義,到分析和設(shè)計,以及到實施。現(xiàn)代基于UML的建模技術(shù)也通過為分析師和開發(fā)人員提供一個明確定義功能需求的簡單圖形方式來鼓勵重用。這種形式的需求可以被其他開發(fā)工具使用,比如代碼生成器、映射引擎和資產(chǎn)元數(shù)據(jù)資料庫。基于UML的IDE工具不僅可以用于創(chuàng)建UML,而且也適用于可重用的知識SDA,例如設(shè)計模式到結(jié)果代碼,自動在源代碼和模型之間保持一致。