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

          導(dǎo)航

          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(20)

          我參與的團(tuán)隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          links

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

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

          Posted on 2007-12-08 02:58 canonical 閱讀(1522) 評論(0)  編輯  收藏 所屬分類: 軟件開發(fā)
              現(xiàn)在講軟件工程的, 所談?wù)摰亩喟胧琼椖抗こ? 即如何在有限的時間內(nèi)配置使用有限的資源在單個項目中達(dá)到既定的目標(biāo). 傳統(tǒng)上, 在這一領(lǐng)域基于預(yù)測和計劃的瀑布方法曾經(jīng)占據(jù)主流, 但是隨著項目的日益復(fù)雜化, 各種基于演化(evolution)思想的工程方法在實證中逐漸發(fā)展起來. 在時空跨度更大的軟件工程領(lǐng)域, 例如延展到軟件的不同版本以及多個相似項目的工程中, 演化更是逐漸取得了無可置疑的主導(dǎo)地位. 但是, 從另一個方面說, 目前所有這些軟件工程方法所推崇的演化實際上都是非常有限的, 它們通過迭代(iteration)所能夠描述的演化過程都只是片斷性的, 例如一個項目中的演化, 一個軟件產(chǎn)品的演化, 最大的莫過于一整條軟件產(chǎn)品線的演化. 所有這些演化過程都面臨著一個天然的屏障: 商業(yè)公司.在公司內(nèi)部, 知識或代碼可以由開發(fā)人員攜帶到下一個項目, 或者從一個小組傳播到另外一個小組, 在新的基礎(chǔ)上繼續(xù)演化的進(jìn)程. 但是核心的知識或者代碼一般只能通過商業(yè)交易傳達(dá)到其他公司, 這是一條非常受限制的途徑. 而一個單個公司所開發(fā)的軟件包, 即使是平臺級的產(chǎn)品, 如果只是內(nèi)部使用, 受限于該公司所從事的業(yè)務(wù)領(lǐng)域, 其所面臨的使用檢驗也是非常有限的. 而且出于經(jīng)濟(jì)上的原因, 單個公司往往無力支撐多個實現(xiàn)同樣功能的解決方案, 因而它傾向于消滅軟件中的多樣性, 這有可能會進(jìn)一步限制演化的進(jìn)程.  
              開源(OpenSource)軟件為軟件演化創(chuàng)造了新的可能性.商業(yè)友好的開源軟件可以被不同的公司自由的運用于不同的業(yè)務(wù), 因而可以參與到不同的局部演化過程中. 在應(yīng)用的過程中, 開源軟件面臨著巨大的重構(gòu)壓力(這往往是超越了應(yīng)用最廣泛的封閉源碼軟件包的), 有可能保持更快的演化速度. 而通過對開源軟件的回饋, 對開源軟件的改進(jìn)可以傳播到時空范圍跨度巨大的軟件開發(fā)過程中. 而且基于源碼的開放性, 開發(fā)人員的知識交流也隨之開放起來. 類比于Darwin進(jìn)化論, 我們可以說開源驅(qū)動了整個軟件業(yè)界的共同進(jìn)化(co-evolution).
              多年前, Eric Raymond在著名的文章"大教堂和市集"中 http://263.aka.org.cn/Docs/c&b.html, 提出了開源的工程價值, 但其所關(guān)注的重點仍然只是單個軟件如何在開源的模式下演化, 從今天的觀點看來, 這篇戰(zhàn)斗檄文已經(jīng)顯得有些局促了. 開源所造就的巨大演化空間遠(yuǎn)遠(yuǎn)超越了軟件工程所能夠提供的. 開源軟件現(xiàn)在已經(jīng)在商業(yè)開發(fā)領(lǐng)域站穩(wěn)了腳跟,也漸漸超越了單個公司能夠控制的范圍. 可以說開源軟件的發(fā)展是無可逆轉(zhuǎn)的, 我們已經(jīng)不會也不應(yīng)該再回復(fù)到原先的封閉世界中.
          主站蜘蛛池模板: 临邑县| 安多县| 清徐县| 罗平县| 盐源县| 诸城市| 洮南市| 曲麻莱县| 锡林浩特市| 蒲江县| 称多县| 河曲县| 屯昌县| 土默特右旗| 始兴县| 涪陵区| 武山县| 宿松县| 漳平市| 青田县| 诏安县| 曲沃县| 牡丹江市| 敖汉旗| 噶尔县| 钟祥市| 洛宁县| 绍兴县| 红河县| 金乡县| 井陉县| 丹棱县| 黄山市| 通江县| 托里县| 乌兰浩特市| 和田市| 文安县| 通山县| 织金县| 阿拉善左旗|