章
- 1.需求管理
- 2.编写需求
- 3.需求收集和管理过程
- 4.需求跟踪
- 5.需求管理工具和软件开云官网入口下载手机版
- 6.需求确认和确认
- 7.满足法规遵从性和行业标准
- 8.项目管理
- 9.测量的需求
- 10.系统工程
- 术语表
功能需求示例和模板
当我们买新手机、电视或电脑时,我们买的是什么是?
当然不是。我们买它是因为它想要什么做对我们来说。
同样,当公司或政府购买新系统或新的企业软件产品时,他们对产品本身也毫不关心。开云官网入口下载手机版开云足球app下载官网最新版他们关心的是这些产品将如何帮助他们实现目标,使他们更有效率,并积极影开云足球app下载官网最新版响他们的底线或预算的使用。
重要的是产品的功能。开云足球app下载官网最新版
一般来说,确定一个产品做什么——它的功能是什么——的第一步是确定它的功能开云足球app下载官网最新版功能需求.
什么是功能需求?他们在产品开发中扮演什么角色?开云足球app下载官网最新版
在本文中,我们将回答这些问题,提供典型功能需求和需求类型的示例,并提供制作良好功能需求和良好功能需求规范的技巧。
产品开发中的功能需求是什么?开云足球app下载官网最新版
功能需求是对产品(系统、子系统、系统组件、设备或软件程序)必须做什么的陈述。开云官网入口下载手机版开云足球app下载官网最新版
功能需求的类型包括规定(规则):
- 产品必须执行的操作和工作流(即,产品特性的功能细节)开云足球app下载官网最新版
- 产品输入和输出数据的格式和有效性开云足球app下载官网最新版
- 用户界面行为
- 数据完整性和数据安全性要求
- 产品必须做什么才能开云足球app下载官网最新版满足安全和其他法规要求
- 系统如何验证用户访问/授权使用和修改系统
功能性需求和非功能性需求之间的区别
这个词功能需求意味着还必须有一个分类为的组非功能性需求.事实确实如此。以下是两者的定义:
一个功能性需求是一个产品(系统、子系统、设备或软件程序)必须做什开云足球app下载官网最新版么的声明。开云官网入口下载手机版
例子:控制系统应防止发动机超速.
一个非功能性需求是对产品是什么或产品将如何构造的陈述,或者是对产品开云足球app下载官网最新版将如何设计或行为的约束。
例子:系统子系统之间的串行数字通信应通过MIL-STD-1553B总线完成。
功能需求
如前所述,功能需求说明了产品必须做什么。开云足球app下载官网最新版换句话说,它们定义了产品的操作。开云足球app下载官网最新版因此,它们通常应该根据产品的输出对其输入的响应来陈述。开云足球app下载官网最新版
在产品开云足球app下载官网最新版开发中,功能需求通常在设计过程的渐进层次上分解为更详细的需求。它们的实现是通过功能测试(软件测试、集成测试等)来验证和确认的。开云官网入口下载手机版功能需求总是强制性的;除非需求发生变化,否则产品必须满足这些要求。开云足球app下载官网最新版
非功能性需求
非功能需求表示产品设计和构造上的约束。开云足球app下载官网最新版它们通常是由合同或法规要求决定的,其中可能包括:
- 标准化的要求
- 兼容性的需求
- 在职支持要求
- 报废处置要求。
非功能性需求通常不会分解为更详细的需求。它们通常通过检查产品及其文档来验证。开云足球app下载官网最新版如果合同或法规要求要求非功能性需求,则是非强制性的。然而,如果市场目标或其他内部目标要求,它们可能不是强制性的,就像在消费产品开发中经常发生的那样。开云足球app下载官网最新版
相关文章:功能性需求与非功能性需求:有什么区别?
功能需求的形式和示例
功能需求可以有多种形式。然而,有些形式比其他形式更好。一般需求工程(RE)的最佳实践是编写尽可能清晰和简洁的需求。
工程师Alistair Mavin是简单的需求语法方法(ear)已经确定了五个需求原型——以及每个原型的简单模板——可以用来制作清晰、简洁的需求陈述,这些需求陈述实际上涵盖了所有的功能规范需求。
无处不在的需求
第一个原型是无处不在的需求。
无处不在的功能需求总是活跃的。它们不是由事件或输入调用的,也不限于系统操作状态的子集。
模板:
例子:控制系统应防止发动机超速.
政府主导的需求
状态驱动的功能需求在定义的状态保持为真时一直处于活动状态。在Mavin的EARS方法中,状态驱动的需求用关键字WHILE标识。
模板:
例子:航空器在飞行中,发动机运行时,控制系统应当将发动机燃油流量保持在??磅/秒.
事件驱动的需求
事件驱动的功能需求只有在系统边界检测到事件时才需要响应。换句话说,它们是由特定事件触发的。EARS方法用关键字WHEN标识事件驱动的需求。
模板:
例子:当飞机命令连续点火时,控制系统应打开连续点火开关。
可选特性要求
可选特性只有当可选特性作为系统的一部分出现时,功能需求才适用。这些需求由EARS方法用关键字WHERE标识。
模板:
例子:控制系统具有超速保护功能的,控制系统应当在飞机调度前测试超速保护功能的有效性。
不需要的行为要求
不需要的行为功能需求涵盖了所有不需要的情况。良好的系统工程(SE)实践可以预见不希望出现的情况,并施加需求来缓解这些情况。
当系统必须在非最佳条件下响应触发器时,通常会强加不必要的行为要求。EARS方法使用IF/THEN组合关键字来识别旨在减轻不必要行为的需求。
模板:如果
例子:如果计算空速不可用,则控制系统应使用模型空速。
复杂的需求
通常,在特定事件发生之前,必须出现一组特定的一个或多个先决条件(状态或可选特性),以便该事件触发所需的系统响应。在这种情况下,可以使用关键字组合来组合ear模板。
复杂的需求可以由期望的行为或不希望的行为组成。EARS方法为每种方法提供了一个模板。
模板:(期望行为)其中
模板:(不想要的行为)其中
例子:当飞机在地面上时,当命令反推力时,控制系统应启用反推力器的部署。
编写良好功能需求的技巧
编写清晰、准确的功能需求是一项有价值的工程技能,需要一些实践来培养。这就是为什么许多工程组织编写编写需求的指南,比如写作要求指引由国际系统工程委员会(INCOSE)出版。
这类指导原则的详尽列表超出了本文的范围,但是在编写功能需求时要记住以下六个重要技巧:
1.在使用情态动词时要保持一致
情态动词、情态动词或情态助动词是一个词,如“shall”、“must”、“will”或“should”,与主动词连用,表达必要性、意图、期望、推荐或可能性等想法。
在工程规范中,情态动词用于区分绑定需求、非绑定建议和系统操作环境的预期行为。因此,重要的是需求作者在使用情态动词时保持一致,并且他们向开发人员、测试人员、质量保证工程师和监管机构准确地传达每个情态动词在其规范中的解释方式。
在规范中使用情态动词一直是SE/RE社区争论的主题。然而,共识是“shall”和“must”是表达需求的最佳情态动词选择,而“will”应该用于表达预期的外部行为或目的声明。不具约束力的建议或规定可以用“应该”或“可能”来表示。
同样,许多组织使用“必须”这个词来表达约束和某些质量和性能需求(非功能需求)。“必须”的使用允许他们不用被动语态来表达约束,并且很容易区分功能需求(用“应该”表示)和非功能需求(用“必须”表示)。
良好的SE/RE实践是准确地定义某些术语将如何在文档本身中使用,以及当在文档引用的非需求文档中发现它们时应该如何解释它们。这通常是在规范开始的专门部分中完成的。
2.用唯一标识符标记每个需求
另一个SE/RE最佳实践是用唯一的ID号或代码标记每个需求。
事实上,需求标识符本身通常就是需求。根据客户和供应商之间的合同购买的系统(例如大多数政府购买的系统)通常按照公认的行业标准(如IEEE/EIA 12207)作为合同规定进行开发。这样的标准通常要求每个需求文档中的每个需求都用项目唯一标识符(PUI)。
为需求分配唯一标识符给系统开发人员带来了很大的好处。
用PUI标记每个需求有助于并简化连续设计级别上的需求与验证它们的测试之间的可追溯性。简短的标识符使构建可追溯性表变得容易,该表将每个需求清楚地链接到更高级别文档中的祖先,以及旨在验证它的特定测试。可追溯性表简化了向客户和内部涉众演示的过程,即系统已经开发,并被证明符合商定的顶级需求。
自动化需求管理工具通常包括分配唯一标识符的自动方法,这简化了此过程。
3.在每个需求声明中只写一个需求
注意那些包含单词“and”和多个情态动词的长而复杂的需求陈述。
当试图定义一个复杂的功能时,很容易陷入用一段话或更糟的是,用一句话来描述它的陷阱。花时间分析较长的需求陈述。如果它们包含单词和或多个“shall”或其他情态动词,则它们可能包含不止一个要求。重新编写以获得两个或多个简单的需求陈述,每个需求陈述都有自己的要求。然后,给每一个单独的唯一标识符。
4.尽可能简洁地编写需求陈述
分析和重写长需求的另一个原因,甚至是那些只有一个需求的需求,是长需求比短的、简洁的需求更容易被误解。
编写尽可能简洁的需求是良好的SE/RE实践。需求模板,就像前面描述的ear模式一样,可以在实现这一目标方面提供很大的帮助。
5.确保每个需求都是可测试的。
每次编写新的功能需求时,都应该问自己以下问题:
如何验证这一要求的成功实施?
用特定的测试场景来编写需求有助于确保设计和测试工程师都能理解他们必须做什么。
特定的测试用例将影响需求的详细程度。高级需求通常通过检查或通过用户测试进行测试,因此范围可能很广。将通过软件测试或系统集成测试验证的较低级别的需求将必须被指定为更精细的细节。开云官网入口下载手机版
例如,确保可测试性的最佳实践是为软件必须响应特定输入条件而产生的任何输出指定最大反应时间,如下例所示:开云官网入口下载手机版
3.8.5.3.1:应设置发动机监视器
6.清楚地将需求陈述与基本原理和其他解释分开。
在需求说明中,包括需求的基本原理、与其他需求的关系以及为开发人员和测试人员提供上下文的其他解释是很有用的。
上下文可以通过清除可能的歧义来帮助防止误解。它可以帮助其他人完全理解需求的意图,并提供可以帮助改进需求并使其更加明确的反馈。
但是上下文信息不应该包含在需求陈述本身中。将这两者分离开来,以保持需求本身的清晰和简洁,并避免使附加信息受制于实现和测试,这一点非常重要。最佳实践是将上下文实现放在不包含唯一标识符的单独段落中。
一个好的功能需求文档模板或需求管理工具可以使这个目标更容易实现。
什么是功能需求文档?
功能需求文档(FRD)——也称为功能需求规格书、功能规格书或功能规格书文档——是高级产品需求文档(PRD)在技术上更详细的后续。开云足球app下载官网最新版
FRD描述了系统用户的需求,通常是以系统的输出作为其输入的函数。它的构建是为了提供精确的功能需求——以及对开发人员和测试人员的指导——在PRD中对需求进行分析和分解。
FRD并不定义要开发的系统的内部工作,或如何实现系统的功能。相反,它关注的是各种外部代理(用户、外围设备、其他系统或子系统)在与系统交互时应该观察到什么。沟通:
- 对于开发人员:他们需要构建什么
- 对于测试人员:他们需要执行哪些测试
- 致涉众:他们将得到什么的详细描述
对于高度复杂的系统,功能需求可以通过一系列功能规格说明进行分解,这些规格说明可能包括:
- 系统规范
- 子系统规范
- 系统组件规格
- 开云官网入口下载手机版软件需求规范
在某些行业和组织中,功能规格说明通常是更大规格说明的一部分,该规格说明还包含适用于要设计的系统或子系统的非功能需求。然而,这些非功能性需求通常会与功能性需求分开。
编制一个好的FRD的技巧
将一个有凝聚力的、可用的、易于导航的FRD组合在一起可能是一个挑战。这里有一些指导方针可能会有所帮助。
1.以层次结构组织文档
为了使您的FRD易于理解和使用,请使用分层结构对其进行组织。合适的层次结构可以包括(其中包括):
- 任务/期/功能
- 功能/子功能
- 特性/用例
分层规范结构提供了几个好处,包括:
- 帮助贡献者专注于需要解决的每个特定领域
- 帮助贡献者在向现有系统添加功能时轻松找到需要修改的区域
- 帮助用户(开发人员、测试人员)快速深入到他们正在寻找的确切功能区域
2.标准化您的需求语言
口语中充满了具有多种定义的单词,根据上下文,这些单词会引起微妙的意义阴影。虽然对自我表达很有好处,但这种广泛的灵活性在指定和解释需求时可能会导致混乱和分歧。
减少需求定义不清和误解的一个好方法是标准化用于表达需求的一些语言。在需求文档的开头创建标准化术语的词汇表。在这个术语表中,准确地定义在文档本身中如何使用某些术语,以及当在文档引用的非需求文档中发现这些术语时应该如何解释它们。
严格定义术语并严格遵守您的定义不仅可以减少那些负责解释您的需求的人员之间的混淆;通过练习,使用标准化的语言也会节省你在写作要求上的时间。
3.使用好的FRD模板或专用的RM平台
在构建任何类型的结构时,从坚实的基础或经过验证的模型开始是明智的。在构建功能需求文档时,最好从一个好的模板开始。
一个好的模板将包括标准化的部分,如:
- 情态动词使用指南
- 标准化术语词汇表
- 记录需求的指引
- 管理需求文档的指导方针
- 组织遵循的其他指导方针
标准化部分(或“样板”)促进并促进了项目之间的一致性,这是模板的主要优点。在一个公司内,这些部分在不同的项目之间、不同的团队之间往往保持很少的变化。随着时间的推移,它们随着方法和经验教训的变化而缓慢发展。因此,它们为一致的需求开发、员工教育以及与客户的沟通提供了一个稳定的平台。
网上有很多通用的FRD模板。如果您开发商业产品,您可能会发现以下其中一种可以根据开云足球app下载官网最新版您公司的实践和程序进行定制:
- https://almooc.com/downloads/FRDTemplate.doc
- https://doit.maryland.gov/SDLC/Documents/func_req_doc.doc
- https://www.sampletemplates.com/business-templates/functional-requirement-document.html
如果您的公司为美国国防部开发系统或软件,另一方面,您可能更喜欢根据MIL开云官网入口下载手机版-STD-961E(国防部标准实践:防御和程序-唯一规范格式和内容)构建的系统规范模板。QRA Corp在他们的网站上提供了一个:https://qracorp.com/requirements-document-templates/.
模板的缺点
最后一个技巧的一个警告:在通用文档平台中使用模板有几个缺点。首先,在Word、Excel或谷歌Docs中记录需求往往会使协作变得麻烦。其次,这些平台不是为支持清晰和系统的需求可追溯性而构建的。
Gartner表示,公司难以在需求规范中实现足够的可见性和可追溯性的主要原因之一是依赖于通用文档软件,而不是协作需求管理平台。开云官网入口下载手机版
“由于成本、可用性和熟悉性,最广泛采用的需求工具仍然是通用文档软件,如Microsoft Office或谷歌Docs(占市场的40%至50%)。开云官网入口下载手机版然而,这些经常导致需求管理不善,从而消除并超过了工具本身所具有的任何成本效益。需求最终被捕获在各种文档和电子表格中,并由未管理版本的便利贴补充,没有可追溯性或可重用性。这就造成了一个更昂贵的用户验收测试周期,无论是在执行时间上,还是在过程后期发现的问题的修复上,解决这些问题的成本都要高得多。”——Gartner Research
好的功能需求的成功开发、验证和确认是产品成功的关键。开云足球app下载官网最新版为了实现这些目标,系统、软件、硬件、测试和集成团队都必须紧密合开云官网入口下载手机版作,以确保项目的功能需求、非功能需求、测试用例和验证/确认过程都得到了充分的定义。可见性和可追溯性对这个过程至关重要。
一个好的需求管理(RM)平台将提供字段、格式和结构关系来促进:
- 样板部分从一个项目到另一个项目的可移植性
- 需求定义和识别
- 对高层(父级)和低层(子级)需求的可追溯性
- 测试用例的可追溯性
除了这些基本设施之外,最先进的RM平台还将通过允许所有用户访问您的最新需求基线和对它的所有未决更改来促进团队协作。这使得需求跟踪、可追溯性和测试覆盖保证比使用文档或电子表格更容易完成。
了解更多关于Jama Connect如何简开云官网手机网页版入口化跟踪和跟踪需求的信息。看看解决方案。
在本次网络研讨会中,我们将讨论现代需求管理的好处
非功能性需求是一种需求类型,它可能与功能无关,但与诸如可靠性、效率、可用性、可维护性和可移植性等属性有关。
相关文章:评估需求管理工具
准备好了解更多了吗?
我们的专家团队在这里回答任何问题,并了解我们如何帮助 您的持续成功。现在就开始填写这张表格,这样我们就可以联系了!