軟件架構(gòu)設(shè)計思考之一

          架構(gòu)設(shè)計,一直就是軟件業(yè)界中顯得高深的名詞之一,會造成很多的人對于它都充滿了神秘感,但接觸過幾年軟件業(yè)的人很多時候又會覺得軟件架構(gòu)原來不過如此,特別是看到一些架構(gòu)設(shè)計文檔后更是得出如此的感想,但真的是如此嗎?也許是因為那些架構(gòu)設(shè)計文檔并沒有起到它們真正的作用,只是拿來糊糊人的吧,架構(gòu)設(shè)計文檔最重要的是要能對系統(tǒng)的軟件設(shè)計做出指導(dǎo),做出規(guī)范性的約束,不談這些,重點還是談架構(gòu)設(shè)計。
          首先我們想想為什么要做架構(gòu)設(shè)計呢?可能很多人會說在他們的系統(tǒng)中就是沒做架構(gòu)設(shè)計的,但其實不管你有沒有做架構(gòu)設(shè)計,你的腦海中或多或少都是已經(jīng)考慮過的,只是也許沒有變的那么的正規(guī),首先,我們來看看什么是架構(gòu),架構(gòu)作為系統(tǒng)的骨架而存在,正因為這個原因才說所有的系統(tǒng)都是有架構(gòu)的,有架構(gòu)自然就有設(shè)計,盡管它也許只是浮在你腦海中的某個東西而已,從架構(gòu)中我們可以看到對于整個系統(tǒng)的支持,包括系統(tǒng)的各個方面,業(yè)務(wù)需求、用戶需求以及功能需求的滿足,架構(gòu)設(shè)計能幫助你站在高的角度來看待、分析整個系統(tǒng),在架構(gòu)設(shè)計中通常采用OOAD的方法來幫助完成架構(gòu)設(shè)計,想想沒有架構(gòu)設(shè)計的系統(tǒng)是什么系統(tǒng)呢?是一個沒有骨架的系統(tǒng),一個人沒有骨架會怎么樣呢?那么,同樣,一個系統(tǒng)呢?一個系統(tǒng)沒有骨架甚至比一個人沒有骨架更為嚴(yán)重。
          那么我們怎么去做架構(gòu)設(shè)計呢?架構(gòu)來源于需求,是在對需求進行分析、設(shè)計的情況下產(chǎn)生出來的,一個系統(tǒng)的需求通常非常的復(fù)雜,那么怎么樣去產(chǎn)生它的架構(gòu)呢?我們知道軟件設(shè)計中最重要的就是抽象,其實說的更為專業(yè)應(yīng)該是采用OO的思想,在過去采用的是面向過程的思想,這里就不再去討論為什么要采用OO了,OO中幾個重要的思想就是抽象、繼承、封裝,在分析和設(shè)計時我們同樣要進行遵循,分析過程是對需求進行分析,產(chǎn)生出概念模型,此概念模型和設(shè)計的模型是不同的,概念模型停留于業(yè)務(wù)層面,而設(shè)計模型則為對此概念模型提出技術(shù)級別的解決實現(xiàn)方案,在經(jīng)歷了分析、設(shè)計過程后我們的系統(tǒng)架構(gòu)就得以誕生,系統(tǒng)架構(gòu)作為系統(tǒng)的一部分,同樣要面臨需求變化所帶來的影響,而同時系統(tǒng)架構(gòu)作為系統(tǒng)最為基礎(chǔ)的部分,是要盡量減少變化所帶來的影響的,要解決這個矛盾,在做架構(gòu)設(shè)計時就要多多的考慮,可以采用使用模式、接口化等多種方式。
          大家也許也看出,在寫這篇blog我表達的并不是很清楚,確實,因為我自己都還有不少迷惑的地方,雖然寫過那么幾篇架構(gòu)設(shè)計文檔,做過那么幾次架構(gòu)設(shè)計,但一直以來就覺得以前做的架構(gòu)設(shè)計不是那么的到位,通常有些部分還是平白無故就誕生出來了,而這些主要是依據(jù)的自己的經(jīng)驗,而不是對需求的分析,這對于系統(tǒng)架構(gòu)而言是致命的,覺得現(xiàn)在也是靜下心來好好考慮的時候了,同時也會多多的參看架構(gòu)設(shè)計理論方面的書籍,結(jié)合實踐提升自己在架構(gòu)設(shè)計上的水平,所以將這篇blog的標(biāo)題定位了思考之一,在思考的有些進展的時候會將這個繼續(xù)的寫下去,也希望能得到更多的做過架構(gòu)設(shè)計的同仁、前輩的指點。

          posted on 2005-09-25 23:01 BlueDavy 閱讀(3552) 評論(5)  編輯  收藏 所屬分類: 系統(tǒng)設(shè)計

          評論

          # re: 軟件架構(gòu)設(shè)計思考之一 2005-09-26 13:50 barry

          不錯。希望盡快能看到下一篇文章。
            回復(fù)  更多評論   

          # re: 軟件架構(gòu)設(shè)計思考之一 2006-09-24 20:08 超越巔峰

          看來你的架構(gòu)設(shè)計及其編檔還有些不了解。你有沒有想過架構(gòu)設(shè)計和一般設(shè)計的區(qū)別,推薦你看看CMU的SEI叢書及了解一些RUP 4+1 view。  回復(fù)  更多評論   

          # re: 軟件架構(gòu)設(shè)計思考之一 2006-09-24 22:35 BlueDavy

          @超越巔峰
          多謝指導(dǎo)!  回復(fù)  更多評論   

          # re: 軟件架構(gòu)設(shè)計思考之一 2006-10-11 16:17 博天

          我剛接觸架構(gòu)這個概念,看了你的文章后現(xiàn)在有基本的了解,謝謝  回復(fù)  更多評論   

          # re: 軟件架構(gòu)設(shè)計思考之一 2007-12-26 23:15

          不知所云  回復(fù)  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統(tǒng)計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 博兴县| 苏尼特左旗| 手机| 白水县| 神农架林区| 隆安县| 洮南市| 荆州市| 伽师县| 兰西县| 山东省| 湖口县| 遂昌县| 内丘县| 渝中区| 贵南县| 平谷区| 泾源县| 梁河县| 平远县| 栖霞市| 东至县| 体育| 柏乡县| 镇坪县| 丹棱县| 孝义市| 东至县| 亚东县| 赣榆县| 易门县| 巴彦淖尔市| 双江| 荣昌县| 砚山县| 科尔| 葵青区| 湾仔区| 阿图什市| 海盐县| 阳泉市|