【課程簡介】
軟件架構(gòu)是軟件業(yè)的一個重要研究領(lǐng)域,正受到越來越多的關(guān)注,其地位也日益明顯地體現(xiàn)出來.而架構(gòu)設(shè)計師——也就成為軟件系統(tǒng)的較高設(shè)計者。此課程就是為有志成為卓越架構(gòu)師的人準(zhǔn)備的培訓(xùn)課程。作為架構(gòu)設(shè)計師,需要具備統(tǒng)觀全局、分而治之的能力,從子系統(tǒng)的劃分到組件的定義,從系統(tǒng)設(shè)計能力到溝通、協(xié)調(diào),表達能力. 我們系統(tǒng)的組織課程,并由15年經(jīng)驗豐富的講師傳授,為您成長為架構(gòu)設(shè)計師打下堅實的基礎(chǔ)。
本課程通過介紹軟件架構(gòu)視圖和軟件文檔,軟件架構(gòu)設(shè)計過程,軟件架構(gòu)應(yīng)用與常用的架構(gòu)模式/策略/原則等諸多架構(gòu)實際問題,透視軟件架構(gòu)是如何設(shè)計和實現(xiàn)的? 并且介紹應(yīng)該如何應(yīng)用系統(tǒng)架構(gòu)設(shè)計為后期的詳細(xì)設(shè)計和應(yīng)用開發(fā)提供指導(dǎo)。針對大多數(shù)企業(yè)目前是維護遺留系統(tǒng), 該課程介紹了軟件架構(gòu)的監(jiān)控,架構(gòu)的壞癥狀和重構(gòu)方法,因為架構(gòu)設(shè)計的前期不能考慮到所有的問題,設(shè)計包容的架構(gòu). 還針對軟件架構(gòu)常見設(shè)計技術(shù)專題等問題進行了分析并提出了解決方案,并結(jié)合眾多大型軟件項目架構(gòu)案例進行更深入的剖析!
【培訓(xùn)對象】
軟件架構(gòu)師/技術(shù)總監(jiān)/經(jīng)驗豐富技術(shù)人員/高級軟件設(shè)計師
【課程時長】
3天。
【課程大綱】
主題 |
課程內(nèi)容 |
第一單元:軟件架構(gòu)文檔和架構(gòu)視圖-如何有效描述架構(gòu)藍圖
|
一、軟件架構(gòu)的視圖 (1)軟件架構(gòu)視圖的意義, 軟件架構(gòu)師的多維思考 (2)邏輯視圖、開發(fā)視圖、部署視圖、運行視圖、場景視圖,數(shù)據(jù)視圖 ,實現(xiàn)視圖 (3)如何和怎樣繪制軟件架構(gòu)視圖 (4)UML建模工具在架構(gòu)視圖的應(yīng)用 (5)典型案例分析:結(jié)合多個電信,金融行業(yè)項目案例,分析真實項目軟件架構(gòu)視圖
二、軟件架構(gòu)的文檔編寫 (1)軟件架構(gòu)文檔的意義 (2)軟件架構(gòu)模板(根據(jù)實際項目情況選擇合適內(nèi)容) (3)軟件架構(gòu)文檔的結(jié)構(gòu)(避免出現(xiàn)不必要的重復(fù)和缺少關(guān)鍵信息) (4)軟件架構(gòu)文檔必須包含的內(nèi)容(通過多個項目,分析不同系統(tǒng)包含系統(tǒng)內(nèi)容不同) (5)文檔的后期管理(使文檔保持更新) (6)軟件架構(gòu)文檔的評審 (7)典型案例分析:結(jié)合多個電信項目案例,進行分析和評審軟件架構(gòu)文檔
|
第二單元:軟件架構(gòu)設(shè)計關(guān)注點(哪些因素驅(qū)動架構(gòu)設(shè)計,是架構(gòu)開始設(shè)計之前必須知道的?)和架構(gòu)典型策略 |
一、軟件架構(gòu)設(shè)計關(guān)注點(軟件架構(gòu)師在架構(gòu)設(shè)計之前必須考慮的要素) 1. 架構(gòu)設(shè)計的關(guān)注是什么 2. 軟件架構(gòu)的驅(qū)動因素(改變傳統(tǒng)以功能實現(xiàn)和新技術(shù)為驅(qū)動的策略) 3. 軟件質(zhì)量需求對架構(gòu)的影響(質(zhì)量屬性場景定義和對應(yīng)架構(gòu)策略) 4. 軟件功能需求對架構(gòu)的影響(分析功能需求變化點和進化點) 5. 軟件約束條件與架構(gòu)的影響(業(yè)務(wù),運行環(huán)境,開發(fā)團隊,實現(xiàn)技術(shù)等約束) 6. 如何使功能性需求,非功能性需求和平臺細(xì)節(jié)在架構(gòu)中能保持分離,從而改善可維護性和可擴展性 7. 處理功能需求,非功能性需求,平臺細(xì)節(jié).制定架構(gòu)目標(biāo) 8. 典型案例分析:結(jié)合項目,因為分析驅(qū)動因素的錯誤,導(dǎo)致項目不能如期驗收的失敗案例 9. 其中多個真實失敗案例,值得借鑒.
二、軟件架構(gòu)典型策略 (1) 重新認(rèn)識系統(tǒng)質(zhì)量屬性,如何定義質(zhì)量屬性和相應(yīng)的架構(gòu)策略 (2) 系統(tǒng)架構(gòu)的可擴展性設(shè)計策略 (3) 系統(tǒng)架構(gòu)的可靠性設(shè)計策略 (4) 系統(tǒng)架構(gòu)的高性能設(shè)計策略 (5) 系統(tǒng)架構(gòu)的可維護性設(shè)計策略 (6) 系統(tǒng)架構(gòu)的易用性設(shè)計策略 (7) 系統(tǒng)架構(gòu)質(zhì)量屬性和架構(gòu)模式的應(yīng)用 (8) 通過分析案例,了解基本架構(gòu)策略如何應(yīng)用 (9) 思考這些架構(gòu)策略,如何應(yīng)用在自己的實際項目中 |
第三單元:軟件架構(gòu)設(shè)計過程
|
一、軟件架構(gòu)設(shè)計過程 (1)軟件架構(gòu)設(shè)計過程方法論(步驟和相應(yīng)的成果) (2)典型案例分析:結(jié)合具體項目案例進行分析:演示架構(gòu)設(shè)計過程 二、商業(yè)架構(gòu)分析 (1)軟件系統(tǒng)邊界和外部系統(tǒng)接口的定義 (2)大型軟件系統(tǒng)的劃分子系統(tǒng)原則 (4)子系統(tǒng)功能模塊的分解 (5)子系統(tǒng)間的通信接口的設(shè)計 (6)如何應(yīng)對系統(tǒng)內(nèi)部緊耦合、高內(nèi)聚 (7)軟件系統(tǒng)關(guān)鍵質(zhì)量屬性樹和可行性分析 (8)軟件系統(tǒng)部署架構(gòu)(分布式/數(shù)據(jù)分布/通信/安全) (9)軟件系統(tǒng)部署容量評估(主機/中間件/數(shù)據(jù)庫等資源容量評估) (10)典型案例分析:結(jié)合多個項目實例,分析商業(yè)架構(gòu)成果 三、邏輯架構(gòu)設(shè)計 (1)應(yīng)用系統(tǒng)的類型和架構(gòu)風(fēng)格 (2)架構(gòu)模式在實際項目的應(yīng)用 (3)軟件架構(gòu)立方體圖(軟件架構(gòu)的分層,分區(qū)和基礎(chǔ)服務(wù)) (4)軟件架構(gòu)通用機制的分析(如何處理基礎(chǔ)設(shè)施擴展和具體有什么方法做基礎(chǔ)設(shè)施擴展, 掌握如何分離這些基礎(chǔ)設(shè)施用例) (5)使用質(zhì)量場景屬性進行迭代架構(gòu)設(shè)計 (6)軟件架構(gòu)各層的架構(gòu)策略(針對企業(yè)應(yīng)用分層,每層的架構(gòu)策略) (8)軟件系統(tǒng)線程架構(gòu)策略(結(jié)合Apache HTTP Server分析線程和進程的架構(gòu)) (9)典型案例分析:結(jié)合項目實例,進行分析該階段的主要任務(wù)和相關(guān)成果 四、物理架構(gòu)設(shè)計 (1)數(shù)據(jù)架構(gòu)(數(shù)據(jù)模型/數(shù)據(jù)分布/數(shù)據(jù)存取,以及核心數(shù)據(jù)流) (2)用例視圖(抽取典型,有分險和客戶關(guān)心用例進行分析,結(jié)合架構(gòu)進行設(shè)計) (3)實現(xiàn)視圖(架構(gòu),設(shè)計和開發(fā),實現(xiàn)原則和指南) (4)完成架構(gòu)文檔,對架構(gòu)文檔進行評估 (5)典型案例分析:結(jié)合3G增值服務(wù)項目,分析物理架構(gòu)設(shè)計
|
第四單元:軟件架構(gòu)應(yīng)用 |
一、架構(gòu)設(shè)計的評估和驗證 (1)軟件架構(gòu)的驗證(軟件架構(gòu)風(fēng)險驗證) (2)軟件架構(gòu)的驗證方法和指標(biāo)(基于問題檢查表和質(zhì)量屬性樹) (3)軟件架構(gòu)的驗證注意事項 (4)軟件架構(gòu)的評估方式 (5)軟件詳細(xì)設(shè)計和實現(xiàn)時期,架構(gòu)師的職責(zé)和架構(gòu)的監(jiān)控 (6)典型案例分析:結(jié)合項目實例,分析如何進行驗證架構(gòu)和架構(gòu)設(shè)計的后期重構(gòu)技巧 二、架構(gòu)設(shè)計重構(gòu)和復(fù)用 (1)軟件架構(gòu)重構(gòu)概述 (2)軟件架構(gòu)常見的壞癥狀 (4)軟件架構(gòu)的重構(gòu)手段 (5)軟件架構(gòu)的復(fù)用 (6)結(jié)合某公司全球架構(gòu)師團隊架構(gòu)實例,分析架構(gòu)重構(gòu)和架構(gòu)復(fù)用技巧 |
第五單元:軟件應(yīng)用類型和參考架構(gòu)(不同應(yīng)用類型,必須采用不同架構(gòu)風(fēng)格) |
(1)聯(lián)機交易類架構(gòu) (2)Web應(yīng)用系統(tǒng)/大規(guī)模高并發(fā)Web2.0互聯(lián)網(wǎng)系統(tǒng) (3)Client/Server系統(tǒng)(銀行交易系統(tǒng)) (4)連接分析分析系統(tǒng)(移動經(jīng)營分析系統(tǒng)) (5)大規(guī)模實時并發(fā)系統(tǒng)(電信計費系統(tǒng)) (6)Portal系統(tǒng)(個性化和頁面集成系統(tǒng) ) (7)EAI企業(yè)集成系統(tǒng)(基于大規(guī)模消息集成系統(tǒng)) (8)基于WAP系統(tǒng)(多渠道/多種手機接入系統(tǒng)) (9)后臺批處理系統(tǒng)(高并發(fā)后臺批處理類型 銀行后臺系統(tǒng)) (10)基于SOA架構(gòu)系統(tǒng) (11)結(jié)合多個項目案例分析每種應(yīng)用類型的架構(gòu)風(fēng)格特點,主要架構(gòu)挑戰(zhàn)和相應(yīng)對策
|
第六單元:軟件架構(gòu)模式應(yīng)用
|
一、軟件架構(gòu)模式 (1)軟件架構(gòu)模式概述 (2)管道過濾器/事件架構(gòu)/微內(nèi)核/反射架構(gòu)模式(其他10多種常見的架構(gòu)模式) (4).net常見架構(gòu)模式和J2EE架構(gòu)模式 (5)分布式和并發(fā)架構(gòu)模式 (6)典型案例分析:結(jié)合國內(nèi)社保平臺項目分析軟件架構(gòu)模式的應(yīng)用經(jīng)驗 |
第七單元:軟件架構(gòu)的實現(xiàn)-框架和設(shè)計模式 |
1. 應(yīng)用框架(Application framework) (1)框架vs.類庫 (2)軟件架構(gòu)如何以框架的方式實現(xiàn) (3)框架的開發(fā)過程和開發(fā)技術(shù)(通用點vs.擴展點) (4)一個典型框架的實現(xiàn)分析 (5)典型案例分析:結(jié)合項目實例,開發(fā)框架 2.設(shè)計模式技術(shù)在軟件框架設(shè)計之中的應(yīng)用 (1)設(shè)計模式思想(封裝變化) (2)設(shè)計模式的在架構(gòu)設(shè)計之中的綜合應(yīng)用 (3)典型案例分析:結(jié)合項目實例,分析設(shè)計模式在架構(gòu)設(shè)計時期的實際應(yīng)用 |
第八單元:軟件架構(gòu)核心策略(該部分因為時間關(guān)系,僅僅介紹1~2個部分內(nèi)容)
|
1、領(lǐng)域模型架構(gòu) (1)領(lǐng)域模型架構(gòu)策略 (2)領(lǐng)域模型建模(關(guān)聯(lián),屬性) (3)多個系統(tǒng)數(shù)據(jù)模型不一致和領(lǐng)域模型的同步 (4)公共數(shù)據(jù)模型(CDM) (5)領(lǐng)域模型分析模式(模型的選擇會影響產(chǎn)生系統(tǒng)的靈活性和可重用性) (6)根據(jù)電信計費系統(tǒng)和網(wǎng)絡(luò)資源管理案例分析領(lǐng)域模型的架構(gòu) 2、業(yè)務(wù)邏輯和業(yè)務(wù)流程架構(gòu) (1)業(yè)務(wù)邏輯架構(gòu)模式(事務(wù)腳本/領(lǐng)域模型/服務(wù)層模式) (2)業(yè)務(wù)流程架構(gòu)策略 (3)基于容器的業(yè)務(wù)邏輯架構(gòu)(EJB和輕量級,以及容器提供的基礎(chǔ)服務(wù)) (4)面向方面的業(yè)務(wù)架構(gòu)和AOP技術(shù)在業(yè)務(wù)邏輯架構(gòu)的應(yīng)用 (5)狀態(tài)管理架構(gòu)策略(有狀態(tài)和無狀態(tài)服務(wù),以及對可擴展性的影響) (6)業(yè)務(wù)邏輯的分布式架構(gòu)策略(遠(yuǎn)程或本地/同步或異步) (7)并發(fā)和同步架構(gòu)模式(Half-Sync/Half-Async和Leader/Followers和Active Object和Monitor Object) (8)基于中間件的業(yè)務(wù)邏輯架構(gòu)(Corba/Tuxedo/MQSeries/J2EE/.net) (9)典型案例分析:結(jié)合某銀行交易系統(tǒng)分析業(yè)務(wù)邏輯架構(gòu) 3、數(shù)據(jù)存取(持久性)架構(gòu) (1)數(shù)據(jù)存取架構(gòu)策略(對象和關(guān)系數(shù)據(jù)庫的映射) (2)對象關(guān)系阻抗/ORM技術(shù)/數(shù)據(jù)映射SQLMapper (3)緩存技術(shù)在存取層的應(yīng)用/緩存數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)一致性 (4)分布式數(shù)據(jù)存取策略(讀寫分離/分布數(shù)據(jù)/異構(gòu)數(shù)據(jù)存取) (5)數(shù)據(jù)同步和一致性策略 (6)數(shù)據(jù)訪問層的性能考慮 (7)事務(wù)管理(本地事務(wù)和分布式事務(wù),以及事務(wù)補償) (8)數(shù)據(jù)鎖管理(悲觀鎖和樂觀鎖) (9)典型案例分析:結(jié)合零售行業(yè)POS項目分析數(shù)據(jù)訪問層的架構(gòu)設(shè)計 4、數(shù)據(jù)架構(gòu) (1)數(shù)據(jù)架構(gòu)概述 (2)數(shù)據(jù)建模原則和優(yōu)化策略 (3)數(shù)據(jù)分布策略(集中,歸檔,子集,ETL等模式) (4)數(shù)據(jù)復(fù)制和同步策略 (5)數(shù)據(jù)一致性和分布式事務(wù) (6)大數(shù)據(jù)量數(shù)據(jù)庫可擴展性(水平和垂直擴展,讀寫分離)以及單表記錄過大拆分策略 (7) 數(shù)據(jù)庫集群規(guī)劃 (8) 分布式數(shù)據(jù)存取策略(跨多個庫, 可能數(shù)據(jù)庫異構(gòu)類型) (9) 數(shù)據(jù)備份與恢復(fù) (10) 數(shù)據(jù)庫性能規(guī)劃 (11)數(shù)據(jù)安全策略 (12)與遺留系統(tǒng)的數(shù)據(jù)庫兼容性考慮 (13) 結(jié)合電信,金融,零售POS項目實例分析,系統(tǒng)數(shù)據(jù)架構(gòu)設(shè)計策略 5、系統(tǒng)內(nèi)部各組件或?qū)又g通信架構(gòu) (1)系統(tǒng)通信設(shè)計原則 (2)通信機制和通信模式 (3)協(xié)議選擇對性能的考慮 (4)同步還是異步 (5)適配器策略(基于API/數(shù)據(jù)庫/文件/協(xié)議等適配) (6)通信接口設(shè)計策略(統(tǒng)一接口/業(yè)務(wù)分類) (7)數(shù)據(jù)傳輸形式(DTO/XML等) (8) Extension/Explicit/Proxy/Dynamic/Batch 接口形式 (9) 結(jié)合項目實例分析,系統(tǒng)內(nèi)部的通信設(shè)計 6、系統(tǒng)與外部系統(tǒng)的接口架構(gòu) (1)系統(tǒng)接口設(shè)計策略 (2)點對點和基于EAI平臺架構(gòu) (3)系統(tǒng)接口策略(基于文件,共享數(shù)據(jù)庫,同步RPC或者異步消息) (4)系統(tǒng)接口安全/審計/稽核等架構(gòu)策略 (5) 結(jié)合某省電信BSS系統(tǒng)EAI項目實例分析,系統(tǒng)接口架構(gòu)策略 7、系統(tǒng)基礎(chǔ)服務(wù)組件架構(gòu) (1)系統(tǒng)基礎(chǔ)服務(wù)組件架構(gòu)策略 (2)系統(tǒng)通用服務(wù)層與業(yè)務(wù)邏輯分離 (3)系統(tǒng)必備13種基礎(chǔ)服務(wù)架構(gòu)(異常處理/事務(wù)管理/緩存/工作流/校驗/通信/安全/日志/定時觸發(fā)/狀態(tài)/消息通信/系統(tǒng)監(jiān)控/配置管理) (4)業(yè)務(wù)通用服務(wù)架構(gòu)實現(xiàn)策略 (5) 結(jié)合多個項目實例分析,架構(gòu)師如何萃取基礎(chǔ)服務(wù)組件和怎樣設(shè)計實現(xiàn) |
第九單元:大型軟件系統(tǒng)架構(gòu)實踐與剖析 (該案例分別在以上各單元,結(jié)合主題進行介紹) |
綜合軟件架構(gòu)實踐與剖析(以實際項目案例為背景) (1)電信行業(yè)(電信97/移動BOSS/電信MBOSS/經(jīng)營分析)軟件架構(gòu)案例研究 (2)金融行業(yè)(XXX銀行企業(yè)信貸和XXX銀行)軟件架構(gòu)案例研究 (3)政府行業(yè)(XXX社保和XXX稅務(wù))軟件架構(gòu)案例研究 (4)電力行業(yè)(SG168和XXX電網(wǎng)門戶系統(tǒng))軟件架構(gòu)案例研究 (5)大型互聯(lián)網(wǎng)系統(tǒng)架構(gòu)案例研究 (6)郵政行業(yè)(***郵政項目)案例研究 |
第十單元: 軟件架構(gòu)師成長 |
一、軟件架構(gòu)師成長 1. 軟件架構(gòu)師職責(zé) 2. 軟件架構(gòu)師與項目經(jīng)理,產(chǎn)品經(jīng)理,需求分析師不同 3. 軟件架構(gòu)師技能模型 4. 軟件架構(gòu)師如何成長 5. 中國特色的架構(gòu)師(目前國內(nèi)很多架構(gòu)師是身兼多職) |