班級規模及環境--熱線:4008699035 手機:15921673576( 微信同號) |
每期人數限3到5人。 |
上課時間和地點 |
上課地點:【上海】:同濟大學(滬西)/新城金郡商務樓(11號線白銀路站) 【深圳分部】:電影大廈(地鐵一號線大劇院站)/深圳大學成教院 【北京分部】:北京中山學院/福鑫大樓 【南京分部】:金港大廈(和燕路) 【武漢分部】:佳源大廈(高新二路) 【成都分部】:領館區1號(中和大道) 【沈陽分部】:沈陽理工大學/六宅臻品 【鄭州分部】:鄭州大學/錦華大廈 【石家莊分部】:河北科技大學/瑞景大廈 【廣州分部】:廣糧大廈 【西安分部】:協同大廈
最近開課時間(周末班/連續班/晚班):2020年3月16日 |
實驗設備 |
☆資深工程師授課
☆注重質量
☆邊講邊練
☆合格學員免費推薦工作
★實驗設備請點擊這兒查看★ |
質量保障 |
1、培訓過程中,如有部分內容理解不透或消化不好,可免費在以后培訓班中重聽;
2、培訓結束后,授課老師留給學員聯系方式,保障培訓效果,免費提供課后技術支持。
3、培訓合格學員可享受免費推薦就業機會。 |
課程大綱 |
課程信息
1、代碼分層設計
2、可移植性、可維護性
3、開發視圖
4、邏輯視圖
5、自動化測試
6、Cruise Control
7、gTest
培訓特色
代碼分層的思想、可移植性代碼的設計、代碼解耦的技巧、硬件層抽象、PC上模擬硬件、業務層抽象、業務層在PC上的模擬運行、業務層在PC上的自動化測試、架構設計文檔撰寫、接口說明文檔撰寫等內容。
本課程不單單是嵌入式架構設計的技能講解,而且在設計中引入可測試性和可維護性設計。最終的結果是,讓開發出來的嵌入式軟件可以PC電腦上模擬運行,并進行自動化的測試。
目標收益
讓程序員開發出來的嵌入式軟件,具有高移植性和高維護性。
讓嵌入式軟件的測試自動化,減少低效率的重復回歸測試。
讓設計人員撰寫出能指導開發人員工作的設計文檔,而不是寫出只是為了歸檔的文檔。
培訓對象
開發嵌入式產品的軟件架構師、軟件設計師、程序員。
該培訓對于開發以下類型嵌入式產品特別有幫助:
1、業務邏輯特別復雜
2、集成功能繁多
3、測試環境/條件難以創造
學員基礎
1、熟悉C語言;?
2、至少了解一種嵌入式微處理器;
課程大綱
主題 內容
引子
從我們身邊的工作說起。指出大部分的軟件都是“意大利面條”式的代碼。
引申出解決之道――軟件架構設計、代碼持續優化和自動化測試。
第一單元
模塊化程序設計思想
該單元介紹代碼分層、分模塊的思想,以及一些基本的代碼解耦方法。
1、 模塊化程序設計的核心
講解什么形式的代碼才算是模塊化的代碼。
2、 代碼分層的思想
(1) 代碼分層思路
(2) 嵌入式軟件推薦的分層架構
3、 代碼解耦的一些基礎方法
(1) 封裝模塊文件夾
(2) 程序文件的分割
(3) 函數封裝
(4) static函數限制函數使用范圍
(5) static全局變量限制變量使用范圍
(6) 減少全局變量的使用
第二單元
嵌入式分層設計
展示一個嵌入式分層設計的案例,并講解架構設計文檔的撰寫。
演示硬件分離后代碼的可移植性;并以MCU定時器為例講解如何分離硬件。
最后講解其他硬件設備的接口定義,由此引申出接口說明文檔的撰寫準則。
1、 嵌入式架構設計
(1) 某產品的開發視圖
(2) 避免循環依賴
(3) 邏輯視圖
(4) 4+1視圖在嵌入式設計文檔中取舍
(5) 設計文檔的度與量
2、 嵌入式分層設計的追求――可移植
(1) 演示代碼的可移植性
(2) 硬件封裝的基本思想
(3) 硬件模塊的分離
3、 硬件接口設計
(1) 提取硬件抽象
(2) 接口文檔的撰寫
第三單元
底層硬件API封裝模板
該單元主要介紹硬件封裝的代碼架構模板,該模板的目的是提高底層硬件代碼的可維護性。
然后通過多個實現案例,講解了幾種特殊硬件封裝的解耦辦法。
最后總結幾個模板的分類。
1、 模板結構
(1) 設備硬件結構體類型定義
(2) 設備結構體配置
(3) 設備個數宏定義
(4) 設備實現需要的全局變量
(5) 設備功能實現代碼
2、 利用老模板實現新硬件封裝
3、 中斷處理的封裝:回調函數
4、 硬件復用設備對上層的不可見封裝
5、 硬件耦合設備對上層的不可見封裝
6、 模板的分類
第四單元
PC模擬底層硬件
該單元講解如何在PC上實現一套假硬件設備,為業務層在PC上運行和自動化測試做準備。
1、 PC版與真實硬件環境的不同
2、 PC版測試接口
3、 PC版模擬中斷接口
4、 PC版線程互斥處理
第五單元
業務層分層架構
在真實案例的基礎上,講解業務層的架構設計。
1、 可讀性封裝
2、 提取業務抽象
(1) 抽象的原則
(2) 案例:命令收發與命令業務處理的分離
3、 同步通訊的限制性封裝
4、 異步通信的限制性封裝
5、 異步設備封裝成同步設備
6、 分層設計總結
第六單元
PC模擬運行業務層與自動化測試
演示業務層代碼在PC上的模擬運行。演示如何讓業務層代碼進行自動化測試。
講解測試封裝設計。
講解測試用例撰寫的方式方法。
1、 測試封裝
(1) 測試代碼的可讀性封裝
(2) 測試代碼的易用性封裝
(3) 設備測試打樁接口
(4) 利用測試接口定位問題
2、 測試流程
3、 測試用例文檔撰寫
4、 測試用例代碼撰寫
(1) 利用測試套
(2) 使用打樁工具
(3) 測試延時和模擬系統延時的區別
第七單元
測試工具
簡單介紹測試斷言工具gTest、打樁工具mockcpp、自動化測試運行工具CruiseControl的使用。
1、 自動化測試工具gTest
(1) gTest的斷言
(2) gTest的測試結果文件
2、 打樁工具mockcpp
3、 持續集成工具CruiseControl
(1) 什么是持續集成
(2) CruiseControl的工作原理
(3) CruiseControl的配置腳本 |
|