posts - 176, comments - 240, trackbacks - 0, articles - 7

          [導(dǎo)入]OpenSource: 超越軟件工程

          Posted on 2007-12-08 02:58 canonical 閱讀(1517) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 軟件開(kāi)發(fā)
              現(xiàn)在講軟件工程的, 所談?wù)摰亩喟胧琼?xiàng)目工程, 即如何在有限的時(shí)間內(nèi)配置使用有限的資源在單個(gè)項(xiàng)目中達(dá)到既定的目標(biāo). 傳統(tǒng)上, 在這一領(lǐng)域基于預(yù)測(cè)和計(jì)劃的瀑布方法曾經(jīng)占據(jù)主流, 但是隨著項(xiàng)目的日益復(fù)雜化, 各種基于演化(evolution)思想的工程方法在實(shí)證中逐漸發(fā)展起來(lái). 在時(shí)空跨度更大的軟件工程領(lǐng)域, 例如延展到軟件的不同版本以及多個(gè)相似項(xiàng)目的工程中, 演化更是逐漸取得了無(wú)可置疑的主導(dǎo)地位. 但是, 從另一個(gè)方面說(shuō), 目前所有這些軟件工程方法所推崇的演化實(shí)際上都是非常有限的, 它們通過(guò)迭代(iteration)所能夠描述的演化過(guò)程都只是片斷性的, 例如一個(gè)項(xiàng)目中的演化, 一個(gè)軟件產(chǎn)品的演化, 最大的莫過(guò)于一整條軟件產(chǎn)品線的演化. 所有這些演化過(guò)程都面臨著一個(gè)天然的屏障: 商業(yè)公司.在公司內(nèi)部, 知識(shí)或代碼可以由開(kāi)發(fā)人員攜帶到下一個(gè)項(xiàng)目, 或者從一個(gè)小組傳播到另外一個(gè)小組, 在新的基礎(chǔ)上繼續(xù)演化的進(jìn)程. 但是核心的知識(shí)或者代碼一般只能通過(guò)商業(yè)交易傳達(dá)到其他公司, 這是一條非常受限制的途徑. 而一個(gè)單個(gè)公司所開(kāi)發(fā)的軟件包, 即使是平臺(tái)級(jí)的產(chǎn)品, 如果只是內(nèi)部使用, 受限于該公司所從事的業(yè)務(wù)領(lǐng)域, 其所面臨的使用檢驗(yàn)也是非常有限的. 而且出于經(jīng)濟(jì)上的原因, 單個(gè)公司往往無(wú)力支撐多個(gè)實(shí)現(xiàn)同樣功能的解決方案, 因而它傾向于消滅軟件中的多樣性, 這有可能會(huì)進(jìn)一步限制演化的進(jìn)程.  
              開(kāi)源(OpenSource)軟件為軟件演化創(chuàng)造了新的可能性.商業(yè)友好的開(kāi)源軟件可以被不同的公司自由的運(yùn)用于不同的業(yè)務(wù), 因而可以參與到不同的局部演化過(guò)程中. 在應(yīng)用的過(guò)程中, 開(kāi)源軟件面臨著巨大的重構(gòu)壓力(這往往是超越了應(yīng)用最廣泛的封閉源碼軟件包的), 有可能保持更快的演化速度. 而通過(guò)對(duì)開(kāi)源軟件的回饋, 對(duì)開(kāi)源軟件的改進(jìn)可以傳播到時(shí)空范圍跨度巨大的軟件開(kāi)發(fā)過(guò)程中. 而且基于源碼的開(kāi)放性, 開(kāi)發(fā)人員的知識(shí)交流也隨之開(kāi)放起來(lái). 類(lèi)比于Darwin進(jìn)化論, 我們可以說(shuō)開(kāi)源驅(qū)動(dòng)了整個(gè)軟件業(yè)界的共同進(jìn)化(co-evolution).
              多年前, Eric Raymond在著名的文章"大教堂和市集"中 http://263.aka.org.cn/Docs/c&b.html, 提出了開(kāi)源的工程價(jià)值, 但其所關(guān)注的重點(diǎn)仍然只是單個(gè)軟件如何在開(kāi)源的模式下演化, 從今天的觀點(diǎn)看來(lái), 這篇戰(zhàn)斗檄文已經(jīng)顯得有些局促了. 開(kāi)源所造就的巨大演化空間遠(yuǎn)遠(yuǎn)超越了軟件工程所能夠提供的. 開(kāi)源軟件現(xiàn)在已經(jīng)在商業(yè)開(kāi)發(fā)領(lǐng)域站穩(wěn)了腳跟,也漸漸超越了單個(gè)公司能夠控制的范圍. 可以說(shuō)開(kāi)源軟件的發(fā)展是無(wú)可逆轉(zhuǎn)的, 我們已經(jīng)不會(huì)也不應(yīng)該再回復(fù)到原先的封閉世界中.
          主站蜘蛛池模板: 萨迦县| 延长县| 嘉祥县| 宿松县| 达日县| 星子县| 宜州市| 潜江市| 黑龙江省| 永川市| 郁南县| 金沙县| 婺源县| 榆社县| 南投县| 宁阳县| 张掖市| 内黄县| 茶陵县| 庆阳市| 南平市| 甘孜县| 霍城县| 洪泽县| 遂平县| 中卫市| 沁水县| 辽阳县| 逊克县| 集安市| 温州市| 都昌县| 建平县| 广德县| 阜康市| 云安县| 绍兴县| 右玉县| 五指山市| 广饶县| 阿拉尔市|