◆通過更換零件來維護 當零件出現故障時,更換整個零件要比修理它來得更省錢、更輕松。即使我們的消費者并不喜歡這樣,但是在汽車修理行業而言,往往更換一個新的零件比修理故障零件更經濟而高效。
◆供應鏈 生產成本與總體供應鏈比起來只是很少的一部分。成功的企業能降低整個供應鏈的成本(包括生產),但同時涵蓋分銷等環節。
以上四個特征也適用于軟件行業!鞍磫味ㄗ觥币笪覀冇幸惶资虑岸x的構件目錄,可以方便地進行組裝來滿足具體的用戶需求。每個構件都具備具體特征來對應特定的用戶需求。也可能存在事前制作好的解決方案,用戶可以把一個或多個零件(構件)替換成更好的零件。這種生產方式要求有事前定義的“構件框架(Component Framework)”(參見第2.2.2節“面向構件的架構”)。
“第三方零件市場”必須遵循行業標準和廣為人知的構件之間的互動協議,還需要遵循標準的構件規范,該規范不僅存在而且公開。另外的必要條件是,市場可劃分為解決方案供貨商和構件供貨商;有了面向構件的解決方案,構件供貨商才有提供個體零件的對象。
“通過更換零件來維護”要求能確定問題的來源,并且能用新版本構件方便地替換問題構件,該新版本構件很有可能來自另一個供貨商。拋卻其他問題,我們首先要保證,和解決方案有關聯的這兩個構件具有相同的界面和功能(提供該保證也是第三方零件市場存在和發展的必要條件)。
最后,在談到整個“供應鏈”時,我們必須理解,軟件生產成本只是整個軟件供應鏈中的一個環節。在一個成熟的軟件行業中,開發軟件應該只占用全部成本的一部分,而全部成本則涉及市場推廣、銷售、配送以及支撐性軟件成本。任何一個成功支持“軟件生產產業化”的方法,無論是在軟件的部署、分銷、市場推廣,還是在銷售過程中,都必須以一致的方式出現。
1.3 面向構件的必要條件
概括地說,提高軟件開發效率的關鍵在于提高軟件的復用能力和復用程度! S柳青,《軟件的涅磐》
當前任何一個成熟行業的主要目標都是提供高效的生產能力。對于軟件來說,我們需要這樣一種能夠提供高效軟件生產能力的平臺。以成熟的面向構件的軟件行業特征為基礎,我們可以推斷,這樣的平臺需要具備以下必要特征:
◆必須通過顯著降低開發、部署、定制成本,以及向大規模、高性能、可擴展的系統演變,來降低軟件開發的“制造成本”。換句話說,我們關注的不僅是分析-設計-開發過程,而是軟件產品的整個生命周期。
◆必須能快速響應“業務需求”的變化和“技術變化”。必須能以“按單定做”的方式,響應某個垂直領域或某個特定客戶的不同需求。產品和過程必須高度“可定制”和“可配置”。