如何从已经分析好的业务流程进行分析并细化到类呢?

整点实际的,不总整这些虚的东西了!~
嗯,我没搞过其它语言,只搞过JAVA,还搞的是一知半解的样子.希望不会误导了别人.
比如我们有一个已经分析好的业务流程start->A->B->C->D->end.我们这里假设需求调研,需求反馈等前期工作已经做完并已经有了业务流程这一步.通过和客户交流,我们确定整个流程中B,C,两个部分是可以自动化的,也就是说可以通过编写软件来帮助客户解决原本B,C流程中需要人力物力财力等资源来处理的问题.我们就拿B或C中任何一个来分析并细化到类.
比如B这个活动.在这里用用例进行分析.(什么是用例,用例就是一个动作序列,可以对特定的人物产生物定的价值).首先我们确定对B这个活动确定角色,也就是B这个活动都有什么样的人参与,这个可以参考分析好的业务组织结构图来进行分析,如何确定角色,一般情况下,可以先对活动进行用例划分,举个实际一点的例子,比如B活动中包含管理博客这个用例.这样,就可以确定管理博客这个用例的角色(也就是ACTOR),一种是普通的角色,比如写博客,修改博客,删除博客,对博客添加标签等等这些交互的角色.另一种是相对有一点点特殊(或者根本没有特殊,只是我自己的主观理解上面有一点点特殊)的角色,这个角色与管理博客用例产生的交互是确定整个博客的整体版面样式,对敏感字进行管理,对博客的违规操作进行管理等.
这样,我们就分析出来两个角色和一个用例,两个角色与一个用例一共产生多少种交互呢?
普通角色:
1,写博客
2,修改博客
3,删除博客
4,添加标签
(举例,也许需求中会有其它更多的交互)
特殊角色:
1,管理博客的整体版面样式
2,对敏感字进行管理
3,对博客的违规操作进行管理
(举例,也许需求中会有其它更多的交互)
在这个时候,我们就可以确定用例的外部接口应该为七个(此时只对此单个活动进行分析,在分析完所有活动后,需要对接口进行继承设计和接口优化等其它方面的工作,这里我们就不说了)
到这一步,已经确定了外部接口.
这个时候,我们进到用例内部(此时可以无视用例外的角色和其它的东东)
对照我们刚才分析得出的七个接口.分析设计出相应的边界类,也许是七个,也许是八个,也许是九个,不一定,不同的人可能分析设计的不一样,在J2EE中,一般分为(边界类,控制类,数据类),这样子,完成了边界类分析设计后,又有接口,可以分析出数据流的图,根据数据流的图,我们可以确定出控制类.或者需要七个,每个单独控制,或者需要两个,每个类控制好几样数据流(这里怎么分析与设计,就是个人观点了,萝卜白菜,各有所爱吧).完成控制类后,就有了数据类,一般情况下数据类应该是比边界类要少一些,当然,不排除非常复杂的业务逻辑.
有些时候,在这里可以进行一些控制类的总体设计及数据类的设计,一般情况下是这么样子吧,数据类会做基本的数据增删改查工作,而控制类会根据接口及边界类需要来组合不同的数据类,比如写博客,可能会涉及的数据类有三个,一个是用户基本信息数据类,一个是博客基本信息数据类,一个是用户基本操作数据类,这个时候,可能用户基本信息数据类只提供验证用户是否是合法用户,博客基本信息数据类提供博客数据存储,用户基本操作数据类提供用户操作记录(比如用户(二师兄)于2007年1月2日凌晨在Chinaunix中清茶斋分板发表文章*****),这样,一个控制类中的一个数据流配合一个边界类就需要三个数据类来提供不同的操作完成这一流程.
到这里,我们就分析完了七个接口中的一个接口所涉及的边界类,控制类,数据类.
当然,并没有结束,这个时候只是有了一些基本的对边界类,控制类,数据类的描述,没有完成真正的工作.
这个时候需求进行内部接口设计,比如边界类与控制类的交互如何进行,通过什么接口,控制类与数据类的交互如何进行,是交给一个总的接口来进行操作,还是分别交由三个接口进行操作呢?在这个时候,如果有需要,会引入业务类(或者有些称为服务类),把控制类与数据类的交互部分抽离出来,封装成业务类接口,比如控制类通过一个业务类接口交互,然后业务类再根据这个交互需要的数据,通过三个接口来和数据类进行交互,如何去分析和设计呢?这个地方就是仁者见仁,智者见智的过程了吧.引入业务类的好处,可以更好的完成模块化,封装化,进行更好的隔离与解藕.但是同时却多出更多的工作要做,比如业务类接口如何分析设计,及优化,与控制类和数据类如何交互.但其相应的也有弊端,比如更高的模块化带来集成难度的增加及开发小组各个成员之间交流成本的增加和开发小组组间交流成本的增加.这个问题就是一个项目如何去合理的划分模块来平衡各种需求及约束的问题了..就不是这里讨论的范围了...
呵呵,写的很杂,很乱,但我希望或者应该说我想,把我自己的经验说出来,不管是好还是不好,总可以让其它的借鉴,用某一句话说:有则学之,无则加勉.
在分析业务流程并设计外部接口,内部接口,边界类,数据类,控制类这里,没有一种万金油式的通用解决办法吧,最少我觉得是这个样子,不同的有不同的方式.
三点了...再抽根烟睡觉了...
嗯....!~~~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值