Skip to content
AI总结

笔记总结与重点分析 ​

笔记总结 ​

本笔记系统阐述了需求工程的核心内容,包括其定义(应用工程化方法开发管理需求)、目的(获取高质量需求)和六大任务流程。重点解析了软件需求的双重定义(用户角度/系统角度)、需求质量特性(8个核心因素)和五类需求分类(目标/业务/功能/性能/约束)。同时明确了需求规格说明的重要性和内容,以及软件开发人员与涉众的角色定义。

重点/易考点分析 (名词解释) ​

什么是需求工程? ​

需求工程是指应用工程化的方法、技术和规格来开发和管理软件的需求,其目的是为了获得高质量的软件需求。

需求工程的任务包括哪些步骤? ​

  1. 确定用户类并获取需求信息
  2. 分析分类需求信息
  3. 建立逻辑模型并确认非功能需求
  4. 编写需求规格说明文档
  5. 评审需求规格说明
  6. 管理需求变更

软件需求的定义包含哪两个维度? ​

  1. 用户解决问题或达到目标所需的条件或能力(用户角度)
  2. 系统满足合同、标准等文档所需的条件或能力(系统角度)

目标需求的定义是什么? ​

目标需求反映组织机构或客户提出的高层次目标要求,限定项目范围和应达到的目标。

业务需求的主要作用是什么? ​

业务需求描述软件系统必须完成的任务和实际业务流程,用于提取功能需求和非功能需求。

功能需求的核心定义是什么? ​

功能需求指开发人员必须实现的软件功能或系统应具有的外部行为。

性能需求(非功能性需求)包括哪些技术指标? ​

包括可靠性、可用性、有效性、可维护性、可移植性五个技术指标。

约束与限制指什么? ​

指开发人员在系统设计和实现时的限制条件,如开发平台、数据库选择等。

需求规格说明的核心内容是什么? ​

应精确描述软件系统必须提供的功能、性能,以及需要考虑的约束条件与限制。

软件开发人员的角色定义是什么? ​

软件开发人员(supplier)是为客户开发软件系统的人。

涉众(stakeholder)包含哪些人? ​

包括所有用户、客户和软件开发人员,是软件需求的来源主体。 (我还没有掌握有关知识,此回答为大模型自动生成)

需求工程概述 ​

需求工程概述 ​

是软件工程的一个分支/部分

需求工程是指应用工程化的方法、技术和规格来开发和管理软件的需求。

目的是为了获得高质量的软件需求。

需求工程的任务 ​

  1. 确定待开发的软件系统的用户类,并获取他们的需求信息。
  2. 分析用户的需求信息,并按软件需求的类型分类这些需求信息,同时也区别出不是需求的信息。
  3. 根据软件需求信息建立软件系统的逻辑模型或需求模型,并确认非功能需求和约束条件及限制。
  4. 根据收集的需求信息和逻辑模型编写需求规格说明及其文档。
  5. 评审需求规格说明。
  6. 当需求发生变更时,对需求规格说明及需求变更实施进行管理。

什么是软件需求 ​

  1. 用户解决问题或达到目标所需的条件或能力;(用户的角度 )
  2. 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。(软件系统的角度 )

好的需求应该具有的特性

  • 歧义因素
  • 完整性因素
  • 一致性因素
  • 可检验性因素
  • 确定性因素
  • 可跟踪性因素
  • 可行性因素
  • 必要性因素

需求的分类 ​

软件需求的分类

  • 目标需求
    • 反映组织机构或客户对系统和产品提出的高层次的目标要求,其限定了项目的范围和项目应达到的目标
  • 业务需求
    • 主要描述软件系统必须完成的任务、实际业务或工作流程等,软件开发人员通常可从业务需求中提取出功能需求和非功能需求。
  • 功能需求
    • 指开发人员必须实现的软件功能或软件系统应具有的外部行为。
  • 性能需求(非功能性需求):
    • 指实现的软件系统应能达到的技术指标,包括
      • 可靠性
      • 可用性
      • 有效性
      • 可维护性
      • 可移植性
  • 约束与限制
    • 指开发人员在设计和实现系统时的限制,如开发平台,数据库等。

需求规格说明 ​

需求规格说明RS是软件所应满足的全部需求,并可以文档的方式完整和精确陈述这些需求。

  • 重要性:需求规格说明是项目相关人员对将要开发的软件系统所达成的共识,是进行系统设计、实现、测试和验收的基本依据,也是整个软件开发过程中最重要的文档。
  • 内容:需求规格说明应精确地描述一个软件系统必须提供的功能和性能,以及所要考虑的约束条件与限制。

需求工程的相关角色 ​

软件开发人员(supplier)为客户开发软件系统的人。

涉众(stakeholder)指与提出和定义软件需求相关的人,其包括所有的用户、客户和软件开发人员。这些人都是软件需求的来源,只是他们站在不同的立场看待将要开发的软件系统。