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

news2024/12/22 18:20:33
  • 软件需求

软件需求:

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

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

需求开发:

  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.coloradmin.cn/o/891072.html

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

相关文章

Vim在Mac电脑中的下载与安装方法:MacVim

本文介绍在Mac系统电脑中,下载、安装文本编辑器Vim软件(MacVim软件)的具体方法。 在Mac系统电脑中,原本就带有一个非图形界面的Vim;只要我们在终端中,输入如下的代码,就可以查看系统自带的非图形…

win10在vmware16.2.3上安装macos13.1系统

第一步、安装vmware版本信息如下 第二步、下载unlocker426放到安装文件夹 第三步、管理员身份运行unlock.exe 第四步、运行vmware新建虚拟机 第五步、启动新创建的虚拟机macOS13.1并选择语言 第六步、选择磁盘工具抹掉格式化安装磁盘 第七步、格式化完成后退出磁盘工具 第八步、…

网工内推 | 外企网工,带专业培训,NP认证优先

01 广州开讯通信技术有限公司 🔷招聘岗位:网络工程师 🔷职责描述: 1、负责组织制定系统集成项目的技术方案编写、标书的准备、讲解及用户答疑等工作; 2、配合客户经理完成与用户的技术交流、技术方案宣讲、系统演示等工作; 3、配…

【第三阶段】kotlin语言中的==与===比较操作

"" 内容的比较 相当于Java的equals() "" 引用的比较 1. fun main() {val str1"kotlin"val str2"kotlin"//java写法println(str1.equals(str2))//kt写法println(str1str2)//结论 str1.equals(str2)等价于str1str2 }执行结果 2. fu…

appium2 安装 和出现问题解决

1.安装环境 A macOS, Linux, or Windows operating systemNode.js version in the SemVer range ^14.17.0 || ^16.13.0 || >=18.0.0NPM version >= 8 (NPM is usually bundled with Node.js, but can be upgraded independently) 1.1只要安装nodejs最新版就好了 1.2安…

leetcode473. 火柴拼正方形(回溯算法-java)

火柴拼正方形 leetcode473 火柴拼正方形题目描述回溯算法 上期经典算法 leetcode473 火柴拼正方形 难度 - 中等 原题链接 - leetcode473 火柴拼正方形 题目描述 你将得到一个整数数组 matchsticks ,其中 matchsticks[i] 是第 i 个火柴棒的长度。你要用 所有的火柴棍…

解决ios隔空播放音频到macos没有声音的问题

解决ios隔空播放音频到macos没有声音的问题 一、检查隔空播放支持设备和系统要求二、打开隔空播放接收器三、重置MAC控制中心进程END 一、检查隔空播放支持设备和系统要求 Mac、iPhone、iPad 和 Apple Watch 上“连续互通”的系统要求 二、打开隔空播放接收器 ps;我设备是同一…

第十三章 SpringBoot项目(总)

1.创建SpringBoot项目 1.1.设置编码 1.4.导入已有的spring boot项目 2.快速搭建Restfull风格的项目 2.1.返回字符串 RestController public class IndexController {RequestMapping("/demo1")public Object demo1() {System.out.println("demo1 ran...."…

蝉联第一 | 2022中国数据泄露防护市场份额报告发布

2022年天空卫士DLP 市场份额位列中国第一 IDC 2022中国数据泄露防护市场份额报告于8月14日发布。报告主要阐述中国数据泄露防护市场的规模、厂商份额以及技术发展变化等内容。报告数据显示,2022年中国中国数据泄露防护(DLP)市场规模为1.31亿…

智慧工地云平台源码——塔机监控系统

智慧工地概念 智慧工地是一种崭新的工程全生命周期管理理念,是指运用信息化手段,通过对工程项目进行精确设计和施工模拟,围绕施工过程管理,建立互联协同、智能生产、科学管理的施工项目信息化生态圈,并将此数据在虚拟…

【Python程序设计】基于Python Flask的全国气象数据采集及可视化系统-附下载方式以及项目参考论文,原创项目其他均为抄袭

基于Python Flask的全国气象数据采集及可视化系统 一、项目简介二、项目技术三、项目功能四、运行截图五、分类说明六、实现代码七、数据库结构八、源码下载地址 一、项目简介 本项目是一个基于Web技术的实时气象数据可视化系统。通过爬取中国天气网的各个城市气象数据&#x…

linkis 1.1.1 报错 No plugin found spark-2.4.8, please check your configuration

按照官方教程设置,但是仍然报错 Caused by: java.util.concurrent.ExecutionException: LinkisException{errCode70063, descNo plugin found spark-2.4.8, please check your configuration, iphadoop0004, port9103, serviceKindlinkis-cg-engineplugin} 这个时候,我们首先检…

配置pyqt5开发环境

安装库 pip install pyqt5 -i https://mirrors.aliuyun.com/pypi/simple pip install pyqt5-tools -i https://mirrors.aliuyun.com/pypi/simple pip install PyQt5designer -i https://mirrors.aliuyun.com/pypi/simple配置External Tools Name:QtDesigner Program:C:\Anaco…

第九章 动态规划part10(代码随想录)

121. 买卖股票的最佳时机 1. 确定dp数组(dp table)以及下标的含义 用二维dp数组表示第i天的2种状态 dp[i][0] 表示第i天持有股票所得最多现金,可能i-1天就买股票了 dp[i][1] 表示第i天不持有股票所得最多现金 最后求:dp[len-1][0…

SQLServer数据库获取单表重复记录中日期最新的记录

SQLServer数据库获取重复记录中日期最新的记录 CREATE TABLE [dbo].[t_expense_record_info]([id] [int] IDENTITY(1,1) NOT NULL,[goods_id] [int] NULL,[amount] [decimal](18, 6) NULL,[expense_time] [datetime] NULL,[user_id] [int] NULL,[create_date] [datetime] NULL…

qt初入门0:结构体中QString用memset导致崩溃分析及QLatin1String简单查看源码

初识Qt,进行开发时遇到一个崩溃问题 简单整理 1:问题描述如下,结构体中QString成员,然后对结构体调用了memset导致问题: 2:问题分析,加断点调试的方式可以明确分析到行数 可以明确看出,初始化…

msvcr120.dll丢失怎么修复,介绍几种最简单的修复方法

当您在运行某个程序时遇到msvcr120.dll丢失的错误提示时,可能无法正常启动或执行该程序。msvcr120.dll是Microsoft Visual C Redistributable中的一个动态链接库(DLL)文件,它是一种运行时库(Runtime Library&#xff0…

浅谈时序:set_input_delay

1、set_input_delay的本质 set_input_delay是对模块input信号在模块外部延迟的约束,本质上EDA工具会根据约束调整设计内部的器件类型,摆放的位置以及优化内部组合逻辑保证满足约束要求。 约束指导原则:尽量照顾设计外部逻辑延时 set_input…

机器学习编译系列---张量程序抽象

机器学习编译系列---张量程序抽象 1. 张量函数概念的引入与抽象的必要性 1. 张量函数概念的引入与抽象的必要性 在文章机器学习编译系列—概述中提到,机器学习编译的一个很重要操作是做等价变换来减少内存或者提高运行效率。变换是以“元张量函数”(private tensor …

第一百三十一天学习记录:数据结构与算法基础:栈和队列(下)(王卓教学视频)

队列的表示和操作的实现 循环顺序队列是一种使用数组来实现的队列结构,其中头指针和尾指针表示队列的头部和尾部位置。 当队列为空时,头指针和尾指针都指向同一个位置,即数组的第一个位置。这是因为在空队列中,没有任何元素可以作…