課程費用

5800.00 /人

課程時長

2

成為教練

課程簡介

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

目標收益

培訓對象

課程大綱

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

課程費用

5800.00 /人

課程時長

2

預約體驗票 我要分享

近期公開課推薦

近期公開課推薦

活動詳情

提交需求