转自:http://forum.javaeye.com/viewtopic.php?t=164&postdays=0&postorder=asc&start=0

制。了解目标组织中当前存在的问题并确定改进的可能性。确保客户、最终用户和开发人员就目标组织达成共识。导出支持目标组织所需的系统需求。 (来自RUPCN)

以上大家可以理解,我们有没有更深的理解呢?我先从业务主角和业务角色说起业务建模,在业务建模中主要有业务主角(BUSINESS ACTOR)和业务角色(BUSINESS WORKER),对此我们有什么了解呢。我先做出定义:业务主角是服务对象,如对商店进行业务建模, 业务主角是顾客。业务角色是服务人员或系统,如对商店进行业务建模,业务角色是售货员。业务主角是为谁提供服务,产生了用例。业务角色是提供服务,完成了用例。可以仔细看看RUPCN。这两个东西它们在ROSE中图形的表示也不一样。

但大家有没有想过,业务建模更深的意义,我们在传统的软件工程来说并没有类似业务建模这个概念,而RATIONAL公司又要将此放入,在软件工程中,它又到底起了什么作用呢?

一般说来,我们做一个软件项目基本上都是从需求调研后就到需求建模和需求分析了,没怎么去想业务建模。而大家有没有想过,我们对需求的处理比较表象,如界面、功能和数据,对业务处理过程缺少规范的说明,而这正是开发必须的。你有没有觉得你以前很多开发没有准确反应需求,是否有一个原因,不是需求不清,而是对需求的实现过程不清,即没有了解好业务,从RUP的角度来说,也就是缺少了业务建模这一关键环节。我曾经思索过业务建模最主要解决什么问题,我的看法就是业务建模就是创建业务处理模型,是进行需求分析的依据。而需求分析的结果,将要确定一个开发规范,正确的实现业务处理过程应当是它的一个重要内容,而我们在需求调研时,往往忽视了这一点。

那么,在需求调研中,需求建模与业务建模谁先谁后呢?个人认为,业务是本来就存在的,不管有没有这个软件或项目,它都存在,它都在按一定的模式运作,因此业务建模与需求调研、需求建模是无关的,立项之前业务模型就可以存在. 或是立项以前,业务建模就可以完成的。 然而,实际并非如此,用户只知道如何处理业务,却很少有一个完整的业务模型,当立项时,就需求承建方邦助客户创建它。因为承建方不了解客户的业务过程是不能建模的, 又必须了解客户的业务。

对于软件开发过程,从软件工程的角度来说大多数人都清楚从需求调研,到需求建模,需求分析,系统分析,系统结构设计,系统代码设计,系统测试,系统维护这一过程,我参与过的项目,让我感到,有些项目失败或是非常难做,不在于以上这些环节没做好,而在于少了业务的环节。

很多人也许会说,业务不就是需求吗,没错,但更多的时候我们关注的是界面、功能、和数据,却很少注意功能之间的联系即业务过程。

有没有想过,我们将软件所有的功能做成菜单,让用户自己选择他们要做什么,而没有一个业务过程的概念,用户要自己知道用了某个功能后下一个该用哪个。这样的系统其实不是应用系统,只是一个数据处理机或者说是一个比较复杂的计算机器。它把业务过程分解为一些独立/分散的功能,而没有把这些功能组织起来。因此,有必要将业务从需求中分离而进行强调。我想,这也就是RATIONAL 公司引入业务建模这个重要的概念吧,

无论是从我的经验、观点和教训来说,还是看了RUP的观点来年,我个人认为新的软件开发过程是:业务调研,业务建模(业务分析),(业务模型分析)需求调研(这时,已经有一部分需求可从来务模型中获得), 需求建模,需求分析……因为建模的过程也是分析的过程,所以业务建模和业务分析可能交叉在一起。如果遇到一个客户,规范到已经有了现成的业务模型,那么直接就拿来就可以了。如果业务建模与需求调研是同一班人,那么需求调研中的业务模型分析工作就比较容易了。


业务建模当中又要注意什么呢?我个人的看法是:千万别把业务建模和需示分析混在一起啦。如网上订单系统,一个人下了订单,当然此订单是通过系统自动完成,并没有后台人员的支持,此时,业务主角当然是下订单的人,那业务角色呢 是否是没有,还是下订单的人? 对于系统来说,业务主角当然是下订单的人,而业务角色呢?不太可能是系统自已吧? 而我的看法是业务角色就是系统自已,那不是很矛盾吗?其实,关键一点是业务建模你不能有需求分析的概念,在这里,系统并不是软件系统,而是完成业务主角的订单,即一个用例的东西,根据业务建模的概念,完成了订单这个用例只能是订单系统,那么业务角色也就是订单系统。因为它是下订单这一业务中。

无论业务角色还是业务主角,都是对角色的抽象,不能具体到某个人的。而一个具体的事务,可能会兼任两个不同的角色,但此时,大部分发生了身份或岗位的转移。


评论

该日志第一篇评论

发表评论

评论也有版权!