我們可以將一份好需求整體總結(jié)為以下8個(gè)特點(diǎn):完整性、可行性、可驗(yàn)證性、不含糊性、一致性、正確性、可理解性、可修改性。
1.完整性
- 所有外部需求都應(yīng)被確認(rèn)。
- 需求包含功能、性能、設(shè)計(jì)限制、接口等關(guān)鍵要素。
- 軟件外部的輸入數(shù)據(jù)類別應(yīng)完整,要明確指定對(duì)有效和無(wú)效輸入值的響應(yīng),比如,對(duì)于“電壓大于20V時(shí),......”,應(yīng)該增加“電壓小于20V時(shí),......”。
- 術(shù)語(yǔ)應(yīng)明確定義。
2.可行性
- 能夠在系統(tǒng)及其使用環(huán)境的已知能力和限制范圍內(nèi)實(shí)現(xiàn)。
- 技術(shù)上能不能做。
- 不需要以過(guò)高的成本或其他突出損失來(lái)實(shí)現(xiàn)。
3.可驗(yàn)證性
- 每一條需求都是可驗(yàn)證的。
- 不需要以太高的成本去驗(yàn)證。
- 需求應(yīng)定義明確,比如,“經(jīng)常會(huì)出現(xiàn)”、“性能良好”、“HMI美觀”就不可驗(yàn)證。
- 理論上要成立,比如,“車機(jī)永遠(yuǎn)不能死機(jī)”是無(wú)法去驗(yàn)證的。
4.不含糊性
- 每條需求只有一種解釋。
- 應(yīng)有明確定義的術(shù)語(yǔ)表。
- 對(duì)于創(chuàng)建者和使用者都是明確的。
- 動(dòng)詞更勝于名詞。
- 應(yīng)有主語(yǔ),比如,“每50ms發(fā)送一次信號(hào)”就語(yǔ)焉不詳。
- 不要使用“和”、“或”、“如果”、“但是”這些承接詞,比如,“在遇到故障時(shí),控制器應(yīng)記錄DTC,并點(diǎn)亮儀表燈”應(yīng)拆分為兩條。
- 自然語(yǔ)言自帶含糊性,需獨(dú)立第三方評(píng)審。
5.一致性
- 需求內(nèi)部沒(méi)有沖突。
- 需求與上級(jí)文檔一致。
- 需用的術(shù)語(yǔ)要統(tǒng)一。
6.正確性
- 需求描述是針對(duì)產(chǎn)品的。
- 與相關(guān)文檔進(jìn)行比對(duì),比如,上級(jí)規(guī)范、base項(xiàng)目文檔以及相關(guān)標(biāo)準(zhǔn)。
- 客戶或用戶視角下的評(píng)審。
- 基于追溯關(guān)系來(lái)檢查。
- 工具或流程無(wú)法確保正確性。
7.可理解性
- 足夠精簡(jiǎn),內(nèi)容有任何刪減都會(huì)導(dǎo)致含義變化。
- 不需要以過(guò)高的成本去理解。
- 應(yīng)增加適當(dāng)?shù)?/span>注釋。
- 使用這些需求的角色都能理解。
- 充分使用圖和表,比如,時(shí)序圖、功能塊圖、真值表等。
8.可修改性
- 容易修改并還能保持原有的結(jié)構(gòu)和風(fēng)格。
- 具有連貫且易于閱讀的結(jié)構(gòu),包括目錄和引用。
- 不冗余,即同一需求在需求規(guī)范中僅出現(xiàn)一次。
- 需要出現(xiàn)多次時(shí),可以使用引用的方式。
- 每條需求都是獨(dú)立的,而不是與其他需求混在一起。
9.寫(xiě)在最后
整體來(lái)說(shuō),撰寫(xiě)需求時(shí),要干脆利落,要“毫無(wú)感情”。
轉(zhuǎn)自汽車電子與軟件