精進學思行?精進學思行?
這周在和其它部門討論一個工程問題的時候,對于其中一個細節(jié)大家有不同的理解,“空對空”討論很久無果,直到有人拿出了一張系統(tǒng)架構(gòu)圖,明確指出有爭議的點,大家才迅速結(jié)束了爭論。
對于復雜的系統(tǒng),其中包含很多要素及其交互關(guān)系時,如果沒有一個清晰的溝通載體,常常容易出現(xiàn)大家的理解偏差。在系統(tǒng)架構(gòu)2:分解-管理復雜的利器,我們分享過應(yīng)對復雜度的一個有效工具是分解,但分解完成后,常常需多方協(xié)作完成,這就需要彼此都能夠很好理解整個系統(tǒng)或者是自己負責的業(yè)務(wù)。一種常見的方式是通過文本的方式對系統(tǒng)進行描述,但這種描述常常不夠直觀和準確,溝通效率偏低。
有更好的方法嗎?在畫圖:一種簡單高效的思維和溝通工具中,我們分享過通過畫圖可以更好溝通和交流,而在系統(tǒng)工程領(lǐng)域,前人已經(jīng)提出兩種有效的描述系統(tǒng)架構(gòu)的圖形化語言——OPM(Object Process Methodology)和SysML(Systems Modeling Language)。這兩種模型都是比較精確的語言模型,用圖形的方式展示了整個系統(tǒng)的結(jié)構(gòu),本文先簡介OPM。主要從如下幾個方面介紹:
OPM是什么?
OPM的關(guān)鍵要素:對象和過程
對象和過程如何連接構(gòu)成系統(tǒng)?
1 OPM 是什么?
OPM 的全稱是"Object Process Methodology",直譯過來就是“對象過程方法”,是由以色列理工學院的Dov Dori教授研發(fā)出來的,它的目的是將面向?qū)ο蟮膱D表和面向過程的圖表綜合到一套方法中,更方便對系統(tǒng)架構(gòu)進行描述。什么是面向?qū)ο蠛兔嫦蜻^程?它們都是來自于計算機軟件開發(fā)領(lǐng)域。
面向?qū)ο?,是把?gòu)成問題的各個事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘一個事物在整個解決問題的步驟中的行為。
面向過程,是把問題分解為題各個步驟,關(guān)心的是如何通過步驟的實現(xiàn)來解決問題。
以公交車載客為例,如果是用面向?qū)ο蟮姆绞矫枋觯蜁颜麄€系統(tǒng)分為公交車,司機,乘客,車站等,然后分析它們在整個系統(tǒng)運作中的互動關(guān)系,關(guān)注的焦點是對象;而如果是面向過程,則會把整個從過程拆解為“載客-啟動-到站”,關(guān)注的焦點是過程。
而OPM方法就是把系統(tǒng)架構(gòu)中涉及到的對象和操作過程整合到一起,而且因為其簡潔和準確性,現(xiàn)在已經(jīng)成為了ISO標準,本文的大部分內(nèi)容引用的就是《ISO/PDPAS 19450Automation systems and integration — Object-Process Methodology》。
從表現(xiàn)形式上來看,OPM這種系統(tǒng)架構(gòu)語言主要包括三個部分:對象,過程以及它們之間的連接。以下圖為例,就是一個典型的OPM圖,它表達的是"樹"(對象),通過“成長(過程)”,從"小"的狀態(tài)變成"大"的狀態(tài),圖中矩形表示對象,橢圓表示過程,箭頭表示它們之間的連接,我們分別對其進行介紹。
2?對象和過程
2.1?對象(Object)
在OPM中,對象指的是存在,或者將會存在的東西,它可以是物理的,或者信息的。比如一張桌子,一個電腦都算是對象,一段音樂和一部電影也可以算是個對象。在OPM中,常常用矩形表示對象,不同形式的矩形表示不同類型的對象,比如用有陰影的矩形表示物理的對象;同時,對象可以有多種狀態(tài),比如上圖中的樹,有小和大兩種狀態(tài)。
2.2?過程(Process)
過程主要指的是可以將一個或者多個對象進行轉(zhuǎn)化的東西。比如上面通過“生長”可以將樹從“小”變“大”;通過"烹飪"把"食材"變成"食物";通過"組裝"可以把"零件"變成汽車。
3?連接
連接就是對象和對象,對象和過程,過程和過程之間進行關(guān)聯(lián)。在OPM中主要有兩大類連接:程序性連接和結(jié)構(gòu)性連接。
3.1?程序性連接
程序性連接主要用來連接對象和過程,它又可以分為很多類,這里介紹兩種典型的:轉(zhuǎn)化連接和使能連接。
①轉(zhuǎn)化連接
轉(zhuǎn)化包括三種:消耗,創(chuàng)造,影響,從下圖可以看到,“吃”會“消耗掉”食物;“采礦”產(chǎn)生了“銅”;“精煉”影響了“銅”。
類似的,我們看到信息類的對象也有這樣幾種關(guān)系:創(chuàng)造,編輯,刪除。
②使能連接?
使能連接,表述的是要使得一個過程發(fā)生,需要的對象條件。常常分為兩類:人和設(shè)備。如下圖所示,焊接需要有具備焊接能力的人,加工制造需要機器設(shè)備。
3.2 結(jié)構(gòu)性連接
結(jié)構(gòu)性連接主要是連接不同的對象,它可以分為很多類,這里介紹兩種典型的:帶標簽的結(jié)構(gòu)連接和基本結(jié)構(gòu)連接。
①帶標簽的連接
如下圖,在連接上加上標簽,說明對象的關(guān)系,比如下圖表示的就是發(fā)動機和變速箱它們是相互連接的,以及機場和城市的關(guān)系等。
②基本結(jié)構(gòu)連接
我們常見的部分和整體之間關(guān)系就可以用這種連接,只不過這里會用一個實心的三角號來表示一個整體是由那些部分所組成的。
總結(jié)
如何用一個比較簡潔,直觀和精確地描述系統(tǒng)架構(gòu)?OPM就是這樣的一種語言,它通程序性和基本結(jié)構(gòu)兩類連接將對象和過程整合起來,形成對系統(tǒng)架構(gòu)的完整認知,便于理解和溝通。
附錄: