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