系统架构设计师(第二版)学习笔记----需求工程

2023-09-20 23:26:00

【原文链接】系统架构设计师(第二版)学习笔记----需求工程

一、需求定义

1.1 需求包含的内容

  • 用户解决问题或达到目标所需条件或权能
  • 系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能。
  • 一种反映上面所述条件或权能的文档说明

1.2 软件需求的3个不同层次

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

1.3 需求工程的阶段

  • 需求获取
  • 需求分析
  • 形成需求规格
  • 需求确认与验证
  • 需求管理

1.4 需求管理的主要内容

  • 控制对需求基线的变动
  • 保持项目计划与需求一致
  • 控制单个需求和需求文档的版本情况
  • 管理需求和联系链,或管理单个需求和其他项目科交付产品之间的依赖关系
  • 跟踪基线中的需求状态

二、需求获取

2.1 需求获取的基本步骤

  • 开发高层的业务模型
  • 定义项目范围和高层需求
  • 识别用户角色和用户代表
  • 获取具体的需求
  • 确定目标系统的业务工作流
  • 需求整理与总结

2.2 需求获取方法

  • 用户面谈
  • 需求专题讨论会
  • 问卷调查
  • 现场观察
  • 原型化方法
  • 头脑风暴法

2.3 需求讨论会参与人员

  • 主持人
  • 用户
  • 技术人员
  • 项目组人员

2.4 专题讨论会的优点

  • 协助建立一支高效的团队,围绕项目成功的目标
  • 所有的风险承担人都畅所欲言
  • 促进风险承担人和开发团队之间达成共识
  • 揭露和解决哪些妨碍项目成功的行政问题
  • 能够很快地产生初步的系统定义
  • 可以有效解决不同涉众主键的需求冲突

三、需求变更

3.1 需求变更管理过程

  • 问题分析和变更描述
  • 变更分析和成本计算
  • 变更实现

3.2 需求变更策略

  • 所有需求变更必须遵循变更控制过程
  • 对于未获得批准的变更,不应该做设计和实现工作
  • 变更应该由项目变更控制委员会决定实现哪些变更
  • 项目风险承担者应该能够了解变更的内容
  • 绝不能从项目配置库中删除或者修改变更请求的原始文档
  • 每一个集成的需求变更必须能跟踪到一个经核准的变更请求,以保持水平可追踪性

3.3 变更控制委员会(CCB)的组成

  • 产品或计划管理部门
  • 项目管理部门
  • 开发部门
  • 测试或质量保证部门
  • 市场部或客户代表
  • 制作用户文档的部门
  • 技术支持部门
  • 帮助桌面或用户支持热线部门
  • 配置管理部门

3.4 CCB操作步骤

  • 指定决策
  • 交流情况
  • 重新协商约定

3.5 需求追踪的两种方式

  • 正向跟踪
  • 逆向跟踪
更多推荐

汇编基础(2) -- ARM64

简介ARM架构中,ARM64(也称为AArch64)是一种64位处理器架构,它是ARMv8指令集的一部分。与之前的32位ARM架构相比,ARM64提供了更大的寄存器容量、更广阔的地址空间和更高的计算能力。64位版本的指令集和32位版本的指令集有一些区别,这些区别主要涉及到以下几个方面:寄存器:ARM64架构提供了31个

[ 云计算 | AWS ] IAM 详解以及如何在 AWS 中直接创建 IAM 账号

本章节主要介绍IAM相关知识点以及在AWS控制台窗口如何创建一台AmazonIAM账号。文章目录一、什么是IAM?二、IAM常见种类2.1EIAM2.2CIAM2.3云厂商IAM三、账号(Account)三户模型四、认证(Authentication)4.1认证场景4.2认证方式4.3认证协议4.4认证源五、授权(Au

自然语言处理之北大词性标注集

最近在做人工智能相关技术的学习,在自然语言处理这里发现了词标注标准,顺带分享给小伙伴们词性是词汇基本的语法属性,通常也称为词类。词性标准是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程。例如名词、动词、形容词等。中文领域尚无统一的标注标准,较为主流的为北大的词性标注集和宾州词性标注集两大类。下面分享北大的

Python爬虫(二十一)_Selenium与PhantomJS

本章将介绍使用Selenium和PhantomJS两种工具用来加载动态数据,更多内容请参考:Python学习指南SeleniumSelenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动化操作,不同是Selenium可

MongoDB【部署 02】mongodb使用配置文件启动、添加为系统服务及自启动(一个报错:[13436][NotMasterOrSecondary])

MongoDB使用配置文件启动、添加为系统服务及设置自启动1.是什么2.下载安装启动配置2.1下载2.2安装2.3配置2.4使用配置文件启动3.设置系统服务及自启动3.1设置为系统服务3.2自启动1.是什么【以下内容来自ChatGPT3.5】MongoDB是一个流行的开源文档型数据库管理系统,广泛用于构建高度可扩展、灵

JVM 程序计数器

Java虚拟机(JVM,JavaVirtualMachine)是一个能够执行Java字节码的虚拟机。在JVM的架构中,程序计数器(ProgramCounter,PC)是一个关键的组成部分。程序计数器用于存储当前正在执行的Java字节码指令的地址。每个线程在JVM中都有自己的程序计数器。每条线程都需要有一个独立的程序计数

计算机视觉与深度学习-图像分割-视觉识别任务02-目标检测-【北邮鲁鹏】

目录标题参考目标检测定义深度学习对目标检测的作用单目标检测多任务框架多任务损失预训练模型姿态估计多目标检测问题滑动窗口(SlidingWindow)滑动窗口缺点AdaBoost(AdaptiveBoosting)参考区域建议selectivesearch思想慢速R-CNN慢速R-CNN思路边界框回归(Bboxreg)慢

leetcode分类刷题:队列(Queue)(二、优先队列解决TopK简单问题)

1、优先队列好像一般都叫堆,以大顶堆为例,顶部第一个元素最大,底部最后一个元素最小,自顶向底是递减的(更准确的说是非递增的),对外只能访问顶部第一个元素(对应索引为0)和底部最后一个元素(对应索引为-1);在Python中,heapq默认维护小顶堆,构造大顶堆时需要在入堆时添加相反数2、本次博客总结下用优先队列解决To

JavaScript系列从入门到精通系列第三篇:JavaScript基本语法(一)

文章目录一:JavaScript基本语法1:JS注释(一):JS多行注释(二):JS单行注释(三):JS中大小写(四):分号问题(五):空格和换行2:字面量和变量(一):字面量(二):变量(三):如何声明变量(四):如何给变量赋值(五):标识符二:JS中6种数据类型(一)1:JS字符串(一):JS字符串基本使用(二):

Ubuntu 安装 CUDA 与 OPENCL

前言:最近需要做一些GPU并行计算,因而入坑CUDA和OPENCL,两者都有用到一些,刚好有点时间,同时记录一些学习过程,排掉一些坑,这篇是环境安装篇,基本跟着走就没什么问题,环境:ubuntu18.04/ubuntu20.04显卡:Nvidia一、CUDA安装1.查看电脑是否识别GPUlspci|grep-invid

Liunx(Ubuntu20)常用指令

-rwxr-xr-x,在Linux系统中权限是区分用户的,即用户、组用户、其他用户,第一位表示文件的类型,-代表文件,d代表目录,其他每个用户占三个字符用户、组用户、其他用户都是rwx形式,其中r表示读、w表示写、x表示可执行,-表示没有权限,拿用户组举例,r只能出现在第一个位置、w只能出现在第二个位置、x只能出现在第

热文推荐