整理者:张克强

缘起

@jackyrong 发了如下一条微博

敏捷中的文档该写多少合适,一直是永恒的话题,每个用例故事的设计简要卡片,用例图,序列图,类图,数据字典,简要原型图,算法补充说明,应该是必要的吧,大家可以继续探讨 @袁斌_AgileDo @竹十一 @敏捷广州联盟 @火球_Fireball

| 转发(58)| 收藏| 评论(35)
5月16日

张克强-敏捷307:这些都写了,那不就是RUP了? (5月18日 17:37)

jackyrong:回复@张克强-敏捷307:那倒不一定,看的是写的侧重和“度”的问题 (5月18日 17:48)

张克强-敏捷307:注意到用例故事这样的组合,上次@agile123 也提到了用户故事,源自于何处?目前有什么定义或者说明吗? (5月18日 17:51)

agile123:“用例故事”好像是源于特级资深敏捷教练张恂老师的《用例故事胜过用户故事》这篇文章吧,简单说用例故事是Use Case的中文别称,因为用例本就是故事,比用户故事出现更早、更成熟的需求故事 http://t.cn/RvwEJ4h

agile123:#统一用例方法#UUCM提倡在敏捷开发中用Use Case Card取代User Story Card,卡片上可放用例名称、用例图、用例简述(相当于XP用户故事)、优先级等信息,其他如需求文档、架构文档则是必须的

焦点问题的出现

火星人陈勇:第一级应该是“有什么”图(建议用例图,但真心不好用),辅以简单故事卡描述;还有时间,银行推荐业务逻辑图(泳道、序列),互联网推荐界面原型;还有时间,才画类图等与实现相关的。不过,与其画UML,不如加入一些别的东西。比如写扩展流不如写Gherkin。 (5月20日 16:07)
【注意:@火星人陈勇说的是 第一级】
张克强-敏捷307:回复@火星人陈勇:赞同勇哥,rup中的业务用例以及业务用例图就是真心不好用的典型。还不如最传统的功能模块图,不过uml的活动图和序列图优于传统的流程图。rup中业务用例-业务用例实现-用例-用例实现真是让人无语,吓退n多骚年。雅格步森大师自己境界太高了,真是太高估业界骚年了。 (5月20日 20:58)
火星人陈勇:回复@张克强-敏捷307:用例图有几个大问题:1. 只能用来记录发现的用例,不能用来分析出用例;2. 没有直观方法看出“已经列出了所有必要的用例”,很容易遗漏; 3. 用例七大八小; 4. 用例之间的关系极其模糊。而且UML并没有其他配套图形协助用例图解决这些问题。一起大赞序列图。 (5月20日 21:06)
【按照陈勇和我微博的上下文,我们讨论的对象是第一级和业务用例、业务用例图】

争论的出现

agile123:胡说,业务用例(相当于business process)与功能模块是一回事么?用例是以用户为中心分析出来的系统服务价值单位,优于传统功能分解。两位学习用例技术其实还没入门  
UMLGreatChina:回复@火星人陈勇:怎么没有直观方法?画在一张用例图里的就是所有必要的用例,一目了然,还不直观?如果嫌空间小,可以换A3纸或者更大的屏幕、图纸,把“所有必要的用例”都装下   //2. 没有直观方法看出“已经列出了所有必要的用例”
UMLGreatChina:回复@火星人陈勇:这也不是什么缺陷。需求本来就有大有小,有粗有细,用例的分层不过是对这种复杂客观现实的反映,而且通过用例分层技术可以把大大小小各种不同粒度的需求整理得非常清楚而有条理 //3. 用例七大八小
UMLGreatChina:回复@火星人陈勇:这根本不是个问题。用例图(diagrams)只是一个表达形式和结果,如何分析出用例要靠用例分析的方法(methods),如UP、Jacobson、Cockburn、UUCM等,你只学了图,不学方法怎行?这逻辑不对 //用例图有几个大问题:1. 只能用来记录发现的用例,不能用来分析出用例 @张克强-敏捷307 (5月21日 11:08)
UMLGreatChina:回复@火星人陈勇:解释起来其实很简单,C语言的include、Java类的extends你总熟悉吧意思差不多:包含是公共功能,扩展是附加功能。你认为极其模糊是因为你学用例还没入门,一知半解,不得要领 //4. 用例之间的关系极其模糊。而且UML并没有其他配套图形协助用例图解决这些问题。@张克强-敏捷307 (5月21日 11:21)

关于业务用例

@张克强-敏捷307:业务用例与功能模块不是一回事,但业务用例与用例也不是一回事,业务用例能够帮助理解用例的背景,但其有@火星人陈勇 说的那些问题。
张克强-敏捷307:回复@UMLGreatChina:注意我一直说得是业务用例与业务用例图有蛮多问题。对用例和用例图可是很推崇的。真不建议你再去弘扬业务用例。 (5月21日 11:04)
UMLGreatChina:既然你也推崇用例,那就没理由反对业务用例啊。UML需求用例分析的精妙在于用同一套思路方法同时来做系统和业务建模,只不过把boundary扩大到业务组织。你说BUC到底有哪些问题?
       @张克强-敏捷307:业务用例的关键问题就是边界极为模糊啊,范围写大了浪费时间,写小了可能漏,写细了与用例重复,写粗了与功能模块划分没区别,,无论如何写都不合适。用几张泳道图或者序列图把核心业务流程表达就足够了。把有限的时间直接放到用例上。
                       UMLGreatChina:没这么难吧,scope是从一开始就应该确定的,BUC的概念无非是把边界扩大点,除system外把human的活动也考虑在内。估计是你没掌握技巧,最好举个困难的例子?
                          张克强-敏捷307:关键不是难度,关键在于其意义可以被更经济的替代。而且其业务用例本身没有合适的规范,一旦开写,不同角色可以从不同角度提不同意见,麻烦多多。    
                           UMLGreatChina:你的意思是不要写业务用例的文本细节?可以,要不要业务建模、业务用例这都要看项目的实际情况,的确业务建模可以画图为主,简单的用UML活动图甚至BPMN等就够了,但是许多复杂的业务流程只画图可能不够。It depends 
                           UMLGreatChina:是否要写业务用例文本要看项目需要ROI,通常金融业务系统只画图不够。至少一个公司内部应形成需求用例的标准,我的UUCM模板可供参考  
@张克强-敏捷307:我认为业务用例图有蛮多不足,但用例和用例图绝对是uml&rup的精髓。通过用例图、角色和系统边界识别用例是行云流水般的思考,远远优于传统的需求规格书,我很享受这种过程,能够充分体会用例之美之优雅。

关于未来

火星人陈勇:应该这么说,我(们?)正在尝试消灭功能模块,只留下业务用例,把业务用例作为分析、设计、开发、测试、验收的共同单位(很类似BDD或者FDD吧),因此”留下“的东西要继承”砍掉“的东西的一些特性。 (5月21日 13:44)
                   agile123:UP、OUM、Taij/UDD等都是用例驱动的,而ATDD、BDD加用户故事的意思其实差不多,但后者受极限派影响是不敢或不便提UseCase的,这就是科学家之间的门派之争 
火星人陈勇:哦,不是这个意思,我是说比如在百度”用例图“前三张,(作为外行)是否能看出里边缺少了什么用例?包括他画在别的图里边的。利用一种新的东西(其实还是用例图的变形,但配合了FPA、MVP),我现在就能找到缺少的东西,甚至能告诉他缺少的东西叫什么好。这个以后再揭秘。 (5月21日 13:52)
火星人陈勇:如果有一种图,图中的元素大小相近,而又能分层把不同颗粒度的……是不是更好?我称之为有根有叶树,有根就是你说的整理地非常有条理,有叶则是存在一种大小相似的东西(自然界同种的树尺寸差别很大,但叶子却差不多),作为最终需求、估算、设计、开发、测试、验收、度量用。
火星人陈勇:在我们看来,用例和用户故事史无前例地采用”条目“而非大段文字表述需求,已经达到”历历可数“的状态,可惜数完了却被告知尺寸不一,因此无法把用例放在分母上得到生产率、缺陷率、测试覆盖率……等,实在可惜。若此问题被克服了,将对用例的价值有很大提升。但这就要动用例的一些规则。 (5月21日 14:00)
火星人陈勇:等回头看”用例-状态图“吧,10分钟教学,10分钟练习(之前不用任何UML基础),6个团队绘制6张他们的图,一般有2张图我找不出漏了什么,2张图漏东西,1张图惨不忍睹。 (5月21日 14:03)
火星人陈勇:我做下一个月迭代的时候最关心的是:”这一大堆用例里边,哪些拿出来,正好满足两个条件:1. 开发出来的东西完整可交付(不多,不少,MVP);2. 正好一个月开发完(可估)。“1. 需要能看到用例之间的一种依赖、内聚关系,包含、扩展没用;2. 需要有相近颗粒度和生产率 (5月21日 14:14)
火星人陈勇:图先不着急,我可能要自己绘制超过100张才会有足够稳定的图发布。但在发图之前,我想知道有没有人和我一样感受到用例图的4个问题(或者对现有解决方案不满意的地方),以及有何尝试。就像现有的UML会限制思维,我的图也一样。 (5月21日 14:21)
火星人陈勇:给个提示:2月份和一个资深朋友聊,我说我喜欢用例,因为和用户故事、功能点能做很好的对应。他说他会先画状态图,因为可以不多不少地分析出用例(状态图的线条其实就是某些用例),我大吃一惊……1个月后,就有了我说的那张图。 (5月21日 14:27)
火星人陈勇:@UMLGreatChina @张克强-敏捷307 @敏捷123 我当前正在同时使用UML,FPA,用户故事,BDD四者管理需求。我个人感觉与其讨论“哪个更好”(到处都是),不如取长补短。所以要去掉三个,留下一个。所以现在说的“找缺点”,不是说找到缺点把UML扔掉,而是留下并改造它,去掉另外几个。 (5月21日 16:32)
       UMLGreatChina:这思路不错,UML、UseCase、UDD完全可取代用户故事和BDD 
  
        火星人陈勇:UML的战线最长,工程化程度最高,因此作为一个基础在其上扩展比较容易(甚至有时候是做减法),其他几个都是点状的,无法承载“过程”“模型”等这些词汇;不过不改造还是有一些不足。
            UMLGreatChina:的确这是一个技术路线问题,这些年OO方法技术一直是主流
火星人陈勇:回复@张克强-敏捷307:嘿嘿,下次见面我画个“用例-状态图”,体验一下跟头云的感觉。不过最近想和精益的MVP(最小可用产品)结合一下,从外界重新分析一下,也重新命名一下。MVP听名字就比“用例-状态图“外向地多,商业地多,有价值的多,视野开阔地多。
火星人陈勇:回复@张克强-敏捷307:长相更像用例-活动图,因为发生在用例之间而非之内,所以叫用例-状态图更妥。此图用来找出用例;绘制完成后会知道”完成了“;两个人绘制的图几乎一模一样;平均每张图开发工作量35人天;看着图能写出测试用例(群),还能知道写完了没有;每张图是一个迷你MVP,必须完整发布……

结语

张克强-敏捷307: 说了这么多,其实还没有直接回答原博主的提问。我来回答下吧:在敏捷环境下,如果只使用用例表达需求(不联合使用用户故事),那么围绕用例必须的文档是用例图和用例规约(不一定要正式的)+数据字典。 其它的不是必需的,依赖于团队对UML和OOAD的认识和水平,但就算团队对UML和OOAD有很高水平, 见续
张克强-敏捷307: 如果把以上提到的全写了,覆盖所有类,而且没有一个强大的支持正反向工程的UML工具,那么多半是不敏捷了。 (10秒前)

其它

袁斌_AgileDo:我目前在需求的分析中,主要是把需求分为系统级需求、架构级需求、开发级需求,不同级别的需求在不同阶段完成,其中前两个在先启阶段完成,后一个在构建阶段提前一个迭代完成 (5月22日 09:31)

关于用例需要多少文档以及业务用例等等相关推荐

  1. Axure电商后台业务管理系统原型模板+app电商原型交互+移动端电商通用PRD文档+全局交互用例说明+Axure高保真电商社交prd文档

    作品介绍:Axure电商后台业务管理系统原型模板+app电商原型交互+移动端电商通用PRD文档+全局交互用例说明+Axure高保真电商社交prd文档 原型交互演示及下载地址https://www.pm ...

  2. Axure电商后台业务管理系统原型模板+app电商原型交互+移动端电商通用PRD文档+全局交互用例说明+Axure高保真电商社交prd文档+电商prd+电商需求文档+订单、购物车、配货、物流、仓储

    作品介绍:Axure电商后台业务管理系统原型模板+app电商原型交互+移动端电商通用PRD文档+全局交互用例说明+Axure高保真电商社交prd文档+电商prd+电商需求文档+订单.购物车.配货.物流 ...

  3. prd移动端通用产品需求文档+Axure高保真app社交订餐通用prd文档+产品业务说明+PRD功能性需求+移动端公工通用模板说明+需求分析+竞品分析+产品结构图+产品业务流程图+产品信息图+餐饮系统

    作品介绍:prd移动端通用产品需求文档+Axure高保真app社交餐饮通用prd文档+产品业务说明+通用prd文档+移动端公工通用模板++全局说明+需求分析+竞品分析+产品结构图+产品业务流程图+产品 ...

  4. 多测师拱墅校区肖sir_高级金牌讲师_接口测试之接口文档和接口用例

    一.接口文档 二.接口用例 ============================= 一.接口文档 1.接口接口结构 (1)url 接口路径(请求协议,ip,路径) (2) 请求方式 (post,g ...

  5. WPS本地镜像化在线文档操作以及样例

    一个客户项目有引进在线文档操作需求,让我这边做一个demo调研下,给我的对接文档里有相关方法的说明,照着对接即可.但在真正对接过程中还是踩过不少坑,这儿对之前的对接工作做个记录. 按照习惯先来一个效果 ...

  6. java业务逻辑层文档,java业务逻辑层类图

    Java 面向对象 16 种设计原则一 类的设计原则 1 ...假如已有的系统中存在以下既有的业务逻辑代码: void...下面的类图将它的 2 个不同职责分成 2 个不同的...... java大作 ...

  7. 服务器根目录文件配置文件,在文档根目录中存储安装和配置文件

    在文档根目录中存储安装和配置文件 wanboot-cgi 程序在 WAN Boot 安装过程中传输以下文件. wanboot 程序 WAN Boot 最小根文件系统 定制 JumpStart 文件 S ...

  8. javadrawstring设置字符大小_LaTex学术写作——编辑文档格式 设置论文标题与摘要...

    在上一篇文章中,我们介绍了如何安装LaTex以及开始创建文档的命令.今天我们就从学术写作的第一步开始讲起:如何编辑论文首页标题以及论文摘要.最近正在做论文重现的作业,我选取的论文是David Card ...

  9. PRD文档范例,产品经理值得收藏的写作手册

    本文由作者 刀哥说 发布于社区 2015年,我写了一篇梳理PRD的文章,获得3.5万次阅读.至今已过去5年,在这5年里,我一直从事产品产品相关的工作,也经历过一次完整的创业,对PRD又有了一些新的思考 ...

最新文章

  1. 函数项目一个超感人的故事:关于swfupload在某些环境下面session丢失的完美解决方案(看完我哭了)...
  2. python使用matplotlib可视化、为可视化图像添加图例(legend)、自定义图例的字体格式、字体大小、字体颜色等
  3. Android中文API (110) —— CursorTreeAdapter
  4. tensorflow 使用
  5. Linux 文件查找命令
  6. (Application下)组件(所在的)进程创建时,创建Application
  7. TCP系列05—连接管理—4、TCP连接的ISN、连接建立超时及TCP的长短连接
  8. unity如何检测内存泄漏_如何排查Java内存泄漏?看懂这一篇就够用了
  9. PHP面向对象:instanceof 运算符 (备忘)
  10. oracle的merge into 的用法
  11. 超像素 Superpixel
  12. pycharm调试bug Process finished with exit code -1073740791 (0xC0000409)
  13. 详细设计的工具——PAD图
  14. python 操作微信订阅号(2022.7.1)
  15. 智慧公厕解决方案,光明源智慧公厕解决方案全解
  16. 学计算机用商务本还是游戏本,工作学习游戏?这 8 款最具性价比的笔记本电脑,总有一款适合你...
  17. Python随机生成出生日期
  18. linux中ifconfig无法显示ip地址
  19. 中国分电器及点火线圈市场现状研究分析与发展前景预测报告(2022)
  20. 2019年 -- 最新前端面试题攻略

热门文章

  1. Redis事务,ACID性质,但是Redis不支持事务回滚
  2. layui关闭表格编辑_告别复制粘贴,表格再多也能快速合并!
  3. C语言引用文件空格和换行,关于文件操作,碰到空格就换行
  4. mysql+如何开发存储引擎_干货!MySQL 的 InnoDB 存储引擎是怎么设计的?
  5. vuex 编译项目_俺咋能看懂公司前端项目?
  6. 访问地址指向本机地址_详解MySql通过ip地址进行访问的方法
  7. python调用ipython_在IPython中执行Python程序文件的示例
  8. nginx 上传文件漏洞_nginx爆惊天漏洞 上传图片就能入侵服务器
  9. 在python语言中下列是二进制整数_Python从菜鸟到高手(5):数字
  10. python爬虫的硬件配置_python爬虫之redis环境简单部署