《软件设计师》复习笔记(11.3)——需求获取、分析、定义、验证、管理

目录

一、软件需求概述

真题示例: 

二、质量功能部署(QFD)

三、需求开发流程

需求获取

需求分析

需求定义(SRS)

需求验证

真题示例: 

四、需求管理

真题示例:


一、软件需求概述

软件需求分为三个层次:

  • 业务需求:企业/客户的高层次目标(如项目投资人、市场部门提出)。
  • 用户需求:用户的具体任务或目标(通过访谈、问卷调查获取)。
  • 系统需求:包括功能需求、非功能需求和设计约束。
    • 功能需求:系统必须实现的具体功能(如拼写检查)。
    • 非功能需求:系统质量属性(如性能、可靠性)。
    • 设计约束:限制条件(如必须使用国产数据库)。


真题示例: 

软件需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为获取情况、分析、( )和评审四个阶段。

A. 制订规格说明 B. 形成需求基线 C. 跟踪需求变更 D. 控制需求版本

 软件需求开发分为获取情况、分析、制订规格说明和评审四个阶段。制订规格说明即输出《软件需求规格说明书》,作为开发基线。形成需求基线是需求验证确认后用户签字后的结果;跟踪需求变更和控制需求版本属于需求管理的范畴,并非需求开发阶段的内容。

某软件公司正在承担开发一个字处理器的任务。在需求分析阶段,公司的相关人员整理出一些相关的系统需求,其中:

  • “找出文档中的拼写错误并提供一个替换项列表来供选择替换拼错的词”属于( );
  • “显示提供替换词的对话框以及实现整个文档范围的替换”属于( );
  • “用户能有效地纠正正文档中的拼写错误”属于( ) 。

A. 业务需求 B. 用户需求 C. 功能需求 D. 性能需求

 用户需求、功能需求、业务需求

  1. “找出文档中的拼写错误并提供一个替换项列表来供选择替换拼错的词”
    这一需求描述了用户希望系统能够帮助他们完成的具体任务,属于用户需求。它从用户角度出发,明确了用户希望通过系统实现的目标(检测错误并提供替换选项)。

  2. “显示提供替换词的对话框以及实现整个文档范围的替换”
    这一需求具体说明了系统需要实现的功能模块(如对话框的显示和全局替换功能),属于功能需求。它定义了系统如何通过技术手段满足用户需求。

  3. “用户能有效地纠正文档中的拼写错误”
    这一需求是公司开发该功能的高层次目标,属于业务需求。它反映了组织开发系统的业务动机(提升用户体验和产品竞争力)。

这种分类确保了需求从抽象目标到具体实现的层次递进,符合软件工程的需求分析方法。


二、质量功能部署(QFD)

将用户需求转化为技术需求,分为三类:

  • 常规需求:用户明确提出的功能,实现越多越满意。
  • 期望需求:用户默认应具备的功能(未实现会导致不满)。
  • 意外需求:超出用户预期的功能(实现可提升满意度,但不影响购买决策)。 

三、需求开发流程

  1. 需求获取

    • 方法:用户访谈、问卷调查、采样、情节串联板、联合需求计划(JRP)。
  2. 需求分析

    • 目标:确保需求无二义性、可测试、完整。
    • 任务:绘制系统上下文图、创建原型、确定优先级、建立数据字典等。
    • 结构化分析模型
      • 功能模型:数据流图(DFD)。
      • 行为模型:状态转换图(STD)。
      • 数据模型:E-R图。
    • 数据流图
      • 数据流图描述数据在系统中如何被传送或变换,以及如何对数据流进行变换
        的功能或子功能,用于对功能建模,数据流图相关概念如图:

      •  

      • 数据流图是可以分层的,从顶层(即上下文无关数据流)到0层、1层等,顶
        层数据流图只含有一个加工处理表示整个管理信息系统,描述了系统的输入和
        输出,以及和外部实体的数据交互。数据流图示例如下:

  3. 需求定义(SRS)

    • 输出《软件需求规格说明书》,作为开发基线。
    • 方法:
      • 严格定义:假设所有需求可预先明确。
      • 原型法:通过迭代模型逐步确认需求。
  4. 需求验证

    • 步骤:评审(正式/非正式) + 测试(概念测试用例)。
    • 确认后需用户签字,形成需求基线。


真题示例: 

需求获取是确定和理解不同的项目干系人的需求和约束的过程,需求获取是否科学、准备充分,对获取出来的结果影响很大。在多种需求获取方式中,( )方法具有良好的灵活性,有较宽广的应用范围,但存在获取需求时信息量大、记录较为困难、需要足够的领域知识等问题。( )方法基于数理统计原理,不仅可以用于收集数据,还可以用于采集访谈用户或者是采集观察用户,并可以减少数据收集偏差。( )方法通过高度组织的群体会议来分析企业内的问题,并从中获取系统需求。

选项内容

A. 用户访谈 B. 问卷调查 C. 联合需求计划 D. 采样

  • 用户访谈灵活性高但依赖领域知识。

  • 采样通过统计学方法减少偏差。

  • 联合需求计划(JRP)是群体会议驱动的需求获取方式。

  • 问卷调查更适用于大规模数据收集。


四、需求管理

  • 需求基线:通过评审的需求说明书,变更需走流程。
  • 变更控制委员会(CCB):审批和监督需求变更。
  • 双向跟踪
    • 正向跟踪:检查用户需求是否全部实现。
    • 反向跟踪:检查系统功能是否均源于用户需求。
  • 常见风险:用户参与不足、需求蔓延、模糊需求等。


真题示例:

( )是关于需求管理正确的说法。

A. 为达到过程能力成熟度模型第二级,组织机构必须具有3个关键过程域

B. 需求的稳定性不属于需求属性

C. 需求变更的管理过程遵循变更分析和成本计算、问题分析和变更描述、变更实现的顺序

D. 变更控制委员会对项目中任何基线工作产品的变更都可以做出决定

A.CMM二级要求6个关键过程域(需求管理、项目计划、项目跟踪、配置管理、质量保证、子合同管理)
B. 需求的稳定性(如变更频率)是重要属性
C. 正确顺序应为:问题分析和变更描述→变更分析和成本计算→变更实现
D. 变更控制委员会(CCB)负责审批所有基线产品的变更 

在结构化分析中,用数据流图描述( )。当采用数据流图对一个图书馆管理系统进行分析时,( )是一个外部实体。

A. 数据对象之间的关系,用于对数据建模

B. 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模

C. 系统对外部事件如何响应,如何动作,用于对行为建模

D. 数据流图中的各个组成部分

A. 读者 B. 图书 C. 借书证 D. 借阅

  1. 数据流图描述内容
    数据流图(DFD)的核心是展示数据流动和功能变换,属于功能建模工具。A选项描述的是E-R图(数据库),C选项描述的是状态转换图。

  2. 图书馆系统的外部实体

    • 外部实体指系统外的人或组织
    • 读者是系统使用者,属于外部实体
    • 图书、借书证、借阅都是系统内部数据

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

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

相关文章

Spring Boot 依赖注入与Bean管理:JavaConfig如何取代XML?

大家好呀!今天我们来聊一个超级实用的技术话题 —— Spring Boot 中的依赖注入和Bean管理,特别是JavaConfig是如何一步步取代XML配置的。我知道很多小伙伴一听到"依赖注入"、"Bean管理"这些词就头大,别担心!我…

全志H5,NanopiKP1lus移植QT5.12记录

移植步骤 机器环境下载QT5.12.0源码安装交叉编译器修改qmake.conf文件配置编译选项qt5的configure选项说明基本配置选项编译器和链接器选项功能模块配置第三方库集成注意事项 配置过程报错解决配置完成编译过程报错解决编译完成将arm-qt文件夹传送到开发板配置板子环境变量运行…

STM32单片机C语言

1、stdint.h简介 stdint.h 是从 C99 中引进的一个标准 C 库的文件 路径:D:\MDK5.34\ARM\ARMCC\include 大家都统一使用一样的标准,这样方便移植 配置MDK支持C99 位操作 如何给寄存器某个值赋值 举个例子:uint32_t temp 0; 宏定义 带参…

【专题刷题】双指针(四):最接近的三数之和,接雨水

📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;&#xff…

chili3d调试笔记3 加入c++ 大模型对话方法 cmakelists精读

加入 #include <emscripten/bind.h> #include <emscripten/val.h> #include <nlohmann/json.hpp> 怎么加包 函数直接用emscripten::function&#xff0c;如&#xff1a; emscripten::function("send_to_llm", &send_to_llm); set (CMAKE_C…

[Redis]1-高效的数据结构P2-Set

按照惯例&#xff0c;先丢一个官网文档链接。 上篇我们已经了解了高效的数据结构P1-String与Hash。 这篇&#xff0c;我们继续来了解Redis的 Set 与 Sorted set。 目录 有序集合 Sorted set底层实现 集合 Set总结资料引用 有序集合 Sorted set Redis 有序集合是一组唯一的字符…

Python + Playwright:使用正则表达式增强自动化测试

Python + Playwright:使用正则表达式增强自动化测试 前言一、 为什么选择正则表达式?二、 Playwright 中集成正则表达式:途径与方法三、 实战应用:正则表达式解决典型测试难题场景 1:定位 ID 或 Class 包含动态部分的元素场景 2:验证包含可变数字或文本的提示信息场景 3:…

VASP 6.4.1 Ubuntu系统编译安装手册

VASP 6.4.1 Ubuntu系统编译安装手册 &#xff08;基于Ubuntu 22.04 LTS&#xff0c;适用x86_64架构&#xff09; 文章目录 VASP 6.4.1 Ubuntu系统编译安装手册第一章 系统环境深度配置1.1 硬件兼容性验证1.2 操作系统环境准备1.3 数学库深度优化配置 第二章 编译环境深度调优2…

uniapp h5接入地图选点组件

uniapp h5接入地图选点组件 1、申请腾讯地图key2、代码接入2.1入口页面 &#xff08;pages/map/map&#xff09;templatescript 2.2选点页面&#xff08;pages/map/mapselect/mapselect&#xff09;templatescript 该内容只针对uniapp 打包h5接入地图选点组件做详细说明&#x…

java输出、输入语句

先创建一个用于测试的java 编写程序 #java.util使java标准库的一个包&#xff0c;这里拉取Scanner类 import java.util.Scanner;public class VariableTest {public static void main(String[] args) {#创建一个 Scanner 对象Scanner scanner new Scanner(System.in);System.…

AI Agents系列之构建多智能体系统

&#x1f9e0; 向所有学习者致敬&#xff01; “学习不是装满一桶水&#xff0c;而是点燃一把火。” —— 叶芝 我的博客主页&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 欢迎点击加入AI人工智能社区&#xff01; &#x1f680; 让我们一起努力&#xff0c;共创…

04.Spring 框架注解体系详解

Spring 框架注解体系详解 本文详细介绍 Spring、Spring Boot 及 Spring Cloud 中常用注解的用途、生命周期及使用方式&#xff0c;帮助开发者更深入理解 Spring 注解驱动编程模式。 参考来源&#xff1a;Spring、SpringMVC、SpringBoot、SpringCloud 框架常用注解说明 目录 注…

手撕STL——vector

目录 引言 1&#xff0c;了解 STL 中的 vector 2&#xff0c;先来一个简易版跑起来 2_1&#xff0c;构造函数 2_2&#xff0c;扩容reserve&#xff08;&#xff09; 2_3&#xff0c;push_back&#xff08;&#xff09; 2_4&#xff0c;pop_back&#xff08;&#xff09; …

优恩-具备浪涌保护功能的固态继电器UNRD0610-无触点开关器件‌

MOSFET固态继电器 : 最高负载电压&#xff1a;60V 最大负载电流&#xff1a;10A 快速响应时间&#xff1a;≤1ms 低驱动电流&#xff1a;≤10mA 高绝缘性&#xff0c;输入输出间隔离电压&#xff1a;AC3000V 耐脉冲浪涌冲击能力强 符合IEC 61000-4-2 ESD标准&#xff1a…

Kaamel隐私与安全分析报告:Microsoft Recall功能评估与风险控制

本报告对Microsoft最新推出的Recall功能进行了全面隐私与安全分析。Recall是Windows 11 Copilot电脑的专属AI功能&#xff0c;允许用户以自然语言搜索曾在电脑上查看过的内容。该功能在初次发布时因严重隐私和安全问题而备受争议&#xff0c;后经微软全面重新设计。我们的分析表…

Kotlin协程Semaphore withPermit约束并发任务数量

Kotlin协程Semaphore withPermit约束并发任务数量 import kotlinx.coroutines.* import kotlinx.coroutines.sync.Semaphore import kotlinx.coroutines.sync.withPermit import kotlinx.coroutines.launch import kotlinx.coroutines.runBlockingfun main() {val permits 1 /…

鸿蒙语言基础

准备工作 去鸿蒙官网下载开发环境 点击右侧预浏览&#xff0c;刷新和插销按钮&#xff0c;插销表示热更新&#xff0c;常用按钮。 基础语法 string number boolean const常量 数组 let s : string "1111"; console.log("string", s);let n : number …

C++数据结构与二叉树详解

前言&#xff1a; 在C编程的世界里&#xff0c;数据结构是构建高效程序的基石&#xff0c;而二叉树则是其中最优雅且应用广泛的数据结构之一。本文将带你深入理解二叉树的本质、实现与应用&#xff0c;助你在算法设计中游刃有余。 一、二叉树的基本概念 1. 什么是二叉树 二叉树…

浅析数据库面试问题

以下是关于数据库的一些常见面试问题: 一、基础问题 什么是数据库? 数据库是按照数据结构来组织、存储和管理数据的仓库。SQL 和 NoSQL 的区别是什么? SQL 是关系型数据库,使用表结构存储数据;NoSQL 是非关系型数据库,支持多种数据模型(如文档型、键值对型等)。什么是…

piamon实战-- 如何使用 Paimon 的 Java API 实现数据的点查

简介 Apache Paimon(原 Flink Table Store)是一款基于流批一体架构的 ​​高性能数据湖存储框架​​,支持低延迟的数据更新、实时查询和高效的键值点查(Point Lookup)。 本文将深入解析 Paimon 的点查机制,并通过 Java API 代码案例演示如何实现数据的点查功能。 一、Pai…