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