软件需求怎么写?

news2024/11/24 15:33:52

前言:一般来说,软件产品的需求人员的主要输出物就是软件需求,如果这个软件产品就XX系统,人们口中的“系统需求”和“软件需求”就没有什么区别了。在车企行业,推行这ASPICE体系,在这个体系中明确申请了系统域和软件域,分别定义了系统需求和软件需求,那两者就有一些区别的。笔者作为一个开发转岗的软件需求,下文主要是在项目实战后结合《软件需求》的理论介绍,梳理出对于一名软需分析师,比较有益的编写指南。

1、 小故事

      是不是有些小小的沮丧??但这种情况确实又比较常见!既然不能做到完全避免,那如果降低发生的概率呢?

明确需求精确的程度,加强清晰的沟通,写出高质量的需求。

2、优秀需求的特点

       这个问题可以从两个方面来看,需求项和需求集。

2.1 需求项的理想特点

(1)完整性

     提供的信息可以让开发人员正确实现它,可以用TBD标识不确定项,并在过程中解决。

(2)正确性

     用户代表应审查需求

(3)可行性

     开发人员从技术角度检查实现的可行性,检查实现所需的时间、预算、人力等的可行性。

(4)必要性

     每个需求都应源自一个有权提供需求的途径。

(5)优先级顺序

     实现的先后顺序。

(6)无歧义

     不可能消除需求里所有的歧义,但评审时有同事的帮助可以清除大多数更严重的歧义。

(7)可验证性

     如不可验证,那是否正确实现将不是客观分析而是主观结果。测试人员擅长检查需求的可验证性。

       从7个维度来思考需求项的要求,也可以看出“评审”的重要性。在实施本工作之前,总觉得评审就是审核结果的形式,重点在于过与不过。但是学习此部分内容后,根深刻的理解了它所带有的讨论意义,也是基于此更明白我们实际操作评审中为什么总是会有那么多耗时的讨,因为需求本身也是强烈依赖“评审”以完善的。以软需分析人员的一己之力是不能做出好的需求的,这个工作是带有团队合作属性的。

2.2 需求集的理想特定

(1)完整性

     任何包含TBDSRS都是不完整的。

(2)一致性

     需求间如存在冲突,开发就要硬着头皮处理;记录每个需求的来源,不一致时找相关人员沟通。

(3)可修改性

     每个需求都有唯一标识,这样在必须修改的时候可以无歧义地引用和找出它们。

(4)追溯性

     回溯来源,向下追溯到设计、代码、测试。

需求集的理想特点,更倾向于整体的状态,以及域之间的追溯关系等。

永远不可能完美具备这些理想特点,但在写和评审时牢记这些,将得到更好的需求和软件。

3、需求编写指南

“套路”:

实践经历和来自相关者的反馈是最好的老师。

比如:同行审查)

“目标”:

①任何阅读需求的人对需求理解一致;

②每个读者的理解与作者试图表达的一致

相比教条地使用规则和简介的风格,表达所产生的最终效果更重要。

3.1 角度

从系统或者用户的角度来描写,以明确行为主体是谁能做什么。

3.2 写作风格

3.3 细化程度

       可以从“细节”和“粒度”两个维度思考细化程度问题,比如给外部客户的需求,细节上就应做到多场景;比如公司内部自研自用的,细节上就可考虑少场景;比如用少量用例就可以验证的需求可以粒度适宜即可,而需要大量不相关用例才可验证的,那就要拆分成粒度更细的场景。

3.4 表述技巧&避免歧义&避免不完整性

4、“优秀”举例

亮点:表格(信息清晰明确)、明确数字边界(无歧义)……

5、怎么做好需求?

    近期在一个行业分享视频中看到这样一个答复“要做到会提问!”,确实是的。

怎么提问呢?

——需格式就是一种笨但好用的办法,能保障基本信息不缺失。

软需格式:在XX情况下,XX模块/服务收到XX信号,进行XX的处理,输出XXX(如果有输出的话)。

——进阶款,就涉及到角色转换、经验等等。

依稀记得曾经在视频号看到的一个“需求挖掘”对话过程,略显搞笑,但是接近“崩溃”的追问。。。

后记:都说做需求很容易,但谁做谁知道,“痛苦程度”也要看个人的负责程度和公司的整体土壤。

与君共勉!

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

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

相关文章

2023工博会,正运动开放式激光振镜运动控制器应用预览(三)

展会倒计时:4天 本次的中国国际工业博览会正运动技术将携开放式激光振镜运动控制器ZMC408SCAN-V2亮相。 •绿色生产,减少材料和资源浪费,提升可持续性; •节省多套硬件成本,替代传统的激光加工系统,降低项…

【深度学习】树莓派Zero w深度学习模型Python推理

在机器学习开发过程中,当模型训练好后,接下来就要进行模型推理了,根据部署环境可分为三类场景: 边缘计算:一般指手机,嵌入式设备,直接在数据生成的设备上进行推理,因为能避免将采集…

MAC MINI 2012安装Montery折腾笔记

MAC MINI 2012安装Montery折腾笔记(作为电视盒子/远程开发机) 起因: 手头有个mac mini,2018年买的2手。一直都是10.12系统,处理python和苹果开发都受制于旧系统,很多软件也装不上,于是有了升级…

Qt开发 入门

1.Qt概述 什么是Qt 不论我们学习什么样的知识点首先第一步都需要搞明白它是什么,这样才能明确当前学习的方向是否正确,下面给大家介绍一下什么是Qt。 Qt是一个跨平台的C应用程序开发框架 具有短平快的优秀特质: 投资少、周期短、见效快、效益高几乎支持…

Java-集合类

集合 Java集合是Java中用于存储和管理一组对象的工具。Java集合提供了相应的方法,用于用户对集合内数据的操作。 Java集合类提供了许多不同的数据结构,如列表、队列、栈、集合和映射,以满足不同类型的编程需求。 程序中如何存储大批量同类型…

vue项目中使用特殊字体的步骤

写在前面 在项目中使用特殊字体,需要注意,所使用的特殊字体是否被允许商用或是个人开发,以及如何使用,切记不要侵权。 首先需要在对应字体网站下载字体文件,取出里面后缀名为.ttf的文件 然后把该文件放到src -> ass…

python自(2)切片 字典 遍历删除添加修改查询定义函数函数返回值作用域序列化异常报错urllib使用一个类型六个方法下载 视频音频图片

切片 # # 切片# s hello word# # 下标索引为0的 # print(s[0]) #h# # 左闭右开 (左是下标开始的,右是几个索引值)例如从0开始算 4个索引值 # print(s[0:4]) #hell# # 更改起始值的开始位置 # print(s[1:]) #ello word# # 下标结束位置 # p…

生成式人工智能在高等教育 IT 中的作用

作者:Jared Pane 通过将你大学的数据与公共 LLMs 和 Elasticsearch 安全集成来找到你需要的答案。 根据 2023 年 4 月 EDUCAUSE 的一项调查,83% 的受访者表示,生成式人工智能将在未来三到五年内深刻改变高等教育。 学术界很快就询问和想象生…

9月14日作业

实现myVector #include <iostream>using namespace std;template <typename T> class myVector { private:T* data;int size;int capacity; public:// 构造函数myVector() : data(nullptr), size(0), capacity(0) {}//拷贝构造函数myVector(const myVector& o…

Jetson Xavier NX开发板无屏幕远程连接

设备&#xff1a; jetson nx &#xff08;ubuntu20.04&#xff09;,win10 目标&#xff1a;实现jetson nx不连接屏幕实现远程连接并控制 网上比较多的答案都是使用vnc,但本人亲尝试过了vnc只有在jetson nx开发板连接有屏幕时候才有空&#xff0c;一旦不连接屏幕&#xff0c;…

千兆以太网网络层 ARP 协议的原理与 FPGA 实现

文章目录 前言一、ARP 帧的应用场景和存在目的二、ARP 帧工作原理三、以太网 ARP 帧发包实例设计四、以太网 CRC校验代码五、以太网 ARP 帧发包测试---GMII1.模拟数据发送2.仿真模块3.仿真波形六、以太网 ARP 帧发包测试---RGMII1.顶层文件2 .仿真代码七、上板测试(RGMII)前言…

浅显易懂理解傅里叶变换

说起电子硬件专业&#xff0c;那不得不提的就是傅里叶变换了。 大学课程中应该吓倒了很多人&#xff0c;谈傅里叶色变了。 本次就来重新认识一下电子硬件中的傅里叶变化。 首先理解之前&#xff0c;当然是需要先知道傅里叶这位大牛的人物百科啦。 傅里叶是法国数学家&#xff0…

【数据结构】平衡二叉搜索树(AVL树)——AVL树的概念和介绍、AVL树的简单实现、AVL树的增删查改

文章目录 平衡二叉搜索树&#xff08;AVL树&#xff09;1.AVL树的概念和介绍2.AVL树的简单实现2.1AVL树的插入2.2AVL树的旋转2.2.1左旋2.2.2右旋2.2.3右左双旋2.2.4左右双旋 全部源码 平衡二叉搜索树&#xff08;AVL树&#xff09; 为什么要引入平衡二叉搜索树&#xff1f; 在之…

jdk 中的 keytool 的使用,以及提取 jks 文件中的公钥和私钥

这里暂时只需要知道如何使用就可以了。 首先是生成一个密钥&#xff0c; keytool -genkeypair -alias fanyfull -keypass ffkp123456 -validity 365 -storepass ffsp123456 -keystore fanyfull.jks -keyalg RSA解释一下这里的选项&#xff0c; -alias 密钥对的名称-keypass …

等变性的AI:从离散到连续

这篇文章主要介绍了在科学问题中如何实现不变性或等变性&#xff0c;其中介绍了实现等变性的数学和物理基础&#xff0c;包括离散和连续对称变换的示例&#xff0c;并描述了在实践中如何使用张量积。文章还讨论了如何处理数据中的对称性&#xff0c;以及如何开发适应对称性约束…

喜报!Coremail荣获广东省信息技术应用创新优秀产品和解决方案

导语 近日&#xff0c;由广东省信息技术应用创新产业联盟组织的“2023 年广东省信息技术应用创新成果交流会”在广州顺利召开。 Coremail作为会员单位受邀出席此次交流会。会上&#xff0c;Coremail荣获优秀产品和解决方案奖项&#xff0c;CACTER邮件安全网关获评“2022年广东…

阿里云服务器操作系统怎么选择?阿里云镜像区别

阿里云服务器操作系统怎么选择&#xff1f;小白镜像选择攻略&#xff01;阿里云服务器镜像怎么选择&#xff1f;云服务器操作系统镜像分为Linux和Windows两大类&#xff0c;Linux可以选择Alibaba Cloud Linux&#xff0c;Windows可以选择Windows Server 2022数据中心版64位中文…

想了解商品期权开户门槛?零门槛开户,不用担心!

商品期权不是零门槛开户&#xff0c;不过可以通过第三方期权分仓软件实现0门槛参与商品期权&#xff0c;股指期权&#xff0c;上证50ETF期权、沪深300ETF期权和创业板ETF期权交易&#xff0c;下文介绍想了解商品期权开户门槛&#xff1f;零门槛开户&#xff0c;不用担心&#x…

【Seata】04 - Seata TCC 模式 Demo 调用流程分析

文章目录 前言参考目录版本说明前置知识1、TCC 模式预留资源2、TCC 模式可能会出现的问题2.1、幂等性问题2.2、空回滚问题2.3、悬挂问题 测试 Demo1、数据库表结构2、模块说明3、调用逻辑说明4、分析流程说明 Seata TCC 模式 Commit 调用流程1、调用流程图2、TCC 动作拦截器&am…

【华为云云耀云服务器L实例评测|使用教学】一文带你快速入手华为云云耀云服务器L实例

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…