課程費用

6800.00 /人

課程時長

3

成為教練

課程簡介

1、代碼分層設計
2、可移植性、可維護性
3、開發(fā)視圖
4、邏輯視圖
5、自動化測試
6、Cruise Control
7、gTest

目標收益

讓程序員開發(fā)出來的嵌入式軟件,具有高移植性、高復用性和可測試性。
讓嵌入式軟件能進行測試自動化,減少低效率的重復回歸測試。
讓設計人員寫出能指導開發(fā)人員工作的文檔,而不是寫出僅僅能歸檔的文檔。

培訓對象

培訓面向人群:開發(fā)嵌入式產品的軟件架構師、軟件設計師、程序員、測試人員。
該培訓對于開發(fā)以下類型嵌入式產品特別有幫助:
1、 業(yè)務邏輯特別復雜
2、 集成功能繁多
3、 測試環(huán)境/條件難以創(chuàng)造

課程大綱

第1部分內容
嵌入式架構設計理論篇

第1章 架構設計步驟
1、 架構設計步驟
(1) 考慮驅動因素
(2) 設計基礎架構
(3) 輸出設計結果
(4) 跟隨項目持續(xù)優(yōu)化
(5) 輸出優(yōu)化代碼
2、 架構設計的驅動因素
(1) 軟件質量模型
(2) 質量屬性間的互斥
(3) 性能與其他屬性的取舍
第2章 模塊化程序設計思想
1、 模塊化設計的目的
2、 模塊化程序設計方法
(1) 什么是模塊?
(2) 什么是好模塊?--“最少知道原則”
(3) 模塊接口設計
3、 “C語言”模塊怎么組織包結構
第3章 組包原則與單一職責原則
該單元講解如何劃分模塊,介紹5大組包原則以及單一職責設計原則。

1、 組包的設計原則
2、 低耦合組包原則
(1) 無環(huán)依賴原則
(2) 穩(wěn)定依賴原則
3、 高內聚組包原則
(1) 重用發(fā)布原則
(2) 共同重用原則
(3) 共同封閉原則
4、 單一職責設計原則
(1) 單一職責的思考
(2) 單一抽象層次原則
(3) 單一職責原則
第4章 基礎架構級模塊劃分--架構風格
1、 哲學層次的架構設計
2、 架構風格定義與分類
3、 常用風格的模塊劃分
(1) “層次結構”--平臺設計思想
(2) “面向對象”--同層模塊劃分
(3) “批處理序列”和“管道-過濾器”
(4) “黑板系統”
(5) “數據庫系統”
(6) “進程通信”
(7) “事件驅動”
第5章 模塊殺手--代碼壞味道
1、 模塊第1大殺手--全局變量
(1) 全局變量的缺點
(2) 減少全局變量使用
(3) 限制全局變量范圍
2、 模塊第2大殺手--循環(huán)依賴
(1) 次晨綜合癥
(2) 分層設計思想
(3) 反轉逆向依賴--回調函數
3、 其他模塊殺手--代碼壞味道
(1) 散彈式修改
(2) 發(fā)散式變化(違背了共同封閉原則)
(3) 不恰當的暴露(違背了最少知道原則)
(4) 狎昵關系(有可能違背了無環(huán)依賴原則)
(5) 依戀情節(jié)
(6) 被拒絕的饋贈(違背了共同重用原則)
第6章 架構設計文檔
1、 架構視圖
(1) 開發(fā)視圖
(2) 邏輯視圖
(3) 4+1視圖
(4) 4+1視圖在架構文檔中的取舍
2、 架構設計文檔
(1) 架構文檔的價值
(2) 架構文檔的撰寫原則
3、 平臺接口說明文檔
(1) 平臺架構思想
(2) 平臺接口約束文檔
第2部分內容 嵌入式架構設計實例篇
第1章 嵌入式分層設計實例
該單元展示2個嵌入式架構設計的文檔案例。

1、 架構設計實例
(1) 架構設計文檔實例
(2) 可讀性設計
(3) 可移植性設計
2、 硬件接口設計實例
(1) 提取硬件抽象
(2) 接口設計文檔實例
(3) 可靠性設計
(4) 現場可維護性設計
(5) 兼容性設計
第2章 底層硬件API封裝模板
該單元主要介紹硬件封裝的代碼架構模板。
該模板的目的是提高底層硬件代碼的可維護性,以及一致性的統一模板對可讀性的提升。
然后通過多個實現案例,講解了幾種特殊硬件封裝的解耦辦法。
最后總結幾個模板的分類。

1、 模板結構
(1) 設備硬件結構體類型定義
(2) 設備結構體配置
(3) 設備個數宏定義
(4) 設備實現需要的全局變量
(5) 設備功能實現代碼
2、 中斷處理的封裝--回調函數
3、 上層不可見封裝
(1) 硬件復用設備對上層的不可見封裝
(2) 硬件耦合設備對上層的不可見封裝
(3) 上層不可見封裝總結
4、 模板的分類
第3章 底層硬件驅動實例
1、 回調函數實現Timer定時器驅動實例
2、 帶緩存的串口驅動實例
第3部分內容 自動化測試篇
第1章 PC模擬底層硬件
該單元講解如何在PC上實現一套假硬件設備,為業(yè)務層在PC上運行和自動化測試做準備。

1、 PC版與真實硬件環(huán)境的不同
2、 PC版測試接口
3、 PC版模擬中斷接口
4、 PC版線程互斥處理
第2章 PC模擬運行業(yè)務層與自動化測試
講解測試封裝設計。
演示業(yè)務層代碼在PC上的模擬運行。演示如何讓業(yè)務層代碼進行自動化測試。
講解測試用例撰寫的方式方法。

1、 測試封裝
(1) 增加測試代碼的可讀性封裝
(2) 增加測試代碼的易用性封裝
(3) 利用測試接口定位問題
2、 自動化測試
(1) 自動化測試原理
(2) 自動化測試演示
3、 測試用例流程
4、 測試用例文檔撰寫
5、 測試用例代碼撰寫
第3章 自動化測試工具
介紹測試斷言工具gTest、測試打樁工具mockcpp等測試工具的使用。
介紹自動化測試持續(xù)集成工具CruiseControl的安裝和配置方法。

1、 自動化測試工具gTest
(1) gTest的斷言
(2) gTest的測試結果文件
2、 打樁工具mockcpp
3、 持續(xù)集成工具CruiseControl
(1) 什么是持續(xù)集成
(2) CruiseControl的工作原理
(3) CruiseControl的配置腳本
第4部分內容 收尾篇
第1章 架構師如何工作
1、 和團隊一起工作
2、 代碼走讀
3、 結對編程
4、 加強學習
第1部分內容
嵌入式架構設計理論篇

第1章 架構設計步驟

1、 架構設計步驟
(1) 考慮驅動因素
(2) 設計基礎架構
(3) 輸出設計結果
(4) 跟隨項目持續(xù)優(yōu)化
(5) 輸出優(yōu)化代碼
2、 架構設計的驅動因素
(1) 軟件質量模型
(2) 質量屬性間的互斥
(3) 性能與其他屬性的取舍
第2章 模塊化程序設計思想

1、 模塊化設計的目的
2、 模塊化程序設計方法
(1) 什么是模塊?
(2) 什么是好模塊?--“最少知道原則”
(3) 模塊接口設計
3、 “C語言”模塊怎么組織包結構
第3章 組包原則與單一職責原則

該單元講解如何劃分模塊,介紹5大組包原則以及單一職責設計原則。

1、 組包的設計原則
2、 低耦合組包原則
(1) 無環(huán)依賴原則
(2) 穩(wěn)定依賴原則
3、 高內聚組包原則
(1) 重用發(fā)布原則
(2) 共同重用原則
(3) 共同封閉原則
4、 單一職責設計原則
(1) 單一職責的思考
(2) 單一抽象層次原則
(3) 單一職責原則
第4章 基礎架構級模塊劃分--架構風格

1、 哲學層次的架構設計
2、 架構風格定義與分類
3、 常用風格的模塊劃分
(1) “層次結構”--平臺設計思想
(2) “面向對象”--同層模塊劃分
(3) “批處理序列”和“管道-過濾器”
(4) “黑板系統”
(5) “數據庫系統”
(6) “進程通信”
(7) “事件驅動”
第5章 模塊殺手--代碼壞味道

1、 模塊第1大殺手--全局變量
(1) 全局變量的缺點
(2) 減少全局變量使用
(3) 限制全局變量范圍
2、 模塊第2大殺手--循環(huán)依賴
(1) 次晨綜合癥
(2) 分層設計思想
(3) 反轉逆向依賴--回調函數
3、 其他模塊殺手--代碼壞味道
(1) 散彈式修改
(2) 發(fā)散式變化(違背了共同封閉原則)
(3) 不恰當的暴露(違背了最少知道原則)
(4) 狎昵關系(有可能違背了無環(huán)依賴原則)
(5) 依戀情節(jié)
(6) 被拒絕的饋贈(違背了共同重用原則)
第6章 架構設計文檔

1、 架構視圖
(1) 開發(fā)視圖
(2) 邏輯視圖
(3) 4+1視圖
(4) 4+1視圖在架構文檔中的取舍
2、 架構設計文檔
(1) 架構文檔的價值
(2) 架構文檔的撰寫原則
3、 平臺接口說明文檔
(1) 平臺架構思想
(2) 平臺接口約束文檔
第2部分內容 嵌入式架構設計實例篇
第1章 嵌入式分層設計實例

該單元展示2個嵌入式架構設計的文檔案例。

1、 架構設計實例
(1) 架構設計文檔實例
(2) 可讀性設計
(3) 可移植性設計
2、 硬件接口設計實例
(1) 提取硬件抽象
(2) 接口設計文檔實例
(3) 可靠性設計
(4) 現場可維護性設計
(5) 兼容性設計
第2章 底層硬件API封裝模板

該單元主要介紹硬件封裝的代碼架構模板。
該模板的目的是提高底層硬件代碼的可維護性,以及一致性的統一模板對可讀性的提升。
然后通過多個實現案例,講解了幾種特殊硬件封裝的解耦辦法。
最后總結幾個模板的分類。

1、 模板結構
(1) 設備硬件結構體類型定義
(2) 設備結構體配置
(3) 設備個數宏定義
(4) 設備實現需要的全局變量
(5) 設備功能實現代碼
2、 中斷處理的封裝--回調函數
3、 上層不可見封裝
(1) 硬件復用設備對上層的不可見封裝
(2) 硬件耦合設備對上層的不可見封裝
(3) 上層不可見封裝總結
4、 模板的分類
第3章 底層硬件驅動實例

1、 回調函數實現Timer定時器驅動實例
2、 帶緩存的串口驅動實例
第3部分內容 自動化測試篇
第1章 PC模擬底層硬件

該單元講解如何在PC上實現一套假硬件設備,為業(yè)務層在PC上運行和自動化測試做準備。

1、 PC版與真實硬件環(huán)境的不同
2、 PC版測試接口
3、 PC版模擬中斷接口
4、 PC版線程互斥處理
第2章 PC模擬運行業(yè)務層與自動化測試

講解測試封裝設計。
演示業(yè)務層代碼在PC上的模擬運行。演示如何讓業(yè)務層代碼進行自動化測試。
講解測試用例撰寫的方式方法。

1、 測試封裝
(1) 增加測試代碼的可讀性封裝
(2) 增加測試代碼的易用性封裝
(3) 利用測試接口定位問題
2、 自動化測試
(1) 自動化測試原理
(2) 自動化測試演示
3、 測試用例流程
4、 測試用例文檔撰寫
5、 測試用例代碼撰寫
第3章 自動化測試工具

介紹測試斷言工具gTest、測試打樁工具mockcpp等測試工具的使用。
介紹自動化測試持續(xù)集成工具CruiseControl的安裝和配置方法。

1、 自動化測試工具gTest
(1) gTest的斷言
(2) gTest的測試結果文件
2、 打樁工具mockcpp
3、 持續(xù)集成工具CruiseControl
(1) 什么是持續(xù)集成
(2) CruiseControl的工作原理
(3) CruiseControl的配置腳本
第4部分內容 收尾篇
第1章 架構師如何工作

1、 和團隊一起工作
2、 代碼走讀
3、 結對編程
4、 加強學習

課程費用

6800.00 /人

課程時長

3

預約體驗票 我要分享

近期公開課推薦

近期公開課推薦

活動詳情

提交需求