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