软件方法(下)分析和设计第8章分析 之 分析类图——知识篇(20211227更新)
软件方法(下)分析和设计第9章分析 之 分析类图——案例篇(20211228更新)
问题时间:2013/5/29
杭大伟(289***723)21:40:26
(202201注,此图有更新,更新类图见最新版《软件方法》)
杭大伟(289***723)21:40:38
用例与主执行者的关系 为什么是n对1
杭大伟(289***723)21:41:01
难道执行者只能执行一个用例?
刘用军(154****88)21:42:02
看错方向了吧
刘用军(154****88)21:42:47
这不刚好说明是一个执行者能执行多个用例吗?还是我看反了
杭大伟(289***723)21:43:23
按我的理,一类执行者可以执行多个用例,一个用例也可以被多类执行者执行,
杭大伟(289***723)21:43:29
所以我觉得多对多的关系。
刘用军(154****88)21:45:01
这跟你的具体场景而定吧,我说的是你的这话
杭大伟(289***723)21:47:47
不知道 潘老师在做画这个图时,主执者与用例是1:n, 辅执行者与用例是n:n
杭大伟(289***723)21:48:00
这样的多重关系,是怎么考虑的
潘加宇(3504847)21:53:57
参见《软件方法》5.4.1 错误:玩弄"复用"
杭大伟(289***723)21:55:14
看过,您的意思是,用例要站在卖的角度来看,
潘加宇(3504847)21:55:26
http://www.umlchina.com/qa/Content/121.htm
杭大伟(289***723)21:55:30
系统的一个用例,可以卖给多类Actor呀
杭大伟(289***723)21:55:41
一类Actor可以买个用例。
潘加宇(3504847)21:56:43
"系统的一个用例,可以卖给多类Actor呀"--这个想法已经不对了
杭大伟(289***723)21:56:57
为什么呢?
潘加宇(3504847)21:59:34
因为这样的想法,对做出好卖的产品没有帮助。
从第二章开始讲愿景开始就不断强调这一点,需要再复习一下
潘加宇(3504847)22:00:12
"也可以"之类是不行的
潘加宇(3504847)22:00:45
猪也可以喝可乐,小偷也可以用取款机,屌丝也可以买宝马
杭大伟(289***723)22:01:14
比如一个电商网站, 提供系统用例:举报。Actor:买家,卖家。举证这个用例可以为买家使用,也可以卖家使用。
刘用军(154****88)22:01:35
只卖给最有价值的客户,只对坐在最前排的观众负责?
杭大伟(289***723)22:01:38
买家可以举证卖家,因为买家发现卖家有作弊行为。潘加宇(3504847)22:01:40
举证这个用例可以为买家使用,也可以卖家使用。--分开两个
潘加宇(3504847)22:02:02
两种用法
杭大伟(289***723)22:02:16
卖家也可能举报买家,因为卖家发现买家可能来捣乱的
潘加宇(3504847)22:03:10
参见
http://www.umlchina.com/qa/Content/025.htm
杭大伟(289***723)22:03:12
您是说把 举报这个用例拆分2个:举报卖家, 举报买家
杭大伟(289***723)22:03:15
?
潘加宇(3504847)22:03:33
对
潘加宇(3504847)22:04:11
如果确认没有任何区别,那么买家卖家之分对这个用例而言没有意义,应该抽象出另一个执行者
潘加宇(3504847)22:04:23
请阅读我给你的链接以及复习软件方法
潘加宇(3504847)22:05:02
但是,绝大多数情况下,这两个举报涉及到的涉众利益,以及具体的需求细节都有区别。
杭大伟(289***723)22:05:28
是不是说找用例的,可以完全不考虑用例的复用?
潘加宇(3504847)22:07:50
是的
小飙(676480)22:08:25
潘老师好搞笑啊。。
杭大伟(289***723)22:08:39
在分析设计时,就需要把可以复用的用例,复用起来,
潘加宇(3504847)22:08:50
如果,两种人使用系统的期望,涉众利益,需求细节都完全一样,就是同一个用例,同一个执行者,不存在复用问题
杭大伟(289***723)22:08:51
以实现最少的实现成本
杭大伟(289***723)22:08:51
?
潘加宇(3504847)22:08:58
复习
潘加宇(3504847)22:09:16
我通篇说的就是这两个问题
潘加宇(3504847)22:09:43
杭大伟(289***723)22:10:25
所以 一个用例的执行者就一个了,
潘加宇(3504847)22:10:34
主执行者
潘加宇(3504847)22:10:47
一个东西,卖给他的目标客户
潘加宇(3504847)22:11:07
其他人爱买就买,但我不是为你而做的
杭大伟(289***723)22:14:52
我有点懂了,一个用例就是为一类主执行者定制的,谁可以使用这个用例,谁就是这一类主执行者中一个实例。
潘加宇(3504847)22:15:09
不是"可以使用"
潘加宇(3504847)22:15:25
是我这个功能是为谁而做
潘加宇(3504847)22:18:47
就像我们UMLChina的公开课,谁都可以来上,交钱就行,小学生照收,但我们的目标人群是"已经有项目经验的开发人员",需求首先为他们而改变,不会因为小学生听得不爽而改变
杭大伟(289***723)22:19:54
但是现实中, 我这个功能,可以为A类人群做的,
杭大伟(289***723)22:19:59
也可以为B类人群人做的。潘加宇(3504847)22:20:38
现实就是喝西北风还是吃肉啊
潘加宇(3504847)22:20:49
"也可以"这样的思路是不行的
杭大伟(289***723)22:21:11
比如,学校实验室管理系统,在上课时,要做一个聊天室 供学生和老师一起在里聊实验相关的问题。
杭大伟(289***723)22:21:32
这个聊天室功能,的actor 可以是学生,
杭大伟(289***723)22:21:36
也可以是老师。
杭大伟(289***723)22:21:54
我这样的理解,错在哪里?潘加宇(3504847)22:22:06
我刚才不是说了吗,如果学生和老师使用系统没有任何区别,根本不存在学生和老师,就是实验人员
刘用军(154****88)22:22:34
老师学生的真正区别在那?跟他们现实的身份没有关系,只和使用这个系统有关系潘加宇(3504847)22:22:42
学生还要不要分男生女生,老师还要不要分年轻老师,老老师,讲师,教授?
杭大伟(289***723)22:23:01
以学校实验室管理系统 为考察对象,学生可以上传实验报告 ,老师可以做检查实验报告 ,
杭大伟(289***723)22:23:10
确实有学生,老师这2个不同的actor潘加宇(3504847)22:23:18
"实事求是"就行,哪来这么多花花肠子
潘加宇(3504847)22:23:28
学生可以上传实验报告 ,老师可以做检查实验报告
潘加宇(3504847)22:23:38
你不是说的很清楚了吗
潘加宇(3504847)22:24:02
有学生,有老师,不妨碍有实验人员啊
杭大伟(289***723)22:24:08
那现在多出一个实验人员这个actor,面对这种情况,要如果梳理actor的关系
杭大伟(289***723)22:24:16
要如何梳理actor的关系潘加宇(3504847)22:24:19
复习
潘加宇(3504847)22:24:49
但是,绝大多数情况下,"实验人员"是有问题的
潘加宇(3504847)22:25:31
你要去观察实验的交流中,老师和学生扮演的不同角色,做的不同事情
潘加宇(3504847)22:26:14
但是,大多数人的问题就在于,问了追求"复用",把"实验的交流中,老师和学生扮演的不同角色,做的不同事情"视而不见了,统统称为"聊天"
潘加宇(3504847)22:26:34
因为这样,这样可以少做点工作
潘加宇(3504847)22:27:03
但是,大多数人的问题就在于,为了追求"复用",把"实验的交流中,老师和学生扮演的不同角色,做的不同事情"视而不见了,统统称为"聊天"
杭大伟(289***723)22:30:12
这个问题能否给我一个答案 。在学校实验室管理系统里面,学生要与老师聊实验过程,学生做完实验要上交实验报告 ,老师要对检查实验报告并给出成绩。潘加宇(3504847)22:31:34
"学生要与老师聊实验过程"如果你的系统不关心学生老师的区别,就是实验人员--发表意见
潘加宇(3504847)22:31:51
学生---上交实验报告
潘加宇(3504847)22:32:02
老师---给出成绩
潘加宇(3504847)22:32:31
老师、学生泛化到实验人员
潘加宇(3504847)22:32:40
我给的链接你看了吗
杭大伟(289***723)22:34:18
看了。
杭大伟(289***723)22:34:20
杭大伟(289***723)22:34:27
这样画么?潘加宇(3504847)22:34:45
检查。。。。可能不对,
潘加宇(3504847)22:34:57
老师是不是检查了,系统能知道吗?
潘加宇(3504847)22:35:11
我上面写的"给出成绩"还差不多
杭大伟(289***723)22:35:28
其实就是把实验报告打开,然后看学生做得怎么样,
杭大伟(289***723)22:35:32
然后给一个成绩。潘加宇(3504847)22:36:24
那怎么能说检查实验报告是系统的用例呢,检查的逻辑都在老师的大脑里面
杭大伟(289***723)22:37:27
改成批改实验报告,行得通了吧,潘加宇(3504847)22:37:31
系统根本无法承诺老师检查了,随意一画,让人误解以为用了这个系统,报告肯定会得到认真检查了
杭大伟(289***723)22:37:28
潘加宇(3504847)22:37:45
可以
杭大伟(289***723)22:38:33
我大致懂了用例与ACTOR的关系了,我再揣摩揣摩。潘加宇(3504847)22:38:51
每个细节背后都有它的道理的