首頁(yè) 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 繽紛校園 英語(yǔ)學(xué)習(xí)
2010考研 | 自學(xué)考試 | 成人高考 | 專 升 本 | 法律碩士 | MBA/MPA | 中 科 院
四六級(jí) | 商務(wù)英語(yǔ) | 公共英語(yǔ) | 職稱日語(yǔ) | 職稱英語(yǔ) | 博思 | 口譯筆譯 | GRE GMAT | 日語(yǔ) | 托福
雅思 | 專四專八 | 新概念 | 自考英語(yǔ) | 零起點(diǎn)英、、、韓語(yǔ) | 在職申碩英語(yǔ)
在職攻碩英語(yǔ) | 成人英語(yǔ)三級(jí)
等級(jí)考試 | 水平考試 | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 報(bào)檢員 | 外銷(xiāo)員 | 司法考試 | 導(dǎo)游考試 | 教師資格 | 國(guó)際商務(wù)師 | 跟單員
單證員 | 物流師 | 價(jià)格鑒證師 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 人力資源管理師 | 管理咨詢師
期貨從業(yè)資格 | 社會(huì)工作者
會(huì)計(jì)職稱 | 注會(huì)CPA | 經(jīng)濟(jì)師 | 統(tǒng)計(jì)師 | 注冊(cè)稅務(wù)師 | 評(píng)估師 | 精算師 | 高會(huì) | ACCA | 審計(jì)師
法律顧問(wèn) | 會(huì)計(jì)證
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)師 | 監(jiān)理師 | 安全師 | 咨詢師 | 結(jié)構(gòu)師 | 建筑師 | 安全評(píng)價(jià)師
房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 設(shè)備監(jiān)理師 | 巖土工程師 | 質(zhì)量資格 | 房地產(chǎn)經(jīng)紀(jì)人 | 造價(jià)員
投資項(xiàng)目管理 | 土地代理人 | 環(huán)保師 | 環(huán)境影響評(píng)價(jià) | 物業(yè)管理師 | 城市規(guī)劃師 | 公路監(jiān)理師
公路造價(jià)工程師 | 招標(biāo)師
執(zhí)業(yè)護(hù)士 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 衛(wèi)生資格
您現(xiàn)在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 系統(tǒng)分析師 > 正文

軟件架構(gòu)的相關(guān)概念和實(shí)踐

2006年8月底,我有幸參加了一個(gè)架構(gòu)師培訓(xùn),通過(guò)這個(gè)培訓(xùn),清晰了很多概念,結(jié)合自己的知識(shí)和經(jīng)驗(yàn),對(duì)公司軟件應(yīng)用系統(tǒng)的架構(gòu)設(shè)計(jì)有了很多想法,特撰寫(xiě)檔,把自己學(xué)得的系統(tǒng)架構(gòu)知識(shí)和自己的思考與大家共享,希望對(duì)公司設(shè)計(jì)人員進(jìn)行設(shè)計(jì)工作時(shí)有所幫助。中很多內(nèi)容都是我個(gè)人的觀點(diǎn),我個(gè)人技術(shù)的深度和廣度也不夠,肯定會(huì)有不少不太嚴(yán)謹(jǐn)?shù)牡胤健?

1. 系統(tǒng)架構(gòu)知識(shí)

1.1. 什么是企業(yè)應(yīng)用

很難給出一個(gè)精確定義,不過(guò)企業(yè)應(yīng)用一般都有這些特點(diǎn):

持久化數(shù)據(jù)

大量的數(shù)據(jù)

很多人同時(shí)訪問(wèn)數(shù)據(jù)

大量操作數(shù)據(jù)的用戶界面

通常要與散布在企業(yè)周?chē)钠渌髽I(yè)應(yīng)用集成

所以,企業(yè)應(yīng)用一般都比較復(fù)雜,架構(gòu)設(shè)計(jì)大多都是針對(duì)企業(yè)應(yīng)用的。

1.2. 什么是系統(tǒng)架構(gòu)

“架構(gòu)”用很多種不同的定義,這些定義很難統(tǒng)一,但基本上有兩點(diǎn)都能統(tǒng)一:1)架構(gòu)是最高層次的分解 2)架構(gòu)是系統(tǒng)中不易改變的決定。

而通過(guò)這次架構(gòu)培訓(xùn),我這么定義架構(gòu):從核心概念上講,架構(gòu)是一套構(gòu)建系統(tǒng)的規(guī)則;從表象上看,軟件架構(gòu)是一套模板,以文檔、代碼、工具程序等方式表現(xiàn)。(其他更多的軟件架構(gòu)的概念描述,請(qǐng)查看8月24日發(fā)的郵件――《軟件架構(gòu)基礎(chǔ)知識(shí).doc》)

軟件架構(gòu)的成果是一套模板,這套模板會(huì)通過(guò)一種方式去組織,這個(gè)組織形式也很重要,應(yīng)該從不同視角去表現(xiàn),以適合不同人去理解和應(yīng)用。

1.3. 系統(tǒng)架構(gòu)設(shè)計(jì)師干什么

根據(jù)系統(tǒng)架構(gòu)的定義,系統(tǒng)架構(gòu)師的職責(zé)當(dāng)然是制定軟件系統(tǒng)構(gòu)建規(guī)則,不過(guò)一般認(rèn)為,系統(tǒng)架構(gòu)師的主要職責(zé)有:

1) 負(fù)責(zé)領(lǐng)導(dǎo)和協(xié)調(diào)整個(gè)項(xiàng)目中的技術(shù)活動(dòng)

2) 在個(gè)人綜合素養(yǎng)方面,系統(tǒng)構(gòu)架師應(yīng)該具有領(lǐng)導(dǎo)才能,能夠在壓力下作出關(guān)鍵性的決策并善始善終;

3) 能夠贏得項(xiàng)目經(jīng)理、客戶、用戶群體以及管理團(tuán)隊(duì)的認(rèn)同和尊敬,尤其要善于和項(xiàng)目經(jīng)理緊密協(xié)作;

4) 在各個(gè)方面都能展現(xiàn)出面向目標(biāo)的實(shí)干作風(fēng)。在專業(yè)技能方面,與其他角色相比,系統(tǒng)構(gòu)架師通常具有全方位的技能,其見(jiàn)解重在廣度,而不是深度。

5) 系統(tǒng)構(gòu)架師不僅需要具備設(shè)計(jì)師的各項(xiàng)技能,而且應(yīng)該具有問(wèn)題領(lǐng)域和軟件工程領(lǐng)域的實(shí)踐經(jīng)驗(yàn),從而有能力在無(wú)法獲得完整信息的情況下迅速領(lǐng)會(huì)問(wèn)題并根據(jù)經(jīng)驗(yàn)作出審慎的判斷。

6) 如果項(xiàng)目較大,系統(tǒng)構(gòu)架師將是一個(gè)團(tuán)隊(duì),上述的關(guān)鍵素質(zhì)要求可由團(tuán)隊(duì)成員來(lái)分擔(dān),但其中要有一名系統(tǒng)構(gòu)架師具有足夠的權(quán)威。

架構(gòu)師與設(shè)計(jì)師的職責(zé)有所不同,最重要的是架構(gòu)師工作的關(guān)注點(diǎn)是軟件系統(tǒng)的全局問(wèn)題,他是制定軟件系統(tǒng)的規(guī)則和原則的,對(duì)整個(gè)軟件系統(tǒng)進(jìn)行規(guī)劃;設(shè)計(jì)師相對(duì)來(lái)說(shuō)是關(guān)注軟件系統(tǒng)的局部和具體問(wèn)題,把架構(gòu)師的架構(gòu)設(shè)計(jì)進(jìn)行細(xì)化。

架構(gòu)師是由國(guó)外引進(jìn)的一個(gè)概念,國(guó)外軟件開(kāi)發(fā)的幾個(gè)職位是技術(shù)官、架構(gòu)師、設(shè)計(jì)師、開(kāi)發(fā)、測(cè)試,對(duì)應(yīng)我們公司應(yīng)該是技術(shù)總監(jiān)、架構(gòu)師、系統(tǒng)分析員、程序員、測(cè)試人員。

1.4. 常用架構(gòu)設(shè)計(jì)模式

很多OO設(shè)計(jì)原則和設(shè)計(jì)模式同樣適用與架構(gòu)設(shè)計(jì),架構(gòu)中使用這些原則的主要目的是為了使架構(gòu)具有更好的可維護(hù)性和可復(fù)用性,并使架構(gòu)具有穩(wěn)定性,這些目的也是一個(gè)架構(gòu)的核心價(jià)值所在。

模式的定義也不統(tǒng)一,一般是這樣的解釋,每個(gè)模式描述了一個(gè)在我們周?chē)粩嘀貜?fù)發(fā)生的問(wèn)題以及該問(wèn)題解決方案的核心。(在古代流傳至今的“三十六計(jì)”就是三十六個(gè)模式,對(duì)中國(guó)人來(lái)說(shuō),這可能是讓人最容易理解模式概念的一個(gè)類比。)使用模式能夠減少設(shè)計(jì)的難度,更能加快設(shè)計(jì)人員之間交流和溝通。

以下是幾個(gè)常用的頂層架構(gòu)設(shè)計(jì)的模式

1) 分層模式

2) MVC模式

3) 客戶/服務(wù)器模式

4) 流程處理模式

這些模式的介紹在王玉寶8月24日發(fā)的郵件――《軟件架構(gòu)基礎(chǔ)知識(shí).doc》中都有清晰的解釋,這里不在贅述。

1.5. AOP

AOP是OOP的延續(xù),是Aspect Oriented Programming的縮寫(xiě),意思是面向方面編程。AOP實(shí)際是GoF設(shè)計(jì)模式的延續(xù),設(shè)計(jì)模式孜孜不倦追求的是調(diào)用者和被調(diào)用者之間的解耦,AOP可以說(shuō)也是這種目標(biāo)的一種實(shí)現(xiàn)。AOP是近兩年比較熱門(mén)的技術(shù),給我們帶來(lái)了一個(gè)新的視角和軟件架構(gòu)方法。

通過(guò)使用AOP技術(shù),可以把分散在多個(gè)模塊中共同的行為分離出來(lái)統(tǒng)一編程,減少重復(fù)代碼。

AOP和OO、SOA一樣,都是架構(gòu)設(shè)計(jì)中的重要視角。

1) 基本原理

AOP機(jī)制一般都需要開(kāi)發(fā)語(yǔ)言和編譯器支持,Java和.C#都支持。實(shí)現(xiàn)AOP有不同的方法,常見(jiàn)的方法是利用代理機(jī)制,其基本原理是為“其他對(duì)象提供一種代理,以控制對(duì)這個(gè)對(duì)象的訪問(wèn)”。

2) 常見(jiàn)使用AOP技術(shù)的地方

Authentication 權(quán)限驗(yàn)證

Caching 緩存

Context passing 內(nèi)容傳遞

Error handling 錯(cuò)誤處理

Lazy loading 懶加載

Debugging  調(diào)試

logging, tracing, profiling and monitoring 記錄跟蹤 優(yōu)化 校準(zhǔn)

Performance optimization 性能優(yōu)化

Persistence  持久化

Resource pooling 資源池

Synchronization 同步

Transactions 事務(wù)

3) AOP也可以用于封裝業(yè)務(wù)邏輯

比如,進(jìn)銷(xiāo)存軟件中,更多模塊的功能操作都需要重新計(jì)算庫(kù)存,所以可以把庫(kù)存計(jì)算分離出來(lái),用AOP技術(shù)偶合到那些功能模塊中。

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索
軟件架構(gòu)的相關(guān)概念和實(shí)踐網(wǎng)友評(píng)論網(wǎng)友評(píng)論
版權(quán)聲明 --------------------------------------------------------------------------------------
    如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
 gaoxiaoliang