作者最近在看《需求工程-基礎、原理和技術》中,對“非功能性需求”這一概念有了新的認識,發現自己對“非功能性需求”有很多誤區,想想自己編寫需求規格說明書時使用過的“非功能性需求”,現在想起來不知道對開發人員造成了多少困擾。接下來,我們一起看看“非功能性需求”是什麼?會帶來什麼影響?如何去避免它?
其實,“非功能性需求”這詞的應用,并沒有對錯之分;在很多實踐或很多書籍中,都經常看到。結合作者經曆來說,工作中也經常使用功能性需求和非功能性需求來進行區分需求,但看到該書中解釋後,讓我重新認識它。仔細分析或回想這些所謂的非功能性需求,大概可以分成兩類:
非功能性需求分類
① 不明确的功能需求:非功能性需求很多時候都是在描述一個不明确的功能性需求;
② 質量需求:所謂的非功能性需求還可能是描述質量需求。
因此,它要麼是一個明确的功能性需求,要麼是一個質量需求。非功能性需求經常掩蓋了不明确的功能性需求,并導緻了對所期望的系統屬性多種不同的解讀或誤讀。強烈建議不要使用“非功能性需求”。結合課本中一個實例,它的需求是這樣描述“系統應該是安全的”。
R12:系統應該是安全的,可能有人就有以下疑問:
|
R12:系統應該是安全的 ,如果精化或細化如下需求,是否就更好了: R12.1:每個用戶使用系統之前必須先使用用戶名和密碼登錄系統; R12.2:系統應隔4周,提醒用戶更改密碼; R12.3:用戶修改密碼時,确認新密碼至少包含8個字符并同時含有數字和字母; |
因此,我們強烈建議在書寫規範說明的時候,避免這類“非功能性”需求,建議進行仔細的檢查系統存在的“非功能性”需求的地方。
如何處理這類“非功能性需求”呢?答案是不要偷懶,要細化、精化,要明确。這本書的作者也給了如下建議:
文檔化、明确的需求是執行所有其他開發活動的基礎,因此對任何開發項目而言都是根本性的。
希望對大家有所幫助,歡迎大家讨論學習!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!