精进学思行 精进学思行 今天这周在和其它部门讨论一个工程问题的时候,对于其中一个细节大家有不同的理解,“空对空”讨论很久无果,直到有人拿出了一张系统架构图,明确指出有争议的点,大家才迅速结束了争论。
对于复杂的系统,其中包含很多要素及其交互关系时,如果没有一个清晰的沟通载体,常常容易出现大家的理解偏差。在系统架构2:分解-管理复杂的利器,我们分享过应对复杂度的一个有效工具是分解,但分解完成后,常常需多方协作完成,这就需要彼此都能够很好理解整个系统或者是自己负责的业务。一种常见的方式是通过文本的方式对系统进行描述,但这种描述常常不够直观和准确,沟通效率偏低。 有更好的方法吗?在画图:一种简单高效的思维和沟通工具中,我们分享过通过画图可以更好沟通和交流,而在系统工程领域,前人已经提出两种有效的描述系统架构的图形化语言——OPM(Object Process Methodology)和SysML(Systems Modeling Language)。这两种模型都是比较精确的语言模型,用图形的方式展示了整个系统的结构,本文先简介OPM。主要从如下几个方面介绍: OPM是什么?OPM的关键要素:对象和过程对象和过程如何连接构成系统? 1 OPM 是什么? OPM 的全称是"Object Process Methodology",直译过来就是“对象过程方法”,是由以色列理工学院的Dov Dori教授研发出来的,它的目的是将面向对象的图表和面向过程的图表综合到一套方法中,更方便对系统架构进行描述。什么是面向对象和面向过程?它们都是来自于计算机软件开发领域。 面向对象,是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为。 面向过程,是把问题分解为题各个步骤,关心的是如何通过步骤的实现来解决问题。
以公交车载客为例,如果是用面向对象的方式描述,就会把整个系统分为公交车,司机,乘客,车站等,然后分析它们在整个系统运作中的互动关系,关注的焦点是对象;而如果是面向过程,则会把整个从过程拆解为“载客-启动-到站”,关注的焦点是过程。 而OPM方法就是把系统架构中涉及到的对象和操作过程整合到一起,而且因为其简洁和准确性,现在已经成为了ISO标准,本文的大部分内容引用的就是《ISO/PDPAS 19450Automation systems and integration — Object-Process Methodology》。 从表现形式上来看,OPM这种系统架构语言主要包括三个部分:对象,过程以及它们之间的连接。以下图为例,就是一个典型的OPM图,它表达的是"树"(对象),通过“成长(过程)”,从"小"的状态变成"大"的状态,图中矩形表示对象,椭圆表示过程,箭头表示它们之间的连接,我们分别对其进行介绍。
2对象和过程
2.1对象(Object)
在OPM中,对象指的是存在,或者将会存在的东西,它可以是物理的,或者信息的。比如一张桌子,一个电脑都算是对象,一段音乐和一部电影也可以算是个对象。在OPM中,常常用矩形表示对象,不同形式的矩形表示不同类型的对象,比如用有阴影的矩形表示物理的对象;同时,对象可以有多种状态,比如上图中的树,有小和大两种状态。
2.2过程(Process)
过程主要指的是可以将一个或者多个对象进行转化的东西。比如上面通过“生长”可以将树从“小”变“大”;通过"烹饪"把"食材"变成"食物";通过"组装"可以把"零件"变成汽车。3连接 连接就是对象和对象,对象和过程,过程和过程之间进行关联。在OPM中主要有两大类连接:程序性连接和结构性连接。3.1程序性连接程序性连接主要用来连接对象和过程,它又可以分为很多类,这里介绍两种典型的:转化连接和使能连接。①转化连接转化包括三种:消耗,创造,影响,从下图可以看到,“吃”会“消耗掉”食物;“采矿”产生了“铜”;“精炼”影响了“铜”。
类似的,我们看到信息类的对象也有这样几种关系:创造,编辑,删除。
②使能连接使能连接,表述的是要使得一个过程发生,需要的对象条件。常常分为两类:人和设备。如下图所示,焊接需要有具备焊接能力的人,加工制造需要机器设备。
3.2 结构性连接 结构性连接主要是连接不同的对象,它可以分为很多类,这里介绍两种典型的:带标签的结构连接和基本结构连接。①带标签的连接如下图,在连接上加上标签,说明对象的关系,比如下图表示的就是发动机和变速箱它们是相互连接的,以及机场和城市的关系等。
②基本结构连接我们常见的部分和整体之间关系就可以用这种连接,只不过这里会用一个实心的三角号来表示一个整体是由那些部分所组成的。
总结如何用一个比较简洁,直观和精确地描述系统架构?OPM就是这样的一种语言,它通程序性和基本结构两类连接将对象和过程整合起来,形成对系统架构的完整认知,便于理解和沟通。 附录: