如何繪制邏輯圖——邏輯的表達:業務邏輯(7)
編輯導語:邏輯圖是用圖標符號、說明文字以及連接線等,形象化地表達復數要素之間的相互作用關系;前幾篇文章中,作者介紹了關于邏輯圖的三元素,本文作者分享了關于邏輯表達之業務邏輯部分,我們一起來看一下。
前面介紹完了邏輯圖三元素中“要素”的表達方式,下面要介紹邏輯圖三元素之二“邏輯”的表達方式;邏輯表達的說明分為兩篇,第一篇說明“業務邏輯”的表達方式,第二篇說明“數據邏輯”的表達方式。
在語言、文字和圖形這三種表達方式中,前兩種表達方式中的邏輯是需要聽者/觀者用腦去思考、架構,才能知道作者想要表達的邏輯(還不一定正確);但是邏輯圖不同,它的邏輯是直接“畫”出來的,用眼睛可以“看到邏輯”,對錯一目了然。邏輯是邏輯圖中的靈魂、主線,從一張邏輯圖上可以大概看出作者的邏輯思維水平和邏輯表達能力。
一、邏輯的概念
邏輯指的是思維的規律和規則,是對思維過程的抽象。
在對分析與設計中邏輯表達方式的說明之前,先借鑒參考一下不同的領域對邏輯的解釋,它們可以幫助理解邏輯的概念,比如邏輯定義有:
- 邏輯是思維的規律和規則,是對思維過程的抽象;
- 邏輯表明了規律,事物完成的序列;
- 邏輯表現了事物流動的順序規則等。
1)不同領域的邏輯表達
圖1分別給出了語言文字、數字電路以及軟件數據關系三種不同的邏輯表達形式,圖(a)是用文字表達的邏輯,它需要通過“閱讀”的方式獲取邏輯(直接看不出來),圖(b)使用圖形“符號”表達邏輯,圖(c)使用“線條”表達邏輯。
圖1 不同領域的邏輯表達方式
2)業務設計中的邏輯表達
在軟件設計時采用的各類圖形中是否存在著邏輯的表達呢?如果有,那么邏輯的表達形式是什么呢?參見圖2,
首先將表達對象的圖(a)通過拆分得到三個要素A、B、C,如圖(b)所示;將A、B、C三個要素,分別用分層圖、分解圖、流程圖表達它們之間的關系,如圖(c)所示。
通過分層、順序、連線的方法進行關聯,雖然構成三種圖形的要素是一樣的,但是可以看出三個圖具有三種不同含義,可以根據三種圖形解讀如下的信息。
圖2 業務設計用圖的邏輯表達示意
- 分層圖:說明A、B、C在不同的層面上,表達了三者的粒度不同、或是層次不同;
- 分解圖:說明由B和C集成了A,也可以說A的分解是B和C,三者為從屬關系;
- 流程圖:說明A、B、C的處理過程,A必須通過B才能夠到達C,說明了順序關系;
如果能解讀出上面的含義,那就說明“邏輯”不僅存在而且還能“畫”出來,觀者可以通過“觀看”邏輯,從而解讀出作者要傳遞的意圖。
二、業務邏輯的表達方式
表達業務要素之間關系所用到的邏輯表達形式稱之為“業務邏輯”,業務邏輯主要用于繪制業務架構圖。在業務架構圖中表達邏輯最為常用的形式有三種,即:關聯、位置、包含,如圖3所示。
圖3 業務邏輯的表達方式
其中:
- 關聯:利用關聯線、箭頭來連接相關的要素塊,來表達要素塊之間的邏輯關系。
- 位置:利用要素塊的相對位置,來表達它們內在的邏輯關系。
- 包含:利用背景框,表達框內的要素是緊耦合、不同框內要素之間是松耦合關系。
邏輯表達的符號雖然只有三種,但它們卻是邏輯圖中的“靈魂”存在,起著畫龍點睛的作用。
不論邏輯圖中有多少要素,只要邏輯符號使用正確、準確,圖的含義都可以表達得非常清晰;反之,要素的圖標符號再少,如果邏輯不正確,也會發生“圖不達意”的結果。
注:表達業務邏輯形式當然不止這三種,但根據筆者的經驗,如果這三種形式使用得當,基本上就足夠表達一般業務架構圖的邏輯意圖了;相反,如果在表達邏輯上設計出太多的形式,反而會影響邏輯的傳遞與解讀,因為并不是每個邏輯圖的觀者都了解你的邏輯符號是什么,這樣會增加溝通成本。
三、邏輯的作用-業務邏輯的表達
有了邏輯的概念,那么邏輯在實際的業務架構中是如何起作用的呢?
【案例】做一個有關企業“成本過程控制”的方案,已知:構成成本的業務模塊有5個,成本發生過程是由“合同管理”模塊發起的,參見圖4。
圖4 成本過程的控制方案
1)方案的編制方法如下
圖(a):給出的是業務模塊一覽,調整這些模塊的相對位置進行成本控制過程的架構設計,通過調整模塊可以得出2個架構方案:圖(b)是架構方案1、圖(c)是架構方案2。
相同的5個業務模塊形成了2個不同形式的架構圖,下面從邏輯表達方式上(關聯、位置和包含)分析這兩張圖中的不同含義。
2)兩個方案的相同處
要素:二個方案中都包含5個相同的要素:合同管理、人工管理、材料管理、設備管理、成本管理;
邏輯:在2個方案中,下面的業務內容都是相同的。
- 合同管理:作用是簽訂合同、確定合同金額。合同管理是過程起點;
- 成本管理:作用是核算成本、確認最終是否發生了成本超標,成本管理是過程的終點;
- 成本合計:作用是對“人工管理、材料管理和設備管理”三個要素的產生的數值進行合計;
3)兩個方案的不同結論
從方案1、方案2可以清晰地看出來的是:在方案1中,“合同管理”不與“成本管理”直接接觸,但在方案2中兩者發生了接觸,由此帶來了管理要求的變化;這個邏輯的變化的本質是業務事理的不同。
前面的已經說明過:即使圖中的要素的完全一樣,由于邏輯的不同,最后的邏輯圖的意圖也會不同,這里只解讀一下它們的差異點(不限于此):
方案1的解讀:
- 由于合同管理與成本管理不相關,所以簽定合同時不向成本管理發送信息(不通知“合同總金額”);
- 將成本合計(人工管理、材料管理和設備管理)的數據匯總到成本管理即可;
方案2的意圖:
- 由于合同管理與成本管理相關聯,所以簽訂合時要向成本管理送信(通知“合同總金額”);
- 得出的成本合計(人工管理+材料管理+設備管理)的結果,要與存在成本管理的合同總金額進行的對比(在合同簽訂時,合同管理已經向成本管理送信了),如果有超支,要預警;
- 圖形中代表邏輯圖號的使用要非常的謹慎、小心,任何的連接、箭頭方向、擺放位置以及背景框使用的微小誤差,都可能造成邏輯傳遞的錯誤。
擴展說明:
掌握邏輯的概念和方法,在分析工作中也會有非常大的幫助。
舉例,兩名經歷不同的需求分析師面對同一個誰也不熟悉的全新研究對象時,通常大家會預判說:經歷豐富的分析師一定會因為他的“經驗多”而做得更好,另一名年輕的分析師則會因為“經驗不足”而做得差一些。
但是在實踐過程中,有3個項目經驗的分析師與有10個項目經驗的分析師相比,在面對雙方都不熟悉的新研究對象時,如果前者具有很強的利用邏輯分析問題的能力,其做出來的結果不一定就會比以經驗為主的后者差;特別是在項目的工期短、要求精度高的情況下,前者的成功概率可能會高于后者;也就是說從邏輯入手了解研究對象的人上手更快,更有可能在短時間內給出正確的分析結果。
本系列下一篇博文:如何繪制邏輯圖 — 8.邏輯的表達:數據邏輯
作者:李鴻君;《大話軟件工程—需求分析與軟件設計》一書作者。
本文由 @李鴻君 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自?Unsplash,基于 CC0 協議
- 目前還沒評論,等你發揮!