软考系统分析师知识点十三:软件需求工程

前言

今年报考了11月份的软考高级:系统分析师。

考试时间为:11月9日。

倒计时:24天。

目标:优先应试,其次学习,再次实践。

复习计划第一阶段:扫平基础知识点,仅抽取有用信息,可有缺失,但得过眼。

第十一章:软件需求工程

img

内容总结

1. 需求工程
  • 用户需求:通过访谈和问卷调查获取,描述用户目标和系统必须完成的任务。
  • 系统需求:包括功能需求(行为需求)、非功能需求(属性或品质)和设计约束(如技术限制)。
2. 质量功能部署(QFD)
  • 常规需求:用户认为系统应当实现的基本功能。
  • 期望需求:用户期望但未明确表述的功能。
  • 意外需求:超出用户期望的功能,增加用户满意度。
3. 需求获取
  • 访谈:包括准备、主持和后续工作,注意措辞和记录。
  • 问卷调查:设计调查表,包括开放式和封闭式问题,提高返还率的方法。
4. 需求分析
  • 需求分析任务:包括绘制系统上下文范围关系图、创建用户界面原型、分析需求可行性、确定需求优先级、建立分析模型、创建数据字典、使用QFD。
  • 需求分析方法:结构化分析(SA)、面向对象分析(OOA)、面向问题域分析(PDOA)。
5. 结构化分析方法(SA)
  • 数据流图(DFD):描述数据流动和处理过程,包括顶层图和逐层分解。
  • 状态转换图(STD):描述系统状态和引起状态转换的事件。
6. 面向对象分析方法(OOA)
  • UML:统一建模语言,包括类图、用例图、顺序图、状态图等。
  • 用例图:描述系统功能和用户交互,包括参与者和用例。
7. 需求定义
  • 需求规格说明书(SRS):详细描述软件需求,包括范围、引用文件、需求、合格性规定、需求可追踪性、未解决的问题、注解和附录。
8. 需求验证
  • 需求评审:通过评审会议对SRS进行评估,确保需求的正确性和完整性。
  • 需求测试:基于概念测试用例进行验证,发现SRS中的错误、二义性和遗漏。
9. 需求管理
  • 需求基线:需求开发结果,作为开发基础,只能通过正式的变更控制系统进行变化。
  • 需求变更管理:控制需求变更,减少对项目成本、进度和质量的影响。
10. 需求跟踪
  • 需求跟踪矩阵:记录需求与系统元素的对应关系,包括正向跟踪和反向跟踪。
  • 正向跟踪:从用户需求到软件需求的追溯。
  • 反向跟踪:从软件需求到用户需求的追溯。
11. 风险管理
  • 风险识别:预先识别项目中可能的风险。
  • 风险应对:制定应对策略,减少风险影响。

不常见概念

  1. 需求工程的重要性

    需求工程是确保软件开发项目成功的关键步骤。它涉及到理解、收集、分析和记录用户的需求。如果需求工程做得不好,可能会导致项目目标不明确,开发出的产品不符合用户的期望,甚至导致项目失败。需求工程的成果通常包括需求规格说明书,这是后续设计和开发工作的基础。

  2. 需求的层次

    • 业务需求:反映了组织的战略目标和业务目标,通常由高层管理人员提出。
    • 用户需求:描述了用户希望系统能够完成的具体任务,通常通过用户访谈、调查问卷等方式收集。
    • 系统需求:详细描述了系统必须实现的功能和性能,包括软件必须执行的操作和系统必须满足的标准。
  3. 需求获取方法

    需求获取是需求工程的第一步,涉及到使用各种技术来收集用户的需求。这些方法包括:

    • 用户访谈:通过与用户的直接对话来获取需求,适用于获取详细和深入的信息。
    • 问卷调查:通过设计问卷来收集大量用户的需求,适用于用户数量众多且分散的情况。
    • 采样:从大量数据中选择有代表性的样本进行研究,以了解用户的需求和偏好。
    • 情节串联板:通过一系列图片或场景来讲述故事,帮助用户和开发团队共同理解需求。
    • 联合需求计划(JRP):通过组织跨部门的会议来共同讨论和定义需求。
  4. 需求分析

    需求分析是对收集到的需求进行分析和整理的过程。这一步骤的目的是确保需求是可行的、无歧义的、完整的,并且可以被测试。需求分析的方法包括:

    • 结构化分析方法:使用数据流图(DFD)和其他结构化图表来表示系统的功能。
    • 面向对象分析方法:使用UML图来表示系统的类、对象和它们之间的关系。
    • 面向问题域的分析:关注问题域的本质,而不是过早地陷入解决方案的细节。
  5. 需求文档化

    需求文档化是将需求分析的结果记录下来的过程。需求规格说明书(SRS)是需求文档化的主要成果,它详细描述了系统的需求,并作为开发和测试的基础。SRS应该清晰、准确地描述需求,以便所有项目干系人都能理解和同意。

  6. 需求验证

    需求验证是确保需求文档准确反映了用户需求的过程。这通常涉及到需求评审,其中包括:

    • 评审:正式的会议,向用户和其他项目干系人介绍需求,以获得反馈和批准。
    • 检查:由非作者的个人或小组详细检查需求文档,以发现错误和不一致之处。
    • 走查:由开发人员领导的评审过程,团队成员对工作产品进行检查和讨论。
  7. 需求管理

    需求管理是确保需求在整个项目生命周期中保持一致性和可追踪性的一系列活动。这包括:

    • 需求基线:建立一个稳定的、经过批准的需求集合,作为后续开发的基础。
    • 需求变更管理:控制和记录需求的变更,确保这些变更不会对项目造成负面影响。
    • 需求跟踪:建立需求与其他项目元素(如设计、代码和测试)之间的联系。
  8. 需求跟踪

    需求跟踪是确保需求在整个开发过程中得到满足的一种方法。它涉及到建立需求与其他工作产品之间的联系,以便可以追踪每个需求的实现和验证情况。需求跟踪的目的包括:

    • 审核:确保所有需求都被正确实现。
    • 变更影响分析:在需求变更时,评估对项目的影响。
    • 维护:在系统维护阶段,确保变更得到正确实施。
  9. 风险管理

    风险管理是识别、评估和应对项目中潜在风险的过程。与需求相关的风险可能包括:

    • 需求不明确:导致开发团队误解或实现错误。
    • 需求变更:可能导致项目延期和成本增加。
    • 需求蔓延:用户不断增加新的需求,导致项目范围不断扩大。
  10. 原型方法

    原型方法是一种迭代的开发方法,它允许在早期阶段创建一个系统的原型,以便用户可以与之交互并提供反馈。这种方法有助于:

    • 早期反馈:用户可以在开发早期提供反馈,从而避免后期的重大变更。
    • 需求验证:通过原型验证需求的可行性和用户满意度。
  11. 质量功能部署(QFD)

    QFD是一种将用户需求转化为产品特性的方法。它通过识别用户的需求和期望,并将它们映射到产品特性,从而确保产品能够满足用户的需求。QFD的目的是:

    • 提升满意度:确保产品特性能够满足用户的需求,从而提升用户满意度。
    • 优先级排序:根据用户的需求对产品特性进行优先级排序。
  12. 需求的可测试性

    需求应该是可测试的,这意味着需求应该被表述得足够具体和明确,以便可以设计测试用例来验证它们。这包括:

    • 测试用例设计:为每个需求设计测试用例,以确保需求得到满足。
    • 测试执行:执行测试用例,验证需求是否得到实现,并记录测试结果。

写在最后

以上均为粗看教程的总结,目的不是为了百分之百准确,而是为了过手过脑,有所印象。

但是如有发现谬误,感谢各位随时指出。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。

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

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

相关文章

FPGA采集adc,IP核用法,AD驱动(上半部分)

未完结,明天补全 IP核:集成的一个现有的模块 串口写好后基本不会再修改串口模块内部的一些逻辑,将串口.v文件添加进来,之后通过他的上层的接口去对他进行使用,所以我们打包IP,之后就不用去添加源文件了&a…

仿 Mac 个人网站开发 |项目复盘

一、前言 1.1 灵感来源 早年有幸看到国外大佬做的一个 基于 Web 的 Windows XP 桌面娱乐系统, 那时刚好有搭建一个个人博客的想法, 所以就想是否可以基于 WEB 实现一个仿 Mac UI 的个人博客, 以应用的形式来展示博客各个功能! 1.2 相关链接(求个 Star) 前端开源代码后端开源…

Linux之实战命令32:chroot应用实例(六十六)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

【MySQL】入门篇—SQL基础:SQL语言概述

SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库的标准语言。随着信息技术的快速发展,数据成为企业和组织最重要的资产之一。有效地存储、查询和管理数据对于业务决策和运营至关重要。 SQL作为与关…

Java类与对象的分配机制

在Java中,类和对象是不同的概念。 类是一种数据类型,它定义了对象的行为和属性。类可以包含成员变量和方法。 对象是类的实例,它是在程序运行时根据类创建的。每个对象都有自己独立的内存空间,可以访问类中定义的成员变量和方法…

ali 231普通滑块82y版本

有需求可以联系博主 let v Died_in2021

【含开题报告+文档+PPT+源码】基于人脸识别的课堂考勤系统的设计与实现

开题报告 随着科技的不断发展,人脸识别技术已经逐渐渗透到各个领域,包括教育领域。传统的课堂考勤方式通常依赖于学生签到或教师手动记录,这种方式存在着许多不足之处,例如容易出现人为错误、耗费时间和资源等。为了解决这些问题…

诺贝尔经济学奖历史名单数据集(1969-2024年)

2024年诺贝尔经济学奖授予了达龙阿西莫格鲁(Daron Acemoglu)、西蒙约翰逊(Simon Johnson)和詹姆斯A罗宾逊(James A. Robinson),以表彰他们在理解制度如何影响经济发展方面的贡献。(“…

mysql学习教程,从入门到精通,sql序列使用(45)

sql序列使用 在SQL中,序列(Sequence)是一种数据库对象,用于生成唯一的数值,通常用于自动递增的主键。不同的数据库管理系统(DBMS)对序列的支持和语法可能有所不同。以下是一些常见的DBMS&#…

jmeter用csv data set config做参数化

在jmeter中,csv data set config的作用非常强大,用它来做批量测试和参数化非常好用。 csv data set config的常用配置项如下: Variable Names处,写上源文件中的参数名,用于后续接口发送请求时引用 Ignore first line…

泰克MDO3054示波器特性和规格Tektronix MSO3054 500M 四通道

Tektronix MDO3054 示波器,混合域,500 MHz,4 通道,5 GS/s 泰克 MDO3054 混合域示波器是终极 6 合 1 集成示波器,包括可选的集成频谱分析仪、任意函数发生器、逻辑分析仪、协议分析仪和数字电压表/计数器。泰克 MDO305…

python项目实战——下载美女图片

python项目实战——下载美女图片 文章目录 python项目实战——下载美女图片完整代码思路整理实现过程使用xpath语法找图片的链接检查链接是否正确下载图片创建文件夹获取一组图片的链接获取页数 获取目录页的链接 完善代码注意事项 完整代码 import requests import re import…

Java算术运算符 C语言的二维数组初始化

1. //算术运算符 public static void main(String[] args) {System.out.println(3.25.01);//若有小数参与,有可能不精确System.out.println(5-1);System.out.println(5*2);System.out.println(10.0/3);//这里不精确System.out.println(10%2);System.out.println();…

2024.10月16日- Vue.js(1)

一 VUE概述与环境搭建 1.1 Vue概述 1.1.1 简介 Vue (发音为 /vjuː/,类似 view) 是一款轻量级的用于构建用户界面的 渐进式的JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高…

「堆」对顶堆 / LeetCode 295(C++)

目录 概述 思路 算法过程 复杂度 Code 概述 LeetCode 295: 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。例如 arr [2,3] 的中位数是 (2 3) /…

【代码随想录Day44】动态规划Part12

115.不同的子序列 题目链接/文章讲解:代码随想录 视频讲解:动态规划之子序列,为了编辑距离做铺垫 | LeetCode:115.不同的子序列_哔哩哔哩_bilibili class Solution {public int numDistinct(String s, String t) {// 将字符串s和…

Vivado - Aurora 8B/10B IP

目录 1. 简介 2. 设计调试 2.1 Physical Layer 2.2 Link Layer 2.3 Receiver 2.4 IP 接口 2.5 调试过程 2.5.1 Block Design 2.5.2 释放 gt_reset 2.5.3 观察数据 3. 实用技巧 3.1 GT 坐标与布局 3.1.1 选择器件并进行RTL分析 3.1.2 进入平面设计 3.1.3 收发器布…

什么是凸二次规划问题

我们从凸二次规划的基本概念出发,然后解释它与支持向量机的关系。 一、凸二次规划问题的详细介绍 凸二次规划问题是优化问题的一类,目标是最小化一个凸的二次函数,受一组线性约束的限制。凸二次规划是一类特殊的二次规划问题,其…

堆排序(C++实现)

参考: 面试官:请写一个堆排序_哔哩哔哩_bilibiliC实现排序算法_c从小到大排序-CSDN博客 堆的基本概念 堆排实际上是利用堆的性质来进行排序。堆可以看做一颗完全二叉树。 堆分为两类: 最大堆(大顶堆):除根…

Java-IO流使用场景

Java IO 流是Java编程中非常重要的组成部分,用于处理文件读写、网络通信等数据传输任务。 1. 字节流 1.1 读取文件 import java.io.FileInputStream; import java.io.IOException;public class ReadFileExample {public static void main(String[] args) {try (FileInputSt…