_________________________________________________________________
享用世界上最大的电子邮件系统— MSN Hotmail。 http://www.hotmail.com
既然把整个话题放在"企业工程"上谈,谈谈"企业建模",以及它和你在这篇文章中谈的业务建模之间的关系。
最后提出的小结观点:
"作者的思路是:建立和发展真正的业务建模方法,应明确确立以企业为建模对象,该更多地从企业管理理论中去吸收营养,在反思业务建模的本质需求和信息系
统建模方法的异同处之后,对信息系统建模方法进行整合性吸收,继承先进的面向对象建模理念,进一步发展和改进面向对象的建模技法,使其更加适应对企业对
象的既信息化又人性化的综合表达。"
我觉得非常好。但既然以企业为建模对象,还是应该叫"企业建模",结合之前讨论的话题,它首先是一种"业务性质的模型"
(这仅仅是为了相对于"计算模型"而言,但内容不仅是"业务模型")
至于后者,"面向对象建模理念",这是值得探讨的。国外企业建模研究后期应该有过不少"面向对象的企业建模"的探讨,但似乎没有什么真正的建树,反而是
可以与"结构化需求分析"相比的"过程分析技术"(从工作流到当前的业务过程建模)实实在在地发展起来了。
还有,"以企业为研究对象的建模概念",并不是在90年代"企业再造工程"和"业务再造工程"这些东西兴起之后。现在的业务(过程)建模的发展和传统的
企业建模背景、历史不同。值得关注的是,它们应该要融合,现在也有了这样的视野的交融和尝试,但也许还缺乏些实质性的东西吧。
> 享用世界上最大的电子邮件系统- MSN Hotmail。http://www.hotmail.com
数据流程图流程:
以数据视图为中心,它是以提交件的结果为流程节点的划分,是以被加工对象为统一线索。与屏幕界面为单元有着天然联系,所以最贴近技术实现。报表
实现系统就是典型例子。它优点是数据信息明确,因为重结果,所以相对简练。也正因为如此,它并不长于表达真正的业务流程,它很像工作分解编码WBS,因
为它只是表达了输出的提交件。它暗含了一种输入/输出的模型,动词就是处理逻辑,完成从输入到输出的转换,是一个动词。
用例流程:
以主动者要实现的有价值事件活动为中心,它是统一纽带。它的语言特点是:引出了一组对象(参与者),一组动词和一组数据表单。并且把动词和数据图分
配到各个对象中。它并不像传统的结构化设计那样,有一个统一的程序主体。这个统一的主体(如同上帝)是由动词构成的业务逻辑。有的只是对象之间的互交消
息。它的长处是可以表达一个互交过程中复杂的信息关系。比如在一个自动取款业务过程中,取款机对象得到的输入指令(由提款人给出),而提款人得到的结算
单,它们各得其所。它更善于表达互交过程所谓的消息,触发信息,而这是业务逻辑重要的内容,却是数据流程图所弱于表达的。
结构化程序流程:
结构化程序设计流程,好象正是工作流引擎来继承,它类似BASIC语言中规定了程序中语句的顺序号,有一个统一的流程。面向对象的用例模型,它的实
现虽然也有时序图,但是这个时序主要描述的是对象之间的触发关系。面向对象模型似乎没有独立的统一的程序流程概念,而只剩下响应触发消息的所谓脚本了。
等于把一个统一流程分布处理了。排除了存在一个执行统一流程的上帝,而只是分布为各个对象的触发了。结构化流程是由一系列动词联系而成的,它对所有的对
象进行状态更改,从而完成了它的程序语义。所以,从描述业务逻辑的流程看,还是结构化的流程表达的最完整自然?因为它是独立的统一的。它的结构主结构是
顺序、分支与循环。
临时想的,不知说出了我的意思否?
> > 享用世界上最大的电子邮件系统- MSN Hotmail。http://www.hotmail.com- 隐藏被引用文字 -
>
> - 显示引用的文字 -
>From: "yus...@gmail.com" <yus...@gmail.com>
>To: Enterprise Engineering <Enterprise-...@googlegroups.com>
>Subject: [EEG] Re: 大家好,和余山同感
>Date: Fri, 17 Aug 2007 00:29:21 -0700
>
> 为有助于讨论,也是理清自己的思路,这里试图分析一下几种技术方案的语
言特点,求教于各位高手:
>
>数据流程图流程:
> 以数据视图为中心,它是以提交件的结果为流程节点的划分,是以被加工对象为
_________________________________________________________________
与联机的朋友进行交流,请使用 Live Messenger;
http://get.live.com/messenger/overview
> 与联机的朋友进行交流,请使用 Live Messenger;http://get.live.com/messenger/overview- 隐藏被引用文字 -
>
> - 显示引用的文字 -
至于作为一种企业架构/规划管理领域的系统分析的思想,则实际上处于SA的黄金时期。
对OOA的探索明显受到太多"软件语境"的影响,所以限制了OO思想的真正发挥。
On 8月24日, 下午2时57分, "ba bituo" <babi...@hotmail.com> wrote:
> 和余山讨论激发灵感:
> 可以用一句话来表达面向对象方法和结构化方法的某个区别:
> 面向对象方法总是用适当的观察尺度来观察被观察的对象,而结构化方法则使用某种观
> 察尺度来观察该尺度下最小可观察的对象。
> 比如,肉眼最小可观察到沙子,结构化方法就只会看到一粒粒的沙子,面向对象方法看
> 到的会是一个沙雕。这并不妨碍面向对象方法可以使用更小的尺度,比如放大镜来观察
> 每一粒沙子。但结构化方法是难以看到沙雕的,它可能会把沙雕看成一块大石头,而且
> 是改用更大的观察尺度才能看到的。
> 我个人认为主动性和被动性并不是面向对象思想的精髓,在编程中,用结构化方法完全
> 可以编写出对象模型所谓的主动性或状态变化。但作为一种分析方法乃至余山所说的世
> 界观,我认为面向对象方法最大的突破还是实现了静态因素和动态因素的有限元混合。
> 这里,静态因素是数据,动态因素是计算或处理。有限元混合的意思是:从微观最小的
> 粒度就开始混合,并且递归聚集到宏观尺度。这种混合,就是实现高层语义的封装,也
> 许就是所谓的突现。这和结构化的手法是一样的,不一样的只是把两种因素在很最小尺
> 度上就混合起来了,带来的却是更大可能的非线性特征。
> 用面向对象方法看人体细胞活动会从人体系统活动,组织活动再到细胞活动地看,而结
> 构化方法可以直接描述细胞的活动。而且结构化方法只能看到细胞活动,它会把组织活
> 动,系统活动看成是细胞模块的活动。这并不妨碍两种方法看到同样的图景,但会影响
> 看者对看到的图景得到不同的理解。显然,面向对象方法得到的理解更丰富。
>
用例图:
正像嘉文所说,用例图的目的并不是表达流程,而是系统对外服务的门。是系统存在
的真正价值所在。所以,它的焦点是用户和它的意图(价值目标)。但是,为什么在
用例场景中有时要表达那些系统内部的并不外现的内容呢?说到底,那是表达了用户
在实现这个目标的过程中涉及到了其它相关利益者。虽然它们不在场,但是它们的互
交契约仍在起作用。所以,用例图进一步表达了人物之间的契约关系,可以视为是静
态关系,而不是流程(不含真正的时间序列)。
状态图:
焦点在一个对象上,一个对象响应多个动词(消息),可以表达实时性。
协作图:
焦点在一个动词(脚本),多个对象围绕一个动词,即可表达静态协作关系,也可以
更进一步表达各个角色的协作顺序关系。
顺序图:
多个对象之间的交互关系。多个对象,多个动词。提供最完整的对象模型:刺激响应
等待模型,无头无尾,是一个全局表达模式。
刺激响应模型是在表达顺序呢还是在表达间断呢?我看更在表达等待中的间断状态。
所以说是个等待响应的模型。正是在这里,它与流程方法关注的不同,它不是自动执
行到底的,或者说凡是可以自动执行到底的活动脚本并不是我们表达的重点,那是DFD流程图的重点。我们可以反过来问,为什么不继续执行活动了呢?因为我
们在等待信号。这也是个对象适应环境刺激的模型。
DFD数据流图:
表达了一个动词的内在含义,即定义了传递函数:将输入转换为输出的算法。
活动图:
以一个完整业务中多个动词之间的起始终止关系为焦点,是真正意义上的业务流程图
。因为它可以表达活动的转移条件,并行活动。特别重视一个活动的起始与终止。与
DFD数据流程图相比,它关注的是单个活动外部之间的逻辑关系,而不是这个活动的内部含义。所以它适合作为工作流的描述模型。特别是活动图同时也画出活
动的发起者,即所谓的泳道图,这正是工作流的元语言模型所要求的。
健壮图:在反映业务需求的用例图和系统实现的顺序图之间。也就是把每个用例落实
为所谓三层结构:边界对象,控制对象和实体对象(数据库)。
这就是嘉文所说的软件对象。软件对象与业务对象是两个不同的概念,软件对象中有
许多不符合自然语言的东西。比如,一个表单是个对象,它常把对它的操作动作定义
为它的行为方法,比如所谓的CUDI等,这是颠倒了主语与宾语,混淆了主动与被动,特别让业务人员别扭,是要去对象化的重要原因。真正的业务需求分析语
言,应该去掉这些中间对象,留下外部对象,如人物,还原实体对象的被动性。现在的工作流模型元语言就区分为:动作提供者,动作活动,输入输出数据(被处
理对象),动作控制信息四个部分。
比较系统论的状态方程
如果把对象主动发出的控制信息(消息)与对象被动状态相联系,同时关注多个对象
的状态转移图,从而形成封闭的面向对象的刺激反应模型,把状态图,顺序图和DFD数据流程图表达的有机融为一体。
这个模型就是有限自动机模型,也就是系统论中大名鼎鼎的状态方程。在这里,状态
转移函数既表达了DFD的传递函数,也表达了对象的状态图,而多个对象之间的刺激响应的封闭关系,则表达了顺序图面向对象的总体模型。
附录:有限自动机的数学定义:
一个有限自动机M是指一个五元组:M = (Q, I, O, δ, F),
其中Q表示状态,I是输入,O为输出,δ是状态转移函数,
F是状态到输出O的映射函数。
则有:
Qn+1= δ(Qn , In), 即下一时刻的状态值Qn+1由前一时刻的状态Qn与前一时刻的
输入In共同决定。
比如一般可用矩阵来表达δ转移函数:Qn+1= Qn× In 。
On= F(Qn), 即此刻的输出值是由此刻的状态值惟一决定,注意与当前的输入值并无
直接关系。
On 8月24日, 下午2时57分, "ba bituo" <babi...@hotmail.com> wrote:
> 和余山讨论激发灵感:
> 可以用一句话来表达面向对象方法和结构化方法的某个区别:
> 面向对象方法总是用适当的观察尺度来观察被观察的对象,而结构化方法则使用某种观
> 察尺度来观察该尺度下最小可观察的对象。
> 比如,肉眼最小可观察到沙子,结构化方法就只会看到一粒粒的沙子,面向对象方法看
> 到的会是一个沙雕。这并不妨碍面向对象方法可以使用更小的尺度,比如放大镜来观察
> 每一粒沙子。但结构化方法是难以看到沙雕的,它可能会把沙雕看成一块大石头,而且
> 是改用更大的观察尺度才能看到的。
> 我个人认为主动性和被动性并不是面向对象思想的精髓,在编程中,用结构化方法完全
> 可以编写出对象模型所谓的主动性或状态变化。但作为一种分析方法乃至余山所说的世
> 界观,我认为面向对象方法最大的突破还是实现了静态因素和动态因素的有限元混合。
> 这里,静态因素是数据,动态因素是计算或处理。有限元混合的意思是:从微观最小的
> 粒度就开始混合,并且递归聚集到宏观尺度。这种混合,就是实现高层语义的封装,也
> 许就是所谓的突现。这和结构化的手法是一样的,不一样的只是把两种因素在很最小尺
> 度上就混合起来了,带来的却是更大可能的非线性特征。
> 用面向对象方法看人体细胞活动会从人体系统活动,组织活动再到细胞活动地看,而结
> 构化方法可以直接描述细胞的活动。而且结构化方法只能看到细胞活动,它会把组织活
> 动,系统活动看成是细胞模块的活动。这并不妨碍两种方法看到同样的图景,但会影响
> 看者对看到的图景得到不同的理解。显然,面向对象方法得到的理解更丰富。
>
> ...
>
> 阅读更多 - 隐藏被引用文字 -
>
> - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -
_________________________________________________________________
与世界各地的朋友进行交流,免费下载 Live Messenger;
http://get.live.com/messenger/overview