“非功能需求”属于模糊术语吗
文兵 2020-9-15 10:00
老師的大作兩個版本我都買來學習了,給我的工作幫助非常大。我有個問題,第一版里面您說需求分為功能需求,非功能需求,設計約束,第二版把非功能需求改成質量需求,我也看過您寫的CTO糊涂術語文章,您認為非功能需求屬于什么術語呢?
UMLChina潘加宇
我現在的觀點是,“非功能需求”屬于模糊術語,不過這個模糊是表達上的模糊,來源于歷史習慣,繼續使用的害處比“功能模塊”、“用戶需求”之類的術語要小。
模糊之處在于,針對“需求”集合,“功能需求”是一個子集,“非功能需求”的字面意思就是“功能需求”的補集,所以這兩個相加就是全集了,“需求分為功能需求,非功能需求,設計約束”的表述是不嚴謹的。
但是,類似于功能需求+非功能需求+設計約束的表述方式由來已久,我自己應該是從2002年開始使用這樣的表述。當然,我肯定也是從教材上看的,具體哪一本教材現在不記得了。事實上,這么多年來,不少書籍依然是這樣表述的,甚至更加混亂。翻閱手邊有的軟件工程和需求專著,截幾個圖:
圖1 摘自 軟件工程(第4版 修訂版),Shari Lawrence Pfleeger 等 著,楊衛東 譯,人民郵電出版社,2019
圖2 摘自 軟件工程導論(原書第4版),Frank Tsui 等 著,崔展齊 等 譯,機械工業出版社,2018
圖3 摘自 AOSD中文版-基于用例的面向方面軟件開發,Ivar Jacobson 等 著,徐鋒 譯,電子工業出版社,2005
圖4 摘自 The Requirements Engineering Handbook, Ralph R. Young, Artech House, 2003
以上都是國外作者的書籍,國內作者的書籍也有的,例如:
圖5 摘自 軟件需求最佳實踐,徐鋒 著,電子工業出版社,2008
要表述嚴謹一點,做法可以有:
(1)設計約束不是需求。這個不合適,把它們擺在一起,說明屬于一類東西,不管這東西叫“需求”還是“阿貓”、“阿狗”。它們都屬于“系統不這樣不行,否則會損害涉眾利益”。
(2)設計約束是非功能需求的一種。這個可以,但是習慣上說到“非功能需求”,想到的是速度、可靠性等等,這也是出現模糊表達的原因。
(3)把“非功能需求”改名?!胺枪δ苄枨蟆边@樣的口袋式命名本來就不合適,例如可以改為Pfleeger書(圖1)中的表達方式——“質量需求”,不過,“質量”這個詞也模糊得很。
“需求分為功能需求、質量需求和設計約束”也還是不合適,憑什么前面兩個都有“需求”二字收尾,最后一個就沒有?還可以把“需求”這個尾巴去掉——需求分為功能、性能、設計約束三種,然后就往這三個筐里分吧。
總結
以上是生活随笔為你收集整理的“非功能需求”属于模糊术语吗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源项目zheng学习
- 下一篇: 基于osgEarth的空间态势三维场景视