培訓形式
要求:學員攜帶筆記本電腦和U盤來參加培訓,借助大量實例研習推進培訓,讓學員在課堂上真正掌握所學。
本課認為“當堂夯實的技能,可用于實際工作”。
也歡迎學員帶著實際問題前來參訓!
【模塊一】人人掌握——嵌入式需求
理大局——嵌入式軟件需求分析的過程【步驟明確,經(jīng)驗干貨】
步驟一:系統(tǒng)邊界分析——上下文圖and硬件結(jié)構(gòu)圖
步驟二:功能需求分析——功能樹or用例圖
步驟三:用戶接口分析——菜單樹and界面流
步驟四:軟硬接口分析——和外部軟硬件的接口規(guī)約
步驟五:功能步驟分析——輸入-處理-輸出or用例規(guī)約
步驟六:質(zhì)量需求分析——本課關(guān)注步驟級實時、步驟級可靠
一組案例……
劃重點——關(guān)鍵點的講與練
?輸入-處理-輸出定義功能需求……頑疾是需求項又多又散?分析、解決。
?與外部軟、硬件的接口需求……頂層數(shù)據(jù)流圖、上下文圖、硬件結(jié)構(gòu)圖
?高性能和可靠性等質(zhì)量需求……質(zhì)量需求如何定義?以某控制器為案例
?一組案例……
?特復雜的功能邏輯如何搞定?=主控流程+可能事件與分支流程+步驟規(guī)則
拷資料——文檔模板+案例資料【外企模板,獨家分享】
?《需求規(guī)格》模板
?《需求規(guī)格》實例
?一組案例……例如,質(zhì)量90%可以用“功能的步驟級規(guī)則”來定義
【模塊二】始于需求——自頂向下設(shè)計運行控制結(jié)構(gòu)
理大局——運行控制結(jié)構(gòu)的設(shè)計過程【步驟明確,經(jīng)驗干貨】
步驟一:分析需求(功能范圍+硬件結(jié)構(gòu))
步驟二:識別核心模塊
步驟三:確定控制流,設(shè)計控制模式
步驟四:對關(guān)鍵功能,跑通控制過程
案例分析……上面四步,都有實際案例,并講解自頂向下思維運用
劃重點——三種嵌入式“運行控制結(jié)構(gòu)”模式
結(jié)構(gòu)一:多任務(wù)結(jié)構(gòu)(OS-basedMulti-task)
結(jié)構(gòu)二:前后臺結(jié)構(gòu)(死循環(huán)+中斷)
結(jié)構(gòu)三:時間片輪詢(Time-slicePolling)
一組案例……
劃重點——前后臺與時間片架構(gòu)的幾個細節(jié)
?【大局】采集-分析-控制模式
?【局部1】轉(zhuǎn)delay為中斷
?【局部2】占空比與中斷
?【局部3】函數(shù)的可重入設(shè)計
?【局部4】核心代碼性能
?高事件率架構(gòu)案例:多任務(wù)vs.時間片輪轉(zhuǎn)
劃重點——統(tǒng)一回答幾個“大的疑問”
?問:我們公司系統(tǒng)比較復雜,性能要求也比較多,總感覺理不清?
?問:我們公司好像沒人會畫多線程協(xié)作圖。請問,怎么畫?
?問:我們公司嵌入式分層架構(gòu)太泛,沒把代碼塊、線程、中斷等說清楚!
【模塊三】深入詳盡——嵌入式分層實戰(zhàn)技巧
理大局——嵌入式代碼架構(gòu),就這么設(shè)計【步驟明確,經(jīng)驗干貨】
步驟一:借助模式,按“五橫一縱”組織模塊層次
步驟二:自底向上,先把硬件接口代碼模塊設(shè)計好
步驟三:接口抽象,為多種硬件提供統(tǒng)一接口
步驟四:服務(wù)抽象,提煉可復用的顯示/通信/存儲服務(wù)
步驟五:設(shè)計功能層模塊,確定它對下層模塊的調(diào)用
步驟六:設(shè)計初始化模塊,確定它對下層模塊的創(chuàng)建和設(shè)置
案例分析……上面六步都有實際案例。重點步驟,有代碼案例。
劃重點——關(guān)鍵點的講與練【有代碼,有真貨】
Module對Task/Thread的封裝
===Module設(shè)計的最低要求:沒有隱藏就沒有簡化
===模塊封裝task——Message和Task的架構(gòu)級應(yīng)用
Module的可擴展&可配置&可插拔
===模塊的可配置式設(shè)計——ConfigArray的架構(gòu)級應(yīng)用
Interface對多個差異模塊的統(tǒng)一抽象
===函數(shù)指針結(jié)構(gòu)體的架構(gòu)級應(yīng)用
上層對下層的“封裝”與“組裝”
===模塊封裝模塊——Layer思想的代碼實現(xiàn)
===main()如何優(yōu)雅地“啟動”各模塊
拷資料——上述技能,分別對應(yīng)的代碼案例
?代碼案例…
?代碼案例…
思想的飛躍——架構(gòu)之道【學員反饋:“大徹大悟的感覺真爽!”】
?自頂向下——分解思維。架構(gòu)早期。立足業(yè)務(wù),根據(jù)需求分解出粗粒度架構(gòu)
?自底向上——封裝思維。架構(gòu)后期。立足實現(xiàn),隱藏細節(jié),統(tǒng)一接口,提煉服務(wù)
?抽象vs.具體——抽象是結(jié)果,抽象思維的過程從研究多個“具體”開始
?分解vs.封裝——粗粒度架構(gòu)來自自頂向下分解,細粒度架構(gòu)來自自底向上封裝
?接口vs.實現(xiàn)——接口定義“做什么”,實現(xiàn)定義“怎么做”
?統(tǒng)一接口——下層有多種“怎么做”時,不要直接調(diào)用,要通過統(tǒng)一接口調(diào)用
?通用服務(wù)——提煉可復用的顯示/通信/存儲服務(wù),“功能代碼”就簡潔易修改了
?……悟道練習,一起畫腦圖
【模塊四】隔離變化——設(shè)計好內(nèi)部接口、對外接口
我們常設(shè)計這兩種接口
1.遠程及板間接口或協(xié)議
2.模塊級接口或消息
遠程及板間接口或協(xié)議——如何設(shè)計
步驟一:接口交互過程設(shè)計
步驟二:接口實現(xiàn)技術(shù)選擇
步驟三:接口參數(shù)格式定義
案例:分析著名接口規(guī)范……
模塊級接口——技術(shù)風格
?Call(調(diào)用)
?Message(消息)
?Callback(回調(diào))
遠程及板間接口或協(xié)議——API二次封裝
?底層協(xié)議:負責通用性、跨平臺
?提供API:負責屏蔽細節(jié)、方便開發(fā)
?案例分析……
模塊級接口——二次封裝
?核心接口vs.便捷接口(對核心接口的包裝)
?可配置性
拷資料——對應(yīng)的資料分享
?接口規(guī)范…
?接口案例…
?API案例…
【模塊五】職業(yè)生涯——從單板架構(gòu)師,到方案架構(gòu)師
談行業(yè)趨勢,聊職業(yè)發(fā)展
1.IT行業(yè)的人才模型
2.電子企業(yè)的常見發(fā)展路徑
3.我們個人的發(fā)展方略
方案架構(gòu)師設(shè)計自控方案時,工作內(nèi)容有哪些?
1.邏輯設(shè)計=分層設(shè)計+功能子系統(tǒng)劃分
2.物理設(shè)計=硬件拓撲+軟組件分布設(shè)計
3.技術(shù)選型=開發(fā)技術(shù)+運行環(huán)境選型
4.接口設(shè)計=接口技術(shù)選擇+接口協(xié)議定義
自控方案中的上位機軟件設(shè)計
1.五橫一縱——上位機軟件的模塊分層模式
2.模塊劃分——覆蓋接口需求
3.模塊劃分——覆蓋功能需求
拷資料——對應(yīng)的資料分享
《GB設(shè)計書》文檔模板解讀、實際范例分析
?軟件架構(gòu)專家
?實戰(zhàn)型重構(gòu)培訓專家
?創(chuàng)立ADMEMS架構(gòu)實踐體系
?暢銷書《軟件架構(gòu)設(shè)計》作者
?暢銷書《一線架構(gòu)師實踐指南》作者
?暢銷書《應(yīng)用框架的設(shè)計與實現(xiàn)——.NET平臺》譯者
?咨詢專家成員
工作經(jīng)歷及專業(yè)背景
溫昱老師擁有十五年系統(tǒng)規(guī)劃、架構(gòu)設(shè)計和研發(fā)管理經(jīng)驗,在金融、航空、多媒體、網(wǎng)絡(luò)管理、中間件平臺等領(lǐng)域負責和參與多個大型系統(tǒng)的規(guī)劃、設(shè)計、開發(fā)與管理。
溫昱老師還是軟件架構(gòu)思想的傳播者和積極推動者,ADMEMS(一種軟件架構(gòu)設(shè)計方法)的提出者,中國Softcon杰出貢獻專家,中國CCSE杰出專家,其出版的書籍《軟件架構(gòu)設(shè)計——程序員向架構(gòu)師轉(zhuǎn)型必備》、《一線架構(gòu)師實踐指南》等作品,累積印刷十余次,深受讀者喜愛。
作為資深咨詢顧問,擁有近千小時代碼重構(gòu)咨詢經(jīng)驗,提出ARCT設(shè)計重構(gòu)方法論,已為眾多知名企業(yè)提供了卓有成效的架構(gòu)培訓與咨詢服務(wù)。
擅長領(lǐng)域
?架構(gòu)設(shè)計
?詳細設(shè)計
?設(shè)計重構(gòu)
咨詢及培訓客戶
華為,中興通訊,匯川科技,新大陸集團,拓邦股份,邁瑞醫(yī)療,艾默生,上汽,長安汽車,創(chuàng)維,海信,長虹,康佳,通號院,卡斯柯信號,中國中車,海格通信,視源電子,特銳德電氣股份,新北洋信息,英飛拓科技,新開普電子,慧視通科技,四維圖新,烽火科技,東方電子,東軟集團,oppo,酷派,航空多院所,航天多院所,等等