什么是需求工程?(requirements engineering?)

大型硬件或软件系统,如航天器,有复杂的要求。需求是关于应该构建什么、系统应该如何运行或构建系统过程中的约束的规范。需求工程(RequirementEngineering)是在构建系统之前使用良好的工程实践来理解需求。它之所以具有重要性,是因为系统的利益相关者本身不清楚自己的需求,并且有不同的需求。...

大型硬件或软件系统,如航天器,有复杂的要求。需求是关于应该构建什么、系统应该如何运行或构建系统过程中的约束的规范。需求工程(RequirementEngineering)是在构建系统之前使用良好的工程实践来理解需求。它之所以具有重要性,是因为系统的利益相关者本身不清楚自己的需求,并且有不同的需求。

一个复杂的系统可能有许多利益相关者,例如委托系统的人、使用系统的一个或多个方面的用户以及从系统中受益的人。利益相关者也可能包括受系统某些特性影响的公众成员。利益相关者有自己的特殊需求。另一方面,开发系统的人员可能在技术上有能力,但可能不完全理解利益相关者的观点。需求工程是连接这些方面的基本能力。

在形式上,需求工程活动分为需求开发和需求管理。需求开发由引出、分析、规范和验证组成。需求管理是对整个需求过程的控制,尤其是对需求变更的处理。相反,一些实践者将整个活动称为需求分析。

从利益相关者那里获取需求是必要的,因为利益相关者通常不完全指定他们的需求,也不理解新系统的含义。利益相关者可能不会开放,因为他们可能担心对当前工作的影响。因此,启发是一个谨慎的过程,可能是一个漫长的过程,需要移情和微妙的心理。我们必须小心,不同利益相关者以及开发人员之间的文化差异是弥合的。

有几种技术被用来引出需求。需求可以通过个人访谈、小组会议和观察人员的任务来获取。能够提出需求的技术包括焦点小组、创建优先列表、原型设计以及与运行中的其他系统进行比较。引出的需求包括系统的业务需求、用户使用系统时的业务流程以及系统的功能特性。此外,还需要引出非功能性需求,如响应时间、系统可用性和易用性。

需求工程中的分析步骤形成满足原始高级需求的低级需求。这包括创建概念模型和原型,以确定需求的完整性。不同利益相关者需求中的冲突更多地通过模型和原型发现,而不仅仅是需求列表。分析师需要在需求中添加所需的系统特性,如安全性、灵活性和可维护性。

文件中规定了这些要求,以便于所有利益相关者理解。在软件领域,该文档称为SRS,代表软件需求规范。关键利益相关者对需求进行了验证。这主要通过演示和规范文档实现,但有时也通过与需求相对应的测试用例实现。

需求工程主要是一种沟通活动,而不是一种技术活动。它需要多学科的技能。需求工程帮助涉众和开发人员解决冲突,并将他们团结在目标中;这将导致一个健壮的系统。

  • 发表于 2021-12-14 15:28
  • 阅读 ( 121 )
  • 分类:互联网

你可能感兴趣的文章

亚马逊正在招聘无人机测试飞行员

...了其交付无人机亚马逊Prime Air的计划。然后,很长时间:什么都没有。正如观察人士指出的,该项目至少有几个障碍要实现。但该公司似乎正在取得进展:它在剑桥和西雅图都为一名“飞行运营工程师”招工。
 两...

  • 发布于 2021-04-27 21:30
  • 阅读 ( 163 )

什么是组织工程(tissue engineering)

...翻译成医学在很短的时间内。本文重点介绍了组织工程是什么,是什么引起了对组织工程的需求,组织工程的现状,以及组织工程对未来的展望。 组织工程定义 组织被定义为细胞间基质中形态相似细胞的集合或**,共同发挥特...

  • 发布于 2021-06-27 00:36
  • 阅读 ( 366 )

什么是化学工程?(chemical engineering?)

...的纽带。它是主要的工程学科之一。看看化学工程到底是什么,化学工程师做什么,以及如何成为一名化学工程师。 什么是化工(chemical engineering)? 化学工程是应用化学。它是工程学的一个分支,涉及进行化学反应以解决实...

  • 发布于 2021-09-02 18:03
  • 阅读 ( 466 )

什么是软件工程?(software engineering?)

软件工程师和计算机程序员都开发工作计算机所需的软件应用程序。这两个职位的区别在于职责和工作方法。软件工程师使用定义良好的科学原则和程序来交付高效可靠的软件产品。 软件工程 软件工程将开发软件的方法视...

  • 发布于 2021-09-15 04:41
  • 阅读 ( 416 )

什么是软件工程过程中的步骤是什么?(the steps in the software engineering process?)

... 在需求阶段,准确定义问题是什么或软件需要做什么是很重要的。在软件工程过程中,通过询问所有相关方的相关问题来收集信息对于平稳的开发周期至关重要。问题分析通常与信息收集相结合,以便...

  • 发布于 2021-12-09 11:08
  • 阅读 ( 199 )

什么是工程顾问?(engineering consultants?)

工程顾问与企业合作,帮助企业满足其设计和施工需求。工程顾问通常作为咨询公司...

  • 发布于 2021-12-21 03:48
  • 阅读 ( 377 )

什么是机械工程中的不同工作?(the different jobs in mechanical engineering?)

机械工程师利用机械设备研究、设计和测试工具、发动机和机器等产品。机械工程师...

  • 发布于 2021-12-21 09:39
  • 阅读 ( 189 )

什么是石油工程专业的利弊?(the pros and cons of a petroleum engineering major?)

石油工程师运用科学原理确定原油和天然气储量。他们还决定如何以最安全的方式和...

  • 发布于 2021-12-21 12:40
  • 阅读 ( 190 )

什么是软件工程师?(a software engineer?)

...经常与软件工程师合作,以确定在开发新应用程序时需要什么,并且工程师计划如何最好地完成这些任务。他或她可能会亲自做一些编程,尽管通常其他程序员会创建所有代码;软件工程师必须对各种编码语言和方法有很强的了...

  • 发布于 2021-12-22 09:03
  • 阅读 ( 338 )

什么是控制工程?(control engineering?)

控制工程是一种将控制理论应用于各种设计系统的工程。控制工程师使用从家用电器...

  • 发布于 2021-12-22 09:56
  • 阅读 ( 144 )