软件需求说明
此條目論述以部分區域為主,未必有普世通用的觀點。 (2014年5月8日) |
软件需求说明(英語:Software requirements specification),也称软件需求说明书、软件需求规格说明、软件需求规格说明书,缩写是SRS。软件需求说明是软件系统需求的规格化说明,是对将要开发系统的行为的说明。軟體需求說明是在商業需求規格(或稱為利益相關者需求規格,StRS)產生後再建立的模型。它包括功能性需求及非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制,也可能會包括用例,敘述在理想情形下,使用者使用軟體的方以及需要提供給的介面。
软件需求说明是客戶和供應商(或承包商)協議的基礎,說明軟體產品應該有的機能(若是由行銷所驅動的專案,會是行銷部門以及開發部門進行這些討論)。软件需求说明是在具體的系統設計階段之前,嚴謹的需求評估。這也是預估產品成本、風險以及時程的實務性基礎[1]。若適當的使用软件需求说明,可以預防軟體專案的失敗[2]。
软件需求说明文件會列出專案開發上,充份且必要的需求資訊[3]。在推導需求的過程中,開發者需要對要開發的產品非常清楚,有透澈的瞭解。這是靠專案團隊和客戶在產品開發過程中很詳細且持續的溝通達成的。
软件需求说明可能是承包商可交付資料項目說明中的一項[4],也有可能是其他組織要求文件中的一部份。 软件需求说明多半是由技术写作人员、系统架构师或程序员所撰寫[5]。
传统的软件需求说明书
中国大陆对软件需求说明是根据 GB8567-88《计算机软件产品开发文件编制指南》进行编写的,虽然此标准到2008年就已经废止,但其影响深远,至今各组织的软件需求说明书模板虽然经过使用后历经调整,仍然有明显的该标准痕迹,可以说形成了传统的软件需求说明书的写法。
相关历史
- 1984年,IEEE发布了Guide to Software Requirements Specifications. [6]。
- 1988年,中国大陆发布了GB8567-88《计算机软件产品开发文件编制指南》以及GB9385-88《计算机软件需求说明编制指南》[7],这几项标准中中国大陆影响深远,很好的指导了上世纪90年代的软件开发,也统治了当时中国大陆的软件工程教材。直到今天仍然有大量企业参照,而当时用例分析方法还没有流行。
- 1986年,UML和统一过程的重要贡献者Ivar Jacobson,将他在1967年定义爱立信AXE系统的构架时开始书写使用场境usage scenarios改名为Use Case(用例),即是用例。
- 1997年11月,UML被OMG全体成员一致通过,并被采纳为标准,而用例是其中的关键部分。
- 1998年,用户故事起源于极限编程中,
- 2008年,中国大陆发布了GB/T9385-2008 《计算机软件需求说明编制指南》 [8],它是GB/T9385《计算机软件需求说明编制指南》的第一次修订,代替被废止GB/T9385-1988。
近状
到2014年為止,在软件需求表达方式领域出现了如下三种常见情况:
- 仍然基于传统SRS表达方式,常见的利用word来书写
- 采用用例分析的表达方式,常见的利用UML工具来管理,比如Rose,EA等等 [9]
- 用户故事的表达方式,常见的利用条目化(工作项)工具来管理,比如卡片,Jira,VSTS,Scrumworks等
有些组织虽然仍然称呼需求文档为需求说明书(或者SRS),而实质的表达采用的是用例,这种情况归属于上述的第2种情况。
在最新的SWEBOK V3.0[10]中,在这一领域仍然采用了“Software requirements specification”的说法。
但是在中文领域,「软件需求说明书」是无法在字面意思上涵盖「不采用SRS写法的用例分析」和「用户故事」的。
说明:至于表达内部事务的用户故事是否属于需求范畴,那是另一回事,毕竟多数的用户故事表达的是需求。
需求異味
需求也會有類似代码异味的情形,需求異味(requirements smell)是指需求規格上的問題,需求不一定不對,但會在實現上造成困難[11]。
需求異味的例子包括有主觀語言、模糊的副詞及形容詞、最高級以及否面敘述等[11]。
相關條目
参考资料
- ^ Bourque, P.; Fairley, R.E. Guide to the Software Engineering Body of Knowledge (SWEBOK). IEEE Computer Society. 2014 [17 July 2014]. (原始内容存档于2014-12-28).
- ^ Software requirements specification helps to protect IT projects from failure. [19 December 2016]. (原始内容存档于2018-01-30).
- ^ Pressman, Roger. Software Engineering: A Practitioner's Approach. Boston: McGraw Hill. 2010: 123. ISBN 9780073375977.
- ^ DI-IPSC-81433A, DATA ITEM DESCRIPTION SOFTWARE REQUIREMENTS SPECIFICATION (SRS). everyspec.com. 1999-12-15 [2013-04-04]. (原始内容存档于2017-12-09).
- ^ Donn Le Vie, Jr. "Writing Software Requirements Specifications (SRS)" (页面存档备份,存于互联网档案馆). 2010.
- ^ 830-1984 - IEEE Guide to Software Requirements Specifications
- ^ GB9385-88 计算机软件需求说明编制指南
- ^ GB/T9385-2008 《计算机软件需求说明编制指南》. [2014-04-19]. (原始内容存档于2014-04-19).
- ^ 张秋余 杨玥 王雪 王鹏 贾志龙 基于用例的需求建模方法 《计算机工程与设计》 2006年19期
- ^ Guide to the Software Engineering Body of Knowledge V3.0 SWEBOK V3.0. [2014-04-19]. (原始内容存档于2014-04-13).
- ^ 11.0 11.1 Femmer, Henning; Méndez Fernández, Daniel; Wagner, Stefan; Eder, Sebastian. Rapid quality assurance with Requirements Smells. Journal of Systems and Software. 2017, 123: 190–213. S2CID 9602750. arXiv:1611.08847 . doi:10.1016/j.jss.2016.02.047.