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