大型的硬件或软件系统,如航天器,有着复杂的要求。需求是对应该构建什么、系统应该如何运行的规范,需求工程(Requirements engineering)是在构建系统之前使用良好的工程实践来理解需求的过程。它之所以具有重要意义是因为系...
大型的硬件或软件系统,如航天器,有着复杂的要求。需求是对应该构建什么、系统应该如何运行的规范,需求工程(Requirements engineering)是在构建系统之前使用良好的工程实践来理解需求的过程。它之所以具有重要意义是因为系统的涉众本身并不清楚他们的需求,并且有不同的需求

女人在电脑前倒立一个复杂的系统可能会有许多利益相关者,例如系统的委托人、使用该系统的用户系统的一个或多个方面,以及从系统中受益的人。利益相关者也可能包括受系统某些特性影响的公众成员。利益相关者有自己的特殊需求。另一方面,开发系统的人可能具有技术能力,但可能无法完全理解涉众的观点。需求工程是连接这些方面的基本能力。形式上,需求工程活动是分开的需求开发分为需求开发和需求管理。需求开发由启发、分析、说明和验证组成。需求管理是对整个需求过程的控制,尤其是处理需求的任何变化。与此相反,一些实践者称之为整个活动作为需求分析从利益相关者那里获取需求变得很有必要,因为利益相关者通常没有完全明确说明他们的需求,也不了解新系统的含义。利益相关者可能不会敞开心扉,因为他们可能会担心对他们当前工作的影响。因此,引出是一种谨慎的,而且可能,这是一个需要同理心和微妙心理的长期过程。我们必须注意,不同利益相关者和开发人员之间的文化差异被弥合起来。有几种技术被用来引出需求可以通过个人访谈、小组会议和观察人们的任务来引出。提出需求的技术包括焦点小组、创建优先列表、原型设计和与其他正在运行的系统的比较。引出的需求包括系统的业务需求,用户在使用系统时的业务流程,以及系统的功能特性。此外,还需要引出非功能性需求,如响应时间、系统可用性和易用性在需求工程中,低层次需求将满足最初的高层次需求。这包括创建概念模型和原型,以确定需求的完整性。不同利益相关者需求中的冲突更多地是通过模型和原型发现的,而不是仅仅从一个列表中发现需求。分析员需要在需求中加入期望的系统特性,如安全性、灵活性和可维护性为了便于所有利益相关者理解,在软件领域,该文件被称为SRS,它代表软件需求规范,需求由关键干系人验证,这主要是通过演示和规范文件,但有时也有与需求相对应的测试用例。需求工程主要是一种沟通、活动,而不是技术性的。它需要多学科的技能。需求工程帮助涉众开发人员可以解决冲突并将它们统一到目标中;这将导致一个健壮的系统。