从业者如何解释需求中的条件句?
How Do Practitioners Interpret Conditionals in Requirements?
摘要:
上下文:像“If A and B then C”这样的条件语句是描述软件需求的核心元素。然而,在自然语言中有许多方法来表达这样的条件句,并且也有许多方法可以解释它们。我们假设需求中的条件语句是歧义的来源,潜在地影响下游活动,如测试用例生成。目标:我们的目标是理解特定条件句是如何被处理需求的读者解释的。方法:对104名RE从业者进行描述性调查,询问他们如何理解12个不同的条件句。我们将他们的解释映射到命题(时间)逻辑中的逻辑公式,并讨论其含义。结果:我们测试的需求中的条件句被解释得模棱两可。我们发现,从业者不同意是否前件是唯一的充分或必要的后果。有趣的是,即使系统行为为实践者所知,这种分歧仍然存在。我们还发现,某些提示短语与特定的解释有关。结论:需求中的条件句是模糊性的来源,并且不只有一种方法可以正式地解释它们。这会影响任何基于形式化需求的分析(例如,不一致性检查、测试用例生成)。我们的研究结果也可能影响写作要求的指导方针。
英文摘要:
Context: Conditional statements like "If A and B then C" are core elements for describing software requirements. However, there are many ways to express such conditionals in natural language and also many ways how they can be interpreted. We hypothesize that conditional statements in requirements are a source of ambiguity, potentially affecting downstream activities such as test case generation negatively. Objective: Our goal is to understand how specific conditionals are interpreted by readers who work with requirements. Method: We conduct a descriptive survey with 104 RE practitioners and ask how they interpret 12 different conditional clauses. We map their interpretations to logical formulas written in Propositional (Temporal) Logic and discuss the implications. Results: The conditionals in our tested requirements were interpreted ambiguously. We found that practitioners disagree on whether an antecedent is only sufficient or also necessary for the consequent. Interestingly, the disagreement persists even when the system behavior is known to the practitioners. We also found that certain cue phrases are associated with specific interpretations. Conclusion: Conditionals in requirements are a source of ambiguity and there is not just one way to interpret them formally. This affects any analysis that builds upon formalized requirements (e.g., inconsistency checking, test-case generation). Our results may also influence guidelines for writing requirements.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。