系統(tǒng)設(shè)計(jì)之架構(gòu)設(shè)計(jì)

          架構(gòu)設(shè)計(jì)這個(gè)詞聽的非常的多,但真正何謂架構(gòu)設(shè)計(jì)呢??可能要你真的來講還真的講不太清楚,很多人都知道架構(gòu)設(shè)計(jì)是對系統(tǒng)進(jìn)行分層、分模塊進(jìn)行設(shè)計(jì),但又有多少人知道這步應(yīng)該怎么去做呢,往往很多的programmer在剛進(jìn)入架構(gòu)設(shè)計(jì)這個(gè)領(lǐng)域的時(shí)候,受到以前做模塊的那種影響,把自己的眼光限定到了具體的模塊實(shí)現(xiàn)上去了,并沒有站在系統(tǒng)的高度上來把握系統(tǒng)的架構(gòu),這都是些理論性的話,來講點(diǎn)實(shí)際的,^_^,具體架構(gòu)設(shè)計(jì)指的是什么呢?目的是什么呢?如何去做呢?下面來講講我的體會(huì):
          架構(gòu)設(shè)計(jì)指的是站在系統(tǒng)的高度上根據(jù)需求分析對整體系統(tǒng)進(jìn)行把握,包括對于系統(tǒng)運(yùn)行體系、系統(tǒng)擴(kuò)展性、靈活性、性能、部署環(huán)境等方面的考慮。
          目的的話就象上面說的,對系統(tǒng)進(jìn)行分層、分模塊,并為將來技術(shù)性模塊、功能模塊的實(shí)現(xiàn)提供設(shè)計(jì)指導(dǎo),部署指導(dǎo)。
          做法的話我覺得基本是一個(gè)這么樣的步驟:
          1、根據(jù)需求分析產(chǎn)生的問題域形成系統(tǒng)的結(jié)構(gòu)體系(C/S、B/S或其他的),這部分重要的是根據(jù)需求提出最適合的結(jié)構(gòu)體系。
          2、根據(jù)結(jié)構(gòu)體系結(jié)合設(shè)計(jì)思想(分層思想、職責(zé)單一)以及可靠性等進(jìn)行系統(tǒng)的分層設(shè)計(jì),如對B/S結(jié)構(gòu)采用MVC思想進(jìn)行分層,產(chǎn)生View--->Controller---->Action---->Domain Model---->Persistent五層,闡明各層次的職責(zé),并闡述如何實(shí)現(xiàn)這個(gè)層次的運(yùn)行環(huán)境,層次內(nèi)分為了哪些模塊或框架來支撐整個(gè)層次是可運(yùn)行的,這是架構(gòu)設(shè)計(jì)中的重點(diǎn),也就是說為,同時(shí)根據(jù)需求分析產(chǎn)生的問題域中共性的部分進(jìn)行抽象,形成框架,并相應(yīng)的放入上述的層次中,如問題域中共同有對于權(quán)限的需求或者說大部分有這個(gè)需求,就抽象構(gòu)成一個(gè)權(quán)限模塊放入Domain Model中,經(jīng)過這個(gè)過程系統(tǒng)的架構(gòu)圖就得以產(chǎn)生了,架構(gòu)圖體現(xiàn)的是功能模塊的運(yùn)行場所的實(shí)現(xiàn)方案,它做到的依據(jù)此架構(gòu)產(chǎn)生的系統(tǒng)可以支撐目前系統(tǒng)功能模塊的運(yùn)行與需求的實(shí)現(xiàn),同時(shí)在此時(shí)需要考慮到系統(tǒng)的擴(kuò)展方式、性能的考慮。
          3、根據(jù)上面的架構(gòu)圖同時(shí)也可產(chǎn)生系統(tǒng)的物理部署圖,部署圖主要表明了今后系統(tǒng)的部署方式,物理方面的部署要求。
          4、根據(jù)架構(gòu)圖產(chǎn)生系統(tǒng)的模塊視圖,這個(gè)圖表明了在架構(gòu)之上運(yùn)行的系統(tǒng)的功能模塊。
          5、根據(jù)模塊視圖產(chǎn)生系統(tǒng)的模塊依賴視圖,這個(gè)圖主要闡明系統(tǒng)間模塊的依賴關(guān)系。
          6、根據(jù)模塊職責(zé)以及模塊依賴視圖就產(chǎn)生了模塊的接口,對接口進(jìn)行詳細(xì)的設(shè)計(jì)并提供偽代碼。
          經(jīng)過這些步驟后,基本上可以說一個(gè)系統(tǒng)的架構(gòu)設(shè)計(jì)就做好了,接下來就可以對其中的框架采取的技術(shù)進(jìn)行Spike或者說預(yù)研,當(dāng)然,最好是采取自己熟悉的技術(shù)體系,按照這個(gè)技術(shù)體系對架構(gòu)進(jìn)行驗(yàn)證,之后就可以進(jìn)行概要設(shè)計(jì)了,關(guān)于概要設(shè)計(jì)的部分下次再說。
          個(gè)人理解,架構(gòu)設(shè)計(jì)簡單的來說就是根據(jù)對需求產(chǎn)生的問題域進(jìn)行分析產(chǎn)生可供系統(tǒng)功能模塊運(yùn)行的一個(gè)體系結(jié)構(gòu),相當(dāng)于提供功能模塊運(yùn)行容器的設(shè)計(jì)。說起來基本就是這樣的,但做起來就難了,想想如何進(jìn)行分層設(shè)計(jì),如何對層次內(nèi)的運(yùn)行模塊進(jìn)行劃分以支撐整個(gè)體系結(jié)構(gòu)的順利運(yùn)轉(zhuǎn),就拿B/S結(jié)構(gòu)的層次來說,上面的5層結(jié)構(gòu)很多人都采用,但在具體的做法上有很多的不同,質(zhì)量、性能、擴(kuò)展性上也有很多的不同,這些在架構(gòu)設(shè)計(jì)中都是體現(xiàn)出來了的,根據(jù)架構(gòu)設(shè)計(jì)之后的功能模塊就完全可以按照架構(gòu)圖將自己進(jìn)行相應(yīng)的層次劃分并放入里面,至于如何運(yùn)行就交給這個(gè)容器好了,架構(gòu)設(shè)計(jì)就是幫你做好這件事的。

          當(dāng)然,其實(shí)真正做架構(gòu)設(shè)計(jì)時(shí)比這復(fù)雜多了,想想外國佬基本都是沉浸在軟件界10多年甚至幾十年的架構(gòu)師,那些才能稱的上稱職,作為一個(gè)架構(gòu)師需要有足夠的遠(yuǎn)見和預(yù)知能力,保證系統(tǒng)的穩(wěn)定和高效這可不是說做就能做到的,需要有豐富的經(jīng)驗(yàn)。

          個(gè)人對于架構(gòu)設(shè)計(jì)的一些淺薄的理解,還望各位進(jìn)行指正。

          posted on 2005-06-14 22:17 BlueDavy 閱讀(1741) 評論(3)  編輯  收藏 所屬分類: 系統(tǒng)設(shè)計(jì)

          評論

          # re: 系統(tǒng)設(shè)計(jì)之架構(gòu)設(shè)計(jì) 2005-06-14 22:27 jazzy

          閱  回復(fù)  更多評論   

          # re: 系統(tǒng)設(shè)計(jì)之架構(gòu)設(shè)計(jì) 2005-08-26 17:40 nighthawk

          敝人愚見:貫穿架構(gòu)設(shè)計(jì)的同時(shí),是否應(yīng)該有一個(gè)迭代的過程。
          對系統(tǒng)進(jìn)行分層、分模塊以及得出最適合的結(jié)構(gòu)體系之前是否還有個(gè)概念模型的分析過程?  回復(fù)  更多評論   

          # re: 系統(tǒng)設(shè)計(jì)之架構(gòu)設(shè)計(jì) 2005-08-26 18:35 BlueDavy

          同意,但我認(rèn)為那個(gè)過程可以放入需求分析,需求分析時(shí)將會(huì)產(chǎn)生一個(gè)模型  回復(fù)  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

          <2005年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          統(tǒng)計(jì)

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 肇州县| 西丰县| 姜堰市| 昆山市| 满洲里市| 焉耆| 疏勒县| 昭苏县| 岢岚县| 永和县| 连云港市| 陆丰市| 新丰县| 定边县| 农安县| 宁海县| 城固县| 阳城县| 萨迦县| 淮北市| 化德县| 合肥市| 乌鲁木齐市| 景东| 萨迦县| 东源县| 峨山| 含山县| 普安县| 松江区| 九龙县| 天津市| 鲁甸县| 阿拉善左旗| 乌什县| 武平县| 洪湖市| 从江县| 长寿区| 巫溪县| 揭西县|