上下文图是软件需求这门课程中的一项很重要的图,上下文图是DFD最高层次的图,是系统功能的最高抽象。上下文图将整个系统看做是一个过程,这个过程实现系统的所有功能。所以上下文图中存在且仅存在一个过程,表示整个系统。这个单一的过程通常编号为0。
将整个系统功能抽象为单一过程之后,系统本身就变成了一个黑盒,此时只有依据系统与外界的所有交互才能准确界定系统的功能。所以,咋上下文图中需要表示出所以的和系统交互的外部实体,并描述交互的数据流,包括系统输入和输出。
上下文图一黑盒看待和描述系统的方式使它非常适合于描述系统的应用环境、定义系统的边界,而且这也正是DFD在层次结构中定义上下文图并将其置于层次结构最高层的原因。这个特性也使得上下文图经常脱离DFD的层次结构被单独使用,被用来描述系统的上下文环境和定义系统的边界。
下面介绍一个实例:
某大银行的一位银行卡办公室的收账经理Liz遇到了一个问题。她每周都收到一份过期未付款的账户名单。这份报告已经从两年前的250个账户增加到现在的1 250个账户。 为了确定那些严重拖欠债务的账户,Liz需要通读这份报告。严重拖欠债务的账户由几个不同的规则确定,每个规则都要求Liz检查客户的一项或几项数据。过去半天的工作量现在增加到了每周三天。即使在确定了严重拖欠债务的账户后,如果没有查阅该账户三年内的历史资料,Liz也不能做出最后的信用决定(例如严厉的催款电话、断绝信用或将这个账户转给一个收账代理)。另外,Liz需要报告所有账户中过期未付款的、拖欠债务的、严重拖欠债务的和呆死账的比例。目前的报告中并没有给她提供这个信息。
通过这个实例,我们不难看出画图的几点注意事项:
1.系统黑盒化;
2.外部只有用例参与者;
3.过程都是名词,不是行为;
4.管理员不参与上下文图。