UML学习笔记之用例图

用例图中的泛化技术

1 用例图的四个组件:系统、参与者、用例、关系

2 用例可以放到包中,包名::用例名字

3 泛化可以被分成多个子用例

用例图1

4 泛化可以分层

用例图2

    如果已经泛化了用例,并且一个参与者使用了一个已泛化用例,那么那个参与者就不应该是使用泛化用例的父用例的参与者。例如,参与者使用了1.1.1,就不应该让参与者使用1.11

5 用例的包含关系

用例图3

       这个例子说明,教师必须记录和更新成绩。同时,这两个用例都包含了一项save grades的功能。每当教师更新成绩和记录成绩时,成绩总会被保存下来。

6 用例的扩展关系

用例图4

       这个例子中,save gradesnotify guardians用例扩展。当老师记录和修改成绩时,成绩被保存,而“有时”管理员会被提醒。箭头为什么从notifysave?因为notify扩展了save,这个时候notify是添加到save中的一项功能。而save没有把功能添加到notify中。

       如果每次成绩保存后都要提醒管理员,那么就要用包含关系。例如:

用例图5

了解了扩展,我们知道管理员只是在“有时”会被提醒,那么什么时候提醒呢?我们用扩展点(Extension Points)来记录提醒的条件,比如在成绩不及格时才提醒:

用例图6

 

7 描述用例

       用例细节的描述没有一定的格式,你应该学习并使自己的技术适用于用例细节的有效记录。可以用简单的序列描述,比如记录成绩(Record Grades)的用例描述:

1)        教师确定出要记录成绩的学生

2)        系统要确保学生在数据库中

3)        教师要说明记录哪项作业的成绩

4)        系统开始执行数据库事务处理

5)        系统将布置给学生的作业添加到数据库中

6)        教师输入学生作业的成绩

7)        系统确认输入成绩以确保成绩处于有效范围之内

8)        系统记录作业成绩

9)        系统结束事务处理

10)    系统提示教师,成绩已被记录。

在上面的描述中,我们可以发现,每一项活动都是以“教师”或者“系统”(他们是与用例交互的对象)开头,这一点非常重要,这样就可以知道在特定的时间谁拥有程序的控制权。

8 创建用例图的5项任务

       1)  找出系统中的参与者和用例。

       2)  区分用例优先次序

       3)  细化每一个用例

       4)  建立用例模型结构

       5)  建立用户界面原型

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值