質(zhì)量和快速決定了軟件架構(gòu)

          軟件架構(gòu)的選擇和設(shè)計并不是很容易做出的,一個成功的軟件架構(gòu)取決于N多的因素,軟件架構(gòu)這個詞向來就是最為模糊的一個詞,個人認(rèn)為軟件架構(gòu)實在是個很大的話題,業(yè)界一直采用的形象比喻就是建設(shè)房子時的房屋結(jié)構(gòu)圖,以軟件的角度來說,軟件架構(gòu)應(yīng)至少包括軟件開發(fā)時使用什么語言、形成軟件開發(fā)時可運行的核心基礎(chǔ)框架、軟件應(yīng)用模塊的設(shè)計(包括模塊內(nèi)聚的功能、對外提供的服務(wù)等)、軟件測試的方法、軟件部署的方法以及團隊開發(fā)的方法,那么怎么來選擇和設(shè)計軟件架構(gòu)呢,其衡量的因素是什么呢,個人認(rèn)為其中質(zhì)量和快速是衡量軟件架構(gòu)的選擇和設(shè)計是否成功的兩個最重要的因素。
          為什么說質(zhì)量和快速是兩個最重要的因素呢?首先來看看這里的質(zhì)量和快速分別包含了什么內(nèi)容:
          質(zhì)量
          軟件的質(zhì)量是軟件能否成功的非常非常重要的因素,就個人看來,軟件質(zhì)量應(yīng)包括軟件功能性需求的實現(xiàn)、軟件非功能性需求的實現(xiàn)。
          軟件功能性需求中最重要的就是要確定對于客戶而言商業(yè)價值最高的部分是什么,這一項對于軟件架構(gòu)而言的影響是軟件應(yīng)用模塊的設(shè)計上,而軟件應(yīng)用模塊的設(shè)計呢,通常要取決于可運行的核心基礎(chǔ)框架的設(shè)計和實現(xiàn)上;
          軟件非功能性需求則通常會包含很多要素,像軟件靈活性、可擴展性、高響應(yīng)等,在這些眾多的要素中同樣要選擇出對于目前軟件最重要的要素是什么,這會影響到軟件架構(gòu)中的軟件開發(fā)語言的選擇、可運行的核心基礎(chǔ)框架。
          軟件的質(zhì)量還有需要考慮的要素就是軟件測試的方法了(這也會影響到選擇什么語言來開發(fā)軟件),這點對于軟件質(zhì)量而已,無疑是非常重要的一點。
          快速
          軟件能否快速開發(fā)完成也已經(jīng)成為了軟件能否成功的重要因素,快速開發(fā)完成的意思非常容易理解,但它其實很大的程度影響到了軟件架構(gòu)的選擇和設(shè)計,很明顯的它將影響到軟件開發(fā)使用什么語言、軟件開發(fā)時可運行的核心基礎(chǔ)框架、軟件部署的方法以及團隊開發(fā)的方法等等,團隊中的人很大程度上決定了軟件開發(fā)時使用什么語言(這個時候也要注意,其實什么語言會影響到開發(fā)的速度、開發(fā)的質(zhì)量等,例如erLang的設(shè)計目標(biāo)是為了可構(gòu)建容錯的系統(tǒng)、c則更適合從底層控制整個系統(tǒng)的交互、java具備豐富的基礎(chǔ)庫、業(yè)界資源和更適合復(fù)雜業(yè)務(wù)的需求),至于核心基礎(chǔ)框架、部署的方法、團隊開發(fā)的方法的設(shè)計都是為了快速這個目標(biāo)的。
          從上面的兩個因素我們可以看到,要使得軟件高質(zhì)量且快速的完成,軟件架構(gòu)在選擇和設(shè)計上時非常重要的是尋找到一種平衡,所以軟件架構(gòu)要做到模式化其實并不容易。
          在這里多說下別的話,其實從上面所述能看出,去評論哪種語言會死是沒有什么意義的,并不會有一種語言放在任何環(huán)境下都適合,就像在互聯(lián)網(wǎng)網(wǎng)站的建設(shè)上,我想可能很多人都會選擇php+c或類似的語言體系,但大家其實可以仔細(xì)去想想,是不是網(wǎng)站的建設(shè)上一定要這樣的兩種語言才能承擔(dān)互聯(lián)網(wǎng)的高并發(fā)等需求呢,或許你更應(yīng)該做的是從該網(wǎng)站最重要的非功能性需求、團隊等等因素來考慮,就像如果你的團隊是java性質(zhì)的團隊,而網(wǎng)站最重要的非功能性需求又是支持業(yè)務(wù)的靈活性的話,那么我會覺得c這樣的過程化語言絕對不是這種情況下的最佳選擇,而java卻是這種情況下的最佳選擇,可能很多人會說java太慢呀,什么的,其實并不盡然,很多時候靠硬件以及優(yōu)秀的架構(gòu)完全可以彌補掉java比c這樣的程序運行相對更慢的毛病,:),這也算是給java的一個平反吧,呵呵,畢竟java相對c而言還有更大的好處那就是java程序的開發(fā)無論從質(zhì)量還是快速開發(fā)上肯定強于c,我這樣說并不是說一定要選擇java,我只是想說明應(yīng)該根據(jù)什么樣的情況來選擇和設(shè)計什么樣的架構(gòu),那才是最合理的,所以架構(gòu)永遠(yuǎn)都沒有最好的,只有最合適的,而這也是架構(gòu)師最難做的原因,架構(gòu)師在做架構(gòu)的設(shè)計和選擇時遵循的出發(fā)點就是保證軟件高質(zhì)量且快速的完成。

          posted on 2007-10-11 02:00 BlueDavy 閱讀(3832) 評論(5)  編輯  收藏 所屬分類: 業(yè)界隨想

          評論

          # re: 質(zhì)量和快速決定了軟件架構(gòu) 2007-10-11 08:06 久城

          拜讀了。.......雖然,我還沒到那個層次.......

          “去評論哪種語言會死是沒有什么意義的,并不會有一種語言放在任何環(huán)境下都適合”.......UP!  回復(fù)  更多評論   

          # re: 質(zhì)量和快速決定了軟件架構(gòu) 2007-10-11 08:47 Unmi

          讀完了,我一直也是煩于見到什么語言會死的標(biāo)題,只要能很好的解決實際問題就可以選擇,什么語言會死的標(biāo)題更像是新聞記者們的伎倆。  回復(fù)  更多評論   

          # re: 質(zhì)量和快速決定了軟件架構(gòu) 2007-10-11 09:08 千里冰封

          頂了  回復(fù)  更多評論   

          # re: 質(zhì)量和快速決定了軟件架構(gòu) 2009-01-19 11:19 甩棍

          讀完了,我一直也是煩于見到什么語言會死的標(biāo)題,只要能很好的解決實際問題就可以選擇,什么語言會死的標(biāo)題更像是新聞記者們的伎倆。   回復(fù)  更多評論   

          # re: 質(zhì)量和快速決定了軟件架構(gòu) 2010-11-01 15:33 @joe

          架構(gòu)永遠(yuǎn)都沒有最好的,只有最合適的
          不錯,先轉(zhuǎn)載了,呵呵  回復(fù)  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          統(tǒng)計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 蕲春县| 探索| 永丰县| 伊春市| 乌苏市| 昌都县| 昌吉市| 哈尔滨市| 崇文区| 尉犁县| 方山县| 信丰县| 齐齐哈尔市| 江达县| 高密市| 琼海市| 祁阳县| 湘西| 韶山市| 天峨县| 含山县| 左云县| 象州县| 大宁县| 墨竹工卡县| 焦作市| 孟连| 平舆县| 平泉县| 永川市| 承德市| 禹城市| 巫溪县| 花莲市| 长宁区| 武义县| 嵊泗县| 洞头县| 芦山县| 紫金县| 白玉县|