【PMP/软考】软件需求的三个主要层次:业务需求、用户需求和功能需求解释及实例解析

简述

当进行需求分析时,通常着重考虑三个主要层次:业务需求、用户需求和功能需求。业务需求关注项目与组织战略目标的一致性,用户需求明确最终用户的期望,而功能需求定义具体的系统功能和特性。这三个层次为项目管理和软件工程提供了关键的指导,确保项目成功地满足用户和业务需求。需求分析的重点通常集中在这三个层次,以确保项目的成功交付。

此外,还包括系统需求、性能需求、可用性需求、安全性需求、数据需求、界面需求以及法规和合规性需求等。这些层次共同构成全面的需求分析,有助于确保项目满足各种技术、业务和用户方面的需求,以达到项目成功。

业务需求( Business requirement ) 

表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围( vision and scope )文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求( project charter 或 market requirement )文档。

例如有个公司,一定要做一款“智能硬件”,其目的也许不是为了销售,只是正好上市,打造一个概念“涉足智能硬件”的概念,务必使用新技术,或者涉足新领域,便于资本市场炒作。那么这个产品需求分析的时候,就不能按部就班,按常理出牌。步子就是要大,哪怕扯到蛋,也要步子大。这就是“业务需求”的一种体现。所以在产品的需求分析阶段,要把“指导思想”搞清楚。

再例如我在华为做IPC的时候,指导思想是“华为要做监控安防领域的苹果”,占领技术制高点、产品制高点,避免同质化,避免陷入价格战。那么在这款产品的市场定位上,首先定义为“平安城市”+“高端园区”,所以在特殊功能,性能指标方面,追求极致;而在成本,复杂度上面做出妥协。

研发的人员一般也担心风险,进度,对于有挑战的需求往往会望而生畏。而且每个人的理念不一样。当时一位同事做廉价产品做出过成绩,降成本很有心得,所以死扣这款产品的成本。但是这款产品的指导思想很清晰,所以设计理念得以落实。这个产品的市场经理当时根据室外环境、园区环境供电距离远的特点,提出了“穷凶极恶”的概念(在恶劣的情况下能够正常工作),实际上会增加成本,也会增加电路的设计难度。但是为了差异化竞争,为了占领高端市场。


虽说需求都是可以讨论,但是如果研发理解了需求背后的原因,可能更容易去权衡各个需求的优先级。“多快好省”肯定是不可能兼得的,但是理解需求背后的原因之后,就可以更好的进行取舍和排序。

用户需求( User requirement ) 

描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。

首先,对于用户需求,不要“意淫”,有的研发人员往往意淫出一些需求,因为程序员、硬件攻城狮往往会把自己放在客户的角色上,但是开发人员往往不具备客户的行业经验,或者不具备客户使用产品的场景。用主观意识去使用和认知产品,往往就往往不符合客户需要的原本的模样。

另外,对于运营商产品,客户的表述往往就是用户需求,因为客户是长期从事相关产品的使用,属于专业人员,专业能力较强,而且产品往往配套培训和材料;但是对于个人消费品或者是一些企业用户,用户说的往往并不是用户需求。因为

由于开发人员往往会把自己放置在用户的角度思考,往往就会出现需求的范围蔓延,无端的增加了很多原本没有讨论过的需求。避免需求在开发过程中的走样。往往我们需要进行“范围管理”。

项目范围的管理也就是对项目应该包括什么和不应该包括什么进行相应的定义和控制。它包括用以保证项目能按要求的范围完成所涉及的所有过程,包括:确定项目的需求、定义规划项目的范围、范围管理的实施、范围的变更控制管理以及范围核实等。项目范围是指产生项目产品所包括的所有工作及产生这些产品所用的过程。项目干系人必须在项目要产生什么样的产品方面达成共识,也要在如何生产这些产品方面达成一定的共识。

范围管理的目的是在项目开发过程中,出现范围蔓延。制约一个项目的条件是项目“三约束条件”——范围、时间、成本。

范围的蔓延,势必影响项目的时间和成本。

在一个项目中这三个条件是相互影响、相互制约的,而且往往是由于范围影响了时间和成本。项目一开始确定的范围小,那么它需要完成的时间以及耗费的成本必然也小,反之亦然。很多项目在开始时都会粗略地确定项目的范围、时间以及成本,然而在项目进行到一定阶段之后往往会变得让人感觉到不知道项目什么时候才能真正结束,要使项目结束到底还需要投入多少人力和物力,整个项目就好像一个无底洞,对项目的最后结束谁的心里也没有底。这种情况的出现对于公司的高层来说,他们是最不希望看到的,然而这样的情况出现并不罕见。造成这样的结果就是由于没有控制和管理好项目的范围。可见项目的三个约束条件中最主要还是范围的影响。

产品工程过程分为需求分析、概要设计、详细设计、编码、测试、安装试运行、验收等七个阶段,项目保障过程包括项目计划、项目跟踪与监督、需求管理、质量保证、配置管理、同行评审等保障性工作过程。上图也体现了各个环节对需求的控制和理解,这个过程管理的。

功能需求( Functional requirement ) 

规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求( behavioral requirement ),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。功能需求描述是开发人员需要实现什么。

对于硬件项目,在项目启动后,会写一个《需求规格跟踪表》。

需求为什么需要文档化呢?如果你开发出来的产品,被别的同事质疑,这也没有那也没有时,你一肚子委屈过,你就非常能够理解。

Ø开发人员通过文档化的过程查错补遗;

Ø便于评审,在早期发现技术上的问题;

Ø后续阶段开发任务可能由他人承担,输出文档便于他们开展工作;

Ø维护人员开展维护工作需要;

Ø文档是必要的交付件;

“所有的过程分析都要形成文档。我们现在有一个严重的问题是,大家好像不喜欢写文档,对于需要的实现方案,通常都是一个负责人在脑袋里想想该怎么实现,然后邮件或电话找几个相关人员讨论一下就算可以了,可能连个会议材料或会议纪要都没有。

而老外可不是这样的,他们非常非常重视文档,他们认为一个人在脑袋里想的东西是不清晰也不全面的,有时候心里想的认为很正确的方案实际上可能存在致命缺陷。他们要求必须把心里的想法形成文档才能有效地避免这种问题。写文档的过程中,可以更加有效的、更进一步去整理您原来心里的思路,很多问题在您写过文档的过程中您就能发现;

另外,文档写作多使用图表,浪费口水的文字尽量少用,和我们一起工作的系统工程师在系统架构分析中就画了五六十张图,就算看不懂他写的英文,从图中我们就能够很清晰的指导整个产品的系统架构。”

——摘自一位华为员工的瑞典出差报告


上面的表单的后面几列是在开发的各个阶段去检查,原先确定的需求、规格等数据是否变化。例如在原理图、PCB、测试阶段,去检查是否出现了需求丢失,或者发生需求变更。如果发生需求变更,需要记录原因,决策者。

- 系统需求( System requirement ) 

用于描述包含多个子系统的产品(即系统)的顶级需求。系统可以只包含软件系统,也可以既包含软件又包含硬件子系统。人也可以是系统的一部分,因此某些系统功能可能要由人来承担。最终决定市场对产品的综合评价是否满意。

对有很多子系统的巨大产品进行跟踪能力管理是一项巨大的工程,但这很必要。并不是所有的公司都会因为软硬件问题而造成严重的结果,然而应该严肃地对待需求跟踪,尤其对涉及你业务核心的信息系统。考虑了应用技术的成本和不使用的风险后,才能决定是否使用任何改进的需求工程实践。随着产品的发展,要把时间投向回报丰厚的地方。

需求管理系统包括模型管理、与WBS关联、版本管理、条目化管理、需求追踪、需求控制、模板管理、统计查询功能,系统组成结构如下图所示。

需求管理和需求跟踪是研发工程师的入口,所以我们需要重视和理解。

需求分配过程其实是一个多层次的循环过程,需要循环几次,取决于两个因素,一个是需求的复杂度,一个是企业研发组织的大小和组织方式。

我们举个复杂点的例子来看看这个过程。图3.4是一个企业的研发组织结构:

假设研发中心和下面4个部门都有需求管理团队[或需求管理人员(专职或兼职均可)],金融产品与解决方案部收到一个客户需求,经过分析,需要云计算业务部、通用技术开发部一起合作才能完成,但又无法直接调动这两个业务部的开发团队。因此需求首先要上升到研发中心层面进行决策(由需求管理团队1组织),云计算业务部、通用技术开发部的需求管理团队参与决策;决策通过后,再详细分析需求并进行需求的分发,确定需求的哪些内容由哪个部门完成,这个时候一个需求分解成了若干个子需求并分配到了各个责任部门。接到子需求的部门需对需求进行分析,确认技术可行性、实现的方案及交付团队(很有可能不止一个团队参与,这个时候需要再次分解分配,指导需求无法再分解)、交付版本及时间,并最后作出承诺,这才算这一条需求完成了所有的分发、分析、分解分配与决策过程。

因此,在组织复杂、需求复杂的情况,我们要制定需求的优先级排序及决策规则。同时为了快速地推出产品,就必须界定产品的范围,也就是说,不是所有的需求都能一次性实现,这也需要我们对需求进行优先级排序,并且设计针对跨产品线需求与产销矛盾的需求决策机制。

多数情况下,客户需求他们打算购买或正在使用的产品或服务具备一系列他们期望的特点、功能和特征。然而,在客户决定购买或再次购买产品或服务时,这些因素的影响力却不尽相同。无论他们有没有意识到,客户总会优先排序产品/服务特点,并根据排序结果进行决策。

相对重要性是描述客户优先级的一个方法。客户的各种期望在客户作出购买决定时占有什么样的重要地位。优先级排序结果是客户对某产品/服务的各项功能性特点的相对重要性衡量的结果。

有了客户优先级,公司也应有一个独立的评估。对客户而言重要的需求未必对公司重要。需求可以是必须的(承诺的)或非必须的(承诺的)。公司对非必须性需求的优先级排序按照高、中、低的尺度进行,排序时至少应考虑以下要素:

(1)客户优先级

(2)对公司的益处(最好是定量的)

(3)工作量(如粗略估计编码行)

(4)风险(高/中/低)

比较完善的考虑维度,在实际使用时,也可以酌情裁判。

如果是一个初创公司,想去做教育领域的机器人,我们的思路是什么?如果是一个大型的教育商业机构,想拓展新的业务,想拓展教育机器人领域,我们的思路是什么?如果是一个公立学校,想提高学生的素质,开展机器人教育,我们的思路又是什么?请注意,这三者的客户群体可能有很大程度上的重合交叠。但是需求的分析结果一定是大相径庭的。我们在做需求分析的时候需要考虑的三大要素是:

第一个要考虑的要素:组织的战略目标是什么。战略是公司应对商业问题的态度和基本面,决定投入资源的多少、切入市场的策略等。资源的多寡,往往决定我们解决问题的方式。切入市场的策略,往往决定我们的时间成本。

初创公司纵有豪情驰骋天下,但也得面对现金流的问题;获得巨额投资的企业,没有短期现金流的问题,但要面对股东、资本的巨大压力,也要考虑烧钱之后是否还有生命力的问题;公立学校看似没有挣钱的压力,但有行政指标的压力,其不比资本压力小。

第二个考虑的要素就是项目的目标是什么,越具体越好。我是初创公司,我的第一个产品只是解决有无的问题,也许不完美,但是可以销售的产品(实物和教案),竞争力在市场上属于中等。配合合适的营销策略,可以解决第一步的生存问题,预计销售额多少,面对的客户群里是多大年龄、什么学校的学生……现实一点没什么不好,饭要一口口吃,活要一件件做。千万不要成为一些莫须有的理想和柏拉图世界的牺牲品。

第三个考虑的要素是环境因素。比如说教育行业的政策变化,未来几年的行业变化趋势,周边社区的环境、法律的约束、行业要求等。简单地说一下,现在面对低龄孩子的教育机器人行业,能很好规避国家对学生减负的要求。工业产品销售的时候,只要客户没有要求就可以不做3C认证。如果是消费类产品,不管最终用户有没有提3C认证,只有在中国销售的产品,都需要做3C认证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/142023.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业蒸汽量预测(速通三)

工业蒸汽量预测(三) 特征优化1特征优化的方法1.1合成特征1.2特征的简单变换1.3用决策树创造新特征1.4特征组合 模型融合1模型优化1.1模型学习曲线1.2模型融合提升技术1.3预测结果融合策略1.4其他提升方法 特征优化 1特征优化的方法 可以通过合成特征、…

【LeetCode】力扣364.周赛题解

Halo,这里是Ppeua。平时主要更新C,数据结构算法,Linux与ROS…感兴趣就关注我bua! 1.最大二进制奇数 🍉题目: 🍉例子: 🍉 题解: 首先看题目,最大二进制奇数,在一个二…

MQ - 31 基础功能: 优先级队列的设计

文章目录 导图概述什么是优先级队列如何设计实现优先级队列业务实现优先级队列的效果内核支持优先级队列RabbitMQ 中优先级队列的实现总结导图 概述 当我们需要在业务中对消息设置优先级,让优先级高的消息能被优先消费,此时就需要用到消息队列中优先级队列的特性。 为了了解…

前后端分离vue简介

vue简介 vue是一个渐进式js框架,用于构建用户界面,其主要特点是易学易用、轻量、灵活和高效。Vue.js由前Google工程师尤雨溪( Evan You)在2014年创建,它的核心库只关注视图层,是一款非常优秀的MVVM框架&…

Azure AD混合部署,通过 Intune 管理设备,实现条件访问

一、设备同步到AAD上面 1、配置 AAD Connect 2、选择 3、下一步 4、配置本地 企业管理员 5、配置成功 二、通过 组策略把设备同步到 Intune 上面 1、创建一条组策略 2、设置 (1)计算机配置 → 管理模板 → Windows 组件 → MDM → 使用默认 Azure AD …

增强for循环和一般for循环的对比使用

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。个人B站主页热爱技术的小郑 ,视频内容主要是对应文章的视频讲解形式。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘…

spring源码解析——IOC之自定义标签解析

概述 之前我们已经介绍了spring中默认标签的解析,解析来我们将分析自定义标签的解析,我们先回顾下自定义标签解析所使用的方法,如下图所示: 我们看到自定义标签的解析是通过BeanDefinitionParserDelegate.parseCustomElement(ele…

【赘婿国漫】从网络文学,到热播动漫,种马文属性或许是最大优点

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 《赘婿》第一季结束以来,有关该剧的讨论就一直没有停止过。这部由网络小说改编而来的国漫,虽然收获了不俗的收视成绩,但也引发了许多争议。在原著作者的控制范围之外&#x…

智慧银行:数字化金融时代的引领者

在当今数字化的时代,金融行业正经历着一场前所未有的变革。传统的银行模式已经不再适用,取而代之的是智慧银行的新兴概念。智慧银行不仅仅是数字化的银行,更是一个全新的金融服务范式,将科技与金融相结合,为客户提供更…

技术干货 | JMeter实现参数化的4种方式

参数化释义 什么是参数化?从字面上去理解的话,就是事先准备好数据(广义上来说,可以是具体的数据值,也可以是数据生成规则),而非在脚本中写死,脚本执行时从准备好的数据中取值。 参数…

方法的重载

方法的重载 在同一个类中,定义了多个同名的方法,这些同名方法名具有同样的功能每个方法具有不同的参数类型或者参数个数,这些同名的方法就构成了重载关系。 简记:同一个类中,方法名相同,参数不同的方法。与…

编程每日一练(多语言实现):判断偶数

文章目录 一、实例描述二、技术要点三、代码实现3.1 C 语言实现3.2 Python 语言实现3.3 Java 语言实现 一、实例描述 利用单条件单分支选择语句判断输入的一个整数 是否是偶数。 运行程序,输入一个 整数18, 然后按回车键,将提示该数字是偶数…

第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 B: 双子数

[蓝桥杯 2023 国 B] 双子数 试题 B: 双子数 【问题描述】 若一个正整数 x x x 可以被表示为 p 2 q 2 p^2 \times q^2 p2q2,其中 p p p、 q q q 为质数且 p ≠ q p \neq q pq,则 x x x 是 一个 “双子数”。请计算区间 [ 2333 , 233333333333…

1.算法——数据结构学习

算法是解决特定问题求解步骤的描述。 从1加到100的结果 # include <stdio.h> int main(){ int i, sum 0, n 100; // 执行1次for(i 1; i < n; i){ // 执行n 1次sum sum i; // 执行n次} printf("%d", sum); // 执行1次return 0; }高斯求和…

vue3 - 按需导入使用Element Plus图标、iconify图标、本地SVG/PNG图标

GitHub Demo 地址 在线预览 vue3 - 按需导入使用Element Plus图标、iconify图标、本地SVG/PNG图标 [GitHub Demo 地址](https://github.com/iotjin/jh-vue3-admin)[在线预览 ](https://iotjin.github.io/jh-vue3-admin) 一、iconify插件安装使用效果图 二、通过自动导入使用ic…

基于微信小程序的音乐播放器设计与实现(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

在虚拟机上安装win10/ubuntu的教程

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 一、下载软件资源 1、首先下载虚拟机Vmware_Pro17软件并正确安装&#xff1a;网盘链接 2、然后下载操作系统的镜像文件&#xff1a;MSDN, 我告诉你 - 做一个安静的工具站 二、在虚拟机上安装ubuntu系统 1…

共享门店模式:一种新兴的商业模式

共享门店模式是一种利用实体店铺的空间和资源&#xff0c;让多个品牌或商家在同一地点共同运营的商业模式。这种模式可以提高店铺的利用率&#xff0c;降低经营成本&#xff0c;增加客流量&#xff0c;实现资源的最大化利用。如果你是一个有创业想法的企业家&#xff0c;或者你…

2023-9-26 JZ52 两个链表的第一个公共节点

题目链接&#xff1a;两个链表的第一个公共节点 import java.util.*; /* public class ListNode {int val;ListNode next null;ListNode(int val) {this.val val;} }*/ public class Solution {public ListNode FindFirstCommonNode(ListNode head1, ListNode head2) {ListNo…

数据统计和分析怎么做?spss如何做好数据分析?

为什么要做数据分析?数据分析有什么意义&#xff1f;数据分析可以为企业和组织提供多方面的帮助&#xff0c;包括提高工作效率、优化业务流程、升职加薪、提高管理效率以及改进汇报效果等方面。 IBM SPSS Statistics 26是一款功能强大的统计分析软件&#xff0c;适用于Mac操作…