【一階技能】貫通需求分析
? 需求 = 功能需求 + 質(zhì)量需求 + 約束需求
? 功能 = 接口需求 + 系統(tǒng)能力 + 處理流程
? 需求分析前期任務(wù)、用例圖、案例
? 需求分析后期任務(wù)、用例規(guī)約、案例
【二階技能】精通需求文檔
? 需求內(nèi)容、模型總覽
? 管理軟件《需求書(shū)》實(shí)例 and 最佳模板
? 嵌 入 式《需求書(shū)》實(shí)例 and 最佳模板
? 嵌入式軟件的接口需求、算法需求刻畫(huà)
? 接口需求,要充分體現(xiàn)軟件與傳感器、
執(zhí)行器、其他系統(tǒng)的雙向?qū)右?br>
? 處理流程,往往涉及操作、處理、控制
過(guò)程的專(zhuān)業(yè)算法,也應(yīng)分析并歸檔
【三階技能】讓《SRS》成為分析和識(shí)別需求變更的工具
? 需求變更分析:How to
? 需求變更分析:示范案例
? 傳統(tǒng)“輸入-處理-輸出”分析方式的改進(jìn)
在課堂上練會(huì)、夯實(shí)的技能,將在工作中直接發(fā)揮價(jià)值
【實(shí)戰(zhàn)】分組實(shí)戰(zhàn),老師會(huì)給《需求書(shū).doc》
? 任務(wù):電梯控制板需求變更分析、及如何將變更歸檔
? 貫穿案例推進(jìn)……
嵌入式架構(gòu)的重中之重——控制結(jié)構(gòu)設(shè)計(jì)
設(shè)計(jì)師設(shè)計(jì)嵌入式軟件時(shí),有三種控制結(jié)構(gòu)可供選擇
1. 死循環(huán)
實(shí)現(xiàn)代碼分析……
2. 事件驅(qū)動(dòng)多任務(wù)(event-driven multitask)
實(shí)現(xiàn)代碼分析……
3. 時(shí)間片輪詢(xún)架構(gòu)(time-slice polling)
實(shí)現(xiàn)偽代碼分析……
設(shè)計(jì)師設(shè)計(jì)嵌入式軟件時(shí),可參考的優(yōu)秀范例二則
1. 著名飛行器開(kāi)源產(chǎn)品——多任務(wù)架構(gòu)
主要收獲:入口主程序、Task的劃分、Task間的同步
主要收獲:中斷函數(shù)在多任務(wù)架構(gòu)下的經(jīng)典寫(xiě)法
2. 某硬實(shí)時(shí)單板控制器——時(shí)間片輪詢(xún)架構(gòu)
主要收獲:入口主程序代碼骨架
主要收獲:中斷函數(shù)在時(shí)間片輪詢(xún)架構(gòu)下的經(jīng)典寫(xiě)法
設(shè)計(jì)師設(shè)計(jì)嵌入式軟件時(shí),根據(jù)性能選擇架構(gòu)
1. 嵌入式性能:
? 速 度:響應(yīng)時(shí)間長(zhǎng)短?
? 效 率:任務(wù)切換過(guò)頻怎么辦?
? 吞吐量:每秒處理事件數(shù)等
2. 三種控制結(jié)構(gòu)的適用場(chǎng)景
? 事件率高低
? 事件率波動(dòng)規(guī)律、峰值
3. 案例故事:某單板程序,高事件率下CPU占用率100%
? 設(shè)計(jì)一:事件驅(qū)動(dòng)多任務(wù)架構(gòu)(有OS)
? 設(shè)計(jì)二:時(shí)間片輪詢(xún)架構(gòu)(無(wú)需OS)
? 設(shè)計(jì)優(yōu)劣對(duì)比
? 任務(wù):多任務(wù)or時(shí)間片輪詢(xún)架構(gòu)的選擇
? 貫穿案例推進(jìn)……
重用關(guān)鍵——模塊劃分
設(shè)計(jì)師劃分模塊時(shí),代碼結(jié)構(gòu)的全局劃分方法
1. 從模式開(kāi)始——巧妙的“五橫一縱”分層模式
2. 模塊劃分——覆蓋上下文圖定義的接口需求
3. 模塊劃分——運(yùn)用用例驅(qū)動(dòng)設(shè)計(jì)思維
3.1. 起步:分析用例規(guī)約,識(shí)別實(shí)現(xiàn)用例的那些代碼塊
3.2. 后續(xù):協(xié)作設(shè)計(jì),即用序列圖串起這些代碼
設(shè)計(jì)師劃分模塊時(shí),注意幾個(gè)基本原則
1. 通用-專(zhuān)用分離:提煉應(yīng)用無(wú)關(guān)的Library、或選擇三方庫(kù)
2. 通用-專(zhuān)用分離:機(jī)制與策略分離,開(kāi)發(fā)或選擇Framework
3. 隔離外部交互:僅UI層“知道”操作細(xì)節(jié)和展現(xiàn)格式
4. 隔離外部交互:僅SI層“知道”和外部部件通信的細(xì)節(jié)
5. 隔離外部交互:僅DM層“知道”數(shù)據(jù)存儲(chǔ)格式
設(shè)計(jì)師劃分模塊時(shí),可參考的優(yōu)秀范例一則
1. 著名開(kāi)源產(chǎn)品套件——Mumble
主要收獲:模塊的劃分、通用庫(kù)的提煉、三方框架…
實(shí)戰(zhàn)演練
1. 任務(wù):模塊劃分
(必須覆蓋代碼結(jié)構(gòu)全局、不能漏模塊)
2. 貫穿案例推進(jìn)……
隔離變化——模塊接口設(shè)計(jì)
設(shè)計(jì)師設(shè)計(jì)接口時(shí),考慮的三件事兒
1. 技術(shù)選擇:接口設(shè)計(jì)容易?做漂亮最難!
2. 機(jī)制選擇:調(diào)用/回調(diào)/同步/異步/輪詢(xún)/超時(shí)
3. 格式定義:函數(shù)風(fēng)格 vs.報(bào)文或消息風(fēng)格
設(shè)計(jì)師設(shè)計(jì)接口時(shí),可參考的優(yōu)秀范例一則
4. 某通用產(chǎn)品——漂亮的C語(yǔ)言接口、方便的配置
主要收獲:圍繞Domain Type定義模塊的核心接口
主要收獲:在核心接口基礎(chǔ)上,可定義便捷接口
注?英文術(shù)語(yǔ)為Core Interface、Convenience Interface
設(shè)計(jì)師設(shè)計(jì)接口時(shí),這些經(jīng)驗(yàn)可以用
1. 基于代碼:專(zhuān)項(xiàng)練習(xí)一
2. 基于代碼:專(zhuān)項(xiàng)練習(xí)二
3. 基于代碼:專(zhuān)項(xiàng)練習(xí)三
4. 原則與“坑”總結(jié)
1. 任務(wù)1:接口的命令化(Command)支持可擴(kuò)展
2. 任務(wù)2:讓接口包含回調(diào)(Callback)使模塊通用化
3. 貫穿案例設(shè)計(jì)推進(jìn)……
自控方案設(shè)計(jì)——單板軟件架構(gòu)師的下一步
架構(gòu)師設(shè)計(jì)自控方案時(shí),工作內(nèi)容有哪些?
1. 邏輯設(shè)計(jì) = 分層設(shè)計(jì) + 功能子系統(tǒng)劃分
2. 物理設(shè)計(jì) = 硬件拓?fù)?+ 軟組件分布設(shè)計(jì)
3. 技術(shù)選型 = 開(kāi)發(fā)技術(shù) + 運(yùn)行環(huán)境選型
4. 接口設(shè)計(jì) = 接口技術(shù)選擇 + 接口協(xié)議定義
架構(gòu)師設(shè)計(jì)自控方案時(shí),需求文檔怎么寫(xiě)?
1. 《需求規(guī)格書(shū)》模板解讀
2. 《需求規(guī)格書(shū)》實(shí)際范例分析
架構(gòu)師設(shè)計(jì)自控方案時(shí),架構(gòu)文檔怎么寫(xiě)?
1. 《GB SSDD》文檔模板解讀
2. 《GB架構(gòu)書(shū)》實(shí)際范例分析 |