「需求分析」业务架构师需求分析技术权威指南

news2025/1/12 23:12:02

需求分析,也称为需求工程,是定义用户对正在构建或修改的新软件的期望的过程。在软件工程中,它有时被一些松散的名称所引用,例如需求收集或需求捕获。需求分析包括那些为一个新的或改变的产品或项目确定需要或满足的条件的任务,考虑不同涉众的可能冲突的需求,分析、记录、验证和管理软件或系统需求。以下是在软件项目的早期阶段进行需求分析的目标:

  • 从什么到如何(From What to How):弥合系统需求工程和软件设计之间差距的软件工程任务。

  • 3个正交视图:为软件设计人员提供如下模型:系统信息(静态视图)函数(功能视图)行为(动态视图)

  • 软件架构:模型可以转换为数据、体系结构和组件级设计。

  • 迭代和增量过程:期望在分析期间做一点设计,在设计期间做一点分析。

需求是什么?

软件需求是用户解决问题或实现目标所需要的能力。换句话说,需求是系统或系统组件必须满足或拥有的软件能力,以满足合同、标准、规格说明或其他正式强加的文档。最终,我们想要实现的是在预算范围内及时开发出满足客户实际需求的高质量软件。

也许软件开发人员面临的最大挑战是与客户共享最终产品的远景。项目中的所有涉众——开发人员、终端用户、软件经理、客户经理——必须对产品将会是什么样子以及要做什么有一个共同的理解,否则当产品交付时,会有人感到惊讶。软件领域的意外几乎从来不是好消息。

因此,在指定软件产品的需求时,我们需要一些方法来准确地捕获、解释和表示客户的声音。

需求分析的活动

需求分析对系统或软件项目的成功或失败至关重要。需求应该被记录下来,可操作的,可测量的,可测试的,可跟踪的,与已识别的业务需求或机会相关的,并且被定义到足以用于系统设计的详细级别。从概念上讲,需求分析包括四种类型的活动:

  • 获取需求:与客户和用户沟通以确定他们的需求的任务。这有时也称为需求收集。

  • 分析需求:确定所陈述的需求是否不清楚、不完整、含糊或矛盾,然后解决这些问题。

  • 需求建模:需求可能以各种形式被记录,例如自然语言文档、用例、用户故事或过程规范。

  • 评审(review)和回顾(retrospective):团队成员对迭代中发生的事情进行反思,并确定下一步改进的行动。

需求分析是一项团队工作,需要硬件、软件和人的因素、工程专业知识以及与人打交道的技能的结合。以下是在需求分析中涉及到的主要活动:

  • 确定客户的需求。

  • 评估系统的可行性。

  • 进行经济和技术分析。

  • 分配功能到系统元素。

  • 制定时间表和约束条件。

  • 创建系统定义。

需求分析技术

需求分析帮助组织确定涉众的实际需求。同时,它使开发团队能够用他们能够理解的语言(如图表、模型、流程图)与涉众进行交流,而不是使用页面文本。

一旦收集了需求,我们就将需求记录在软件需求规范(SRS)文档、用例或用户故事中,与涉众共享以获得批准。该文档对于普通用户和开发人员来说都很容易理解。要求中的任何变更也要形成文件,并通过变更控制程序,并在批准后定稿。

业务需求vs软件需求

一个商业计划或项目需要各种各样的需求来帮助定义目标和建立将要进行的工作的范围。需求还提供了环境和客观的方法来度量进展和成功。一旦建立了业务需求,就可以定义和开发软件需求,以便将项目向前推进。

业务需求

业务需求与业务的目标、愿景和目标相关。它们还提供了需要通过特定活动或项目来解决的业务需求或问题的范围。例如,如果一个行业协会的目标是促进其成员提供的服务,那么项目的业务需求可能包括创建一个成员目录,以提高成员的认知度。良好的业务需求必须是:

  • 清晰的,通常在一个非常高的层次上定义。

  • 提供足够的信息和指导,以帮助确保项目满足确定的需求。

  • 理解组织的任务、目标或目标、特定的业务需求或正在处理的问题

  • 在开发业务需求之前,应该清楚地定义和理解。

  • 需求或问题可以与组织或业务有关,也可以集中于利益相关者群体,如客户、客户、供应商、员工或其他群体。

软件需求

软件需求分解满足业务需求或需求所需的步骤。业务需求描述了项目的“为什么”,而软件需求则描述了“是什么”。

例如,如果业务需求是创建一个贸易协会成员的一个目录,软件需求将概述谁有权访问的目录,有会员注册目录,谁会有数据的所有权,将使用什么车辆或车辆如一个网站或纸质目录,等等。

发现业务需求的技术

根据业务改进和软件开发过程,可以使用各种需求分析技术。下面列出了其中的一些技术。

使用BPMN或ArchiMate进行Gap分析

差距常被说成是“你现在的位置和你想要的位置之间的距离”。差距分析是基线和目标业务场景之间的比较过程。换句话说,差距分析是对企业当前在做什么以及未来想要去哪里的研究,是作为一种连接两者之间空间的手段。差距分析的目标是确定在优化性能方面的差距。这为企业提供了对潜在改进的洞察。它回答了一些问题,比如项目的当前状态是什么?我们想去哪里?等。

ArchiMate - Gap分析

ArchiMate是一种开放和独立的企业架构建模语言,支持以明确的方式描述、分析和可视化业务域内和跨业务域的架构。它是一个完美的建模工具,具有执行差距分析所需的符号。

6c80bf78f93303aa263bc63bc441e2ea.jpeg

BPMN -原有和将来的分析

原有流程

我们将要演示的示例是关于销售商品的在线商店的当前情况(原有流程)。该流程从销售代表收到客户的采购订单开始,然后检查库存水平。如果手头有足够的存货来满足订单的要求,销售代表将对其进行包装。这个过程结束于将它们连同发票一起发送。当库存不足时,销售代表将建议客户修改采购订单。

c48843006b32d0c84a171f2181ea2342.jpeg

将来流程

假设我们的生意发展得很好,我们现在有一个仓库来存放我们的存货。因此,我们正在寻找改进现有流程的方法,以更好地分配新资源。此外,我们将在下面的将来流程图中展示一个对增强进行建模的示例。

3ee4dd9bb5b6db0b541f19a2928aaf85.jpeg

业务动机模型

如果一个企业为其业务活动规定了某种方法,它应该能够说出该方法要达到的原因(why)和目的(what)。业务动机模型(BMM)是一种OMG建模符号,用于支持关于如何对不断变化的世界作出反应的业务决策。企业可以通过获取BMM建模工具来使用它,然后创建自己的BMM——用特定于企业的业务信息填充模型。主要有两个目的:

  • 获取关于对变化的反应的决策和做出决策的理由,目的是使它们可分享,增加清晰度,并通过经验学习来改进决策。

  • 参考决策的结果及其对运营业务的影响(例如,对业务流程和组织责任的变更),提供从影响者到运营变更的可追溯性。

fbd67bdaa17e36d07b9cf1df0065a857.jpeg

End :定义一个企业想要成为什么样子——它想要进入的状态。

Means (意味者):——定义一个企业需要做什么来实现它的目标。

Influencer (影响者)——是企业决定可能影响它的东西。

Assessment (评估)——当影响者引起重大变化时,企业对其影响进行评估,识别风险和潜在回报。可能会有多个评估,可能来自不同的利益相关者。

客户旅程映射

客户旅程图是一项非常有用的技术,它可以帮助你理解是什么激发了你的客户——他们的需求是什么,他们的犹豫和担忧。尽管大多数组织相当擅长收集关于客户的数据,但仅凭数据无法传达客户所经历的挫折和体验。一个故事可以做到这一点,而商业中最好的讲故事工具之一就是客户旅程图。

客户旅程地图(Customer journey map)使用讲故事和视觉效果来说明客户在一段时间内与企业之间的关系。故事是从客户的角度讲述的,这提供了对客户整体体验的洞察。它帮助您的团队更好地理解和解决客户的需求和痛点,因为他们在体验您的产品或服务。换句话说,规划好客户之旅可以让你的企业有机会看到你的品牌如何首先吸引潜在客户,然后再通过整个销售过程的接触点。

最后,团队可以针对每个接触点提出改进或采取的行动。这些建议的行动可能是软件需求的潜在来源。

2ae3f0e0991f30ffb9562f19d145d52d.jpeg

从业务需求中识别软件需求的技术

数据流图

数据流程图(DFD)可在SDLC(系统开发生命周期)内分析阶段的需求引出过程的早期设计,以界定项目范围。DFD通常用作创建系统概述的一个初步步骤,而不需要详细说明,稍后可以详细说明。

例如,如果需要在某个特定流程中显示更多细节,则该流程将在较低级别的DFD中分解为许多较小的流程。这样,内容图或上下文层次的DFD被标记为“0级DFD”,下一级分解被标记为“1级DFD”,下一级分解被标记为“2级DFD”,以此类推。

ac145850456e69269a82de845facec85.jpeg

用例

UML用例图是未开发的新软件程序的系统/软件需求的主要形式。用例指定了预期的行为(什么),而不是使其发生的确切方法(如何发生)。用例一旦指定,就可以同时表示为文本和可视化表示(例如UML)。用例建模的一个关键概念是,它帮助我们从最终用户的角度设计系统。它是一种通过指定所有外部可见的系统行为来用用户的术语交流系统行为的有效技术。

  • 用例图通常很简单。它没有显示用例的细节。

  • 它只是总结了用例、参与者和系统之间的一些关系。

  • 它没有显示为实现每个用例的目标而执行的步骤的顺序。

用例图的标准形式是用统一建模语言定义的,如下面的用例图示例所示:

e061ab99fb089ee9ab355d839e78928e.jpeg

用户故事

用户故事是捕捉用户在工作中所做或需要做的事情的注释。每个用户故事都由一段用自然语言从用户的角度编写的简短描述组成。与传统的需求捕获不同,用户描述关注的是用户需要什么,而不是系统应该交付什么。这为进一步讨论解决方案和系统结果留下了空间,该系统能够真正适应客户的业务流程,解决他们的操作问题,最重要的是为组织增加价值。用户故事与其他敏捷软件开发技术和方法(如scrum和极限编程)很好地兼容。

用户故事与用例的相似性

如果我们考虑这两种方法的关键组成部分:

  • 用户故事包含用户角色、目标和验收标准。

  • 用例包含等价的元素:参与者、事件流和分别的post条件(一个详细的用例模板可能包含更多的其他元素)。

用户故事与用例的区别

  • 用户故事的细节可能不像用例那样被记录到相同的极端。

  • 用户故事故意省略了许多重要的细节。用户故事的目的是通过在scrum会议上提出问题来引出对话。

  • 为了更频繁地获得反馈而进行小的增量,而不是像用例中那样拥有更详细的预先需求规格说明。

292fc45ba9975ed13552fb1180874e09.jpeg


本文https://architect.pub/requirement-analysis-techniques
讨论:知识星球【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
3c4e1a4e485b586e7ab479df48f574ac.jpeg
微信小号

【cea_csa_cto】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

895a10edff8f49483b3dbf3e880bb030.jpeg

QQ群

【792862318】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

fbb7226bd13e842572257a9c6bd5310f.jpeg

视频号【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

6d3d6d703f200bde348265d9eaa23c8e.jpeg

知识星球向大咖提问,近距离接触,或者获得私密资料分享。

624f09204076b62aa630cbb50e601cc4.jpeg

喜马拉雅路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
微博【智能时刻】智能时刻
哔哩哔哩【超级架构师】

e90500c425e659d952d6c6e14459c59d.jpeg

抖音【cea_csa_cto】超级架构师
快手【cea_csa_cto】超级架构师

f6102d22573d5054b3e483e1c28429e3.jpeg

小红书【cea_csa_cto】超级架构师

cbd3908f809574de2d40818c989124cf.jpeg




谢谢大家关注,转发,点赞和点在看。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进程内存空间

我们直接用linux演示 我们将这个代码编译成目标文件&#xff0c;然后查看内容 #include <stdlib.h> #include <pthread.h> int sum(int x,int y) {return xy; }int main(){sum(2,3);return 0; }编译 我们反汇编这个目标文件 我们发现这些汇编代码不好阅读&#…

有趣的HTML实例(十五) 注册登录界面(css+js)

我并不是每次吃完饭就看电视&#xff0c;有时我边吃边看电视&#xff0c;生活中有些改变会增加乐趣。 ——《加菲猫》 目录 一、前言 二、往期作品回顾 三、作品介绍 四、本期代码介绍 五、效果显示 六、编码实现 index.html style.css script.js 七、获取源码 公众…

何为数据分析?数据分析流程是啥?

一、什么是数据分析 指用专业的统计分析方法对大量数据进行分析&#xff0c;并加以详细研究和概括总结&#xff0c;提取有价值的信息&#xff0c;形成有效的分析结论&#xff0c;从而影响业务决策 二、数据分析的重要性 一切事物&#xff0c;如果不能量化它&#xff0c;我们…

Allegro如何手动让静态铜皮避让过孔操作指导

Allegro如何手动让静态铜皮避让过孔操作指导 在用Allegro做PCB设计的时候,如果铺的是静态铜皮,铜皮铺在过孔上会造成短路,需要手动避让下,如下图 下面介绍如何手动避让,具体操作如下 点击Shape点击Manual Void/Cavity

itop-3568开发板驱动学习笔记(3) 字符设备(上)

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录字符设备简介申请字符设备号注册字符设备创建设备节点字符设备驱动框架&#xff08;实验&#xff09;杂项设备字符设备简介 字符设备是指在I/O传输过程中以字符为单位进行传输的设备&#xff0c;例如键盘&am…

如何使用ApacheTomcatScanner扫描Apache Tomcat服务器漏洞

关于ApacheTomcatScanner ApacheTomcatScanner是一个功能强大的Python脚本&#xff0c;该脚本主要针对Apache Tomcat服务器安全而设计&#xff0c;可以帮助广大研究人员轻松扫描和检测Apache Tomcat服务器中的安全漏洞。 功能介绍 1、支持使用多线程Worker搜索Apache Tomcat服…

ARM简介及其发展历史

前言ARM名声很大&#xff0c;最近在学习STM32&#xff0c;也借机梳理一下关于ARM的各种概念和信息。 本文主要内容&#xff1a;ARM一词的含义&#xff0c;ARM的发展历史&#xff0c;ARM cortex系列处理器简介与ARM在不同市场的应用情况。 一. ARM一词的4种含义1.1 ARM公司 AR…

如何外网登录访问瑞友天翼应用虚拟化系统?——快解析内网端口映射方案

瑞友天翼应用虚拟化系统&#xff08;GWT System&#xff09;是国内具有自主知识产权的应用虚拟化平台&#xff0c;是基于服务器计算&#xff08;Server-based Computing&#xff09;的应用虚拟化平台。如何将内网平台提供到互联网上外网访问&#xff0c;是我们比较关注的问题。…

【力扣-10天SQL入门】1~3天刷题 知识点总结

https://leetcode.cn/study-plan/sql/?progressjgmzq5s第1天 选择595. 大的国家无1757. 可回收且低脂的产品枚举类型enumenum是一个字符串对象&#xff0c;用于指定一组预定义的值&#xff0c;并可在创建表时使用&#xff0c;如sex取值为 (male, female, unknown)若要使用条件…

同为(TOWE)电源线让家用电器随心放置

如今&#xff0c;随着科技水平的不断发展&#xff0c;人们工作、生活中越来越离不开各类电子设备和电器产品。当用电器数量多了以后&#xff0c;由于电器设备原有电线长度的限制&#xff0c;常常需要通过连接接线板来延长电器设备的电能传输线路。电源线虽然看着是一件不起眼的…

51单片机定时器使用与计算-----day3

51单片机定时器-----day3 8051单片机介绍&#xff1a; 集成 8位CPU、 4K字节ROM&#xff08;掉电不丢失&#xff09;、 128字节RAM&#xff08;掉电丢失&#xff09;、 4个8位并口、 1个全双工串行口、2个16位定时/计数器。 寻址范围64K&#xff0c; 并有控制功能较强的布尔处…

MyBatis执行Sql的流程分析

目录 举例 openSession的过程 Executor 简单总结 获取Mapper的流程 Mapper方法的执行流程 doQuery方法 简单总结 举例 public class App {public static void main(String[] args) {String resource "mybatis-config.xml";Reader reader;try {//将XML配置文…

专享策略04 | 商品通用套利模型(二)

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 『正文』 ˇ 大家好&#xff0c;去年我们推出了一款套利模型专享策略No.2 | 套利策略-自动换仓-出场加速. 截至到今天创出新高。 大家比较缺少套利&#xff0c;截面&#xff0c;盘口等类型的策略。因此…

「TCG 规范解读」PC 平台相关规范(1)

可信计算组织&#xff08;Ttrusted Computing Group,TCG&#xff09;是一个非盈利的工业标准组织&#xff0c;它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立&#xff0c;并采纳了由可信计算平台联盟&#xff08;the Trusted Computing Platform Alli…

SpringBoot集成Knife4j接口管理工具

SpringBoot集成Knife4j接口管理工具1、导入依赖包2、配置Knife4j3、放行Knife4j的请求4、使用Knife4j注解5、实现效果平时开发项目都用的是Swagger2或者Swagger3&#xff0c;但是这两个UI看起来不是很舒服&#xff0c;今天看到了Knife4j&#xff0c;它对Swagger进行了增强&…

华为OD机试题【和最大子矩阵】用 C++ 进行编码 (2023.Q1)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明和最大…

3.ffmpeg命令行环境搭建、ffmpeg命令行初步了解

在上章,我们讲过: ffmpeg.exe: 主要用于转码或者剪切的应用程序, 也可以从url/现场音频/视频源抓取输入源ffplay.exe: 主要用于播放视频的应用程序,该应用程序源码是开源的,我们后面章节会去源码分析ffprobe.exe: 主要用于分析视频码流的应用程序, 可以获取媒体文件的详细信息,…

Jupyterlab 学习与测试笔记

前言本篇博客主要解决阿里云服务器上Jupyterlab配置方面的一些问题。1、安装完无法启动Jupyterlab首先声明&#xff0c;我在Anaconda3安装过程中已经设置了将安装相关的Python&#xff0c;ipython&#xff0c;Jupyter等添加到环境变量。但是一开始安装完&#xff0c;直接在命令…

从计费出账加速的设计谈周期性业务的优化思考

1号恐惧症 你有没有这样的做IT的朋友&#xff1f;年纪轻轻&#xff0c;就头发花白或者秃顶&#xff0c;然后每个月周期性的精神不振&#xff0c;一到月底&#xff0c;就有明显的焦虑。如果有&#xff0c;他可能就是运营商行业做计费运营的&#xff0c;请对他好点&#xff0c;特…

【LeetCode】剑指 Offer(12)

目录 题目&#xff1a;剑指 Offer 30. 包含min函数的栈 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;剑指 Offer 30. 包含m…