浅谈需求:软件需求的分类到底有哪些?

2 评论 49724 浏览 64 收藏 7 分钟

当需求需要被文档化描述,这就要求产品经理弄清楚需求有哪些类型,每种类型该如何进行表达。

在软件行业,人们讨论的“需求”通常指的是软件应用需求,但还是具有其他不同类型的需求,如下图

  • 项目需求:大Boss要求团队需要在3个月内完成项目并上线,其对象针对项目的时间进度、成本、资源等。
  • 过程需求:项目经理要求提交需求规格说明文档、产品原型图等报告,其对象是在开发过程中的开发人员、工具方法等。
  • 系统级需求,包括软件需求(这就是我们常讨论的需求)、硬件需求(怎么样规格的服务器、显示屏等),其他需求(如某些toB软件投入使用要需要对用户进行培训讲解)。

对于上述的所讲的项目需求、过程需求、硬件需求、其他需求也是要写进需求文档里去的,一般是写在开头或末尾,这根据自己的个人习惯。讲了辣么多,我的主体还是我们所常提起的软件需求。

从严格意义上的软件需求分类具有:功能需求(functional requirement),非功能需求(non-functional requirement),就好比我在某宝想买一双鞋子,球鞋、高跟鞋、过膝靴、红色、黑色等是明显可知的(功能需求),但鞋跟牢不牢固、鞋底会不会脱胶等是不清楚的(非功能需求)。其中非功能需求包括性能需求(performance requirement),质量属性(quality attribute),对外接口(external interface),约束(constraint)。

功能需求:

是最常见和最重要的需求,体现在系统与用户之间的交互,帮助用户解决问题,完成任务。功能也有复杂简单之分,对于复杂的功能需要一层一层分离,如公司做的核销功能,在账单模块,分离各种支付类型,支付类型又分为具有流水号和无流水号的等等。或者独立成多个部分,如公司的某项目,分成机票模块、酒店模块、用车模块等等,然后再分别交给开发人员进行开发。

功能需求是整个系统产生价值的基础,是使得一个软件应用得以存在的原因。

性能需求:

我们会经常讨论到手机性能怎么样,卡不卡,耗电量怎么样,存储量有多大……而软件也具有性能,是指某指定功能的程度,如速度,精确度,内存使用程度等

常见的性能:

  1. 速度:系统完成指定任务的时间。如航班搜索出来的结果必须在3s内展示出来。
  2. 容量:系统所能存储的数据量。如财务系统能存储至少10万条的核销数据。
  3. 并发性:系统可以承载的并发工作量。如某软件允许多少个用户同时使用。
  4. 实时性:严格的实时要求。如降舱软件中当发现合乎条件的舱位,系统需在1s内执行降舱指令。

对于性能需求,如要不是很大的用户量或大公司,其他则比较少去考虑该方面的需求,但对于系统的后期发展,这也是一个极其重要需求探讨。

质量属性:

质量属性包括性能需求,只是性能需求比较特殊,所以单独出来。

常见的质量属性:

  1. 可靠性:指在一定时间或条件下,系统执行所要求功能的无故障执行能力。
  2. 可用性:系统在使用中可操作或访问程度。
  3. 可维护性:为改进系统或修复bug而修改系统或某功能模块的难易程度。
  4. 安全性:阻止对其程序和数据进行未授权访问的能力。
  5. 可移植性:将系统从一个硬件或软件的运行环境换置到另一个环境。
  6. 易用性:系统易于使用的程度。

另外常见的质量模型为[IOS/IEC 9126-1]和[IEEE 1061-1992,1998],点击即可跳到链接查看,为26和27条

对外接口

对于接口需要进行说明:

  1. 接口的用途;
  2. 接口的输入输出;
  3. 数据格式;
  4. 命令格式;
  5. 异常处理要求;

如某数据包为XML格式,HotelProduct表示酒店接口,接口的输入为Destination目的地,Date住店及离店日期,输出的数据类型为数字文本,0代表操作正确,1代表数据错误,2代表网络故障,3代表其他错误,而对于0还输出具有目的地的酒店信息,其中一个字段为HotelID,酒店编号,Number类型,18位数据代码。

约束

常见的约束:

  1. 系统开发以及运行的环境:包括计算机,操作系统,编程语言、数据库管理系统等
  2. 问题域内的相关标准:包括法律法规、合作协议等
  3. 社会性因素:文化、信仰等社会性因素

对于软件需求的分类大致就是以上这几类,这是最近在看需求工程书籍归纳的。另外自己的原型设计会对某界面或某功能进行需求描述,如行为的触发条件,行为的前置条件、行为流程、后置条件、异常情况、和对数据的需求(类型、初始值、取值范围、单位等)、使用什么接口,接口的描述等等,对于该如何完备性的描述一个界面或功能的需求下回见分晓~~如大家有什么建议或补充,欢迎留言。

 

本文由 @Halona 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 很棒!约束类需求里文化信仰这块有实例么

    来自江苏 回复
  2. 和我现在干的工作几乎全一致

    回复