用例图主要用了四描述“用户、需求、系统功能单元”之间的关系。它展示一个外部用户能够观察到的系统功能模型图。用例图多用于静态建模阶段(主要是业务建模和需求建模),帮助开发团队以一种可视化的方式理解系统的功能需求
参与者(Actor)
在系统外部与系统直接交互的人或事物;需要注意以下两点:
- 参与者是角色而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色,所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应一个参与者,从而代表同一参与者的不同实例。
- 参与者作为外部用户与系统发生交互作用,是它的主要特征。用小人表示
用例(Use Case)
系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统功能与一个或多个参与者之间交换的消息所表达。用椭圆表示
介绍完参与者和用例后,我们了解下它们的存在关系。
关联(Association)
表示参与者与用例之间的交互,通信途径,任何已放都可发送或接受消息。使用普通箭头的实心线,箭头指向消息接收方

泛化(Generalization)
它是一种继承关系,子用用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。使用三角箭头的实线,箭头指向父类

包含(Include)
它是用来把一个较复杂的用例所表示功能分解成较小的步骤。包含用例是必须的。如果缺少包含用例,基用例就不完整,包含用例必须被执行。使用带箭头的虚线并标明“包含”,指向分解出来的功能用例

扩展(Extend)
它是只用例功能的延伸,相当于为基础用例提供一个附加功能。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性。使用带箭头的虚线并标明“扩展”,指向基用例

提供一个完整的系统用例图

网友评论