用例图是9种UML图中比较重要的图之一,它是由软件需求分析到最终实现的第一步,描述人们希望如何使用一个系统,最常用来描述系统以及子系统。
用例图描述了一组用例、参与者以及它们之间的关系。包括以下3方面的内容:
(1)参与者(Actor)
(2)用例(Use Case)
(3)参与者、用例之间的关系,泛化关系、包换关系、扩展关系等。
一、参与者
①参与者是系统外部的一个实体(可以是任何的事物或人),它以某种方式参与了用例的执行过程。
②参与者可以是真实的人,即用户;其他的系统;一些可以运行的进程,如时间。
二、用例
用例是对系统的用户需求(主要是功能需求)的描述,用例表达了系统的功能和所提供的服务。
识别用例最好的办法就是从分析系统的参与者开始,考虑每个参与者是怎样使用系统的。用例建模的过程就是迭代和逐步精华的过程。
三、参与者、用例间的关系
①关联关系
②泛化关系(Generalization)
一个用例可以被特别列举为一个或多个子用例,这被称为用例泛化。子用例表示父用例的特殊形式,子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变已继承的行为。
③包含关系(Include)
包含指的是其中一个用例(称作基础用例)的行为包含了另一个用例(称作包含用例)的行为。基础用例可以看到包含用例,并依赖于包含用例的执行结果。但是二者不能访问对方的属性。
④扩展关系(Extend)
一个用例也可以被定义为基础用例的增量扩展,这称作扩展关系。
ps:与包含关系不同的是,扩展关系的基础用例没有扩展也是完整的。
如下例子:如果一切顺利图书可以被归还,但如果借阅人所借图书超期,按规定就要交纳一定数额的罚金,这时就不能执行用例提供的常规动作。
下图是我画的机房的用例图,经过几次修改后的最终图,加入了一些个人的思考。欢迎大家提出宝贵的建议。