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