首页/新闻资讯/正文详情

【系统架构师设计(五)】需求工程之:需求开发与需求管理概述、结构化需求分析法

发布时间:2026/11/3 9:24:14 来源:云帆数科 栏目:资讯中心
【系统架构师设计(五)】需求工程之:需求开发与需求管理概述、结构化需求分析法
文章目录一、需求工程概述二、需求获取1、需求分类不同层次的需求从项目管理维度划分2、需求获取挖掘真实需求的艺术三、需求分析概述四、需求分析法之一结构化分析方法1、 概述核心特点常用工具与技术应用步骤适用场景局限性2、数据流图DFD3、行为模型状态转换图STD4、数据建模E-R一、需求工程概述软件需求是用户对系统在功能如系统应具备哪些操作和业务逻辑 、行为如系统响应外部事件的方式 、性能如运行速度、资源占用 、设计约束如技术选型限制、硬件要求 等方面的期望它是软件开发的出发点。需求工程不是简单的需求收集而是一个完整的工程化过程。它包含需求开发和需求管理两大核心活动前者负责需求的获取、分析和规格化后者确保需求在整个软件生命周期中得到有效控制。这种系统化的方法确保了软件产品能够真正满足用户的实际需要避免开发过程中的方向性错误。需求工程主要活动阶段需求开发需求获取通过访谈、问卷调查、观察用户工作流程等方式收集用户对软件的各类需求信息从用户处挖掘出他们的真实期望。需求分析对获取的需求进行梳理分析需求间的关联、优先级识别并消除需求中的模糊、冲突部分将用户的原始需求转化为清晰、可实现的需求描述。形成需求规格SRS把分析后的需求以规范的文档形式呈现即软件需求规格说明书SRS它是软件开发团队与用户沟通需求的重要依据明确界定软件要做什么。需求确认与验证与用户、开发团队等相关方共同评审SRS确保需求准确无误且符合各方预期评审通过后的SRS形成需求基线作为后续开发的基准。需求管理针对需求基线开展工作包括变更控制管理需求的变更请求评估变更影响并决定是否实施 、版本控制记录需求版本变化方便追溯和管理 、需求跟踪跟踪需求在设计、编码、测试等阶段的实现情况 、需求状态跟踪掌握需求处于已实现、待实现、变更中等状态 保证需求在整个软件生命周期内得到有效管理 。二、需求获取1、需求分类不同层次的需求业务需求从整体、全局角度出发描述组织或业务对软件的需求体现软件在业务层面要达成的目标 。用户需求站在用户视角不同职能不同使用功能下的反映用户对软件功能、操作等方面的期望和要求 。功能需求系统需求关注软件计算机化后的具体功能是软件要实现的业务逻辑和操作功能。进一步细分为功能需求软件应具备的具体功能点。性能需求非功能如软件的响应时间、吞吐量、可靠性等性能指标 。设计约束对软件设计的限制条件如技术选型、硬件要求等 。从项目管理维度划分基本需求明示常规需求明确表述、常规的需求是软件必须满足的基础要求 。期望需求隐含用户未明确提出但期望软件具备的需求 。兴奋需求多余超出用户预期若实现会让用户非常满意的需求 。2、需求获取挖掘真实需求的艺术需求获取的本质是理解用户的真实意图而不是简单地记录用户说出的每一句话。用户往往无法准确表达自己的需求或者表达的需求与实际需要存在差距。因此需求获取需要采用多种方法从不同角度深入挖掘用户的真实期望。用户面谈是最直接有效的方法特别适合针对1-3个有代表性的用户进行深入交流。通过面对面的沟通可以深入了解用户的主观想法交互性好能够及时澄清模糊点。然而这种方法成本较高且要求实施者具备相关领域知识才能有效引导和理解用户需求。联合需求计划JRP是一种高度组织化的群体会议方法各方人员共同参与可以充分了解各方想法消除分歧。这种方法特别适合需要协调多个利益相关者的复杂项目但组织成本较高需要精心策划和协调。问卷调查适用于用户数量众多、难以进行逐一访谈的情况。通过设计结构化的问卷可以大规模收集用户意见成本相对较低。但这种方法缺乏交互性难以深入挖掘复杂需求。现场观察是了解用户真实工作流程的有效方法通过实地观察用户的操作过程可以直观了解用户的实际需求和痛点。这种方法特别适合针对复杂流程和操作进行需求获取。原型化方法通过构建简易系统帮助解决早期需求不确定的问题。让用户在原型基础上提出更明确的需求这种方法能够有效减少需求理解的偏差。头脑风暴法鼓励发散思维激发新观点产生特别适合挖掘潜在需求和创新功能。一群人围绕新业务展开自由讨论往往能够产生意想不到的好想法。三、需求分析概述需求分析需要分析需求间的关联关系确定需求的优先级识别并消除需求中的模糊、冲突部分最终形成清晰、可实现的需求描述。如下对需求分析的方法分为结构化分析方法与对象分析方法一、结构化分析方法通过数据流图、状态转换图、E-R图等工具从不同角度分析系统需求。数据流图关注数据的流动和处理过程状态转换图描述系统的行为逻辑E-R图则关注数据实体及其关系这些不同的视角相互补充形成了对系统的全面理解。二、面向对象分析方法则从对象的角度理解系统通过类图、用例图、顺序图等UML工具将系统分解为相互协作的对象。这种方法更接近人类的思维方式能够更好地处理复杂系统的建模问题。四、需求分析法之一结构化分析方法1、 概述结构化分析方法是以数据为中心通过分解、抽象和建模将复杂系统或问题转化为可理解的结构化组件用于分析、设计与描述的方法。核心特点层次性将系统或问题按层级分解从整体到局部逐步细化形成“顶层-中层-底层”的结构体系。例如分析一个业务系统时先明确整体目标再拆解为子系统、模块、具体功能等。数据驱动重点关注数据的流动、存储和处理过程通过数据字典、数据流图等工具描述数据在系统中的流转逻辑。标准化建模使用统一的工具和符号如数据流图、实体-关系图、结构化英语等进行建模确保分析过程和结果的规范性、可读性。模块化将系统拆分为相互独立又相互关联的模块每个模块完成特定功能便于单独分析和优化。常用工具与技术数据流图DFD通过“数据流、加工、数据存储、外部实体”四个基本要素直观展示数据在系统中的处理流程和传递路径分为顶层DFD整体概览和底层DFD细节拆解。数据字典DD对数据流图中涉及的所有数据项、数据结构、数据流、数据存储等进行详细定义确保数据描述的一致性和准确性。实体-关系图ER图用于描述系统中实体如“用户”“订单”、属性如用户的“姓名”“ID”及实体间关系如“用户下单”常用于数据库设计阶段。结构化语言结合自然语言、程序设计语言的逻辑结构如“如果…那么…否则”“循环”描述加工逻辑避免歧义。应用步骤需求收集与梳理明确系统或问题的目标、范围、输入输出及约束条件收集相关业务规则和数据需求。系统分解将整体系统按功能或业务流程拆解为多个子系统或模块明确各部分的边界和职责。数据流程分析绘制数据流图标识数据的来源、处理过程、存储位置和去向梳理数据在各模块间的流转关系。数据细节定义通过数据字典对数据流图中的数据元素进行详细说明包括名称、类型、长度、取值范围等。逻辑建模与验证使用ER图等工具建立数据逻辑模型验证各组件之间的一致性和完整性确保无遗漏或冲突。文档化与迭代优化将分析结果整理为规范文档如需求规格说明书并根据反馈迭代调整结构和模型。适用场景结构化程度高、业务流程稳定的系统分析如传统金融系统、库存管理系统。数据流程清晰、规则明确的问题拆解如财务报销流程、订单处理流程。需严格遵循标准化规范的开发或设计场景如软件工程中的结构化开发方法。局限性对动态变化的系统或模糊需求适应性较弱难以处理非结构化问题如创新业务模式、复杂人际关系分析。过度强调数据和流程的结构化可能忽略用户体验、灵活性等非功能性需求。总之结构化分析方法通过“分解-建模-验证”的逻辑为复杂系统提供了清晰的分析框架是解决规范化、数据密集型问题的有效工具。2、数据流图DFD这是在线教育平台系统的数据流图DFD属于需求工程中需求开发的需求分析部分运用结构化分析SA方法。以下是对图中内容的解读整体架构自定向下顶层DFD0层展示在线教育平台系统与外部实体培训部、辅导老师、学员的交互。培训部提供课程安排数据给系统学员向系统发送注册请求系统反馈课程安排系统向辅导老师提供类别列表。分解后的DFD1 - 3层将顶层系统功能进一步细化。各元素说明外部实体培训部、辅导老师、学员是与系统交互但处于系统外部的对象 。数据流如课程安排数据、注册请求、课程安排、类别列表等代表数据在系统与外部实体或系统内部不同加工之间的流动方向 。加工安排课程1接收培训部的课程安排数据进行课程安排相关处理。学员注册2处理学员的注册请求结合课程和学员信息完成注册操作并反馈课程安排给学员。产生类别列表3依据学员注册信息等生成类别列表提供给辅导老师 。数据存储图中虽未明确画出数据存储符号但可理解课程、学员等信息存在相应存储供各加工环节调用 。该数据流图通过分层方式从整体到局部逐步细化在线教育平台系统的功能和数据流转有助于清晰分析系统需求 。3、行为模型状态转换图STD该状态转换图通过展示学员在在线教育平台系统中的状态变化以及触发状态转换的事件和条件清晰呈现了学员从注册到学习再到测试的业务流程需求有助于准确理解系统的行为逻辑 。状态描述了用户当前操作的状态以及下一步的流程注册学员完成注册操作后的状态是流程起始状态之一。若学员没有交费则停留在注册状态若已交费系统开通课程进入学习状态。学习学员进行课程学习的状态。当学员学完指定教材后进入测试状态若测试不合格则返回学习状态继续学习。测试学员完成学习后进行测试的状态。测试合格流程结束测试不合格返回学习状态。事件与条件描述了触发事件所需的条件没有交费导致学员停留在注册状态的条件。开通课程[已交费]学员已交费这一条件满足时触发从注册状态到学习状态的转换事件。已学完指定教材触发从学习状态到测试状态转换的事件。测试不合格测试结果为不合格时触发从测试状态回到学习状态的转换。合格测试结果合格流程结束。4、数据建模E-R这张图展示了需求工程中需求开发的需求分析部分使用实体 - 联系E - R图来描述不同实体间的联系实体联系类型1:1的联系实体A和实体B之间是一对一的关系即一个实体A对应一个实体B反之亦然 。例如一个身份证对应一个公民一个公民也仅有一个有效的身份证 。1:n的联系实体A和实体B之间是一对多的关系一个实体A可以对应多个实体B但一个实体B只对应一个实体A 。比如一个班级对应多个学生而一个学生只属于一个班级 。m:n的联系实体A和实体B之间是多对多的关系多个实体A可以对应多个实体B反之亦然 。像学生和课程一个学生可以选修多门课程一门课程也可以被多个学生选修 。同一实体集内一对多的联系以“职工”实体为例存在“领导”联系表明一个职工领导可以管理多个职工被领导是同一实体集内部的一对多联系 。实际场景示例供应商 - 工程 - 零件展示了供应商、工程和零件三个实体间的联系。供应商为工程供应零件m:n 联系 工程会订购零件l:p 联系 体现了复杂业务场景下实体间的关联关系 。供应商 - 工程 - 零件简化展示了供应商、工程和零件之间的订购联系供应商和工程之间是多对多的订购关系 。E - R图通过图形化方式清晰呈现系统中实体及其联系帮助分析人员准确理解和梳理业务数据关系为数据库设计等后续工作奠定基础 。

相关推荐

【系统架构设计(三)】系统工程与信息系统基础下:企业信息化与电子商务-数字化转型的核心驱动力
【系统架构设计(三)】系统工程与信息系统基础下:企业信息化与电子商务-数字化转型的核心驱动力

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 9:24:14

【系统架构设计(17)】软件架构复用与特定领域架构:从单点复用到系统化资产管理
【系统架构设计(17)】软件架构复用与特定领域架构:从单点复用到系统化资产管理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 9:24:14

【系统架构设计(15)】软件架构设计一:软件架构概念与基于架构的软件开发
【系统架构设计(15)】软件架构设计一:软件架构概念与基于架构的软件开发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 9:24:14

(二十三)基于RO的数字签名——BLS Scheme
(二十三)基于RO的数字签名——BLS Scheme

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 10:07:16

政务审批系统的状态机与权限设计:以证件借用归还流程为例
政务审批系统的状态机与权限设计:以证件借用归还流程为例

政务审批系统看起来是表单和流程,真正难的是状态、权限和审计。本文以证件借用归还流程为例,讨论如何把线下规则拆成可执行的状态机、审批路由和日志模型。一、先定义状态,不要先画页面证件借用归还流程至少包含这些状态:草稿、待… · 2026/11/3 10:07:16

(二十四)在RO模型下的BB方案
(二十四)在RO模型下的BB方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 10:07:16

电赛循迹小车校准成功却跑偏?八路灰度传感器、I²C 数据解析与 PID 调试实战
电赛循迹小车校准成功却跑偏?八路灰度传感器、I²C 数据解析与 PID 调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 10:07:16

加密货币污点分析:毒化法、削减法与先进先出法详解
加密货币污点分析:毒化法、削减法与先进先出法详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 10:07:16

Softtec:无线技术助力烘焙产线告别布线难题
Softtec:无线技术助力烘焙产线告别布线难题

Anybus无线堡通过蓝牙实现PROFINET I/O无线通信,在旋转式烘焙机与控制柜之间建立稳定连接。奥地利设备制造商 Softtec 在为瑞典一家烘焙厂构建自动化系统时,采用无线方案彻底解决了布线难题,同时显著降低了项目成本。项目背景瑞典烘焙厂 stra… · 2026/11/3 10:06:16

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码