架構(gòu)師
可穿戴設(shè)備
制造
其他
模塊化程序設(shè)計(jì)
組包原則
架構(gòu)風(fēng)格
代碼壞味道
4+1視圖
敏捷開(kāi)發(fā)
自動(dòng)化測(cè)試
gTest
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

嵌入式軟件架構(gòu)設(shè)計(jì)與實(shí)例

zil

科陸 首席架構(gòu)師

具有多年嵌入式軟件開(kāi)發(fā)、設(shè)計(jì)和管理經(jīng)驗(yàn),曾在華為和科陸公司擔(dān)任高級(jí)軟件工程師、系統(tǒng)工程師、敏捷教練等職務(wù)。主要擅長(zhǎng)敏捷實(shí)踐在各領(lǐng)域的應(yīng)用,包括代碼持續(xù)優(yōu)化與重構(gòu)、嵌入式C語(yǔ)言架構(gòu)設(shè)計(jì)與自動(dòng)化測(cè)試、C#軟件架構(gòu)設(shè)計(jì)與自動(dòng)化測(cè)試。精通ARM、Cotex-M3、51等MCU體系結(jié)構(gòu),精通嵌入式操作系統(tǒng)uCOS移植與運(yùn)用開(kāi)發(fā)。同時(shí)在項(xiàng)目管理尤其是敏捷軟件管理方面具有豐富的經(jīng)驗(yàn)。

具有多年嵌入式軟件開(kāi)發(fā)、設(shè)計(jì)和管理經(jīng)驗(yàn),曾在華為和科陸公司擔(dān)任高級(jí)軟件工程師、系統(tǒng)工程師、敏捷教練等職務(wù)。主要擅長(zhǎng)敏捷實(shí)踐在各領(lǐng)域的應(yīng)用,包括代碼持續(xù)優(yōu)化與重構(gòu)、嵌入式C語(yǔ)言架構(gòu)設(shè)計(jì)與自動(dòng)化測(cè)試、C#軟件架構(gòu)設(shè)計(jì)與自動(dòng)化測(cè)試。精通ARM、Cotex-M3、51等MCU體系結(jié)構(gòu),精通嵌入式操作系統(tǒng)uCOS移植與運(yùn)用開(kāi)發(fā)。同時(shí)在項(xiàng)目管理尤其是敏捷軟件管理方面具有豐富的經(jīng)驗(yàn)。

課程費(fèi)用

6800.00 /人

課程時(shí)長(zhǎng)

3

成為教練

課程簡(jiǎn)介

1、代碼分層設(shè)計(jì)
2、可移植性、可維護(hù)性
3、開(kāi)發(fā)視圖
4、邏輯視圖
5、自動(dòng)化測(cè)試
6、Cruise Control
7、gTest

目標(biāo)收益

讓程序員開(kāi)發(fā)出來(lái)的嵌入式軟件,具有高移植性、高復(fù)用性和可測(cè)試性。
讓嵌入式軟件能進(jìn)行測(cè)試自動(dòng)化,減少低效率的重復(fù)回歸測(cè)試。
讓設(shè)計(jì)人員寫(xiě)出能指導(dǎo)開(kāi)發(fā)人員工作的文檔,而不是寫(xiě)出僅僅能歸檔的文檔。

培訓(xùn)對(duì)象

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

課程大綱

第1部分內(nèi)容
嵌入式架構(gòu)設(shè)計(jì)理論篇

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

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

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

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

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

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

1、 自動(dòng)化測(cè)試工具gTest
(1) gTest的斷言
(2) gTest的測(cè)試結(jié)果文件
2、 打樁工具mockcpp
3、 持續(xù)集成工具CruiseControl
(1) 什么是持續(xù)集成
(2) CruiseControl的工作原理
(3) CruiseControl的配置腳本
第4部分內(nèi)容 收尾篇
第1章 架構(gòu)師如何工作
1、 和團(tuán)隊(duì)一起工作
2、 代碼走讀
3、 結(jié)對(duì)編程
4、 加強(qiáng)學(xué)習(xí)
第1部分內(nèi)容
嵌入式架構(gòu)設(shè)計(jì)理論篇

第1章 架構(gòu)設(shè)計(jì)步驟

1、 架構(gòu)設(shè)計(jì)步驟
(1) 考慮驅(qū)動(dòng)因素
(2) 設(shè)計(jì)基礎(chǔ)架構(gòu)
(3) 輸出設(shè)計(jì)結(jié)果
(4) 跟隨項(xiàng)目持續(xù)優(yōu)化
(5) 輸出優(yōu)化代碼
2、 架構(gòu)設(shè)計(jì)的驅(qū)動(dòng)因素
(1) 軟件質(zhì)量模型
(2) 質(zhì)量屬性間的互斥
(3) 性能與其他屬性的取舍
第2章 模塊化程序設(shè)計(jì)思想

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

該單元講解如何劃分模塊,介紹5大組包原則以及單一職責(zé)設(shè)計(jì)原則。

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

1、 哲學(xué)層次的架構(gòu)設(shè)計(jì)
2、 架構(gòu)風(fēng)格定義與分類
3、 常用風(fēng)格的模塊劃分
(1) “層次結(jié)構(gòu)”--平臺(tái)設(shè)計(jì)思想
(2) “面向?qū)ο蟆保瑢幽K劃分
(3) “批處理序列”和“管道-過(guò)濾器”
(4) “黑板系統(tǒng)”
(5) “數(shù)據(jù)庫(kù)系統(tǒng)”
(6) “進(jìn)程通信”
(7) “事件驅(qū)動(dòng)”
第5章 模塊殺手--代碼壞味道

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

1、 架構(gòu)視圖
(1) 開(kāi)發(fā)視圖
(2) 邏輯視圖
(3) 4+1視圖
(4) 4+1視圖在架構(gòu)文檔中的取舍
2、 架構(gòu)設(shè)計(jì)文檔
(1) 架構(gòu)文檔的價(jià)值
(2) 架構(gòu)文檔的撰寫(xiě)原則
3、 平臺(tái)接口說(shuō)明文檔
(1) 平臺(tái)架構(gòu)思想
(2) 平臺(tái)接口約束文檔
第2部分內(nèi)容 嵌入式架構(gòu)設(shè)計(jì)實(shí)例篇
第1章 嵌入式分層設(shè)計(jì)實(shí)例

該單元展示2個(gè)嵌入式架構(gòu)設(shè)計(jì)的文檔案例。

1、 架構(gòu)設(shè)計(jì)實(shí)例
(1) 架構(gòu)設(shè)計(jì)文檔實(shí)例
(2) 可讀性設(shè)計(jì)
(3) 可移植性設(shè)計(jì)
2、 硬件接口設(shè)計(jì)實(shí)例
(1) 提取硬件抽象
(2) 接口設(shè)計(jì)文檔實(shí)例
(3) 可靠性設(shè)計(jì)
(4) 現(xiàn)場(chǎng)可維護(hù)性設(shè)計(jì)
(5) 兼容性設(shè)計(jì)
第2章 底層硬件API封裝模板

該單元主要介紹硬件封裝的代碼架構(gòu)模板。
該模板的目的是提高底層硬件代碼的可維護(hù)性,以及一致性的統(tǒng)一模板對(duì)可讀性的提升。
然后通過(guò)多個(gè)實(shí)現(xiàn)案例,講解了幾種特殊硬件封裝的解耦辦法。
最后總結(jié)幾個(gè)模板的分類。

1、 模板結(jié)構(gòu)
(1) 設(shè)備硬件結(jié)構(gòu)體類型定義
(2) 設(shè)備結(jié)構(gòu)體配置
(3) 設(shè)備個(gè)數(shù)宏定義
(4) 設(shè)備實(shí)現(xiàn)需要的全局變量
(5) 設(shè)備功能實(shí)現(xiàn)代碼
2、 中斷處理的封裝--回調(diào)函數(shù)
3、 上層不可見(jiàn)封裝
(1) 硬件復(fù)用設(shè)備對(duì)上層的不可見(jiàn)封裝
(2) 硬件耦合設(shè)備對(duì)上層的不可見(jiàn)封裝
(3) 上層不可見(jiàn)封裝總結(jié)
4、 模板的分類
第3章 底層硬件驅(qū)動(dòng)實(shí)例

1、 回調(diào)函數(shù)實(shí)現(xiàn)Timer定時(shí)器驅(qū)動(dòng)實(shí)例
2、 帶緩存的串口驅(qū)動(dòng)實(shí)例
第3部分內(nèi)容 自動(dòng)化測(cè)試篇
第1章 PC模擬底層硬件

該單元講解如何在PC上實(shí)現(xiàn)一套假硬件設(shè)備,為業(yè)務(wù)層在PC上運(yùn)行和自動(dòng)化測(cè)試做準(zhǔn)備。

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

講解測(cè)試封裝設(shè)計(jì)。
演示業(yè)務(wù)層代碼在PC上的模擬運(yùn)行。演示如何讓業(yè)務(wù)層代碼進(jìn)行自動(dòng)化測(cè)試。
講解測(cè)試用例撰寫(xiě)的方式方法。

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

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

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

1、 和團(tuán)隊(duì)一起工作
2、 代碼走讀
3、 結(jié)對(duì)編程
4、 加強(qiáng)學(xué)習(xí)

課程費(fèi)用

6800.00 /人

課程時(shí)長(zhǎng)

3

預(yù)約體驗(yàn)票 我要分享

近期公開(kāi)課推薦

近期公開(kāi)課推薦

活動(dòng)詳情

提交需求