2012年12月4日星期二04:14

要求风格的元素,第2部分

Written by

DEGGERS FEATUREARTICLE CONE4这是一系列有关写作高质量要求的一系列的第二种文章。这 第一篇文章 在该系列中讨论了在写要求时使用关键字“须”,并从系统或用户的角度提供用于写作功能要求的框架。

父母和儿童要求

在分层时尚写要求时,BA记录父项要求和一个或多个子需求。通过实施所有孩子满足父母要求。以下是与一些问题的分层要求的例证:

3.4请求者应为每份化学品订单输入收费号码。

3.4.1系统应验证硕士公司费用号码列表中的收费号。如果充电号码无效,则系统应通知请求者,不得接受订单。

3.4.2输入的充电号码应适用于整个订单,而不是按顺序排列的单个订单。

请注意,此父项要求3.4以功能要求的形式编写。它并不完全清楚以下有多少要求:两三个?另请注意,母公司要求与其儿童要求之一之间存在冲突3.4.2。如果每个有序的化学品是一条线项,请究竟有多少电荷数由请求者输入?

如果父要求以标题或标题的形式写入父要求而不是以功能要求的形式写入,则这些问题消失。每当您拥有一组子要求时,请考虑使用此样式,在聚合中构成父级要求。以下是前面示例的改进版本:

3.4收费号码

3.4.1请求者应按订单订单输入每种化学品的收费号码。

3.4.2系统应验证硕士公司费用号列表中的收费号码。如果在此列表中找不到充电号码,则系统应通知请求者,不得接受订单。

你刚说什么?

歧义是软件要求的巨大忌关。歧义以两种形式出现。我可以抓住一种形式。我读了一个要求,并意识到我可以以多种方式解释它。我不知道哪个解释是正确的,但至少我抓住了歧义。

其他类型的模糊性更难发现。假设BA为几个审阅者提供了要求规范。审稿人遇到了对他们中的每一个有意义的暧昧要求,但意味着与他们每个人不同的东西。审稿人全部报告,“这些要求很好。”他们没有找到歧义,因为每个审稿人只知道他对这一要求的自己的解释。让我们看看一些歧义的来源观看和一些关于如何编写含糊不清的要求的建议。

复杂逻辑

复杂的布尔逻辑为歧义和缺少要求提供了许多机会。考虑以下段落:

如果向供应商提供了化学品的订单,则系统应检查该化学品是否有其他待定订单。如果存在,系统应显示供应商名称,供应商目录号码和放置上一个订单的人的名称。如果用户希望联系任何放置以前订单的人,则系统应允许用户将该人发送电子邮件。

这一长要求难以读取并包含应分为单独要求的多个功能描述。另外,它有一些差距。在此样式中写入要求使得很难看出是否指定了所有IF / THEN分支的结果。 “否则”条件通常被这种文本表示忽略了。嵌套“或”,“和”,“不是”条款使用决策表或决策树更好地代表。

一个决策树,如图1所示,将立即揭示如果没有为该特定化学品没有待处理的订单,则未指定系统的行为。决策中的其他错误结果也是未指明的。隐含地,也许读者将得出结论,如果这里描述的各种“如果”条件是假的,则系统应该没有任何作用,但这是由不完整性强制的假设。weigers img01

图1.复杂逻辑的样本决策树。

涉及复合运营商的表达 - 例如“如果是”和(那或其他) - 更令人困惑:

如果现金退款的金额少于50美元或现金退款的金额为50美元或更高,当前用户是主管,那么系统应打开收银机抽屉。
使这一要求可以理解和明确需要括号(尴尬)或分成多种要求(更好)。

负面要求

负(或逆)要求是另一个混​​乱的源泉。尝试以积极的意义重新激励逆要求,以说明在某些情况下系统会发生的事情。表1陈述了几种功能要求,所有这些功能要求包含否定的实际项目,以及以积极意义重写它们的可能方法。我还将这些被动语音要求恢复为不太模糊的主动声音,清楚地显示了每个动作的实体。请注意,将负面要求更改为正面,通常需要插入单词以识别允许描述系统动作的条件。在第三个例子中,还要注意不能(如“无法”)之间的模糊性(如“不允许”)。

表1.从功能要求中删除否定

weigers img02

在所有情况下都避免双重和三重否定。考虑这个例子:

培训奖励和积分对不能参加训练奖励的用户不见。

我们可以将这个双负面冻结为一个较容易理解的积极陈述:

该系统应展示培训奖励,仅适用于允许参与培训奖励的用户。

以下是使用“仅”约束重新使用双负数的另一种例证。原始要求说:

在不经过身份验证的情况下提供服务的用户不应生成会计记录。

让我们将其作为一个积极的行动,即开发人员实际上可以实施:

该系统仅对经过身份验证后提供服务的用户生成会计记录。

多重否定可能导致含糊不清的要求,如下所示:

但是,如果这些属性根本不存在,则记录不应验证。

这是否意味着如果存在属性,则记录应失败验证?可能不会。上下文可能使这一要求更清晰,但正如它所写的那样,它在我脑海中提出了一个问题。

这里的主要信息是在写要求时思考积极态度!

别忘了留下你的评论。

卡尔威尔斯

卡尔威尔斯是Portland,俄勒冈波特的软件开发咨询和教育公司的主要顾问。他有一个有机化学的博士学位。 Karl是众多关于软件开发书籍的作者,最近“软件要求,第3版”,共同撰写Joy Beatty。他也是“成功的商业分析咨询:策略和策略,单独的战略和提示”的作者,“生命课程的回忆录,以及标题为”重建“的法医神秘小说。此外,卡尔在软件,化学和军事史上写了17首歌曲和近200篇文章。您可以在processimpact.com或karlwiegers.com到达他。

©ba time.com 2021

MacGregor Logo White Web