今天在在分析和设计一个小系统的时候,在分析用例的时候,总是觉得有些疑惑,正好newzqw(一位热心的朋友,我与他素不相识,但他在我请教的过程中一直耐心的解答)在MSN上。特意向他请教了一下,问题是菜鸟级的,但对我的帮助很大,在此特意感谢newzqw,同时也把我和他之间的MSN聊天记录贴出来,希望对一些菜鸟级的朋友有所帮助!
---MSN聊天记录,为了保护隐私,我将newzqw在我MSN中显示的名字替换成了他的网名 "newzqw",同时为了看起来方便,做了一些排版
--------------------------------------------------------------------------------------------------------------------------------------------------
时间 发起者 接收者 内容
--------------------------------------------------------------------------------------------------------------------------------------------------
2006-10-24 14:53:40 cc newzqw 海,在吗?
2006-10-24 14:54:22 newzqw cc 在
2006-10-24 14:54:43 cc newzqw 呵呵,有空吗?请教一个简单的问题
2006-10-24 14:55:21 newzqw cc 什么问题,别那么客气,一起讨论一下
2006-10-24 14:55:32 cc newzqw :)
2006-10-24 14:58:02 cc newzqw 假设说现在有一个系统,会有区域和科目这2个基础信息,会对它进行Insert,Update,Query等操作,在画用例的时候是把这些操作都放在一个用例里还是分割开?
2006-10-24 14:58:35 cc newzqw 而且,现在还有一点特别的,对区域和科目,现在只允许Insert,Update,Query,但不允许Delete
2006-10-24 14:59:53 newzqw cc 你不能这样看问题,对数据库系统来说都可以抽象成CURD
2006-10-24 15:00:30 cc newzqw curd?一个整体?
2006-10-24 15:00:38 newzqw cc 你需要找的是对用户有价值的业务,且用户可以看得懂
2006-10-24 15:00:49 newzqw cc 增、删、改、查
2006-10-24 15:02:07 cc newzqw 但是假如现在的需求又有些特别呢?就像我刚才说的,允许Insert,Update,Query,但不允许delete。是不是说还是抽象成一个,而在用例说明中来描述?
2006-10-24 15:03:09 newzqw cc Insert所代表的业务是什么?
2006-10-24 15:03:31 cc newzqw 新增啊?这个有歧义?
2006-10-24 15:05:20 newzqw cc 不是有歧义,是没有反映出用户为什么要用这个系统
2006-10-24 15:05:30 cc newzqw 呵呵,是不是看问题的视角有差异?我发现,你的这几个回复中都强调了业务这个概念
2006-10-24 15:05:41 newzqw cc 他用系统的目的是insert表吗?
2006-10-24 15:06:11 newzqw cc 那当然了,写用例就是写业务,与系统如何实现没有任何关系
2006-10-24 15:07:14 cc newzqw 区域和科目这些是基础信息,对于最终用户来说,这部分也不可或却的啊
2006-10-24 15:08:17 cc newzqw 恩恩,是不是我刚才的Insert.Update,Query误导了你啊?其实我不是仅仅对数据的Insert,Update,Query操作
2006-10-24 15:08:30 newzqw cc 那就用一个管理×××就可以了
2006-10-24 15:09:04 newzqw cc 就是基础数据部分的维护功能呗
2006-10-24 15:09:15 cc newzqw 恩,但是有点区别,不允许删除
2006-10-24 15:09:47 newzqw cc 在用例里描述啊
2006-10-24 15:10:39 newzqw cc 不论你Insert或是Update还是Query不都是为了管理这些基础数据吗?
2006-10-24 15:11:29 cc newzqw 恩恩,我开始也是这么走的。但是又发现这个管理又与正常的概念有所区别
2006-10-24 15:11:58 cc newzqw 对于一般的来说,管理所代表的含义应该是增、删、查、改吧?
2006-10-24 15:12:01 newzqw cc 什么区别呢?
2006-10-24 15:12:31 cc newzqw 呵呵,其实我有些领悟了,我感觉我是对用例所要表达的粒度没把握好
2006-10-24 15:14:35 cc newzqw 恩恩,也不准确。似乎有点头绪但还没抓住
2006-10-24 15:14:57 newzqw cc 你可以试着描述一下用例,然后再想一想是否该合在一起
2006-10-24 15:16:06 newzqw cc 如果把Insert,Update,Query拆开,描述完之后,你会发现这些用例很相似
2006-10-24 15:16:23 newzqw cc 既然很相似为什么要分开来做呢?
2006-10-24 15:17:37 cc newzqw 你这个很相似,是指业务内的横向比较还是业务之间的纵向比较?
2006-10-24 15:18:02 newzqw cc 是用户与系统之间的交互!
2006-10-24 15:18:09 cc newzqw 也就是说,是不是说,对于区域和科目来说,他们的Insert的都很相似?
2006-10-24 15:19:16 newzqw cc 不是区域和科目,是增加科目,修改科目,查询科目
2006-10-24 15:20:58 cc newzqw 啊,这么来比较?增加科目,修改科目,查询科目 这3者完全不同的吧?
2006-10-24 15:21:13 cc newzqw 我到是觉得如果说是纵向比较的话到很容易理解啊
2006-10-24 15:23:38 cc newzqw 也就是说,增加科目和增加区域会很类似,因此如果按增加科目、编辑科目、查询科目以及增加区域、编辑区域和查询区域方式写用例会使得用例图很累赘
2006-10-24 15:23:49 newzqw cc 你试着描述一下
2006-10-24 15:24:33 newzqw cc 用例图不重要,反应不了什么内容,重要的是描述
2006-10-24 15:28:07 cc newzqw 我有点理解了,你刚才说的相似是不是指如果切割开来,那么编辑科目的用例描述也会用到查询科目?
2006-10-24 15:29:14 newzqw cc 差不多是这意思吧,如果有复杂的交互的话,建议是分开的,没有复杂的交互建议是合在一起的
2006-10-24 15:32:48 cc newzqw 呵呵,交流下来收获许多啊
2006-10-24 15:33:54 newzqw cc 呵呵,是你自己思考的结果
2006-10-24 15:34:04 cc newzqw :)
2006-10-24 15:38:08 cc newzqw 其实,你的一句话给了我很大的触动:用例图不重要,反应不了什么内容,重要的是描述
2006-10-24 15:38:52 cc newzqw 呵呵,有些客到,但还是要说句十分谢谢哈
2006-10-24 15:40:15 newzqw cc larman曾说过,一般新学用例的人喜欢纠缠用例粒度,关系这些内容,内真正的大师是不屑于这些,他们关注用例的描述和价值
2006-10-24 15:41:26 cc newzqw :) 我就是如此,而且也是在刚才的交流中才发现,自己以前走进了一个很大的误区!
2006-10-24 15:42:49 newzqw cc 呵呵
---MSN聊天记录,为了保护隐私,我将newzqw在我MSN中显示的名字替换成了他的网名 "newzqw",同时为了看起来方便,做了一些排版
--------------------------------------------------------------------------------------------------------------------------------------------------
时间 发起者 接收者 内容
--------------------------------------------------------------------------------------------------------------------------------------------------
2006-10-24 14:53:40 cc newzqw 海,在吗?
2006-10-24 14:54:22 newzqw cc 在
2006-10-24 14:54:43 cc newzqw 呵呵,有空吗?请教一个简单的问题
2006-10-24 14:55:21 newzqw cc 什么问题,别那么客气,一起讨论一下
2006-10-24 14:55:32 cc newzqw :)
2006-10-24 14:58:02 cc newzqw 假设说现在有一个系统,会有区域和科目这2个基础信息,会对它进行Insert,Update,Query等操作,在画用例的时候是把这些操作都放在一个用例里还是分割开?
2006-10-24 14:58:35 cc newzqw 而且,现在还有一点特别的,对区域和科目,现在只允许Insert,Update,Query,但不允许Delete
2006-10-24 14:59:53 newzqw cc 你不能这样看问题,对数据库系统来说都可以抽象成CURD
2006-10-24 15:00:30 cc newzqw curd?一个整体?
2006-10-24 15:00:38 newzqw cc 你需要找的是对用户有价值的业务,且用户可以看得懂
2006-10-24 15:00:49 newzqw cc 增、删、改、查
2006-10-24 15:02:07 cc newzqw 但是假如现在的需求又有些特别呢?就像我刚才说的,允许Insert,Update,Query,但不允许delete。是不是说还是抽象成一个,而在用例说明中来描述?
2006-10-24 15:03:09 newzqw cc Insert所代表的业务是什么?
2006-10-24 15:03:31 cc newzqw 新增啊?这个有歧义?
2006-10-24 15:05:20 newzqw cc 不是有歧义,是没有反映出用户为什么要用这个系统
2006-10-24 15:05:30 cc newzqw 呵呵,是不是看问题的视角有差异?我发现,你的这几个回复中都强调了业务这个概念
2006-10-24 15:05:41 newzqw cc 他用系统的目的是insert表吗?
2006-10-24 15:06:11 newzqw cc 那当然了,写用例就是写业务,与系统如何实现没有任何关系
2006-10-24 15:07:14 cc newzqw 区域和科目这些是基础信息,对于最终用户来说,这部分也不可或却的啊
2006-10-24 15:08:17 cc newzqw 恩恩,是不是我刚才的Insert.Update,Query误导了你啊?其实我不是仅仅对数据的Insert,Update,Query操作
2006-10-24 15:08:30 newzqw cc 那就用一个管理×××就可以了
2006-10-24 15:09:04 newzqw cc 就是基础数据部分的维护功能呗
2006-10-24 15:09:15 cc newzqw 恩,但是有点区别,不允许删除
2006-10-24 15:09:47 newzqw cc 在用例里描述啊
2006-10-24 15:10:39 newzqw cc 不论你Insert或是Update还是Query不都是为了管理这些基础数据吗?
2006-10-24 15:11:29 cc newzqw 恩恩,我开始也是这么走的。但是又发现这个管理又与正常的概念有所区别
2006-10-24 15:11:58 cc newzqw 对于一般的来说,管理所代表的含义应该是增、删、查、改吧?
2006-10-24 15:12:01 newzqw cc 什么区别呢?
2006-10-24 15:12:31 cc newzqw 呵呵,其实我有些领悟了,我感觉我是对用例所要表达的粒度没把握好
2006-10-24 15:14:35 cc newzqw 恩恩,也不准确。似乎有点头绪但还没抓住
2006-10-24 15:14:57 newzqw cc 你可以试着描述一下用例,然后再想一想是否该合在一起
2006-10-24 15:16:06 newzqw cc 如果把Insert,Update,Query拆开,描述完之后,你会发现这些用例很相似
2006-10-24 15:16:23 newzqw cc 既然很相似为什么要分开来做呢?
2006-10-24 15:17:37 cc newzqw 你这个很相似,是指业务内的横向比较还是业务之间的纵向比较?
2006-10-24 15:18:02 newzqw cc 是用户与系统之间的交互!
2006-10-24 15:18:09 cc newzqw 也就是说,是不是说,对于区域和科目来说,他们的Insert的都很相似?
2006-10-24 15:19:16 newzqw cc 不是区域和科目,是增加科目,修改科目,查询科目
2006-10-24 15:20:58 cc newzqw 啊,这么来比较?增加科目,修改科目,查询科目 这3者完全不同的吧?
2006-10-24 15:21:13 cc newzqw 我到是觉得如果说是纵向比较的话到很容易理解啊
2006-10-24 15:23:38 cc newzqw 也就是说,增加科目和增加区域会很类似,因此如果按增加科目、编辑科目、查询科目以及增加区域、编辑区域和查询区域方式写用例会使得用例图很累赘
2006-10-24 15:23:49 newzqw cc 你试着描述一下
2006-10-24 15:24:33 newzqw cc 用例图不重要,反应不了什么内容,重要的是描述
2006-10-24 15:28:07 cc newzqw 我有点理解了,你刚才说的相似是不是指如果切割开来,那么编辑科目的用例描述也会用到查询科目?
2006-10-24 15:29:14 newzqw cc 差不多是这意思吧,如果有复杂的交互的话,建议是分开的,没有复杂的交互建议是合在一起的
2006-10-24 15:32:48 cc newzqw 呵呵,交流下来收获许多啊
2006-10-24 15:33:54 newzqw cc 呵呵,是你自己思考的结果
2006-10-24 15:34:04 cc newzqw :)
2006-10-24 15:38:08 cc newzqw 其实,你的一句话给了我很大的触动:用例图不重要,反应不了什么内容,重要的是描述
2006-10-24 15:38:52 cc newzqw 呵呵,有些客到,但还是要说句十分谢谢哈
2006-10-24 15:40:15 newzqw cc larman曾说过,一般新学用例的人喜欢纠缠用例粒度,关系这些内容,内真正的大师是不屑于这些,他们关注用例的描述和价值
2006-10-24 15:41:26 cc newzqw :) 我就是如此,而且也是在刚才的交流中才发现,自己以前走进了一个很大的误区!
2006-10-24 15:42:49 newzqw cc 呵呵
浙公网安备 33010602011771号