「需求工程」需求工程—需求规范(第3部分)

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: 「需求工程」需求工程—需求规范(第3部分)

将用户和系统需求记录到文档中。


需求规范

它是将用户和系统需求写入文档的过程。需求应该是清晰的、容易理解的、完整的和一致的。

在实践中,这是很难实现的,因为涉众以不同的方式解释需求,并且在需求中经常存在固有的冲突和不一致。

正如我们之前提到的,需求工程中的过程是交叉的,并且是迭代地完成的。在第一次迭代中指定用户需求,然后指定更详细的系统需求。

用户需求

系统的用户需求应该描述功能性和非功能性需求,以便不具备技术知识的用户能够理解它们。

您应该用简单的表格、表单和直观的图表所提供的自然语言来编写用户需求。

需求文档不应该包括系统设计的细节,并且您不应该使用任何软件术语或正式符号。

系统需求

另一方面,系统需求是用户需求的扩展版本,被软件工程师用作系统设计的起点。

它们添加了细节并解释了系统应该如何提供用户需求。他们不应该关心系统应该如何实现或设计。

系统需求也可以用自然语言编写,但是通常使用基于结构化形式或图形符号的其他方式。

编写需求说明的方法

正如我们所提到的,有不同的方法来指定需求。最常见的两种方式是自然语言和结构化语言。


编写需求说明的方法

自然语言规范

这是一种用普通纯文本编写需求的方式,默认情况下没有定义的格式。

用自然语言编写的需求是含糊不清的。因此,你需要遵循以下指南,以尽量减少后果和误解:

  • 创建您自己的格式来编写需求。例如,您可以按照以下格式来编写需求:

“(行动者)应该(通过(怎样)做某事);解释用户如何触发该功能),以便/因此(为什么;解释此需求的好处或对象)。

“A/The (Actor) shall (do something), By (how; explain how the user can trigger this feature), In order to/so that (why; explain the benefits or the objects of this requirement).

例如:“系统应允许用户通过输入用户名和密码进行注册,以便进入系统”。

  • 当我们说“一个系统”时,这个词是非常模糊的,我们需要确切地定义系统的哪个部分将处理这个需求。
  • 我们可以突出重要的关键字。
  • 不要使用缩写和首字母缩写,如果你想的话,你必须加上所谓的“附录”。它定义了规范中的所有缩写和首字母缩写及其相关含义。

结构化的语言规范

它是一种以更正式、更结构化的形式编写需求的方式。

它使用标准模板来指定需求。规范可以围绕系统执行的功能或事件构建。



结构化语言规范的模板。

软件需求文档

软件需求文档(也称为软件需求规范或SRS)是关于应该实现什么的官方文档。它也被用作系统购买者和软件开发者之间的合同。

两者都应该包括;用户和系统需求。通常,用户需求是在系统需求介绍中定义的。

在其他情况下,特别是有大量需求时,详细的系统需求可能会在单独的文档中呈现。


需求文档有不同的用户集合,从客户到系统工程师。

可能用户的多样性意味着需求文档必须是客户沟通需求之间的妥协,为开发人员和测试人员定义详细的需求,和预测信息的变化可以帮助系统设计者为了避免严格的设计决策,并帮助系统维护工程师系统适应新的需求。

在敏捷方法中,由于需求变化如此之快,一次交付完整的文档是浪费时间,相反,增量地收集需求,并将它们作为用户场景(User Story)写在卡片上。

每个用户描述都有估计的完成时间和优先级。相关的用户场景被分组在一起。

接下来是需求工程的最后一个支柱;需求验证( requirements validation)。

相关文章
软件工程——软件开发阶段(概要设计、详细设计)
需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。确定系统的具体 实现方案、给出软件的模块结构、编写各个文档
|
9月前
|
监控 Ubuntu Linux
Windows11 WSL2 Ubuntu编译安装perf工具
通过以上步骤,你已经在Windows 11的WSL2中成功编译并安装了 `perf`工具。尽管在WSL2中可能会遇到一些限制,但大部分基本性能分析功能应当可以正常使用。使用 `perf`进行性能分析,可以帮助你更好地理解和优化系统及应用程序的性能。
671 14
|
监控 关系型数据库 PostgreSQL
两阶段提交(2PC, Two-Phase Commit)
【8月更文挑战第24天】
900 9
|
测试技术 Linux 开发工具
软件测试之【软件测试初级工程师技能点全解】
软件测试之【软件测试初级工程师技能点全解】
465 0
|
Ubuntu 安全 Linux
在Ubuntu 20.04上安装和配置VNC的方法
在Ubuntu 20.04上安装和配置VNC的方法
1637 0
|
存储 SQL 关系型数据库
MySQL job 定时任务
MySQL job 定时任务
Github邮件联系项目源代码作者简单方法
Github邮件联系项目源代码作者简单方法
2290 0
Github邮件联系项目源代码作者简单方法
|
存储 容灾 Linux
中小微企业,软硬一体NAS还是企业文档管理软件?不必再纠结
中小企业选择NAS或企业私有文档管理软件各有优劣。NAS方案易于使用,可快速扩容,适合无专职IT人员的企业,但软硬件绑定紧密,后期扩展受限,价格较高。相比之下,企业文档管理软件不绑定硬件,功能更强大,尤其是权限管理,但需要更多技术知识来配置。考虑成本和灵活性,自建软件NAS或选择功能丰富的专业网盘软件是性价比高的选项,同时,备份和容灾策略不可或缺。
|
消息中间件 Kafka 数据库
实时计算 Flink版操作报错之遇到UnsupportedOperationException异常,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL Java 数据库连接
mybatis之动态查询及PageHelper分页查询(超级详解)
mybatis之动态查询及PageHelper分页查询(超级详解)
1106 0