002 如何用4個圖面拆解小設備需求( 說明 )

002 如何用4個圖面拆解小設備系統需求



結論先講在前面,我們要用4個圖面來捕抓小裝置的需求與行為。簡單來說,可以想像我們要導演一齣戲,那我們要準備的事項大概有:

1. 要找那些演員/ 角色的關係 (靜態)
2. 演員的互動  (動態)
3. 每個角色在劇裡出現的場景/ 不同場景的變化關係
4. 單一場景該演員要做的事情



要描述一個人的行為,可能要由好多的面向來說明。同樣的要描述一個系統的行為也是。隨著系統複雜度的增加,要單純的使用一個流程圖來描述整個裝置的行為就會有點不夠。

以往繪製流程圖的時候常常會有很難描述的事情,或是如果要分工的時候很難去拆分大家的工作跟相對的配合流程,這也是系統變複雜的一種體現。

那是否有一套方法可以用來簡單的拆解系統的行為,然後最後變成可以用的程式架構,最後進一步把程式寫完,然後再可以利用這套圖來進行需求驗證呢?

下面這四種圖的使用剛好可以用來捕捉系統的行為,包含靜態行為與動態行為。整個的使用邏輯跟繪製的順序是這樣的。



  1. 系統方塊圖 (System Block)
  2. 時序圖 (Sequence Diagram)
  3. 狀態圖 (State Diagram)
  4. 流程圖 (Flow Diagram)


系統方塊圖 (System Block)


系統方塊圖是用來描述系統的系統內部成員的圖面,諸如有那些感測器? 那些制動器 ?
用那些介面串聯。然後是否會連接到後端(上層) 的設備,使用那種通訊方式... 等等

系統方塊圖就是這齣戲的演員表,他表現出了整齣戲所有人的關係,下面這張就是所謂的關係圖(引用日本網友的神鵰俠侶關係表),也就是一個靜態的系統描述。


簡單的系統方塊圖範例



在接下來的時序圖中,就是根據不同的情境(場景),這些演員的互動。戲劇會精采,就是劇情與演員互動的恰到好處。系統會運作的好,角色之間的互動就很重要啦。

時序圖 (Sequence Diagram)




狀態圖 (State Diagram)

比較簡單的說明一下狀態圖。以十字路口這個場景來比喻

主要主角有兩個 紅綠燈  跟 行人

當 
紅綠燈      從    (紅燈狀態)   變成     (綠燈狀態 )            的時候
行人          從    (等待狀態)   變成     (可以過馬路狀態) 

驅動(紅燈狀態)變(綠燈狀態)的原因是紅燈時間結束
驅動行人從(等待狀態) 變成 (可以行走狀態) 的原因是  紅燈變綠燈

  



流程圖 (Flow Diagram)

流程圖就是最後的實作,根據每個狀態裡面要處理的事情,去做最小的細分。這個階段就是程式的最小片段。在這裡可以進一步的去構建我們的小裝置程式。





留言

這個網誌中的熱門文章

001 使用Arduino生態建構小型設備程式框架

A001 番外篇 如何處理需要等很久的外部呼叫