trufun1 9:38:26
UML开课啦,今天讨论序列图
talenter(2) 9:39:22
即使不会 每次都踊跃参加
trufun1 9:44:24
用例是反映用户和系统之间的交互,那系统是如何响应用户动作呢?
talenter(2) 9:44:58
清水 你回答吧
talenter(2) 9:47:58
用例是反映用户和系统之间的交互,那系统是如何响应用户动作呢?
trufun1 9:48:02
系统通过内部对象通信,来完成系统响应,用序列图来反映这个过程
trufun1 9:59:29
我给大家一个借书实际例子,这是网友上次要求的
trufun1 10:00:36
用例“借书”描述如下:
1.图书管理登录图书管理系统,进入借阅界面。
2.输入是否预定的信息、需要借阅的书或杂志的标题、借阅者, 最后点击“借阅”按钮。
3.如果借阅者没有预定:
h 确定标题
h 确定该标题下有效的书目
h 确定借书者
h 图书馆将书借出
h 登记一个新的借阅
4.如果借阅者有预定:
h 确定借书人
h 确定标题
h 确定该标题下有效的书目
h 图书馆将相应的书目借出
h 登记一个新的借阅
h 取消预定
5.系统显示一个成功借阅记录。
trufun1 10:02:47
大家讨论一下怎样用序列图表示这个过程?
咖啡刀(232778741) 10:02:54
呵呵 这个例子用了很久了吧
talenter(2) 10:03:28
经典的例子 犹如 hello world
trufun1 10:03:38
众口难调
trufun1 10:04:27
也欢迎大家出题
trufun1 10:06:29
先找角色
trufun1 10:09:30
hawk(4) 10:04:51
需要借阅者和图书管理系统
trufun1 10:06:36
先找角色
==================欢迎登录www.trufun.net下载免费UML2建模工具===============
trufun1 10:08:16
借阅者不是角色
trufun1 10:09:19
图书管理员是角色
talenter(2) 10:10:51
操作员是 图书管理员
trufun1 10:12:18
再找界面类
talenter(2) 10:13:02
登录界面
talenter(2) 10:13:09
借阅界面。
talenter(2) 10:13:33
预定界面
trufun1 10:13:40
好,还有?
talenter(2) 10:13:48
图书显示界面
trufun1 10:14:01
很好
talenter(2) 10:14:03
借阅记录界面
talenter(2) 10:14:39
还有吗?
talenter(2) 10:14:59
借书人(读者)
talenter(2) 10:15:06
借书人(读者)信息界面?
trufun1 10:15:43
good
隐身<4> 10:17:51
画用例图为什么要找“界面”?
talenter(2) 10:18:17
时序图吧
隐身<4> 10:18:57
哦,没看清楚,
trufun1 10:19:19
接着找控制类
talenter(2) 10:19:32
隐身 你找控制累啊
talenter(2) 10:19:50
登录验证类型。
trufun1 10:20:22
新手可看以前的记录
trufun1 10:21:43
还有?
talenter(2) 10:21:49
有
talenter(2) 10:21:50
继续找
talenter(2) 10:22:21
忘记控制类是个啥概念来
坚持(4) 10:22:40
规则
talenter(2) 10:22:41
信息显示控制类(借阅成功否)
trufun1 10:23:04
对流程,验证
talenter(2) 10:23:05
预定否控制类
坚持(4) 10:23:22
控制类就是规则 人 事 物 规则中的规则
talenter(2) 10:23:28
你们找啊
talenter(2) 10:23:29
坚持
坚持(4) 10:23:39
啊?
talenter(2) 10:23:48
坚持 你找啊 你也是老师?
trufun1 10:23:50
借阅类
隐身<4> 10:24:16
时序图是在类图之前画还是之后画?
trufun1 10:24:47
一般在后面,可看楚凡TUP
隐身<4> 10:25:39
控制类我觉得应该是是一些对象吧,而抽象出来的对象可能每个人的都不一样,所以时序图也不尽相同。
trufun1 10:26:13
所以 登录验证和借阅规则是两个控制类
trufun1 10:26:41
先找类,后面说对象
trufun1 10:28:48
再找实体类
trufun1 10:31:10
书是不是
trufun1 10:31:40
标题是不是
trufun1 10:31:54
还有?
talenter(2) 10:32:11
标题不是
talenter(2) 10:32:14
书是
talenter(2) 10:32:18
借阅者 应该也是吧
talenter(2) 10:33:15
管理员也是个
trufun1 10:33:39
是的
坚持(4) 10:33:41
哦,原来是在上课呀
坚持(4) 10:33:42
呵呵
talenter(2) 10:34:10
书 借阅者 管理员 借阅记录(?)
talenter(2) 10:34:38
对啊 坚持 每周二授课啊 你积极点啊。。 学习还不积极。
坚持(4) 10:35:03
哈哈,不好意思,刚刚上来没搞清状况
trufun1 10:35:06
还有预定实体
talenter(2) 10:35:56
:)
talenter(2) 10:36:32
找完了吗?
隐身<4> 10:36:40
图书馆算不算一个?
talenter(2) 10:37:13
图书馆就一个对象
坚持(4) 10:37:15
不算
talenter(2) 10:37:29
我感觉 都行吧。。 太广泛了。。
trufun1 10:37:39
在该序列图被抽象掉
trufun1 10:38:34
无需和此对象通信
trufun1 10:39:22
下面我找消息流
talenter(2) 10:40:11
消息流找的思路是?
talenter(2) 10:40:14
流转?
talenter(2) 10:40:52
登录 查找,确认 借出 还有半个取消预订? 这些算吧?
坚持(4) 10:41:34
迟到的同学小声问一下,题目在哪里呢
talenter(2) 10:42:00
我给大家再发一遍
talenter(2) 10:42:20
trufun1 10:00:36
用例“借书”描述如下:
1.图书管理登录图书管理系统,进入借阅界面。
2.输入是否预定的信息、需要借阅的书或杂志的标题、借阅者, 最后点击“借阅”按钮。
3.如果借阅者没有预定:
h 确定标题
h 确定该标题下有效的书目
h 确定借书者
h 图书馆将书借出
h 登记一个新的借阅
4.如果借阅者有预定:
h 确定借书人
h 确定标题
h 确定该标题下有效的书目
h 图书馆将相应的书目借出
h 登记一个新的借阅
h 取消预定
5.系统显示一个成功借阅记录。
trufun1 10:42:26
注意现在开始前面的类都实例化成对象了
talenter(2) 10:42:48
都是具体的东东了?
talenter(2) 10:42:53
老师 指点12
trufun1 10:46:15
.“图书管理登录图书管理系统,进入借阅界面”,可以单独成为一个登陆序列图,在这里只要引用就可以了
trufun1 10:48:54
.“输入是否预定的信息、需要借阅的书或杂志的标题、借阅者, 最后点击“借阅”按钮”是角色和界面在通信
talenter(2) 10:49:37
学习ing
trufun1 10:52:46
”3.如果借阅者没有预定,4.如果借阅者有预定“,是那个对象和那个对象在通信?
talenter(2) 10:53:35
角色和控制类?
talenter(2) 10:53:47
不做借阅者不是角色
talenter(2) 10:54:10
借阅者和 预订实体通信
trufun1 10:55:33
是借阅控制对象和预定实体类在通信
talenter(2) 10:56:05
哦 控制对象和 预订实体 说成借阅者不对了 哈哈
trufun1 10:59:48
“确定标题”是那个对象和那个对象在通信?
talenter(2) 11:01:05
书和?
talenter(2) 11:01:30
管理者?
trufun1 11:01:35
不对
talenter(2) 11:01:42
有书对吧?
trufun1 11:01:50
没有
talenter(2) 11:03:09
不懂了
trufun1 11:03:32
是借阅控制对象和标题对象在通信
talenter(2) 11:04:36
标题 抽象了个实体?
talenter(2) 11:04:58
标题 不是书的一部分? 组成部分?
坚持(4) 11:05:10
看抽象的粒度了
坚持(4) 11:05:36
你可以认为标题仅仅是书的一个属性
talenter(2) 11:06:07
标题抽象 怎么抽象?
坚持(4) 11:06:07
也可以认为它是一个独立的对象,可以拥有自己的信息和行为
trufun1 11:06:30
不是,图书馆不但有书,还有杂志等,是对这些的总称
talenter(2) 11:07:05
这个标题不是书的标题?
talenter(2) 11:07:18
确定标题 是确定是书还是杂志?
talenter(2) 11:07:21
还是小说?
坚持(4) 11:07:46
4.如果借阅者有预定:
h 确定借书人
h 确定标题
h 确定该标题下有效的书目
h 图书馆将相应的书目借出
h 登记一个新的借阅
h 取消预定
这个链路下,标题并不是书的一部分
trufun1 11:07:50
是
talenter(2) 11:08:23
ok
trufun1 11:09:26
“确定该标题下有效的书目”是那个对象和那个对象在通信?
talenter(2) 11:09:54
标题和书?
trufun1 11:10:29
很好
talenter(2) 11:11:20
这种在实现上怎么弄呢?
talenter(2) 11:11:25
标题是个对象
talenter(2) 11:11:28
书是个对象
talenter(2) 11:11:41
对象之间有关联 哪个负责去确定呢?
trufun1 11:11:42
最后我说
trufun1 11:12:22
不是关联是消息链
talenter(2) 11:13:01
哦 怎么通过消息链去实现?
talenter(2) 11:13:12
我们在实现的时候怎么去组织代码?
trufun1 11:13:52
甲调乙的方法实现消息通信
talenter(2) 11:14:58
传递的参数呢
trufun1 11:15:08
这是个例子
talenter(2) 11:15:22
从标题确定书目 应该是标题调用书目的方法吧。
trufun1 11:15:51
消息中的参数,就是方法中的参数
trufun1 11:16:00
是
talenter(2) 11:16:07
好比 书目有个方法是 根据标题查书 这样子的话就要把标题当做参数传递吧?
trufun1 11:16:37
是的
talenter(2) 11:16:58
从类的关系上来说是关联吧
talenter(2) 11:17:37
为啥说不是关联是消息链那 是不是角度不一样 或者再不通的图例中不一样。
trufun1 11:18:23
在动态和静态中叫法不同
坚持(4) 11:19:10
关联是静态关系
trufun1 11:19:18
是
talenter(2) 11:19:19
哦 好的
talenter(2) 11:19:39
谢谢。
talenter(2) 11:19:49
坚持 你能主动回答问题吧
talenter(2) 11:21:08
好
talenter(2) 11:21:13
我想学习
talenter(2) 11:21:21
我感觉学习下还是不错的 机会难得。
trufun1 11:22:26
“确定借书者”是那个对象和那个对象在通信?
talenter(2) 11:23:57
借阅控制对象和借阅者实体类在通信
talenter(2) 11:25:37
学着学着就有点会 但是还不太会。
trufun1 11:26:04
不错啦
talenter(2) 11:26:19
谢谢
trufun1 11:48:46
下次讲状态图,记住带着问题来
==================欢迎登录www.trufun.net下载免费UML2建模工具===============