在路上

路上有惊慌,路上有理想

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  28 Posts :: 1 Stories :: 10 Comments :: 0 Trackbacks
在需求采集结束后,就进入了一个相对重要的环节:问题分析。

   1.问题与客户达成共识

      这个共识有签字式的——协议,也有非签字式的——确认。

     记住,所有的共识都基于双方的理解。文字的东西往往会引起歧义,电话确认又往往失于严肃。图形化的方法可以弥补这些缺憾。个人经验,文字的描述比较适用于 早起的问题收集,或者是简单的问题确认。复杂的问题需要交给图形化来解决,wireframe——虚拟界面,是个不错的选择。它除了可以收集输入输出数据 项,还可以给客户一个比较直观的感觉。当然,这个也相对费时一些。但对于需求的确认至关重要,可以减少客户与软件人员的误解。

   2.找出问题背后的发生原因

      韦伯说过,社会行为是行动者赋予主观意义的人类行为。任何人(团体、组织)的活动在社会中都会牵涉到另一个人(团体、组织)。任何行为本身都具有意义,如 无意义,则无行为。

     扯远了,还是谈谈需求问题。客户问题的提出,是为了解决问题。要想解决问题,就必需知道问题是如何产生的。也就是说,要想找到蛋,就必需先找到下蛋的鸡, 研究它的活动轨迹,最后定位鸡蛋的位置——解决问题。在社会学里,找到了行为的意义,也就掌握了行为本身。记住,无意义就无行为,有行为则必有意义。

    3.确定系统用户

      包括用户的角色和权限。这是系统能够运行起来的基本条件。如果不能引起足够的重视,对于系统将是严重的灾难。笔者曾做过一个office resource management系统,从初始的一个角色对应一个office,到一个role对应多个office,一个人一个角色,到一个人多个角色。修改之多, 之繁重,不能与人言。

    4.确定系统边界

      在实践过程中,个人引入了"内外表"来定义系统边界。这个在稍后的usecase中具体描述

    5.划分子系统的三个原则:

       a.职责不同的功能划归不同子系统:将一类包含统一职责的功能划分为一个子系统。如权限管理系统与业务系统分离。(企业系统需要统一的权限管理:安全认证 以及系统授权),再如社会保障信息系统按业务类别的划分:养老,医疗,工伤,失业,生育。按照业务规则划分又可以分为:公共业务(单位,个人),待遇,报 表

       b.需要不同开发技能的单元划归不同子系统:如报表系统与数据仓库的独立开发。

       C.软件工程管理的划分:

          1)兼顾工作量的相对均衡,进一步切分太大的子系统。交给不同的team进行并行开发。

          2)同一类公用\复用模块划分为一个子系统:如规则引擎,简单报表,css theme管理,数据同步\交换,基础平台的二次开发(统一弹出式查询,输入校验,页面组件)等等。

posted on 2010-02-27 15:38 阮步兵 阅读(217) 评论(0)  编辑  收藏 所属分类: Software Engineering

只有注册用户登录后才能发表评论。


网站导航: