白开水<czmo***q.com> 2016/7/11 10:27:33
UML中自动执行的用例怎么画,比如,系统自动发送邮件
潘加宇(3504847) 17:15:07
"系统发送邮件"是步骤,看这个步骤是哪个用例里面的步骤了。"自动""手动"等词语尽量不用。
白开水<czmo***q.com> 22:38:38
系统自动发送邮件,是这样的。我们系统采用的MQ进行交互。系统监听MQ队列中的消息。如果有消息进来的话,自动通知相关的人员进行处理。另外,潘老师,我想问一下怎么区分用来,还是用例中的步骤?比如系统发送邮件,可以理解为执行者为系统,可以原来是属于人肉系统执行的, 只是被系统自动做了
潘加宇(3504847) 22:51:56
根据你的描述,用例应该是:时间→监听MQ队列消息。发邮件是里面的步骤。
后面你说的几句话,说明你需要再认真看《软件方法》复习一下
白开水<czmo***q.com> 23:00:29
好的。谢谢老师。我再仔细看看
李俊杰(705***85) 23:05:02
"系统采用的MQ进行交互。系统监听MQ队列中的消息。如果有消息进来的话,自动通知相关的人员进行处理。" 如果只把要实现的功能用这段自然的语言描述出来,开发会看发不出吗?为什么一定要纠结于用例怎么写呢?
李俊杰(705***85) 23:10:18
写成timer-监听mq队列或写成system-发邮件不都得说明吗?会让开发人员开发错吗?如果遇到开发人员和发问的兄弟对用例的理解差不多时,他是不是更能理解他需要实现什么呢?这些在哪些方面影响工作呢?
白开水<czmo***q.com> 23:12:21
其实这里讲的就是到底用例有没有个粒度标准
李俊杰(705***85) 23:18:00
依赖于会把用例拿来做什么吧?如果要做成本估算或进行工作量估算可能得定定个颗粒度标准,见过为了绩效考核和缺陷计量而制定用例颗粒度标准的,结果写用例写的很痛苦
李俊杰(705***85) 23:19:28
如果只是用来表达需求,能写到可交流,可沟通,可确认就行吧,能有颗粒度的标准吗?
李俊杰(705***85) 23:20:08
毕竟用例也是一种语言,语言能有颗粒度的标准吗?
白开水<czmo***q.com> 23:20:20
也是
潘加宇(3504847) 9:01:46
用例就是教开发人员怎样选择严谨的自然语言描述需求。平时许多开发人员描述的所谓需求,在用例思维的照射之下,就会显得千疮百孔。不信就随便贴一段你们团队写的所谓"需求"来看看。
像上面这一句,"系统采用的MQ进行交互,系统监听MQ队列中的消息",这里就有问题,"采用的MQ进行交互"这是来自开发团队的设计决策,还是涉众的要求?如果是来自开发团队的设计决策,这个需求是不存在的,应该从涉众的角度找用例(系统为涉众提供的价值),例如:时间→检查新订单并提醒,甚至和"定时"没关系!
例如"员工提交申请信息",也可以描述成"员工按下回车键",还可以描述成"Form1上发生Keypress事件",还可以描述成"【定时】逐行扫描键位矩阵,确定闭合键的坐标和按键对应的扫描码"是不是有点像定时**MQ?哪个好,就要看系统的核心域是什么。
假设"采用的MQ进行交互"确实是系统的功能需求,系统的核心域知识确实就是这个领域。"系统监听MQ队列中的消息。如果有消息进来的话,自动通知相关的人员进行处理",监听如何引发,每次监听需要外部执行者来引发吗,还是按照一定时间周期进行?什么叫"有消息进来"?另外,"自动"也是冗余的表达。
潘加宇(3504847) 9:02:42
潘加宇(3504847) 9:03:17
潘加宇(3504847) 9:04:14
李俊杰(705***85) 9:04:20
多谢潘老师
李俊杰(705***85) 9:05:21
我的疑惑应该是有一类"实战派"的开发者的普遍疑惑
潘加宇(3504847) 9:06:23
可以看软件方法和以往答疑记录,先能把软件方法上面的题目都做对了
潘加宇(3504847) 9:09:24
潘加宇(3504847) 9:09:56
潘加宇(3504847) 9:10:04
Jenson(48***62) 11:59:12
受益非浅,非常感谢俊杰与潘老师哈。
|