系统架构设计师教程 第5章 5.2需求工程 笔记

5.2 需求工程 ★★★★★

软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。
在这里插入图片描述

软件需求包括3个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。
(1)业务需求 (business requirement) 反映了组织机构或客户对系统、产品高层次的目标要求。
(2)用户需求 (user requirement) 描述了用户使用产品必须要完成的任务,是用户对该软件产品的期望。这两种构成了用户原始需求文档的内容。
(3)功能需求 (functional requirement) 定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足业务需求。

需求工程的活动主要被划分为以下几个阶段。
(1)需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕 获和修订用户的需求。

(2)需求分析:为系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义。

(3)形成需求规格(需求文档化):按照相关标准,生成需求模型的文档描述,用户原始需求书作为用户和开发者之间的一个协约,往往被作为合同的附件;软件需求描述规约作为后续软件系统开发的指南。

(4)需求确认与验证:以需求规格说明为输入,通过用户确认、复审会议、符号执行、模 拟仿真或快速原型等途径与方法,确认和验证需求规格的完整性、正确性、一致性、可测试性 和可行性,包含有效性检查、一致性检查、可行性检查和确认可验证性。

(5)需求管理:包括需求文档的追踪管理、变更控制、版本控制等管理性活动。
软件需求开发的最终文档经过评审批准后,则定义了开发工作的需求基线 (Baseline)。这个基线在客户和开发者之间构筑了计划产品功能需求和非功能需求的一个约定 (Agreement)。
需求约定是需求开发和需求管理之间的桥梁。
在这里插入图片描述

5.2.1 需求获取 ★★★★☆

1.需求获取的基本步骤
1)开发高层的业务模型
对应用领域(系统的应用环境)构建业务模型,描述用户的业务过程,确定用户的初始需求

2)定义项目范围和高层需求
项目范围描述系统边界、系统与系统交互的参与者之间(包括组织、人、硬件设备、其他软件等)的关系。
高层需求不涉及过多的细节,主要表示系统需求的概貌。
常见的建模手段包括系统上下文图和系统顶层用例图等。

3)识别用户角色和用户代表
系统所涉及到的各类人员
4)获取具体的需求
具体、完整和 详细的需求
5)确定目标系统的业务工作流
6)需求整理与总结

2.需求获取方法 ★★★★☆
1)用户面谈
最为常见的需求获取方法,是理解用户需求的最有效方法。
面谈过程需要认真的计划和准备;面谈之后,需要复查笔记的准确性、完整性和可理解性;把所收集的信息转化为 适当的模型和文档;确定需要进一步澄清的问题。

2)需求专题讨论会
是需求获取的一种有力技术。在短暂而紧凑的时间段内将相关涉众集中 在一起集体讨论,与会者可以在应用需求上达成共识,对操作过程尽快取得统一的意见。参加会议的人员包括主持人、用户、技术人员、项目组人员。 专题讨论会具有以下优点。
(1)协助建立一支高效的团队,围绕项目成功的目标。
(2)所有的风险承担人都畅所欲言。
(3)促进风险承担人和开发团队之间达成共识。
(4)揭露和解决那些妨碍项目成功的行政问题。
(5)能够很快地产生初步的系统定义。
(6)可以有效地解决不同涉众之间的需求冲突。

3)问卷调查
问卷调查可用于确认假设和收集统计倾向数据。存在的问题是:相关问题不能事先决定,问题背后的假设对答案造成偏颇,难以探索一些新领域,难以继续用户的模糊响应。在完成最初的面谈和分析后,问卷调查可作为一项协作技术收到良好效果。

4)现场观察
通过观察用户实际执行业务的过程,来直观地了解业务的执行过程,全面了解需求细节。

5)原型化方法
在需求的早期,用户往往在具体的需求定义上存在很多不确定性,此时可以通过原型化方法,通过开发系统原型以及与用户的多次迭代反馈,解决在早期阶段需求不确定的问题,尤其是在人机界面等高度不确定的需求。

6)头脑风暴法
在一些新业务拓展的软件项目中,业务流程存在高度的不确定性,一群人围绕该业务,发散思维,不断产生新的观点, 参会者敞开思想使各种设想在相互碰撞中激起大脑的创造性风暴,从而确定具体的需求。

5.2.2 需求变更 ★★★★☆

1.变更控制过程
在这里插入图片描述

(1)问题分析和变更描述。当提出一份变更提议后,需要对该提议做进一步的问题分析, 检查它的有效性,产生一个更明确的需求变更提议。
(2)变更分析和成本计算。当接受该变更提议后,需要对需求变更提议进行影响分析和评 估。变更成本计算应该包括对该变更所引起的所有改动的成本,例如修改需求文档、相应的设 计、实现等工作成本。一旦分析完成并且被确认,应该进行是否执行这一变更的决策。
(3)变更实现。当确定执行该变更后,需要根据该变更的影响范围,按照开发的过程模型 执行相应的变更。在计划驱动过程模型中,往往需要回溯到需求分析阶段开始,重新作对应的 需求分析、设计和实现等步骤;在敏捷开发模型中,往往会将需求变更纳入到下一次迭代的执 行过程中。

2.变更控制委员会(Change Control Board,CCB)
CCB是项目所有者权益代表,通常工作是通过评审手段来决定项目是否能变更,但不提出 变更方案。
过程及操作步骤
1)制定决策
2)交流情况
3)重新协商约定

5.2.3 需求追踪 ★★★☆☆

需求跟踪提供了由需求到产品实现整个过程范围的明确查阅的能力。
需求跟踪的目的是建立与维护“需求-设计-编程-测试”之间的一致性,确保所有的工作成果符合用户需求。

需求跟踪有两种方式:
(1)正向跟踪。检查《产品需求规格说明书》中的每个需求是否都能在后继工作成果中找到对应点。
(2)逆向跟踪。检查设计文档、代码、测试用例等工作成果是否都能在《产品需求规格说 明书》中找到出处。
正向跟踪和逆向跟踪合称为“双向跟踪”。不论采用何种跟踪方式,都要建立与维护需求跟 踪矩阵(即表格)。需求跟踪矩阵保存了需求与后继工作成果的对应关系。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

哪款宠物空气净化器是除浮毛王者?希喂、范罗士、霍尼韦尔宠物空气净化器实测

养宠人绕不过的痛——掉毛!脱毛!又到了掉毛季,就连空气中都有毛毛……不管遇到谁,都知道你养猫养狗了——只因T恤变身毛线衫、毛毛怎么都粘不干净。不止是衣服上,地板上、沙发上、桌面上,哪哪都是毛。开始养…

[产品管理-15]:NPDP新产品开发 - 13 - 产品创新流程 - 具体产品的创新流程:精益生产与敏捷开发

目录 前言:​ 一、集成产品开发IPD模型——集成跨功能团队的产品开发 1.1 概述 1、IPD模型的核心思想 2、IPD模型的主要组成部分 3、IPD模型的实施步骤 4、IPD模型的优点 1.2 基于IPD系统的组织实践等级 1.3 IPD的优缺点 二、瀑布开发模型 1、定义与特点…

物体识别之微特征识别任务综述

“深度人工智能”是成都深度智谷科技旗下的人工智能教育机构订阅号,主要分享人工智能的基础知识、技术发展、学习经验等。此外,订阅号还为大家提供了人工智能的培训学习服务和人工智能证书的报考服务,欢迎大家前来咨询,实现自己的…

python安装换源

安装 python 使用演示的是python 3.8.5 安装完成后,如下操作打开命令行:同时按 “WindowsR” > 输入 “cmd” -> 点击确定 python换源 临时换源: #清华源 pip install markdown -i https://pypi.tuna.tsinghua.edu.cn/simple # 阿里…

个性化、持续性阅读 学生英语词汇量自然超越标准

2024年秋季新学年,根据2022版《义务教育英语课程标准》全新修订的英语新版教材开始投入使用,标志着我国英语教育迈入了一个以应用为导向、注重综合素养培养的新阶段。 新版教材的变革不仅仅是一次词汇量的简单增加,更是一场从应试到应用的深…

【鸿蒙】HarmonyOS NEXT星河入门到实战9-组件化开发进阶应用状态管理

目录 1.1 创建页面 1.2 页面跳转和后退 1.3 页面栈 1.4 路由模式 1.5 路由传参 2、生命周期 3、Stage模型 3.1 目录概览 3.2 app.json5应用配置 3.3 module.json5模型配置 3.4 UIAbility组件 3.5 UIAbility的添加和设置启动 3.6 UIAbility组件的生命周期 3.7 拉起另…

微信小程序基本信息填写要求(收藏)

小程序基本信息填写 小程序名称:小程序在发布前,名称设置成功以后有2次修改名称机会,2次机会用完,必须先发布后,才可通过微信认证进行改名。 小程序头像:新头像不允许涉及政治敏感与色情;图片格式必须为&…

使用nvm安装node版本报错

报错 windows 通过nvm安装版本,在本地安装了nvm后,通过nvm安装node报错了,报错如下图: 解决方法 1.如果你找不到相关配置文件在哪儿,可以打开vscode在终端输入nvm root,此时就会显示你的nvm配置文件路径&…

大顶堆+动态规划+二分

前言&#xff1a;我们这一题需要分类讨论 对于我们左边和右边的我们需要预处理 有点类似反悔堆的做法&#xff0c;得出i之前取出 m 个元素代价最小&#xff0c;并且这个代价一定是递减的&#xff08;可以推导一下&#xff09; 题目地址 #include<bits/stdc.h> using name…

【Jetson】Jetson Orin NX刷机教程

Jetson Orin NX刷机教程 一、硬件准备二、安装SDK Manager三、在线或离线刷机 一、硬件准备 需要将Jetson Orin NX的GND和FC_REC引脚短接&#xff0c;设备进入刷机模式。然后用Type-C线将其余主机连接&#xff0c;主机的选择可以为ubuntu虚拟机或者ubuntu系统。注意如果选择虚…

手机玩机常识____展讯芯片刷机平台ResearchDownload的一些基本常识与问题解决

展讯ResearchDownload工具 展讯芯片的刷机工具--ResearchDownload下载工具"是一款专为用户设计的高效、便捷的下载管理软件&#xff0c;它能够帮助用户快速、稳定地从互联网上获取各种文件。这款工具以其强大的功能和良好的用户体验&#xff0c;在众多展讯芯片下载工具中脱…

Spring扩展点系列-SmartInstantiationAwareBeanPostProcessor

文章目录 简介源码分析示例 简介 spring容器中Bean的生命周期内所有可扩展的点的调用顺序 扩展接口 实现接口ApplicationContextlnitializer initialize AbstractApplicationContext refreshe BeanDefinitionRegistryPostProcessor postProcessBeanDefinitionRegistry B…

Nginx.conf没有server和location模块的解决方法

网上有些说法说自己在配置文件里面添加server和location模块&#xff0c;但是我发现好像可以不用&#xff0c;其实nginx的配置文件还是给了我们提示的&#xff0c;如图&#xff1a; 在最后一行其实引入了另一个配置文件&#xff0c;我们cd进去看一下有什么内容。输入ls命令发现…

网络药理学:15、草稿暂存区(autodock vina)

TCMSP 韦恩图在线网站 https://bioinfogp.cnb.csic.es/tools/venny/index.html String数据库参数详解&#xff1a;https://www.bilibili.com/video/BV1q64y1k7Zf?p16&vd_sourceaed4c634975918b14b7354ec93ce5389 David数据库可以用基因ID或者基因名。 KEGG数据库使用&am…

MYSQL数据库进阶篇——存储函数

存储函数是有返回值的存储过程&#xff0c;所有参数只能是IN类型 语法如下&#xff1a; 例如&#xff1a;

[项目] - Calc计算器

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天来尝试模拟windows 下的clac计算器 绘制计算器 拖动工具箱的Edit Control输入框、Button按钮 制作计算器界面需要将Edit Control输入框 拉长&#xff0c;将多行、只读 设置为True整体计算机的控件ID&#xff1a;I…

Ansys HFSS的边界条件与激励端口

本文将介绍HFSS边界条件、激励端口,然后重点介绍连接器信号完整性仿真应用最多的波端口(wave port)及其尺寸设置要点。 HFSS (电磁仿真)边界条件 HFSS中所谓的边界并非真正意义上的边界,边界条件是指定问题区域和对象边缘的场行为接口。在HFSS的背景下,边界的存在主要有两个…

缺陷(Bug)的一生

Bug 像是一个被过分宠爱的小孩子&#xff0c;得到了特别多的关注。它们在开发者的 IDE 里悄然无声的诞生&#xff0c;但在现身之刻却引来一片喧闹。 对于测试工程师发现的 Bug&#xff0c;它们的生命是这样的&#xff1a;测试工程师发现Bug&#xff0c;花些时间细细品味。 这…

GB28181应急救援行业视音频解决方案探究和技术实现

技术背景 应急救援是一项针对突发、具有破坏力的紧急事件采取预防、预备、响应和恢复的活动与计划。这些紧急事件可能包括自然灾害&#xff08;如地震、洪水、台风&#xff09;、事故灾难&#xff08;如火灾、爆炸、交通事故&#xff09;、公共卫生事件&#xff08;如疫情、食…

pycharm安装-教程

在研究和学习的过程中&#xff0c;Jupyter Notebook确实是一个不错的选择&#xff0c;但在处理大型项目程序时&#xff0c;可能需要一个更强大的集成开发环境(IDE)。在此背景下&#xff0c;我们推荐使用PyCharm。PyCharm不仅具备多种功能&#xff0c;如项目管理、环境管理、代码…