需求管理之如何对客户的需求进行分类

简介:       不要指望你的客户会给需求分析者提供一个简洁、完整、组织良好的需求清单。分析者必须把代表客户需求的许多信息分成不同的类型,这样他们就能合理地编写信息文档并把它们用于最合理的方式上。

      不要指望你的客户会给需求分析者提供一个简洁、完整、组织良好的需求清单。分析者必须把代表客户需求的许多信息分成不同的类型,这样他们就能合理地编写信息文档并把它们用于最合理的方式上。那些不属于这些类型的信息可能代表一个非软件项目的需求,例如,为使用新系统而进行的用户培训或者它仅仅是不重要的信息。


     下面讨论在听取客户需求过程中的一些建议,这将有助于对信息进行分类处理。


      1) 业务需求,描述客户或开发公司可以从产品中得到的资金、市场或其它业务利润的需求就是最可能的业务需求。再听听直接或间接的软件用户得到好处,例如“市场股票价格上升x %”,“每年节约$ Y”,或“替代了维护费用高的老一代系统Z”。


      2) 使用实例或说明有关利用系统执行的业务任务或达到用户目标的总的陈述可能就是使用实例,而特定的任务描述表示了用法说明。与客户一起商讨,把特定的任务概括成更广泛的使用实例。可以通过让客户描述他们的业务工作流活动来获取使用实例。


      3) 
业务规则,当一个客户说,一些活动只能在特定的条件下,由一些特定的人来完成时,该用户可能在描述一个业务规则,例如,“如果一个药剂师在危险化学制品培训方面是可靠的,那么他就可以在一级危险药品清单上订购化学制品”。业务规则是有关业务过程的操作原则。你可以用一些软件功能需求来加强规则,例如,让“化学制品跟踪系统”可以访问培训记录数据库。正如上面所说的那样,这里业务规则不是功能需求。


      4) 
功能需求,客户所说的诸如“用户应该能<执行某些功能>”或者“系统应该<具备某些行为〉”,这是最可能的功能需求。功能需求描述了系统所展示的可观察的行为,并且大多数是处于执行者—系统响应顺序的环境中。功能需求定义了系统应该做什么,它们组成了软件需求规格说明的一部分。分析者应该明确,每个人应理解系统为什么“必须”执行某一功能。所提出的功能需求有时反映了过时的或无效的业务过程,而这些过程不能加入到新系统中。


      5) 
质量属性,对系统如何能很好地执行某些行为或让用户采取某一措施的陈述就是质量属性,这是一种非功能需求。听取那些描述合理特性的意见:快捷、简易、直觉性、用户友外部接口需求好、健壮性、可靠性、安全性和高效性。你将要和用户一起商讨精确定义他们模糊的和主观言辞的真正含义。


      6) 
外部接口需求,这类需求描述了系统与外部的联系。软件需求规格说明必须包括用户接口和通信机制、硬件和其它软件系统需求部分。客户描述外部接口需求包括如下习惯用语:
      • “从<某些设备〉读取信号”
      • “给<一些其它系统>发送消息”
      • “以<某种格式>读取文件”
      • “能控制<一些硬件>”


      7) 
限制,限制是指一些合理限制设计者和程序员选择的条件。它们代表了另一种类型的非功能需求,你必须把这些需求写入软件需求规格说明。尽量防止客户施加不必要的限制,因为这将妨碍提出一个好的解决方案。不必要的限制将会降低利用现有商业化软件集成解决方案的能力。一定的限制有助于提高产品质量属性。只利用程序语言的标准命令而不允许使用供应商的扩展,可以提高可移植性。下面是客户描述限制的一些习惯用语:
       • “必须使用<一个特定的数据库产品或语言>”
       • “不能申请多于<一定数量的内存>”
       • “操作必须与<其它系统>相同”
       • “必须与<其它应用程序>一致”


      8) 
数据定义,当客户描述一个数据项或一个复杂的业务数据结构的格式、允许值或缺省值时,他们正在进行数据定义。例如,“邮政编码由5个数字组成,后跟一个可选的短划线或一个可选的四位数字,缺省为0 0 0 0”就是一个数据定义。把这些集中在一个数据字典中,作为项目的参与者在整个项目的开发和维护中的主要参考文档。


      9) 
解决思想,如果一个客户描述了用户与系统交互的特定方法,以使系统产生一系列活动(例如:用户从下载清单中选择一个所需要的项),这时你正在听取建议性的解决方案,而不是需求。所建议的解决方案使获取需求小组成员在潜在的真正需求上分散精力。在获取需求时,应该把重点放在需要作什么而不是新系统应该如何设计和构造。探讨客户为什么提出一个特定的实现方法,因为这可以帮助你理解真正的需求和用户对如何构造系统的隐含的期望。


相关文章
|
消息中间件 运维 监控
微服务架构的优点和缺点分别有哪些?
微服务架构的优点和缺点分别有哪些?
626 0
微服务架构的优点和缺点分别有哪些?
|
8月前
|
机器学习/深度学习 算法 测试技术
如何应对缺失值带来的分布变化?探索填充缺失值的最佳插补算法
该文探讨了缺失值插补的不同方法,比较了它们恢复数据真实分布的效果。文章指出,处理插补尤其在小样本或复杂数据时是个挑战,需要选择能适应数据分布变化的方法。文中介绍了完全随机缺失(MCAR)、随机缺失(MAR)和非随机缺失(MNAR)三种机制,并以一个简单的例子展示了数据分布变化。文章通过比较均值插补、回归插补和高斯插补,强调了高斯插补在重现数据分布方面更优。评估插补方法时,不应仅依赖于RMSE,而应关注分布预测,使用如能量距离这样的指标。此外,即使在随机缺失情况下,数据分布也可能因模式变化而变化,需要考虑适应这些变化的插补方法。
273 2
|
7月前
|
Linux Shell
Linux中的realpath命令:深入解析与实用指南
**Linux的`realpath`命令详解** `realpath`用于获取文件或目录的规范化绝对路径,解析相对路径、符号链接及冗余元素。它接受路径输入,返回最短、唯一的绝对路径。支持 `-e`(确保路径存在)、`-m`(允许缺失组件)、`-s`(删除多余斜杠)和`-q`(静默模式)等参数。在脚本中使用能确保路径一致性,但需注意权限和路径检查。了解`pwd`、`find`和`readlink`等命令的用法也有助于选择合适的路径处理工具。
|
9月前
|
JavaScript 前端开发 UED
数据绑定魔法:Vue中的插值和指令
【4月更文挑战第22天】Vue.js 是一款轻量级前端框架,擅长处理动态数据。本文聚焦于Vue中的数据绑定,包括插值和指令。插值({{ }})用于在HTML中展示JavaScript表达式,如变量和简单运算。指令(v-前缀)如v-bind、v-model和v-on,则提供更复杂的声明式渲染。v-bind绑定属性,v-model实现双向数据绑定,v-on监听DOM事件。指令还支持修饰符(如.prevent)和动态参数,增强灵活性。掌握这些,能提升开发效率并创建响应式界面。
128 4
|
存储 算法 应用服务中间件
Nginx之QPS限制模块解读
Nginx之QPS限制模块解读
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
揭秘深度学习中的注意力机制
【4月更文挑战第19天】 在深度学习领域,注意力机制(Attention Mechanism)已经成为推动模型性能突破的关键技术之一。不同于传统的序列处理模型,它能够动态地聚焦于输入数据的重要部分,赋予权重以实现更有效的信息提取。本文将探讨注意力机制的核心概念、不同变体以及在自然语言处理和图像识别中的应用实例。通过分析具体案例,我们将揭示注意力机制如何提升深度学习模型的处理能力,并讨论其面临的挑战与未来的发展方向。
117 0
|
存储 算法
数据结构实验三 线性表的链式存储结构及实现
数据结构实验三 线性表的链式存储结构及实现
241 0
|
JavaScript
vue-demi
vue-demi
162 0
|
弹性计算 固态存储 数据可视化
阿里云服务器价格表,阿里云服务器购买价格出炉(2023更新)
阿里云服务器价格表,阿里云服务器购买价格出炉(2023更新)1核1G配置19.17元3个月、306.72元一年,1核2G优惠价26.46元3个月、423.36元一年,2核4G配置42.66元3个月,2核8G配置58.86元3个月,4核8G 75.06元3个月,8核16G 139.86元3个月,还有4核16G、8核32G多配置可选。不只是云服务器ECS共享型s6实例,ECS计算型c6、通用型g6、内存型r6、云服务器u1、企业级c7/g7/r7系列、轻量应用服务器
1234 1
阿里云服务器价格表,阿里云服务器购买价格出炉(2023更新)
|
机器学习/深度学习 存储 监控
10 大最佳网络分析工具介绍
10 大最佳网络分析工具介绍
1141 0
10 大最佳网络分析工具介绍

热门文章

最新文章