課程費用

5800.00 /人

課程時長

2

成為教練

課程簡介

軟件架構(gòu)的概念:構(gòu)件及協(xié)作關(guān)系;典型的軟件架構(gòu)介紹:分層架構(gòu)及其派生類型;面向服務(wù)的架構(gòu)設(shè)計:SOA;面向云的架構(gòu)設(shè)計;用UML圖表達軟件架構(gòu);設(shè)計項跟蹤及其架構(gòu)重構(gòu);用代碼表達架構(gòu);數(shù)據(jù)訪問設(shè)計;業(yè)務(wù)邏輯設(shè)計;界面邏輯設(shè)計;.NET和C++互操作設(shè)計...等內(nèi)容。

目標(biāo)收益

培訓(xùn)對象

課程大綱

軟件架構(gòu)的概念:構(gòu)件及協(xié)作關(guān)系 ? - 架構(gòu)關(guān)注點,定義構(gòu)件邊界+構(gòu)件之間通信 ?
- 構(gòu)件的描述:4+1視圖 ?
- 非功能性需求:可用性、可靠性、魯棒性、可維護性,可擴展性,可測性,性能,可復(fù)用性、模塊化、易部署性等 ?
- 架構(gòu)設(shè)計方法:場景驅(qū)動的迭代架構(gòu)設(shè)計 ?
- 架構(gòu)師角色:輸入需求,輸出架構(gòu) ?
- 討論:如何才能成為一名合格的架構(gòu)師? ?
- 案例導(dǎo)入:必應(yīng)詞典的架構(gòu)介紹
典型的軟件架構(gòu)介紹:分層架構(gòu)及其派生類型 - 一般分層模型:數(shù)據(jù),業(yè)務(wù)+界面
- 典型的分層模型:B/S架構(gòu),C/S架構(gòu)和富客戶端應(yīng)用
- 實例:JSP/JSF應(yīng)用,ASP.NET應(yīng)用,AJAX應(yīng)用,REST風(fēng)格應(yīng)用
- 練習(xí):開發(fā)一個簡單的B/S應(yīng)用
- 案例討論:必應(yīng)詞典的分層架構(gòu)
面向服務(wù)的架構(gòu)設(shè)計:SOA ? - 架構(gòu)的核心元素:容器,組件,接口和通信 ?
- 理解容器:基礎(chǔ)服務(wù),承載組件,容器間通信 ?
- 典型的容器:.NET WCF容器,J2EE應(yīng)用服務(wù)器如GlassFish ,COM容器 ?
- 理解組件:使用容器,實現(xiàn)接口,組件間通信 ?
- 非侵入式設(shè)計:使用批注擴展組件/容器 ?
- 典型的組件:WEB服務(wù),.NET WCF服務(wù) ,EJB Bean(消息,會話)等,COM組件,CORBA組件等 ?
- 理解接口:約定功能,服務(wù)接口,遠(yuǎn)程/本地接口 ?
- 練習(xí):編寫一個簡單的基于SOA的C/S應(yīng)用 ?
- 案例討論:必應(yīng)詞典中的服務(wù)
面向云的架構(gòu)設(shè)計 - 云架構(gòu):云為容器,提供運算,存儲和通信等基礎(chǔ)服務(wù)
- 公有云應(yīng)用:數(shù)據(jù),邏輯,界面都由公共云承載
- 混合云應(yīng)用:部分?jǐn)?shù)據(jù)/邏輯本地服務(wù)器+公有云;
- 云應(yīng)用的消息總線模型:將公有云模擬為本地資源統(tǒng)一通信
- 練習(xí):設(shè)計,實現(xiàn)并部署一個基于SOA的B/S架構(gòu)的云應(yīng)用
- 案例討論:從WEB詞典到云詞典
用UML圖表達軟件架構(gòu) ? - UML圖概述:7種UML圖及繪制工具(例如VS2010的架構(gòu)師工具/ROSE繪圖工具/VISIO繪圖工具) ?
- 用例視圖:表達需求,定義系統(tǒng)邊界 ?
- 邏輯視圖:類及其關(guān)系,類的組織 ?
- 進程視圖:表達運行時對象間的協(xié)作關(guān)系,活動圖,序列圖 ?
- 部署視圖:描述物理組件如何分發(fā)配置到服務(wù)器 ?
- 開發(fā)視圖:描述在開發(fā)環(huán)境中軟件的靜態(tài)組織結(jié)構(gòu) ?
- 練習(xí):用UML圖描述一個SOA小應(yīng)用架構(gòu)
性能設(shè)計 - 主要性能指標(biāo):平均響應(yīng)時間、吞吐量或并發(fā)數(shù)、持續(xù)高速性
- 影響性能的主要因素:算法,實現(xiàn),數(shù)據(jù)庫設(shè)計,通信
- 性能瓶頸探測:性能探測工具及探測報告
- 練習(xí):用性能探測工具探測性能,壓力測試及內(nèi)存消耗
- 討論:必應(yīng)詞典的性能瓶頸及其對策
設(shè)計項跟蹤及其架構(gòu)重構(gòu) ? - 迭代設(shè)計(小步快跑模式):架構(gòu)的重構(gòu) ?
- 設(shè)計項版本管理 ?
- 設(shè)計項狀態(tài)跟蹤:設(shè)計項映射到代碼和測試用例 ?
- 相關(guān)工具:微軟團隊項目服務(wù)器(Team Foundation Server)/其他工具 ?
- 練習(xí):利用源碼管理工具跟蹤架構(gòu)設(shè)計相關(guān)項 ?
- 討論:必應(yīng)詞典的架構(gòu)設(shè)計過程
用代碼表達架構(gòu) - 設(shè)計元素:類,接口,模板,包
- 利用面向?qū)ο缶幊陶Z言:c#,Java,c++
- 依賴抽象的設(shè)計原則:針對抽象編程,封裝變化
- 使用設(shè)計模式:創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式
- 練習(xí):用抽象類和接口定義一個搜索系統(tǒng)的架構(gòu)
數(shù)據(jù)訪問設(shè)計: - 數(shù)據(jù)存儲設(shè)計:文件,數(shù)據(jù)庫,內(nèi)存,…
- 數(shù)據(jù)實體定義:主鍵,外鍵,二進制數(shù)據(jù),約束
- 數(shù)據(jù)訪問層設(shè)計:數(shù)據(jù)表內(nèi)存表間映射
- 使用數(shù)據(jù)訪問框架:LINQ 2 SQL/數(shù)據(jù)實體框架,JAVA 可持久化框架(JPA),ADO.NET 數(shù)據(jù)實體框架
- 練習(xí):使用數(shù)據(jù)訪問框架操作數(shù)據(jù)庫
業(yè)務(wù)邏輯設(shè)計: ? - 業(yè)務(wù)邏輯設(shè)計工具:工作流 ?
- 將業(yè)務(wù)邏輯包裝為服務(wù) ?
- 確定業(yè)務(wù)邏輯設(shè)計正確性:單元測試 ?
- 練習(xí):用工作流實現(xiàn)一段業(yè)務(wù)邏輯,并驗證實現(xiàn)的正確性
并行應(yīng)用設(shè)計: - 識別并行任務(wù):Map-Reduce模型
- 并行模式:生產(chǎn)-消費模式,并行,互斥和同步
- 并行實現(xiàn):多線程,線程池,并行庫
- 練習(xí): 用工作流設(shè)計并行邏輯
界面邏輯設(shè)計 ? - MVC模式:模型控制視圖模式設(shè)計界面 ?
- 界面邏輯:輸入驗證,修改模型,執(zhí)行邏輯,更新界面 ?
- 實例分析:MFC的界面邏輯,JSF的界面邏輯,AJAX應(yīng)用的界面邏輯,ASP.NE的界面 邏輯 ?
- 練習(xí):重構(gòu)一段界面代碼,使其滿足MVC模式
基于測試和基于合約的設(shè)計:測試驅(qū)動設(shè)計和合約驅(qū)動的設(shè)計 - 測試驅(qū)動開發(fā)模型:紅綠紅模型
- 測試驅(qū)動設(shè)計:以通過測試用例為驅(qū)動力迭代增量完成架構(gòu)
- 合約的概念:對實現(xiàn)方和調(diào)用方間各自的約束
- 基于合約的設(shè)計:前置條件,后置條件和不變式
- 練習(xí):基于合約設(shè)計一個有理數(shù)類
設(shè)計可擴展的框架 ? - 設(shè)計擴展點:虛方法,委托(實踐),依賴項(參數(shù)依賴,成員依賴,類型依賴)
- 可擴展框架:使用基于聲明和配置的動態(tài)注入依賴 ?
- 實例分析:.NET的動態(tài)擴展框架,Java Spring框架 ?
- 討論:必應(yīng)詞典的可擴展性
安全性設(shè)計 - 對威脅建模
- 網(wǎng)絡(luò)安全,服務(wù)器安全和軟件系統(tǒng)安全
- 常見安全漏洞及防范:拒絕服務(wù),SQL依賴注入,跨站點腳本調(diào)用,緩沖區(qū)溢出,數(shù)據(jù)泄密
- 討論:必應(yīng)詞典針對安全性的設(shè)計
.NET和C++互操作設(shè)計 ? - 可選的技術(shù)評價:DLL包裝,COM和托管C++ ?
- 互操作時的系統(tǒng)邊界設(shè)計
物理部署設(shè)計 - 部署單元:組件,數(shù)據(jù)庫組件,數(shù)據(jù)處理組件,通信組件,中間件
- 部署配置設(shè)計:定義配置項
- 驗證物理部署設(shè)計:使用虛擬機或TFS 實驗室
軟件架構(gòu)的概念:構(gòu)件及協(xié)作關(guān)系 ?
- 架構(gòu)關(guān)注點,定義構(gòu)件邊界+構(gòu)件之間通信 ?
- 構(gòu)件的描述:4+1視圖 ?
- 非功能性需求:可用性、可靠性、魯棒性、可維護性,可擴展性,可測性,性能,可復(fù)用性、模塊化、易部署性等 ?
- 架構(gòu)設(shè)計方法:場景驅(qū)動的迭代架構(gòu)設(shè)計 ?
- 架構(gòu)師角色:輸入需求,輸出架構(gòu) ?
- 討論:如何才能成為一名合格的架構(gòu)師? ?
- 案例導(dǎo)入:必應(yīng)詞典的架構(gòu)介紹
典型的軟件架構(gòu)介紹:分層架構(gòu)及其派生類型
- 一般分層模型:數(shù)據(jù),業(yè)務(wù)+界面
- 典型的分層模型:B/S架構(gòu),C/S架構(gòu)和富客戶端應(yīng)用
- 實例:JSP/JSF應(yīng)用,ASP.NET應(yīng)用,AJAX應(yīng)用,REST風(fēng)格應(yīng)用
- 練習(xí):開發(fā)一個簡單的B/S應(yīng)用
- 案例討論:必應(yīng)詞典的分層架構(gòu)
面向服務(wù)的架構(gòu)設(shè)計:SOA ?
- 架構(gòu)的核心元素:容器,組件,接口和通信 ?
- 理解容器:基礎(chǔ)服務(wù),承載組件,容器間通信 ?
- 典型的容器:.NET WCF容器,J2EE應(yīng)用服務(wù)器如GlassFish ,COM容器 ?
- 理解組件:使用容器,實現(xiàn)接口,組件間通信 ?
- 非侵入式設(shè)計:使用批注擴展組件/容器 ?
- 典型的組件:WEB服務(wù),.NET WCF服務(wù) ,EJB Bean(消息,會話)等,COM組件,CORBA組件等 ?
- 理解接口:約定功能,服務(wù)接口,遠(yuǎn)程/本地接口 ?
- 練習(xí):編寫一個簡單的基于SOA的C/S應(yīng)用 ?
- 案例討論:必應(yīng)詞典中的服務(wù)
面向云的架構(gòu)設(shè)計
- 云架構(gòu):云為容器,提供運算,存儲和通信等基礎(chǔ)服務(wù)
- 公有云應(yīng)用:數(shù)據(jù),邏輯,界面都由公共云承載
- 混合云應(yīng)用:部分?jǐn)?shù)據(jù)/邏輯本地服務(wù)器+公有云;
- 云應(yīng)用的消息總線模型:將公有云模擬為本地資源統(tǒng)一通信
- 練習(xí):設(shè)計,實現(xiàn)并部署一個基于SOA的B/S架構(gòu)的云應(yīng)用
- 案例討論:從WEB詞典到云詞典
用UML圖表達軟件架構(gòu) ?
- UML圖概述:7種UML圖及繪制工具(例如VS2010的架構(gòu)師工具/ROSE繪圖工具/VISIO繪圖工具) ?
- 用例視圖:表達需求,定義系統(tǒng)邊界 ?
- 邏輯視圖:類及其關(guān)系,類的組織 ?
- 進程視圖:表達運行時對象間的協(xié)作關(guān)系,活動圖,序列圖 ?
- 部署視圖:描述物理組件如何分發(fā)配置到服務(wù)器 ?
- 開發(fā)視圖:描述在開發(fā)環(huán)境中軟件的靜態(tài)組織結(jié)構(gòu) ?
- 練習(xí):用UML圖描述一個SOA小應(yīng)用架構(gòu)
性能設(shè)計
- 主要性能指標(biāo):平均響應(yīng)時間、吞吐量或并發(fā)數(shù)、持續(xù)高速性
- 影響性能的主要因素:算法,實現(xiàn),數(shù)據(jù)庫設(shè)計,通信
- 性能瓶頸探測:性能探測工具及探測報告
- 練習(xí):用性能探測工具探測性能,壓力測試及內(nèi)存消耗
- 討論:必應(yīng)詞典的性能瓶頸及其對策
設(shè)計項跟蹤及其架構(gòu)重構(gòu) ?
- 迭代設(shè)計(小步快跑模式):架構(gòu)的重構(gòu) ?
- 設(shè)計項版本管理 ?
- 設(shè)計項狀態(tài)跟蹤:設(shè)計項映射到代碼和測試用例 ?
- 相關(guān)工具:微軟團隊項目服務(wù)器(Team Foundation Server)/其他工具 ?
- 練習(xí):利用源碼管理工具跟蹤架構(gòu)設(shè)計相關(guān)項 ?
- 討論:必應(yīng)詞典的架構(gòu)設(shè)計過程
用代碼表達架構(gòu)
- 設(shè)計元素:類,接口,模板,包
- 利用面向?qū)ο缶幊陶Z言:c#,Java,c++
- 依賴抽象的設(shè)計原則:針對抽象編程,封裝變化
- 使用設(shè)計模式:創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式
- 練習(xí):用抽象類和接口定義一個搜索系統(tǒng)的架構(gòu)
數(shù)據(jù)訪問設(shè)計:
- 數(shù)據(jù)存儲設(shè)計:文件,數(shù)據(jù)庫,內(nèi)存,…
- 數(shù)據(jù)實體定義:主鍵,外鍵,二進制數(shù)據(jù),約束
- 數(shù)據(jù)訪問層設(shè)計:數(shù)據(jù)表內(nèi)存表間映射
- 使用數(shù)據(jù)訪問框架:LINQ 2 SQL/數(shù)據(jù)實體框架,JAVA 可持久化框架(JPA),ADO.NET 數(shù)據(jù)實體框架
- 練習(xí):使用數(shù)據(jù)訪問框架操作數(shù)據(jù)庫
業(yè)務(wù)邏輯設(shè)計: ?
- 業(yè)務(wù)邏輯設(shè)計工具:工作流 ?
- 將業(yè)務(wù)邏輯包裝為服務(wù) ?
- 確定業(yè)務(wù)邏輯設(shè)計正確性:單元測試 ?
- 練習(xí):用工作流實現(xiàn)一段業(yè)務(wù)邏輯,并驗證實現(xiàn)的正確性
并行應(yīng)用設(shè)計:
- 識別并行任務(wù):Map-Reduce模型
- 并行模式:生產(chǎn)-消費模式,并行,互斥和同步
- 并行實現(xiàn):多線程,線程池,并行庫
- 練習(xí): 用工作流設(shè)計并行邏輯
界面邏輯設(shè)計 ?
- MVC模式:模型控制視圖模式設(shè)計界面 ?
- 界面邏輯:輸入驗證,修改模型,執(zhí)行邏輯,更新界面 ?
- 實例分析:MFC的界面邏輯,JSF的界面邏輯,AJAX應(yīng)用的界面邏輯,ASP.NE的界面 邏輯 ?
- 練習(xí):重構(gòu)一段界面代碼,使其滿足MVC模式
基于測試和基于合約的設(shè)計:測試驅(qū)動設(shè)計和合約驅(qū)動的設(shè)計
- 測試驅(qū)動開發(fā)模型:紅綠紅模型
- 測試驅(qū)動設(shè)計:以通過測試用例為驅(qū)動力迭代增量完成架構(gòu)
- 合約的概念:對實現(xiàn)方和調(diào)用方間各自的約束
- 基于合約的設(shè)計:前置條件,后置條件和不變式
- 練習(xí):基于合約設(shè)計一個有理數(shù)類
設(shè)計可擴展的框架 ?
- 設(shè)計擴展點:虛方法,委托(實踐),依賴項(參數(shù)依賴,成員依賴,類型依賴)
- 可擴展框架:使用基于聲明和配置的動態(tài)注入依賴 ?
- 實例分析:.NET的動態(tài)擴展框架,Java Spring框架 ?
- 討論:必應(yīng)詞典的可擴展性
安全性設(shè)計
- 對威脅建模
- 網(wǎng)絡(luò)安全,服務(wù)器安全和軟件系統(tǒng)安全
- 常見安全漏洞及防范:拒絕服務(wù),SQL依賴注入,跨站點腳本調(diào)用,緩沖區(qū)溢出,數(shù)據(jù)泄密
- 討論:必應(yīng)詞典針對安全性的設(shè)計
.NET和C++互操作設(shè)計 ?
- 可選的技術(shù)評價:DLL包裝,COM和托管C++ ?
- 互操作時的系統(tǒng)邊界設(shè)計
物理部署設(shè)計
- 部署單元:組件,數(shù)據(jù)庫組件,數(shù)據(jù)處理組件,通信組件,中間件
- 部署配置設(shè)計:定義配置項
- 驗證物理部署設(shè)計:使用虛擬機或TFS 實驗室

活動詳情

提交需求