1 背景
自然语言需求需要转换为结构化或半形式化(semi-formal)的需求规约,才能实现计算机自动化处理,例如需求一致性/完整性检查、用例生成等。
经常说,自然语言存在语义模糊、二义性等问题。这里讲一个将自然语言需求进行结构化时,遇到的很有迷惑性的实例。
2 实例
温度监测场景:
req-a1: 当温度大于60℃ 且保持时间不大于5s, 则温度指示显示为黄色。
req-a2: 当温度大于60℃ 且保持时间大于5s, 则温度指示显示为红色。
汽车转向灯场景:
req-b1: 当转向灯拨杆处于Down位置且保持时间不大于0.5s, 则左转向灯闪烁且保持3s。
req-b2: 当转向灯拨杆处于Down位置且保持时间大于0.5s, 则左转向灯闪烁直到转向灯拨杆离开Down位置。
上述两个场景中的需求,看起来是完全相同的模式,即“如果p则q”(p→q)。
然而,当将上述需求进行结构化转换时,发现是两种模式。