什么是软件需求?以及需求的最佳实践?

什么是软件需求

业务需求是反应企业组织对软件系统的高层次目标要求,换句话说就是软件系统的建设目标,常常体现在这两个方面:问题和机会。

要记住:出发点不同,精神面貌就完全不一样,当然如果目标过于夸大也是不行的。可能会导致不必要的资源浪费。

用户需求

用户需求是指描述的是用户使用软件需要完成什么样的任务,怎样完成的需求。通常是在业务需求定义的基础上进行用户访谈、调查、,对用户的使用场景进行整理,从而建立用户角度的需求。换句话说就是用户需求是需求捕捉的产物,所具有的特点如下:

软件需求

正如前面所说到的,用户需求具有零散、存在矛盾的特点。以需求分析人员还需要对其进行分析、整理和提炼,从而生成知道代发的、更精确的软件需求。换句话说就是软件需求是需求分析与建模的产物。

  • 问题:解决企业运作的过程中遇到的问题。
  • 机会:抓住外部环境变化所带来的机会,以便为企业带来新的发展。
  • 零散:用户会提出不同角度和不同层面不同粒度的需求,而且通常是以一句话的实行表示出来。
  • 存在矛盾:由于用户处于企业的不同层面,因此难免出现盲人摸象的现象。

需求的三种类型

功能需求

对于软件需求而言最为关键的就是如何进行组织否则一句话、一句话地描述就会显得十分零散。而且很难保证开发人员注意满足这些需求。

非功能需求

其中典型的问题有两个:

  • 信息传递的无效性:很多需求规格说明书里面会通过一个名为设计原则的小节来说明非功能需求。
  • 忽略了非功能需求的局部性:更为科学的做法是抓住具体的场景来描述

设计约束

  • 非技术因素决定的技术类型:对于软件开发而言,有些技术选型并不是由技术团队决定,而会受到企业实际情况的影响。

  • 预期的软硬件环境:技术开发团队在决定架构、选择实现技术时会受到企业实际的软硬件环境的影响。

优秀需求的标准

完整性:就是使需求没有遗漏,也就是在需求变更中,新需求所占的比例的量不大。而且这些新需求都是因为外部环境的变化而产生的。

不失真:需求的正确性和无歧义性是一组相关的要求,指的是确保需求在信息传递的过程中不失真。

有优先级:想要更好地对项目进行管理就需要有效的区分优先级。

需求工程解析

需求工程的范畴

需求工程包括需求开发和需求管理两大范畴,需求开发是收集、分析、整理、编写、验证需求的全过程。重点在于开发出高质量的需求规格说明。需求管理则是对需求的实现、变化进行追踪的全过程,重点在于确保开发的软件满足这些需求。

需求工程工作要点

需求获取:需求获取也是需求捕获,但是其中出现的问题主要体现在捕获范围不足、缺乏计划性、捕获对象不明确、捕获手段不明确。

需求分析:需求分析是需求开发过程中的核心任务。

编写规范:编写规范就是将需求分析结果文档化的过程,对于比较规范化的开发组织而言,都会重视这个活动。

需求验证:对于需求验证工作,大多数组织都不够重视,有时只是找一个客户代表签字确认,有时甚至直到交付系统通过测试系统来验证。

需求管理工作要点

具体来说,需求管理工作包括基线管理、变更管理和需求跟踪。

统一、明确的需求项划分标准:要对需求进行有效的管理、就必须有清晰、统一、明确的标准将需求划分为具体的需求项。

引入基线管理:就会把需求分为两大类,一类是已经开始的基线内的需求、另一类就是还没有安排开发的待处理项目。

引入变更管理:引入变更管理是十分重要的,就需求管理的范畴而言,重点在于完成业务影响分析、技术影响分析、项目影响分析三方面。

引入需求跟踪:在对变更的影响进行分析时,就会发现很难精确的评价变更将影响那些需求项、那些设计元素、只能凭借印象和经验。而要想真正的做到精确的量化评估,就需要通过跟踪活动来积累信息。

需求分析人员的技能组成

需求分析人员的来源

他的三大技能是横跨文、理两大学科的,因此想要找集三方面特长于一身的人 很难,因此通常需求通过团队协作来解决这一矛盾。

各种能力培养的要点

沟通能力是最重要的,通过改变思维模式不断训练是可以提高的。

SERU模型概述

需求定义阶段

需求定义阶段就是项目的立项阶段,也与RUP的初始化阶段相对应。

理清脉络阶段

相当于需求捕获、分析和建模的阶段一,对应RUP中细化阶段的第一次迭代。

填充细节阶段

相当于需求捕获、分析与建模的阶段二、在RUP中将从细化阶段的第二次迭代开始直到构建阶段完成。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式开发从入门到入土

写在前面的话 嵌入式开发涉及的层面很广,它既有底层硬件的开发,又涉及上层应用的开发,也就是所谓的系统集成的硬件和软件。而C语言不仅具有汇编语言操作底层的优势,又具有高级开发语言的功能性强的特点,当之无愧地成为…

cefsharp119.4.30(cef119.4.3Chromium119.0.6045.159)版本升级体验支持x86_h264及其他多个h264版本

Cefsharp119.4.30,cef119.4.3,Chromium119.0.6045.159 此更新包括一个高优先级安全更新 This update includes a high priority security update. 说明:此版本119.4.3支持x86_H264视频播放(需要联系我),其他版本。.NETFramework 4.6.2 NuGet Gallery | CefSharp.WinForms …

接口自动化测试难点:数据库验证解决方案!

接口自动化中的数据库验证:确保数据的一致性和准确性 接口自动化测试是现代软件开发中不可或缺的一环,而数据库验证则是确保接口返回数据与数据库中的数据一致性的重要步骤。本文将介绍接口自动化中的数据库验证的原理、步骤以及示例代码,帮…

数据结构与算法编程题16

已知长度为n的线性表A&#xff0c;请写一时间复杂度为O(n)、空间复杂度为O(1)的算法&#xff0c;该算法删除线性表中所有值为item的数据元素。 item 3 数组下标 i 0 1 2 3 4 5 6 7 8 顺序表&#xff1a; 1 2 3 4 3 3 5 3 7 #include <iostream> using namespace std;typ…

hive return code 40000 from org.apache.hadoop.hive.ql.exec.MoveTask解决思路

参考学习 https://github.com/apache/hive/blob/2b57dd27ad61e552f93817ac69313066af6562d9/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java#L47 为啥学习error code 开发过程中遇到以下错误&#xff0c;大家觉得应该怎么办&#xff1f;从哪方面入手呢&#xff1f; 1.百…

在Linux上搭建JavaWeb项目运行环境

文章目录 安装JDK安装Tomcat安装数据库 安装JDK 安装Oracle官方的JDK比较麻烦&#xff0c;我们在此处选择安装开源社区维护的openjdk。他们俩的差别不大且兼容。 安装Tomcat 我们把本地下载好的 tomcat.zip 包拖到Linux页面上&#xff0c;让Linux也有一个zip包&#xff0c;再…

建设数字工厂管理系统对企业来说有哪些优势

随着科技的飞速发展&#xff0c;数字化转型已成为企业持续发展的必由之路。在这一背景下&#xff0c;建设数字工厂管理系统显得尤为重要。本文将详细分析数字工厂管理系统给企业带来的优势&#xff0c;以及企业如何选择合适的管理系统和成功实施数字化转型。 一、数字工厂管理系…

智能导视电子指路牌是什么?

SVIP-3800系列智能电子指路牌也称智慧指路灯杆&#xff0c;智能指路牌&#xff0c;导航立柱&#xff0c;多功能指示牌&#xff0c;多功能路标&#xff0c;智能指路机器人&#xff0c;智能导视指路牌&#xff0c;问路导航机器人&#xff0c;智能路牌&#xff0c;叁仟智慧路牌、智…

工作五年,我为什么要转行学网络安全技术

在一个工作岗位上持续工作了5年&#xff0c;一般来说&#xff0c;可以算是一位资深的专业人士了。 先从发展的角度来看&#xff1a;一个方向是向上发展&#xff0c;逐步晋升至管理岗位&#xff1b;另一个方向是向专业线发展&#xff0c;成为专家角色。 针对这两个方向&#x…

主流的低代码平台有哪些?程序员应该如何与低代码相处?

本文主要阐述低代码的概念&#xff0c;介绍目前主流的低代码平台&#xff0c;总结低代码平台的典型特征、存在优势以及未来发展趋势。并站在程序员的角度&#xff0c;分析如何在已经到来的低代码战争中&#xff0c;找到自己的定位&#xff0c;一展所长。 什么是低代码&#xff…

leetcode刷题日志-167.两数之和II-输入有序数组

给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] &#xff0c;则 1 < index1 < index2 < numbers.…

高端猫罐头有哪些?精选的5款优质的猫罐头推荐!

很多铲屎官看猫猫吃猫粮吃腻了&#xff0c;或者猫猫平时不喜欢喝水&#xff0c;又或者看猫猫太瘦了就想入手几款猫罐头但是又愁于不会选择&#xff0c;而且现在猫罐头风这么大不知道选什么好~ 作为一个开宠物店7年的店长&#xff0c;对于猫咪的饮食健康我一直都很重视&#xff…

jquery实现:多个输入框字数统计示例

一、实现效果&#xff1a; 二、代码实现&#xff1a; 每个输入框添加了相同的类名 inputField 并且每个输入框旁边的字数统计使用相同的类名 charCount。 然后使用 jQuery 的类选择器 $(‘.inputField’) 来选中所有具有该类名的输入框&#xff0c;并为它们绑定了 input 事件。…

玻色量子“揭秘”之多项式回归问题与QUBO建模

摘要&#xff1a;多项式回归&#xff08;Polynomial Regression&#xff09;是一种回归分析方法&#xff0c;通过拟合一个多项式方程来模拟自变量与因变量之间的非线性关系。多项式回归的目标是找到一组多项式系数&#xff0c;使得拟合曲线尽可能地接近数据点。这种方法可以用于…

Python编写的爬虫为什么受欢迎?

每每回想起我当初学习python爬虫的经历&#xff0c;当初遇到的各种困难险阻至今都历历在目。即便当初道阻且长&#xff0c;穷且益坚&#xff0c;我也从来没有想过要放弃。今天我将以我个人经历&#xff0c;和大家聊一聊有关Python语音编写的爬虫的事情。谈一谈为什么最近几年py…

面试送分题!“商品分类浏览”如何测试?

电商项目无论是工作中&#xff0c;还是面试中&#xff0c;都是一个高频出现的词。 面试官非常热衷提问关于电商项目的问题。例如商品分类怎么测试&#xff1f;购物车怎么测试&#xff1f;订单怎么测试&#xff1f;优惠券怎么测试&#xff1f;支付怎么测试&#xff1f;等等。 …

每天学习一点点之 Tomcat 是如何清除过期 Session 的

今天使用一种很临时的方案解决 Session 泄漏的问题&#xff1a;缩短 Session 的过期时间。这种方法虽然简单&#xff0c;但却非常有效。然而&#xff0c;这引发了一个问题&#xff1a;我们应该将过期时间设置为多短呢&#xff1f;在 Spring Boot 中&#xff0c;最短的过期时间是…

修改Docker默认镜像和容器存储位置(超详细!!!)

Ubuntu20.04 修改Docker默认镜像和容器存储位置 Docker 默认安装的情况下&#xff0c;会使用 /var/lib/docker/ 目录作为存储目录&#xff0c;用以存放拉取的镜像和创建的容器等。不过由于此目录一般都位于系统盘&#xff0c;遇到系统盘比较小&#xff0c;而镜像和容器多了后就…

母婴团队半年破亿秘诀揭秘,合规经营成就辉煌

这支母婴产品销售团队在短短半年内实现了过亿的销售额&#xff0c;这是一个令人瞩目的成就。他们既不依赖线下门店&#xff0c;也不是传统的电商平台&#xff0c;那么他们是如何做到这一点的呢&#xff1f; 这个团队从16年10月开始经营母婴产品&#xff0c;如今已经过去了6年时…

【JavaEE】Spring小练习——存储和获取对象

一、题目&#xff1a; 在 Spring 项目中&#xff0c;通过 main 方法获取到 Controller 类&#xff0c;调用 Controller 里面通过注入的方式调用Service 类&#xff0c;Service 再通过注入的方式获取到 Repository 类&#xff0c;Repository 类里面有一个方法构建⼀个 User 对象…