软件需求-架构师之路(五)

  • 软件需求

软件需求:

指用户 对系统在功能、行为、性能、设计约束等方面的期望。

分为 需求开发 需求管理 两大过程。

需求开发:

  1. 需求获取
  2. 需求分析
  3. 需求定义(需求规格说明书)
  4. 需求验证:拉客户一起评审,没问题签字。

这里评审确定后就形成需求基线。下面就是需求管理,如果变更需求就超过了基线。

需求管理(支持需求开发):

  1. 变更控制:加需求必需严格控制。
  2. 版本控制
  3. 需求跟踪:跟踪需求变更。
  4. 需求状态跟踪:需求是否完成跟踪。

重点:软件需求分为 业务需求用户需求系统需求,三大类。(重点:业务需求用户需求系统需求

业务需求:反映 企业和客户对系统高层次目标要求,通常来自项目投资人、市场营销部或产品策划部。

用户需求:描述 用户具体目标,用户要求系统必需完成的任务,通常采用用户访谈和文件调查。

系统需求:系统角度的需求,分为 功能需求,非功能需求和设计约束等。

功能需求:开发人员需要实现的功能。

非功能需求:系统必需的属性,如可维护,高效率,可靠性等性能。

设计约束:对系统的一些约束说明,例如必需采用自主知识产权的数据库系统,必需运行在linux系统下等。

真题:

某软件公司正在承担开发一个字处理器的任务,在需求分析阶段,公司的相关人员整理出一些相关系统需求,其中,“找出文档中的拼写错误并提出一个替换项列表来供选择替换拼写错误的词”属于();“显示提供替换词的对话框以及实现整个文档范围的替换”属于();“用户能有效纠正文档中的拼写错误”属于()。

  1. 业务需求
  2. 用户需求
  3. 功能需求
  4. 性能需求

答案:B、C、A

解析:

第三个 抽象程度很高“用户能有效纠正文档中的拼写错误”在前,之后第一个在后“找到错误并替换错误”。

第一个找到错误并替换,用户去找。

第二个显示词语,功能需求。

第三个能有效找到的要求,业务需求。

第三个则是提出的也无需求,提出来后,则用户去找到错误改正,第一个。所以第三个是业务需求,第一个是用户需求。  第二句话则是实现,用代码。

二、需求获取

需求 获取不同用户和干系人的需求和约束。

常见获取方法:

用户访谈、问卷调查、采样、情节串连班、联合需求计划、需求记录技术。

联合需求计划(JRP):就是联合各方,如需求分析师,开发等一起开会。

问券调查:大量数据无法一一 访谈。

用户访谈:良好灵活性,应用范围广,但存在获取信息大、记录困难和需要足够知识领域等问题。

采样:基于 数理统计原理,不仅用于收集数据,还可以用采访用户或采集用户,减少数据偏差。

三、需求分析

需求分析:把杂乱无章的用户要求转化为用户需求。

结构化的需求分析

自顶向下,逐步分解,面向数据。

三大模型:功能模型(数据流图)、行为模型(状态转换模型)、数据模型(E-R图)以及数据字典。

 

长方形:外部实体。

圆形或者椭圆形:加工。

箭头线条代表:数据流。

两条线代表:数据存储。

数据流:必需经过加工。

加工:

有输入但没输出,则是黑洞。

有输出但没输入,是奇迹。

输入不足以产生输出,是灰洞。

外部实体:

软件系统之外的人员或者组织,指系统所需发源地和归宿地。

  • 数据字典

数据字典DD

数据字典为数据流图每个数据流、文件、加工以及组成数据流或文件数据项作出说明。

4个类目:数据流、数据项、数据存储和基本加工。

加工逻辑结构化语言、判定表和判定树

= 表示被定义

= 与 x=a+b,表示x由a和b组成

[...|...] 或,x=[a|b],x表示a或者b

{......},x=[a],0个或者多个a组成

  • 需求定义

需求定义是整个需求开发的基础。SRS是软件开发过程最重要文档之一,对任何规模和性质都不应该缺少。

需求定义方法:

  1. 严格定义称为预先定义,所有需求都能够预先定义。开发与用户之间能够准确清晰交流,
  2. 原型方法:迭代的循环开发方式,原型客服了困难的一种手段,项目干系人都存在交流困难。

需求验证:

称为需求确认,目的与用户一起确认需求无误,对需求规格说明书SAS进行评审。

需求评审:正式评审和非正式评审。

需求测试:设计概念测试用例。

需求验证通过后需要签字,不可以随意更改。

需求跟踪分为双向跟踪,正向跟踪和反向跟踪。

正向跟踪 去看看产品实现的有没有少实现。

反向跟踪 去看看之前的文档有没有多实现。

重点)需求变更的管理过程:

变更请求、团队分析影响评估、评估结果通知干系人、CCB审批(绝对性领导)、

同意的话

执行变更、记录变更实施情况、分发新文档

CCB是控制委员会。

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

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

相关文章

Qt扫盲-Qt Paint System 概述

Qt Paint System 概述 一、概述二、绘图设备和后端1. Widget2. Image3. Pixmap4. OpenGL绘制设备5. Picture6. 自定义绘制后端 三、绘图与填充1. Drawing2. 填充 Filling 四、坐标系统1. 渲染Window-Viewport转换 五、读写图像文件1. QMovie 六、绘图相关设备 一、概述 Qt的pa…

时序预测 | MATLAB实现基于CNN-LSTM卷积长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于CNN-LSTM卷积长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-LSTM卷积长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 MATLAB实现基…

《内网穿透》无需公网IP,公网SSH远程访问家中的树莓派

文章目录 前言 如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar内网穿透4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地…

docker私有仓库harbor

一、安装docker-compose yum install docker-compose -y 二、下载harbor安装包 tar -xf harbor-online-installer-v2.1.0.tgz cp harbor.yml.tmpl harbor.yml 三、修改harbor配置 [rootharbor ~]# vim harbor.ymlhostname: "修改为本机ip" harboradminpassword:…

Linux学习之基本指令一

在学习Linux下的基本指令之前首先大家要知道Linux下一切皆目录,我们的操作基本上也都是对目录的操作,这里我们可以联想我们是如何在windows上是如何操作的,只是形式上不同,类比学习更容易理解。 目录 01.ls指令 02. pwd命令 0…

【c语言】 -- 指针进阶

📕博主介绍:目前大一正在学习c语言,数据结构,计算机网络。 c语言学习,是为了更好的学习其他的编程语言,C语言是母体语言,是人机交互接近底层的桥梁。 本章来学习指针进阶。 让我们开启c语言学习…

区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 区间预测 | MATLAB实现QRBiLSTM双向长短…

ansible 修改远程主机nginx配置文件

安装ansible brew install ansible 或者 pip3 install ansible 添加远程主机 设置秘钥 mac登录远程主机 ssh -p 5700 root192.168.123.211 ssh localhost #设置双机信任 ssh-kyegen -t rsa #设置主机两边的ssh配置文件 vi /etc/ssh/sshd_config/ PermitRootL…

Android进阶之路 - 去除EditText内边距

正如题名,在Android中的EditText是自带内边距的,常规而言设置背景为null即可,但是因为使用了并不熟悉的声明式框架,本是几分钟解决的事儿,却花费了小半天~ 其实这只是一个很简单的小需求,不想却遇到了一些小…

win10安装mysql和c++读取调用举例

一、下载mysql8.rar解压到C盘(也可以解压到其他位置) 在系统环境变量添加JAVA_HOMEC:\myslq8,并在path中添加%JAVA_HOME%\bin; 二、以管理员身份进入命令窗口 三、修改配置文件指定安装路径和数据库的存放路径 四、键入如下命令初始化并启动mysql服务,然后修改登录…

不同版本Idea部署Maven和Tomcat教学

目录 一、2019版Idea 1.1. Maven配置 1.2. Tomcat配置 二、2023版Idea 2.1 Maven配置 2.2. Tomcat配置 一、2019版Idea 1.1. Maven配置 在这篇 http://t.csdn.cn/oetKq 我已经详细讲述了Maven的下载安装及配置,本篇就直接开始实操 : 1. 首先进入设置搜索Mave…

KDD 2023 获奖论文公布,港中文、港科大等获最佳论文奖

ACM SIGKDD(国际数据挖掘与知识发现大会,KDD)是数据挖掘领域历史最悠久、规模最大的国际顶级学术会议,也是首个引入大数据、数据科学、预测分析、众包等概念的会议。 今年,第29届 KDD 大会于上周在美国加州长滩圆满结…

C语言刷题指南(一)

📙作者简介: 清水加冰,目前大二在读,正在学习C/C、Python、操作系统、数据库等。 📘相关专栏:C语言初阶、C语言进阶、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 👍 收藏 ⭐留言 &am…

网络层协议

网络层协议 IP协议基本概念协议头格式网段划分特殊的IP地址IP地址的数量限制私有IP地址和公网IP地址路由IP协议头格式后续 在复杂的网络环境中确定一个合适的路径 IP协议 承接上文,TCP协议并不会直接将数据传递给对方,而是交付给下一层协议,…

Python爬虫——scrapy_工作原理

引擎向spiders要url引擎把将要爬取的url给调度器调度器会将url生成的请求对象放入到指定的队列中从队列中出队一个请求引擎将请求交给下载器进行处理下载器发送请求获取互联网数据下载器将数据返回给引擎引擎将数据再次给到spidersspiders通过xpath解析该数据,得到数…

java-JVM内存区域JVM运行时内存

一. JVM 内存区域 JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存。线程私有数据区域生命周期与线程相同, 依赖用户线程的启动/结束 而 创建/销毁(在 HotspotVM 内, 每个线程都与操作系统的本地线程直接映…

十七、地物识别

描述了使用2D卷积神经网络图像识别的全过程。下载和安装标注工具,对图像进行标注,生成标注后的图像。然后对数据进行增强,划分训练集和测试集。最后通过神经网络建立分类模型,对现有图片进行分类应用。 1、Labelme工具 Labelme工具是语义分割标注工具,在地物类型或建…

深入了解 Postman Test 校验的使用方法

Postman 是一个广泛使用的 API 开发工具,它允许开发人员测试 API 的各个方面,包括请求、响应、身份验证等等,其中最常用的功能之一就是 Test 校验。那今天就一起来看看 Postman 的 Test 校验该如何使用。 Test 校验是什么? Test…

【2024】MySQL中常用函数和窗口函数的基本使用方式

MySQL中常用函数和窗口函数的基本使用方式 一、基础函数1、聚合函数:2、字符串函数:3、日期和时间函数4、数值函数5、条件函数 二、窗口函数(*OVER*) 一、基础函数 1、聚合函数: SELECT COUNT(*) FROM table_name;:计算表中的行…

PO、BO、VO、DTO、DAO、POJO

文章目录 PO(Persistant Object)持久对象DO(Data Object)数据对象AO(Application Object)应用对象BO(Business Object)业务对象VO(Value Object)表现对象DTO&…