服务项目之间的实关系,是服务项目实际操作过程中实实在在存在的关系,这是对业务系统建模工作本来就要表达的内容。
任何一个服务项目,都是过程与目的的综合,也就是操作流与价值流的合流,通俗地说就是既“可用”又“有用”的事例,“可用”表明可操作,有操作流程,“有用”表明有价值,能达到某些目的。UML标准语义中的用例包含关系和扩展关系,正是在服务项目之间的过程关系与目的关系上,进行了两种最基本的分类表达。
仔细分析包含关系和扩展关系的区别,我们会发现,两种关系是从过程的“内”与“外”,目的的“同”与“异”两个维度来确定的:包含关系所涉及的两个服务项目,其中一个服务项目的操作过程是包含在另一个服务项目之内的,两者实现相同类型的同一个目的;扩展关系则正好相反,一个服务项目过程连接在另一个服务项目过程之外,两者实现不同类型的两个相关目的。
服务项目之间的实关系,从本质上来说虽然不外乎包含关系和扩展关系两种,但如果仅仅只使用这两种关系,会导致模型表达不够细腻和具体,对抽象思维水平要求过高,同时会增加建模的难度,也会带来模型在沟通效果上的欠缺。因为,从通俗意义上的服务项目关系来看,还存在许多看上去更丰富多彩的实关系类型可供表达。下面,我们还是顺着“实际的服务项目关系有哪些类型,用UML又如何表达它们”的思路来举例分析。
我们先来看包含关系的一个例外:从服务项目的操作流关系上看,即使是把一部分操作流看成是构成整体操作流的内部组成部分,这部分的操作流与其他部分操作流的执行关系不一定只有串行操作的关系,而可能也存在并行操作的关系。