軟件復(fù)用本質(zhì)是為了快速適應(yīng)不斷變化的需求(adapt to changing needs ),兩者目標(biāo)是一致的,但是當(dāng)我們過于注重軟件復(fù)用(如組件復(fù)用component reuse又譯構(gòu)件復(fù)用)時,千萬需要牢記:快速適應(yīng)不斷變化的需求是根本目的,它的重要性要重于組件復(fù)用技術(shù)本身。本文試圖闡述兩者概念比較以及時下流行的組件復(fù)用技術(shù)概要。
適應(yīng)需求變化
現(xiàn)如今是一個計劃趕不上變化的時代,企業(yè)競爭力逐漸表現(xiàn)在企業(yè)適應(yīng)變化能力的競爭,誰能更快適應(yīng)市場的變化,誰就能夠在競爭中勝出,這種快速適應(yīng)能力如果靠“人民戰(zhàn)爭”無疑是不現(xiàn)實(shí)的,軟件可以幫助我們來適應(yīng)這種快速變化。 談到這里,稍微再說明一下國人軟件教育的誤區(qū),不錯,軟件曾經(jīng)是科學(xué)計算的工具,因此,我們非常注重軟件的算法和數(shù)據(jù)結(jié)構(gòu),甚至將之作為數(shù)學(xué)的衍生物,但是,現(xiàn)如今已經(jīng)成為一種幫助我們快速響應(yīng)變化的有力工具,如果我們的教育背景中只有算法和數(shù)據(jù)結(jié)構(gòu),能夠編制出應(yīng)付快速變化的軟件嗎?很顯然,他們是風(fēng)馬牛不相及,由此可見國人軟件概念和軟件教育的落后性,在這樣的軟件認(rèn)識背景下,固然設(shè)計模式的崇高位置得不到確立,軟件設(shè)計被拋棄在腦后,編制出的大多數(shù)企業(yè)軟件系統(tǒng)根本不具備應(yīng)付變化的能力,程序員拒絕頻繁更改程序,甚至借助技術(shù)原因阻擾軟件的頻繁更改,這種軟件程序員和軟件用戶之間的矛盾可以稱為miscommunication, miscommunication是導(dǎo)致軟件系統(tǒng)的失敗一個重要原因。 國內(nèi)早就有著名言論:“不上ERP等死;上了ERP找死”,如果你的企業(yè)不上ERP,那么你的企業(yè)就不能借助軟件應(yīng)付快速的市場等環(huán)境變化,那么必然會被淘汰;但是,如果上了一個不注重“適應(yīng)需求變化”的ERP軟件系統(tǒng),那就是企業(yè)被僵化的ERP軟件框死,喪失了使用ERP的根本目的。 適應(yīng)需求變化則成為現(xiàn)代軟件系統(tǒng)一個孜孜不倦的追求目標(biāo),那么如何實(shí)現(xiàn)呢? 原則:給予人們可以裁剪他們系統(tǒng)的能力應(yīng)適應(yīng)需求變化,建立一個適應(yīng)需求變化的系統(tǒng),允許系統(tǒng)在一系列小的、可控制的步驟上進(jìn)行改變。
組件誕生
將不變的通用的東西抽象出來,以達(dá)到在不同項目中重用復(fù)用,將我們有限的精力集中在項目具體變化和特點(diǎn)上。當(dāng)然這些抽象復(fù)用的東西之間彼此必須是松耦合,這樣才能根據(jù)需求挑選組合。 讓我們先回顧一下軟件的發(fā)展史,軟件開發(fā)的發(fā)展史實(shí)際是一部我們思維不斷抽象拔高的發(fā)展過程,這種抽象概念非常類似于建模的思考方式:概要貼切地描述事物,忽視次要的細(xì)節(jié)。抽象體現(xiàn)在軟件開發(fā)上就是每個具體項目需要完成的代碼行數(shù)量越來越少。 從1970到1980這段時間,軟件開發(fā)從機(jī)器語言到匯編語言。進(jìn)而發(fā)展到高級語言,甚至一些CASE工具,面向功能編程發(fā)展到面向?qū)ο缶幊?,功能模塊重用細(xì)化到類的重用,類的重用是最初是通過設(shè)計模式實(shí)現(xiàn)的。 進(jìn)入90年代中期,誕生了基于組件的開發(fā)模式(CBD:component based development),CBD將抽象概念帶往了一個新的方向,與減少代碼數(shù)量相反,CBD將功能各個方面細(xì)化分離到不同的、相互隔離層中,如表現(xiàn)層、業(yè)務(wù)邏輯層、持久層、安全層以及核心層等,并且可以管理這些組件之間的依賴關(guān)系,通過這種分離,我們可以提純細(xì)化組件功能,進(jìn)而產(chǎn)生可以重用的框架,如Struts框架可以重用在大部分應(yīng)用系統(tǒng)的表現(xiàn)層中,,Struts+JdonFramework+Hibernate是一個框架組合,代表一種架構(gòu)設(shè)計,這種架構(gòu)設(shè)計其實(shí)可以重用在大部分應(yīng)用系統(tǒng),這種重用我稱之為架構(gòu)級別重用。
組件復(fù)用
軟件組件(Software components)是軟件提供業(yè)務(wù)或技術(shù)功能的基本單元或元素
項目經(jīng)理勝任力免費(fèi)測評PMQ上線啦!快來測測你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html