花钱的年华

--今天开始成为主站

用户操作
[即时聊天] [发私信] [加为好友]
江南白衣ID:calvinxiu
691409次访问,排名53好友0人,关注者38
calvinxiu的文章
原创 161 篇
翻译 0 篇
转载 0 篇
评论 646 篇
江南白衣的公告

肖桦,江南白衣,
开源项目SpringSide
春天的旁边
发起者

最近评论
calvinxiu:
发版本最痛苦的事情,就是刚发完之后忽然又有了一个比较重要的更新。

推荐大家下载3.0.3.1 (2mb)

1.简化了目录结构,感觉又清爽了不少。
2.消除了最后一块需要逐个Class写配置文件的地方(applicationContext.xml中的sessionFactory的mapping class)。
dreaming:恭喜~
hongyi:还是一头雾水,郁闷,为啥有这么多东东,叫人头大
suncheng_hong:用过appfuse,但springside还没有尝试过。
suncheng_hong:很想尝试一下。
文章分类
    收藏
      相册
      Blog用图
      Friends
      @_@
      Anders小明
      buaawhl
      cac
      canonical
      cctvx1
      david.turing
      femto
      g9
      JohnsonQu
      Michael Chen
      Raimundox
      robbin
      SimonLei
      totodo
      wuyu
      周爱民
      孟岩
      差沙
      庄表伟
      落魄的程序员
      透明
      郁也风
      铁手
      银狐999
      飞云小侠
      存档
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 遇上用例驱动的团队收藏

      新一篇: 初缠之业务建模 | 旧一篇: RUP2003到RUP7.0-嫁入豪门的第一次变身

      作者:江南白衣,原文地址:http://blog.csdn.net/calvinxiu/archive/2007/03/26/1541106.aspx,转载请保留。

          就像小说里那些早慧的少年,很早就尝试过用例驱动的需求文案,结果与客户,一个愁默默,一个恨绵绵。 

          最狂热的用例编写者也承认,用例对客户与需求人员都是一种heavy的相互折磨。
          客户看用例时总要收摄心神来阅读整个交互的流程,还有那些该死的扩展流异常流,没经过程序员专业抽象训练的客户,对着这些伪代码一般的情景脚本,刚开始的一两个还好,看多了,就是白天也能睡去。客户只是看都如此了,负责写的人当然也不会好过。

          但heavy的工作总有heavy的好处,否则早被唾弃于舞台的背面。
          在用户的角度,用例比模棱两可的功能点描述要清晰,也更直白于系统的价值。
          在开发团队角度,RUP的核心方法论之一---用例驱动的口号,明白人自然明白它的妙用。
          设计人员的新设计手段:“用时序图分析用例的实现,在描述过程中确定构件或类,分配它们的职责和方法”,通过对用例覆盖率的追踪,需求与设计之间的信息损耗这个famous problem大大降低。
          测试人员和文档人员,更可以直接把系统用例笑纳为《测试用例》和《用户手册》。

          来到亿迅后,被这里的用例文明给震住了,每个项目的软件规格说明都是屯门清一色的几百页的前景,用例规约,业务规则,词汇表,补充规约组成.......难得有情郎啊。

          昨天又看到了一批新的用例诞生,但实在有好些明显的不足啊,忍不住旧事重提的记下一批经典的错误。不过.....只要能和客户达成需求共识,就是一份好的用例了,也不用花太多时间在学术性的讨论上。

          1.客户没有能力阅读用例
            如果客户实在没办法撑住困意看完用例的细节,即使草草签了名,得不到用户真正确认的用例,依然无法用来驱动设计和测试。
            解决方法:放弃编写用例,改回用户容易看的传统方式。

          2.团队没有能力实现用例驱动
            如果开发团队在设计与测试时,根本不依照用例细节驱动,那用例对开发团队就只是个摆设,花瓶。
            解决方法:对设计、测试人员进行用例驱动的培训,如果事不可为就干脆放弃,怎么省事怎么做。 

          3.在用例中描述系统内部工作
            经典错误,开发人员把用例当作设计文档来写,如“系统将销售信息写入数据库”,实际上应该写的是“系统记录销售”。
            解决方法:站在客户的角度,把系统视为黑盒,删除所有内部设计描述。

         4.在用例中描述界面
            另一个经典错误,不说了,如果在意用户信息包括了姓名和密码,可以在词汇表里记录,而用例写成--显示<用户信息>。

          5.在用例中越出系统边界描述整个业务流程
            要建立的系统只是整个业务流程里的一部,善良的需求人员为了大家清楚来龙去脉,将系统外的处理步骤也写进了用例的情景。
            如:
            1.用户去营业厅开户
            2.用户拨号接入
            实际上去营业厅开户不属于宽带接入认证系统的职责。
            解决方法:开户的描述应该放到用例的前置条件中。前置与后置条件是说明系统边界外的业务流程的好地方。 

        6.过多的用例,让人晕菜
            国外的惯例,一个用例一般有半个以上人月的开发量。
            解决方法:
            1.开户,销户这样的CRUD型用例可以合并成一个管理用例,以四个主场景分别表达。
            2."老板问:你每天做什么阿?","我每天登陆系统"。这就是用例没有提供足够价值的明显标志。
            3.用例中的每一个步骤,其实都可以写成一个独立的用例,分 or  不分?这是个问题。
            4.用例的打包组织是一门艺术,混合的按照功能包、顶级目标用例,Actor,开发团队或者版本号等等。

         7.过多的扩展事件和异常事件流,让人晕菜
            即使是受过训练的程序员,2a, 3b1看多了也要晕掉,记住阅读者是人而不是机器。    
            解决方法:
            1.如果逻辑不多,可以一句话讲完,不影响主场景的,不建议新起一个事件流。
            2.可以使用活动图来辅助说明。在RSM7.0的模版里,每个用例都会带上一个活动图。

          8.过多的关系,继续让人晕菜
           “不要花一个月的时间去讨论应该include还是extend”。大家对include, extend and generalize都不熟悉,那就干脆都不要用了。   

      参考材料:
          《编写有效用例--Wriging Effective Use Case》Corkburn 2001,大家现在使用的用例模版都是他创下来的,此书无可替代。
          《用例模式与蓝图--Use Cases Patterns and Blueprints》我觉得比另一本名字相近的《Patterns for Effective Use Cases》要实用一些。  

      发表于 @ 2007年03月26日 09:49:00|评论(loading...)|收藏

      新一篇: 初缠之业务建模 | 旧一篇: RUP2003到RUP7.0-嫁入豪门的第一次变身

      评论

      #asj 发表于2007-03-27 15:08:10  IP: 221.239.93.*
      1.客户没有能力阅读用例
      这个是下面那些错误产生的结果,而非错误本身。
      而且我真的不明白什么是“改回用户看得懂的传统方式”,难道不是传统的需求说明书用户看不懂才促使用例的使用么?或者,客户看不懂的真正原因就是需求人员仅仅为了写用例而写用例。

      2.团队没有能力实现用例驱动
      不能实现用例驱动了,也未必就不用用例嘛。就像做不到测试驱动开发,未必就要单元测试也不作。一切因陋就简不可取。

      5.在用例中越出系统边界描述整个业务流程
      个人认为不是错误,相反写出业务流程十分有助于对需求理解。但是呢,应该保持一个用例的每步在一个统一的抽象级别,不要上面两句是业务级别,下面就是操作级的。完全描述业务流程的业务用例可以作为顶层用例,具体的功能用例应该都能从中找到来源和根据。

      6.过多的用例,让人晕菜
      CURD就算合在一起,也不是一个管理用例。用例的核心是使用它的用户和它对客户产生的价值。我相信没有一个客户作系统是为了CURD玩的。因此我也不认为用例是可以打包的,木材可以打包,一棵棵树木就不是打包出来的。

      7.过多的扩展事件和异常事件流,让人晕菜
      一开始不要把异常流写完备,出手给用户一张蜘蛛网,谁看到也得晕。只需要写出主序列,分支点写个头即可,主要是要在讨论过程中来完备的捕捉到需求。

      8.过多的关系,继续让人晕菜
      完全同意,程序员对结构性的东西总是过于痴迷。所以干脆不要有构架复杂结构的机会。我认为应该去掉关系这个概念。


      #wuqvei 发表于2007-03-27 17:34:29  IP: 218.19.66.*
      白衣忽视了一点:评审!客户或团队读不懂,那说明需求阶段的交流非常不够
      #MikeDogSong 发表于2007-03-28 22:03:42  IP: 124.89.85.*
      用例不要拿去给客户看,他们看不懂。可以考虑用原型
      #chenpengyi 发表于2007-05-20 01:43:34  IP: 208.251.140.*
      同意楼上,用例客户是看不懂的,protype比较适合
      发表评论  


      登录
      Csdn Blog version 3.1a
      Copyright © 江南白衣