时间:2019/10/28
随笔:"或许是不知梦的缘故,流离之人追逐幻影."最近一直在追龙族五,在书评中看到了龙三中这句十分有名的话,感觉有种莫名的痛.龙族是我从初二开始追的,算起来也有八年了,应该吧,明年龙族就会完结,而我也会进入大四,不得不说,龙族贯穿了我的整个青春,每个人的心中都有个路明非吧,只是我们不愿意表现出来,只有在黑夜中我们才能与他长谈.
用例图
1.定义
用例图是指参与者,用例,边界以及它们之间的关系构成的用于描述系统功能的视图.用例图是外部用户(参与者)所能观察到的系统功能的模型图.主要用于对系统,子系统或类的功能行为进行建模.
2.构成
用例图由参与者,用例,系统边界,箭头组成.
(1)参与者
参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色.因此参与者可以是人,可以是事物,也可以是时间或其他系统等等.注意:参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色.比如小明是图书馆的管理员,他参与图书馆管理系统的交互,这时它既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆借书,在这里小明扮演了两个角色,是两个不同的参与者. 参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称.
(2)用例
用例是对包括变量在内的一组动作序列的描述.用例在画图中用椭圆来表示,椭圆下面附上用例的名称.
(3)系统边界
系统边界是用来表示正在建模系统的边界.边界内表示系统的组成部分,边界外表示系统外部.系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例图画在边界里面.因为系统边界的作用有时候不是很明显,所以个人理解,在画图时可以省略.
(4)箭头
箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系.箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是由参与者来启动.
3.关系
(1)关联
表示参与者和用例之间的交互.为通信途径,任何一方都可以发送或可接收消息.
箭头指向:指向消息接收方.在用UML中用直线表示.
(2)包含
包含关系用来把一个较复杂的用例所表示的功能分解成较小的步骤.包含用例是必须的,如果缺少包含用例,基用例就是不完整的.包含关系最典型的应用就是复用.
基本用例描述在多个用例中都有的公共行为.在包含关系中箭头的方向是从基本用例到包含用例.
个人感觉就是把各个基用例中重复的操作封装成一个函数,这样就方便于复用,而不用在每个基用例中重复写相同的代码.
就像上图,用户在执行预定,取车和还车操作时都需要执行登陆操作,如果在每个基用例中都写一个登陆操作,则过于冗长,所以在这里把登陆操作封装成一个函数,在每个基用例中调用即可.
在UML中,包含关系用带箭头的虚线段加<<include>>表示,箭头指向被包含的用例.
(3)扩展
扩展关系是指用例功能的延伸.与包含关系不同的是,扩展用例是可选的,如果缺少扩展用例.不会影响到基用例的完整性.
扩展关系的基本含义和泛化关系类似,但在扩展关系中,对于扩展用例有更多的规则限制.基本用例必须声明扩展点,而扩展用例只能在扩展点上增加新的行为和含义.
在UML中,扩展关系用带箭头的虚线段加<<extend>>表示,要注意的是箭头指向基用例.
(4)泛化
用例的泛化指的是一个父用例可以被特化形成多个子用例,在编程语言中就是继承.
在UML中,泛化用空心箭头表示,箭头指向的是父用例.
参考博文:
1.https://www.jianshu.com/p/5d38cd6b9532
2.https://www.jianshu.com/p/134534923eed