IDEner创意孵化项目系统建模
前言
以下分别采用业务流程建模和UML建模两种建模发放对系统设计进行建模。
其中UML 面向对象系统设计建模中,我们采用了类图,对象图,Communication Diagram(通信图),状态图。
说明:由于参考文献问英文文档,有些翻译可能不是很贴切。
1. Business Process Modeling(BPM)业务流程建模
业务流程建模通过一系列的技术和标准实现对业务流程进行分析设计,实施以及执行。
能够帮助识别,描述,分解业务流程。
BPM支持三种流行的流程语言:Analysis languages,Service Orchestration languages,Collaborative languages。
后两者语言能够直接生成代码。
1.1 Process Hierarchy Diagram(PHD)业务架构图
业务架构图给出了系统功能的视图,并且将一个流程分解成多个子流程。
分析阶段分析师和经理用使用此图。
IDEner创意孵化系统的业务架构图如下。
图1 IDEner创意孵化系统的业务架构图
1.2 Business Process Diagrams(BPD)业务流程图
业务流程图给出了系统各个层面流程间的控制流和数据流的视图。
业务流程图可以是业务架构图中的一个子流程。
对于系统的不同层面,有以下三种业务流程图
1.2.1 Top-level diagram 描述业务伙伴之间的关系。
对于图1 IDEner创意孵化系统的业务架构图中的Bind Advertise子流程我们进一步分解成业务流程图得到图2。
图2 Bind Advertise Top-level diagram
1.2.2 Choreography diagram 改图通过控制流将业务流程连接起来,可以有一个或者多个开始,也可以由一个或多个结束。
对于图 1 IDEner创意孵化系统的业务架构图中的Bind Advertise子流程得到的Choreography diagram 如图3 Bind Advertise Choreography diagram。
图3 Bind Advertise Choreography diagram
1.2.3 Data Flow Diagram(DFD)数据流图
数据流图能够表示数据的在系统中的传递情况,反映了体现为系统功能的业务流程间的数据交互情况。
图1 IDEner创意孵化系统的业务架构图中的Bind Advertise子流程的数据流图图4如下。
图4 Bind Advertise 数据流图
1. 3 Process Service Diagrams(PSD)业务服务图
PSD描述了系统中的服务,操作,接口。
它采用执行语言(orchestration languages)进行建模。
Bind Advertise 的业务服务图如图5
图5 Bind Advertise Process Service Diagrams
2. UML建模(结构图)
采用UML面向对象建模中的类图和对象图进行建模。
由于仅仅从类图建模,不像业务流程建模那样可以方便地进行分层设计,因此这里加入了对象图从抽象(类图)到具体(对象图)两个层次对Bind Advertise 模块进行设计建模。
2.1 IDEner类图设计如图6。
对于User其实还可以采用泛化关系来分出几个子类,这里为了简化设计,就没有细分了。
对于同种的每一个类都应该有一个接口,出于简单性考虑,都省略了。
图6 IDEner类图
2.2 图7 IDEner对象图是在类图基础上进一步细化,反映了系统某一时刻的具体情况和一些类图难以反映的约束关系。
图7 IDEner对象图
3. UML建模(communication diagram)
这里communication diagram 为例进行说明。
通信图反映了一个用例中的对象或者类间的通信,方法的执行,反映了系统的结构。
它类似于顺序图,但是相比顺序图,它能够很好的反应对象的结构。
3.1 以下采用Communication Diagram通信图进行建模。
图8 第三方支付成功系统处理通信图
3.2 下面图9支付交互情况通信图是对图8中的第一部进行细化得到的通信图。
图9支付交互情况通信图
4.UML建模(Statechart diagram)
状态图用类的状态随着时间和事件的发生转换的形式,反映了状态机视图和类的行为。
状态图假设类已经被识别出来,并且能够系统的状态时有限并且识别出来了。
不同于协作图,状态图能够反映类的所有可能的场景。
在任一时刻,对象出于一种状态当中。
状态图通过执行状态间转换的操作反映了类的行为。
下图图10是用户绑定营销信息的过程的状态图。
用户的一个界面相当于一种状态。
当用户在不同界面进行操作时,处于不同状态之中。
图10用户绑定营销信息状态图
下图图11是图中PayCenter到Uploads状态的补充细化。
图10中关注的是用户所能够感受到的状态转换,而图11则是用户不能够发现的后台状态转换。
DesignCenter和BalanceCenter并不是呈现给用户的一种状态。
图11用户绑定后台状态转换
5.几种建模方法比较
5.1 设计思路比较
a.业务流程建模(BPM)
业务流程建模帮助你发现,描述,分解业务流程。
能够帮助你在各个细节层面分析你的系统,集中注意力在控制流和数据流上面。
同时,你也可以使用业务流程执行语言BPEL,业务流程建模符号(BPMN),以及其他的流程语言。
BPM提供了三个层面的图形建模,业务架构图,业务流程图,流程服务图,配合多种流程语言,能够利用一系列技术和标准方便的帮助你分析设计,以及实现执行业务流程。
它主要面向商业分析师和经理去分析系统,以优化系统或者建立新系统。
b. 类图和对象图
类图属于UML图中的一种。
它向我们展示一个组成一个系统的类,接口,包,以及这些元素之间的关系。
它放映了系统的静态结构。
对象图属于UML图的一种。
它通过类的具体实例,实例间的关联和依赖关系来反映系统的的结构。
一张对象图显示了在特定时刻特定时间点下的数据结构。
对象图能够很好的反映类之间的约束关系,而类图只是一个抽象表示不行。
c. Communication Diagram通信图(CD)
CD属于UML图。
CD注重系统结构的表示。
它反映了一个用例场景中对象之间的交互协作,操作的执行,或者类之间的交互协作。
一个用例或者复杂行为可以用多张CD表示。
和顺序图相比,CD表示了同样的信息同时,更加注重对象之间的结构,而顺序图这是按时间排序。
d. 活动图(AD)
活动图属于UML图。
活动图放映了系统的行为,帮助从功能上分解系统。
活动图给出了流程的简单表示,展示了系统中动作执行的控制流。
这些控制流表示了一个模型元素(比如用例,包,类,或者操作)的内部行为。
控制流有一个开始,一个或多个
结束。
e. 状态图
状态图是一种UML图。
状态图以时间促发或者时间促发类的状态转换形式提供状态机的图形化表示,类或者组件的公共行为。
状态图假定类已经在另外的图形建模中被识别出来,并且系统状态是有限的。
状态图通过定义执行规则反映了类的行为,这些执行规则精确地说明状态转换过程中动作怎样执行。
5.2 几种建模图形比较
a.BPM相对于UML面向对象建模,它自己有一套完整的技术方法和标准。
并且有很好的支持。
b.对象图和类图相比,对象图能够发现类图中难以发现的一下约束情况。
类图抽象,对象图能够反映一个具体场景。
c.活动图与状态图相比。
状态图关注事件促发活动的转变以执行操作,而活动图并不区分状态,活动以及事件。
d.同协作图比较(比如通信图,顺序图)状态图能够完整表达一个类说可能出现的场景。
在任一时刻,对象必须处于一种特定状态。
6.项目系统设计优缺点分析。
我们看到这几种系统设计方法各有优缺点,有互补性,都从不同角度来分析建模系统。
用不同的方法能够不同的角度来分析系统,以形成一个全面认识。
同时,由于时间精力有限,同时考虑到复杂度,项目系统设计只能采用一种或者几种系统设计方法。
这就设计到方法的挑选。
我们相信没有最好的方法,只有最合适的方法。
这里的最合适不是单方面的建模方法对于一个特定系统的适应,还包括项目小组对各种建模发放的理解掌握。
由于我们是做一个WEB应用系统。
BPM关注业务流程的分解,并不是非常适合。
类图和对象图对于后台的设计非常必要,能够很好的划分后台功能模块。
对于前台的控制和表示层,通信图,顺序图能偶很好的反映这种基于事件交互情况。
状态图说强调的有限状态能够用于前台控制和展示的系统分析。
活动图能很好地反映复杂过程处理,可以在局部使用。
说明:
参考PowerDesigner v15.1帮助文档。
所有图形绘制均采用PowerDesigner v15。