[Meetup 筆記] 如何繪畫別人看得懂的軟件架構圖?──Simon Brown 的C4 Model

閱讀時間約 5 分鐘
作為軟件開發者,你試過看不懂別人的架構圖嗎?或是自己嘔心瀝血徹夜畫的架構圖,別人卻看不懂?
講題:The Art of Visualising Software Architecture
講者:Simon Brown (個人網站
時間:2016/01/15 晚上
場地:Odd-e 在上環的新辦公室
上星期五晚出席了一個關於軟件架構視覺化的講座。講者Simon Brown 多年從事系統架構的顧問和培訓工作,也會到世界各地演講,著作有Software Architecture for DevelopersThe Art of Visualising Software Architecture 。其題為”The Conflict Between Agile and Architecture — Myth or Reality?” 的演講在Software Engineering Institute 主辦的SATURN Conference 2013中,獲參予者票選為”Architecture in Practice” Presentation Award 得主。
軟件開發者常要畫架構圖,但沒人看得懂……
講者Simon 首先提到敏捷開發有賴良好溝通,但在他工作和開辦工作坊的經驗中,發覺很多開發者無法有效地講解自己的構想,想傳達的資訊往往像卡在他們的腦袋裡。雖然開發者常畫圖來幫助講解,而軟件工程界也制訂了諸如UML 的建模語言和製圖規範,不過事實上大部分人都覺得UML太複雜所以很少用,尤其是高階的架構設計圖。
於是很多開發者以自己的方式畫了令人不明所以的系統架構圖。有些圖使用了意味不明的顏色和圖形(這個粉紅色的虛線想表示什麼?),有些則過多實作細節(User → UI → Calculation Engine → Data Reader → ……),有些將架構(Architecture)、運行(Execution)、部署(Deployment)等不同面向的內容混在同一幅圖裡(Import Service, cron, UNIX VM instance, …… )。結果這些「設計圖」徒令本來要說明的構想更難理解。
C4 Model — 地圖的類比
針對上述情況,Simon 認為”A common set of abstractions is more important than a common notation.”,提倡C4 Model (Context, Container, Component, Class),將系統架構分成四個層級的抽象化。一個系統會有一個Context 以及各種使用者和其他外部系統,Context 由多個Container構成(例如web app, mobile client, database, etc.),每個Container 包括數個Component ,而Component 由class 組成。
Source: Simon Brown’s website
Simon 以地圖的縮放比例來類比架構圖的層級。地圖愈是放大,看到的地域愈小,但顯示的資訊愈詳細。同樣道理,低層的架構圖應顯示特定模組的細節,而高層的架構圖應隱藏細節,提供較宏觀的概覽。
Source: Simon Brown’s website
構圖原素方面,採用基本的方盒、箭頭線、標籤,再按實際需要自訂添加和附上圖例。Simon 認為毋須拘泥於一套行業通用的製圖規範,個別團隊只要有一套共識的規範即可。就像各式各樣的地形圖、街道圖、觀光圖,呈現資訊的方式並不統一,但只要附上圖例說明,一般人都能夠看得懂。
Simon 表示C4 Model 並非要完全摒棄UML,在描述系統採用的Design Pattern或模組的互動時,他仍然會使用Class Diagram、Sequence Diagram。
個人感想
驟眼看來,可能會覺得C4 Model 並沒有新穎獨到之處,其他建模系統例如UML 、RUP 等等早有目的類近的圖。這會不會是講者「因為現存的一百種繪圖系統不夠好,所以自己又提出第一百零一種」?
但回想UML 會少人用,就是因為規範了太多構圖細節,對高階設計圖來說太過繁瑣,不易記所以容易畫錯,而且繪圖費時,往往需要專門製圖軟件輔助。這其實是種資訊過載,構成受眾的認知負擔。
講者提倡的其實不是又一套製圖規範,而是不要倚賴規範去繪製架構圖,同時注意適當地將架構作不同層級的抽象化去分別製圖。按抽象化程度分別製圖,能配合受眾的需要隱藏不必要的資訊。不倚賴行業規範來繪製的設計圖,代表必須對設計圖能易於被理解有所自覺, 對技術背景深淺不一的團隊成員或客戶,都便於繪畫和閱讀。採用簡單的構圖原素,亦便於隨時在紙上或白板上繪畫,有利多人協作和溝通。
若想進一步了解C4 Model,可參看Simon 的演講投映片
Originally published at cyl-notes.blogspot.com on January 17, 2016.
為什麼會看到廣告
29會員
101內容數
射箭學習筆記,不定期分享弓箭射藝的小知識和學習心得。內容從射箭運動到傳統射藝,涵蓋技巧、科學、競技、歷史、文化等等射箭的不同層面。
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
在數位筆記管理中,標籤混亂是一個常見問題,尤其是當出現許多重複標籤時。例如,“#人力資源”和“#人力資源管理”,“#旅行”和“#旅遊”,“#啟發”和“#啟示”這些類似的標籤會導致分類繁複而臃腫,長期下來不僅無益反而有害。
Thumbnail
第一次看到有人可以把黃金葛用得這麼美,蓬鬆感加上點綴的黃葉,像是一叢美麗的果樹,加上門口可愛樸實的手寫字,看到這種店面,完全無法不進去阿阿阿。 結帳時,忍不住問了老闆娘,店面的植物究竟是如何打造的。 老闆娘說他們沒有刻意打造,那片美麗的黃金葛屋簷,是之前二樓房客種的,他們只是幫忙維護
Thumbnail
🚀前言: 彩蛋在最後,記得看到最後!!! 上週參加了在台北舉辦的 Gamma User Meetup,真的像是打開了一扇通往簡報藝術的新世界。 在這場活動中,講者和使用者分享了 Gamma 在不同領域的應用,而我個人覺得最讓人印象深刻的 3 個領域分別是「產品/專案成果展示」、「教育應用」以及
日更Day107/365 #自我覺察 因為想混一篇日更就直接開一篇了,順便寫一下相關的一些期待與展望XD 這次一開始的自我介紹,小金魚請大家複讀一次正在介紹的稱呼的環節真的很特別,讓人有一種很受歡迎的錯覺,所以才會有這個勇氣走到中間說話,這是個突破。 說起來,真的不太習慣
日更Day105/365 #自我覺察 一天下來好累,但果然就是要參加啊。 我想也不用說太多,因為這次人好多,一到我想,這人真的多,馬上想找舒適圈(訓練營小圈圈),但沒位子就算了。 看到熟悉的面孔感覺親切、看到新加入的人感覺有些不安但又有點期待。 回到一個常見的自我介紹。
从个人发展的角度来讲,我认为每个人都要有一点自己的长处,这个长处并不是人们常说的一些爱好之类的东西,而是个人身上那种相对稀缺的禀赋,或者是几种特质组合起来的独特性能。 这是任何时候都能保持一定竞争力的前提,也是一种不需要卷就能体现出来的个人优势。其实不需要对自己要求很高,只要在自己的领域高于平均,就
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
在數位筆記管理中,標籤混亂是一個常見問題,尤其是當出現許多重複標籤時。例如,“#人力資源”和“#人力資源管理”,“#旅行”和“#旅遊”,“#啟發”和“#啟示”這些類似的標籤會導致分類繁複而臃腫,長期下來不僅無益反而有害。
Thumbnail
第一次看到有人可以把黃金葛用得這麼美,蓬鬆感加上點綴的黃葉,像是一叢美麗的果樹,加上門口可愛樸實的手寫字,看到這種店面,完全無法不進去阿阿阿。 結帳時,忍不住問了老闆娘,店面的植物究竟是如何打造的。 老闆娘說他們沒有刻意打造,那片美麗的黃金葛屋簷,是之前二樓房客種的,他們只是幫忙維護
Thumbnail
🚀前言: 彩蛋在最後,記得看到最後!!! 上週參加了在台北舉辦的 Gamma User Meetup,真的像是打開了一扇通往簡報藝術的新世界。 在這場活動中,講者和使用者分享了 Gamma 在不同領域的應用,而我個人覺得最讓人印象深刻的 3 個領域分別是「產品/專案成果展示」、「教育應用」以及
日更Day107/365 #自我覺察 因為想混一篇日更就直接開一篇了,順便寫一下相關的一些期待與展望XD 這次一開始的自我介紹,小金魚請大家複讀一次正在介紹的稱呼的環節真的很特別,讓人有一種很受歡迎的錯覺,所以才會有這個勇氣走到中間說話,這是個突破。 說起來,真的不太習慣
日更Day105/365 #自我覺察 一天下來好累,但果然就是要參加啊。 我想也不用說太多,因為這次人好多,一到我想,這人真的多,馬上想找舒適圈(訓練營小圈圈),但沒位子就算了。 看到熟悉的面孔感覺親切、看到新加入的人感覺有些不安但又有點期待。 回到一個常見的自我介紹。
从个人发展的角度来讲,我认为每个人都要有一点自己的长处,这个长处并不是人们常说的一些爱好之类的东西,而是个人身上那种相对稀缺的禀赋,或者是几种特质组合起来的独特性能。 这是任何时候都能保持一定竞争力的前提,也是一种不需要卷就能体现出来的个人优势。其实不需要对自己要求很高,只要在自己的领域高于平均,就