当前位置: 首页 > article >正文

软件工程中的需求工程

需求工程

需求工程 (RE)是指在工程设计过程中定义、记录和维护需求的过程。需求工程提供了适当的机制来了解客户的需求 1、分析需求并评估可行性、协商合理的解决方案、明确指定解决方案、验证规范并在需求转化为工作系统时对其进行管理。因此,需求工程是经过验证的原则、方法、工具和符号的规范应用,以描述拟议系统的预期行为及其相关约束。

需求工程流程

它是一个四步过程,其中包括:

  • 可行性研究
  • 需求引出与分析
  • 软件需求规范
  • 软件需求验证 2
  • 软件需求管理 3

可行性研究:

可行性研究的目的是创建开发用户可接受、可灵活变化且符合既定标准的软件的理由。

可行性类型:

  • 技术可行性——技术可行性评估在时间和预算内满足客户要求所需的现有技术。
  • 操作可行性——操作可行性评估所需软件执行一系列级别以解决业务问题和客户要求的范围。
  • 经济可行性——经济可行性决定了必要的软件是否能为组织创造经济利润。

需求引出与分析:

这也称为需求收集。在此,在客户和现有系统流程(如果可用)的帮助下确定需求。

需求分析从需求引出开始。分析需求是为了识别不一致、缺陷、遗漏等。我们根据关系描述需求,并解决冲突(如果有)。

引出和分析的问题:

  • 让所有且仅让合适的人参与进来。
  • 利益相关者 4通常不知道他们想要什么
  • 利益相关者以他们的术语表达要求。
  • 利益相关者可能有相互冲突的要求。
  • 分析过程中需求发生变化。
  • 组织和政治因素可能会影响系统要求。

软件需求规范

软件需求规范是软件分析师从各种来源收集需求后创建的一种文档 - 客户收到的需求以普通语言编写。分析师的工作是用技术语言编写需求,以便开发团队能够理解并受益。

此阶段使用的模型包括ER图、数据流 5图(DFD)、功能分解图(FDD)、数据字典等。

  • 数据流图:数据流图 (DFD) 广泛用于对需求进行建模。DFD 显示数据在系统中的流动。系统可能是公司、组织、一组程序、计算机硬件系统、软件系统或上述任何组合。DFD 也称为数据流图或气泡图。
  • 数据字典 6:数据字典只是用于存储 DFD 中定义的所有数据项信息的存储库。在需求阶段,数据字典至少应定义客户数据项,以确保客户和开发人员使用相同的定义和术语。
  • 实体关系图:另一个需求规范工具是实体关系图,通常称为“ ER 图”。它是组织数据的详细逻辑表示,使用三个主要结构,即数据实体、关系及其相关属性。

软件需求验证

在制定需求规范后,将验证本文档中讨论的需求。用户可能会要求非法、不可能的解决方案,或者专家可能会误解需求。可以根据以下条件检查需求 -

  • 如果他们能够切实实施
  • 如果它们是正确的,并且符合软件的功能和特点
  • 如果有任何歧义
  • 如果它们已满
  • 如果他们能够描述

需求验证技术 7:

  • 需求评审 8/检查:对需​​求进行系统的手动分析。
  • 原型设计 9:使用系统的可执行模型来检查需求。
  • 测试用例生成:针对需求开发 10测试以检查可测试性。
  • 自动一致性分析:检查结构化需求描述的一致性。

软件需求管理

需求管理是在需求工程过程和系统开发过程中管理不断变化的需求的过程。

随着业务需求 11的变化以及对系统理解的加深,在此过程中会出现新的需求。

在开发过程中,不同视角下的需求的优先级 12会发生变化。

系统的业务和技术环境在开发过程中不断发生变化。

软件需求的前提条件

软件需求的收集是整个软件开发项目的基础。因此,它们应该清晰、正确且定义明确。

完整的软件需求规范应该是:

  • 清晰的
  • 正确的
  • 持续的
  • 一致的
  • 易于理解的
  • 可修改的
  • 可验证的
  • 具备优先级的
  • 无歧义的
  • 可追溯的
  • 可靠来源的

本文同步发表在 软件需求探索的https://srs.pub/theory/requirement-engineering.html


  1. 客户的需求观. https://srs.pub/theory/ke-hu-de-xu-qiu-guan.html ↩︎

  2. 需求质量验证. https://srs.pub/theory/xu-qiu-zhi-liang-yan-zheng.html ↩︎

  3. 需求管理. https://srs.pub/specification/req-flow-management.html ↩︎

  4. 涉众定义与解释. https://srs.pub/theory/stakeholder.html ↩︎

  5. 商业分析中的五十种分析方法和技巧之13-数据流图. https://srs.pub/babok/shujuliu-tu.html ↩︎

  6. 商业分析中的五十种分析方法和技巧之12-数据字典. https://srs.pub/babok/shuju-zidian.html ↩︎

  7. 软件工程中的需求验证技术. https://srs.pub/theory/validation.html ↩︎

  8. 商业分析中的五十种分析方法和技巧之37-评审机制. https://srs.pub/babok/pingshen.html ↩︎

  9. 商业分析中的五十种分析方法和技巧之36-原型设计. https://srs.pub/babok/yuanxing-sheji.html ↩︎

  10. 需求开发向设计规划的转化. https://srs.pub/theory/xu-qiu-kai-fa-xiang-she-ji-gui-hua-de-zhuan-hua.html ↩︎

  11. 软件工程中的业务需求. https://srs.pub/theory/business-req.html ↩︎

  12. 商业分析中的五十种分析方法和技巧之33-优先级. https://srs.pub/babok/youxianji.html ↩︎


http://www.kler.cn/a/528488.html

相关文章:

  • 【深度学习】DeepSeek模型介绍与部署
  • 【设计模式-行为型】备忘录模式
  • 【算法】动态规划专题① ——线性DP python
  • Python从0到100(八十六):神经网络-ShuffleNet通道混合轻量级网络的深入介绍
  • 数据分析系列--⑤RapidMiner进行关联分析(中文数据案例)
  • 基于STM32的智能温控花盆设计
  • 电脑优化大师-解决电脑卡顿问题
  • FFmpeg(7.1版本)编译:Ubuntu18.04交叉编译到ARM
  • Scratch 《像素战场》系列综合游戏:像素战场游戏Ⅰ~Ⅲ 介绍
  • 深入理解linux中的文件(上)
  • C++——缺省参数、函数重载、引用、inline
  • 海外问卷调查之渠道查,对企业经营的重要价值有哪些表现
  • 3.5.5 基于横盘结构的分析体系——缠论(走势类型)
  • abc 390 D(暴搜 复杂度用 bell数 证明 n 的集合的划分方法的数目)
  • [EAI-027] RDT-1B,目前最大的用于机器人双臂操作的机器人基础模型
  • 牛客网 除2!(详解)c++
  • JavaScript 入门教程
  • BW AO/工作簿权限配置
  • 本地部署 DeepSeek-R1
  • 面试问题知识
  • 数据库优化:提升性能的关键策略
  • numpy 中的各种用法(笔记向)
  • 【Docker】dockerfile识别当前构建的镜像平台
  • QT知识点复习
  • OpenCV 图像旋转
  • 925.长按键入