软件需求分类有哪些
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件需求分类有哪些?-北京锐智互动
当需求需要备文档化描述,折旧要求产品经理弄清楚哪些类型,每种类型该如何进行表达,在软件行业,人们讨论“需求”通常指的是软件应用需求,但还是具有其他不同类型的需求,如图
项目需求:老板要求团队需要在3个月内完成项目并上线,其对象针对项目的时间进度、成本、资源等。过程需求:项目经理要求提交需求规格说明文档、产品原型图等报告,其对象是在开发过程中的开发人员、工具方法等。系统级需求,包括软件需求(这就是我们常讨论的需求)、硬件需求(怎么样规格的服务器、显示屏等),其他需求(如某些toB软件投入使用要需要对用户进行培训讲解)。
对于上述的所讲的项目需求、过程需求、硬件需求、其他需求也是要写进需求文档里去的,一般是写在开头或末尾,这根据自己的个人习惯。讲了辣么多,我的主体还是我们所常提起的软件需求。
从严格意义上的软件需求分类具有:功能需求,非功能需求,就好比我在某宝想买一双鞋子,球鞋、高跟鞋、过膝靴、红色、黑色等是明显可知的(功能需求),但鞋跟牢不牢固、鞋底会不会脱胶等是不清楚的(非功能需求)。其中非功能需求包括性能需求,质量属性,对外接口,约束。
功能需求:
是最常见和最重要的需求,体现在系统与用户之间的交互,帮助用户解决问题,完成任务。功能也有复杂简单之分,对于复杂的功能需要一层一层分离,如公司做的核销功能,在账单模块,分离各种支付类型,支付类型又分为具有流水号和无流水号的等等。或者独立成多个部分,如公司的某项目,分成机票模块、酒店模块、用车模块等等,然后再分别交给开发人员进行开发。
功能需求是整个系统产生价值的基础,是使得一个软件应用得以存在的原因。
性能需求:
我们会经常讨论到手机性能怎么样,卡不卡,耗电量怎么样,存储量有多大……而软件也具有性能,是指某指定功能的程度,如速度,精确度,内存使用程度等
常见的性能:
1.速度:系统完成指定任务的时间。如航班搜索出来的结果必须在3s内展示出来。
2.容量:系统所能存储的数据量。如财务系统能存储至少10万条的核销数据。
3.并发性:系统可以承载的并发工作量。如某软件允许多少个用户同时使用。
4.实时性:严格的实时要求。如降舱软件中当发现合乎条件的舱位,系统需在1s内执
行降舱指令。
对于性能需求,如要不是很大的用户量或大公司,其他则比较少去考虑该方面的需求,但对于系统的后期发展,这也是一个极其重要需求探讨。
质量属性:
质量属性包括性能需求,只是性能需求比较特殊,所以单独出来。
常见的质量属性:
1.可靠性:指在一定时间或条件下,系统执行所要求功能的无故障执行能力。
2.可用性:系统在使用中可操作或访问程度。
3.可维护性:为改进系统或修复bug而修改系统或某功能模块的难易程度。
4.安全性:阻止对其程序和数据进行未授权访问的能力。
5.可移植性:将系统从一个硬件或软件的运行环境换置到另一个环境。
6.易用性:系统易于使用的程度。
对于接口需要进行说明:
1.接口的用途;
2.接口的输入输出;
3.数据格式;
4.命令格式;
5.异常处理要求;
如某数据包为XML格式,HotelProduct表示酒店接口,接口的输入为Destination目的地,Date住店及离店日期,输出的数据类型为数字文本,0代表操作正确,1代表数据错误,2代表网络故障,3代表其他错误,而对于0还输出具有目的地的酒店信息,其中一个字段为HotelID,酒店编号,Number类型,18位数据代码。
常见的约束:
1.系统开发以及运行的环境:包括计算机,操作系统,编程语言、数据库管理系统等
2.问题域内的相关标准:包括法律法规、合作协议等
3.社会性因素:文化、信仰等社会性因素