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