技术和数据的变化
扩展说明了系统所完成的目标是不同的,但有时需要表达“有多种不同方法来完成相同目标”。系统所完成目标是相同的,但怎样做可能不同。这通常是因为技术的变化或输入数据的不同。应该将这些变化写到“技术和数据变化”列表中,而不是写到扩展部分中。
示例1:
你的系统必须对退回货物的客户归还货款。你写了这样一个执行步骤:
7.归还退货客户的货款。
退款可能通过支票或电子资金转移来支付,或在下一次购买时替客户支付。因此,你可以加入:
“技术和数据变化”列表:
7a.通过支票、电子资金转账来支付,或在下一次购买时替客户支付。
示例2:
你正在定义一个新的ATM系统。技术已经进步到可以通过银行卡、眼膜扫描或指纹来识别客户。你写到:
主成功场景:
2.用户标示自己、银行、账号。
“技术和数据变化”列表:
2a.用银行卡、眼膜扫描或指纹来识别。
这些变化对这个用例来说不是扩展。在一些低层的用例中,每个变化都有自己的扩展,你可能从来不写它们。每个变化对你的成本和工作计划都有明显的影响,因此需要捕获和跟踪它们。你可以在“技术和数据变化”列表中写出可能的情况。
“技术和数据变化”列表不包含执行步骤。如果你在列表中包含了条件和执行步骤,你就没有正确地使用这个列表。
“技术和数据变化”列表的例子用例13“资源的串行存取”中。
如果决定使用UML用例图,那么你可以为一个基本步骤创建一个空的、一般性的基用例,为每个变化创建一个具体的用例。空的基用例说明要做什么,而不是怎么做;每个具体用例定义自己的步骤来解释怎样做。UML的符号在附录A中解释,图 是一个示例。