这是敏捷开发用户故事系列的第十一篇。(栏目目录

经常有人问起有没有完整的用户故事案例。本人在网上找了一下,大约能找到两三篇,但多数只是为了描述用户故事的语法而已,都不涉及用户故事的颗粒度、大量故事的组织结构这类内容。

本来想用我们自己的火星人做案例,但考虑到大家都不熟悉我们的工作内容,一直没有动手。前天突然想到何不用大家都熟悉的CSDN博客系统做一个演示,所以才有此文。

分析过程使用的方法是敏捷开发用户故事系列之十:八步走从用户故事生成代码结构提到的方法(前四步),如果只计算用Word生成故事树的时间,只有1小时不到(当然这是在系统已经完工的情况下,如果尚未开工正在头脑风暴,可能要花费两个人一上午,一般还会遗漏20%左右。当然这已经很快了)。这种方法的优点是不必迟疑下一步该怎么办,而可以聚焦于正在分析的业务本身。

定义

子系统 无特殊含义,作为目录使用
模块 无特殊含义,作为目录使用
业务数据 一般为名词,用户在系统中需要管理的业务信息。一般每个核心信息包含4~9个下面提到的业务操作,否则应考虑合并或拆分。
业务操作 一般为动词或动宾词组,用户在系统中对业务数据所作的业务操作。最常见的业务操作即我们常说的“增删改查(查看所有,查看单个)”等五个操作。

CSDN博客用户故事分析

下面的三个大子系统,可参考以下页面:

前台功能可参考:
http://blog.csdn.net/cheny_com
后台功能可在登录后访问:
http://write.blog.csdn.net/postlist
社区功能可参考:
http://blog.csdn.net/

下面是火星人帮助系统中的截图,因无法显示悬停内容,在图后有一些展开的说明文字。

注意事项

以下是图中的部分解释(不限于图中有图标的地方,大致从左到右,从上到下)
 
他人博客
若将自己和他人的博客统称为“博客”,则所涉及的操作数量远远超过9个;而且博客用户也能明确感知到两者的区别,故将两者拆分处理。
自己博客
对于自己的博客也可以查看两种视图,但由于与他人博客的数据格式、展示目的、展示方式大致相同,故不再单独计数。
评论
评论无论长短都是直接展开显示在评论列表中的,故没有“查看评论详情”。
查看博客配置信息
博客标题、描述等内容大致目的相同(即都在简单说明网站信息),所以合并并称为“博客配置信息”。
博客栏目
指博客左侧显示内容的设置,不是“博客系列”所指的栏目。
查看自定义栏目详情
即“将栏目的内容显示在博客栏目列表中”。在功能点分析FPA中,这是一类最常被遗忘的功能,又称“隐含操作”。

其他遗漏内容

对博客管理员而言,“推荐的栏目”“推荐的专家”“推荐的博客”等都是业务数据,不过由于没见过实际的操作界面,所以未加以分析。
这些业务数据面向普通用户的几个“查看所有推荐栏目”(就是具体页面上左边或右边边框的推送框)等操作,我暂时写在博客首页-首页文章下面了。实际上,管理员应该还有一个“查看所有推荐栏目”的页面,但逻辑可能和我们的不太一样,因此可能应该计数为另外一个用户故事。

此方法的优势

使用这种名词-动词方法的优势在于,不同的人分析结果大致相同。
差异一般在于对具体故事的名称、描述、所处位置的略微不同,但对故事的存在性、数量的差异很小。
实际上,这种方法的原型是功能点分析法,而名词就是ILF(本文没有分析EIF),动词就是EI/EO/EQ。据称不同人使用功能点分析法对同一系统所作分析的差距小于10%(一说5%),这是这种方法被用来做早期报价和估算的原因。
如有问题,欢迎在下面留言:)

敏捷开发用户故事系列之十一:CSDN博客用户故事分析的更多相关文章

  1. 业余草通告CSDN博客用户zhang__ao非法转载文章的公告

    今天早上有粉丝给我反馈,CSDN的一位用户大量非法的转载了我的个人网站:业余草(www.xttblog.com)上的大量文章.现一对该用户转载业余草上网站上的所有文章进行了举报! 从上图中可以看出,该 ...

  2. CSDN博客的积分计算方法和博客排名规律

    开通博客一段时间了,近期莫名其妙得获得"持之以恒"的勋章,看着日益增长的积分,既兴奋又好奇.本人对CSDN博客积分的计算方法非常疑惑,也不知当中怎么回事,好奇度娘一番,并结合CSD ...

  3. CSDN博客积分规则

    1.博客积分规则 博客积分是CSDN对用户努力的认可和奖励,也是衡量博客水平的重要标准.博客等级也将由博客积分唯一决定.积分规则具体如下: 每发布一篇原创或者翻译文章:可获得10分: 每发布一篇转载文 ...

  4. Android应用开发-小巫CSDN博客client之嵌入有米广告

    Android应用开发-小巫CSDN博客client之嵌入有米广告 上一篇博客给大家介绍怎样集成友盟社会化组件,本篇继续带来干货,教大家怎样嵌入广告到应用中去.小巫自称专业对接30年,熟悉各大渠道SD ...

  5. [置顶] CSDN博客第四期移动开发最佳博主评选

    CSDN博客第三期最佳移动开发博主评选圆满结束,恭喜所有上榜用户,为继续展示移动开发方向优秀博主,发掘潜力新星,为移动开发方向的博客用户提供平台,CSDN博客第四期移动开发最佳博主评选开始.同时,获奖 ...

  6. Android应用开发-小巫CSDN博客客户端开发开篇

    2014年9月8日 八月十五 祝各位中秋节快乐 小巫断断续续花了几个星期的时间开发了这么一款应用——小巫CSDN博客,属于私人定制的这样的一款应用,整个客户端的数据全部来自本人博客,是通过爬取本人博客 ...

  7. Notepad++前端开发常用插件介绍 - BorisHuai前端修炼 - 博客频道 - CSDN

    Notepad++前端开发常用插件介绍 - BorisHuai前端修炼 - 博客频道 - CSDN.NET http://blog.csdn.net/borishuai/article/details ...

  8. Android应用开发-小巫CSDN博客clientJsoup篇

    Android应用开发-小巫CSDN博客clientJsoup篇 距上一篇博客已经过去了两个星期,小巫也认为很抱歉,由于在忙着做另外一个项目,差点儿抽不出空来,这不小巫会把剩下的博文全部在国庆补上.本 ...

  9. Android应用开发-小巫CSDN博客client之显示博文具体内容

    Android应用开发-小巫CSDN博客客户端之显示博文具体内容 上篇博文给大家介绍的是怎样嵌入有米广告而且获取收益,本篇博客打算讲讲关于怎样在一个ListView里显示博文的具体信息.这个可能是童鞋 ...

随机推荐

  1. 开源数据库连接池之DBCP

    本篇介绍几种开源数据库连接池,同时重点讲述如何使用Apache公司的的DBCP数据库连接池. 前面一篇博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式.这样能 ...

  2. hdu1298 T9(手机输入法,每按一个数字,找出出现频率最高的字串,字典树+DFS)

    Problem Description A while ago it was quite cumbersome to create a message for the Short Message Se ...

  3. oradebug推进scn

    有时候我们遇到例如以下错误: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error ...

  4. 解决android应用程序适用新老android系统版本方法

    老的android系统不能运行高版本系统的新方法,为了解决这个问题:  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ...

  5. 研究一下TForm.WMPaint过程(也得研究WM_ERASEBKGND)——TForm虽然继承自TWinControl,但是自行模仿了TCustomControl的全部行为,一共三种自绘的覆盖方法,比TCustomControl还多一种

    先擦除背景: procedure TCustomForm.WMEraseBkgnd(var Message: TWMEraseBkgnd); begin if not IsIconic(Handle) ...

  6. Spring Boot,Spring Data JPA多数据源支持

    1 配置文件 wisely.primary.datasource.driverClassName=oracle.jdbc.OracleDriver wisely.primary.datasource. ...

  7. 浅析——SCTP协议(转)

    SCTP处于SCTP用户应用层与IP网络层之间,它运用“关联”(association)这个术语定义交换信息的两个对等SCTP用户间的协议状态 .SCTP也是面向连接的,但在概念上,SCTP“关联”比 ...

  8. mfc控件与其对应的对象的关联方法

    对话框的控件与其对应类的对象相关联:(两种方法) (1)      通过CWnd::DoDataExchange函数进行关联: 用VC++6.0的MFC ClassWizard中的Member Var ...

  9. 流式计算-Jstorm提交Topology过程(上)

    Topology是Jstorm对有向无环图的抽象,内部封装了数据来源spout和数据处理单元bolt,以及spout和bolt.bolt和bolt之间的关系.它能够被提交到Jstorm集群. 本文以J ...

  10. SQL查询数据封装JavaBean对象

    public static List getListBySql(String sql, Class cls){   List list = new ArrayList();   Connection ...