人生下來的時候不認識文字,但眼睛已經可以接受大量的圖像信息。聽說人眼得到的信息,占人得到總信息的40%以上。形象思惟是人的本能,它大量被運用於人的工做和生活過程當中,一樣也貫穿於軟件開發過程當中。用圖交流是最有效的溝通手段之一,有時候你們爭論半天,到白板前畫幾下就都清楚了。若是你想當一個好的傳播者,軟件設計師,用圖來思惟和表達是必須具有的素質。 程序員
應該說,我通常主要以邏輯思惟爲主,右腦形象思惟能力不好。這些圖都是從我過去畫的圖中精選出來的,不是特別漂亮,但表達的目的性很強。下面,讓我一一介紹給你們,但願給你們啓發。 架構
主要內容: app
1) 邏輯圖 工具
目的: 表達高層概念之間的關係,通常是給客戶看的。理解這種圖形,通常不須要什麼先驗知識。 spa
表達:通常比較靈活,多以層次結構爲主,畫圖能夠盡情發揮想象力。 設計
重點:抽取主要元素,並描述他們之間的關係。 對象
用處:通常用在解決方案中,向客戶演講的第一張圖可能就是這個。 blog
這幅圖主要採用層次,立體的方式來表達。 繼承
2) 功能模型圖 生命週期
目的:描述軟件系統的功能。
表達:通常以樹形展開。
重點:重點是層次關係。
用處:解決方案和需求描述中。
3)系統用例圖
目的:表達系統的參與者如何與系統進行交互,高層次。
表達:通常用用例框圖,框圖內能夠是用例包或用例,角色能夠繼承,但不該太多,影響圖的可讀性。
重點:系統與干係人的交互,不必定全部功能都列在上面。
用處:通常用在解決方案和需求描述中。
4)架構圖
目的:表達技術元素之間的關係,通常用在解決方案的技術架構中,也是比較高層的。
表達:方式不少,通常是層次模型。
重點:強調主要技術元素及其關係,突出使用的技術。
用處:解決方案,技術講座,技術交流,技術培訓。
這是我之前在公司設想的企業應用平臺的架構圖,主要是概念性的。
5)座標圖(這個名字是本身杜撰的)
目的:用於描述一個元素隨另外一個元素變化的圖。
表達:通常是兩維的,表達方式爲圖表或座標系。
重點:重點表達漸進關係。
用處:通常用於技術演講,解決方案。
表示隨時功能隨多個迭代週期增長
表示隨着階段的進化,技術手段的變化。
6)UML包邏輯關係圖
目的:表達開發設計階段,高層的邏輯關係。
表達:排布要美觀,線不要較差,散亂。
重點:簡單,強調主要依賴關係,不重要的能夠不畫。
用處:設計文檔,技術演講和交流。
7)領域模型圖,這個圖是我認爲最重要的,也是最有用的圖。
目的:表達領域概念和概念之間的關係,和類圖相似,但要高一個層次。
表達:UML元素來表達,注意和類圖相比,這裏通常不會有方法,概念通常用天然語言描述。表達要簡潔。
重點:強調對領域的抽象。
用處:用於團隊內部維持對業務領域的一致的理解,還能夠和客戶交流。
這是我整理的關於權限的領域模型。
稍微有點複雜,關於集裝箱管理的。
8)UML類圖
目的:用於描述設計時,類的關係。
表達:能夠將類分組,提升可理解性。
用處:團隊內部交流,高級程序員給初級程序員指導和設計時。
重點:強調類之間的關係,帶上主要方法和屬性。
9)泳道圖(UML活動圖)
目的:用於表達業務流程,比流程圖更清晰。
表達:泳道之間最好用顏色標識,若是複雜,能夠把相近操做用區域標識。
重點:表達流程的清晰性,可讀性。
用處:描述業務流程,可用於需求,解決方案等。
10)UML序列圖(時序圖)
目的:描述步驟比較多的設計。
表達:步驟儘可能少,多了能夠考慮拆分。
用處:詳細設計。
評註:之前以爲這個圖挺好,如今感受太複雜,通常用不到。
這是一個僞單點登陸的步驟。
這個是有點像協做圖,但比協做圖生動,不少地方都在用這種方式。序列圖和協做圖是等價的。
11)UML部署圖
目的:描述部署架構
用處:系統架構文檔等。
12)狀態圖
目的:描述單個對象生命週期的變化狀況。
用處:對象狀態不少,變換複雜的狀況。
13)腦圖,之前同事推薦的,越用越順手,整理思想太好了,我每次寫文章都用它。
目的:整理零散的思想,造成條理。
用處:寫文章,團隊頭腦風暴,我的也能風暴。
14)魚骨圖,主要用於根本緣由分析的。
其實還有不少圖,好比tuti博客介紹的的影響分析圖 ,也挺有意思的。
下面說說畫圖工具:
a) Visio. 我用的最多的就是它了,幾乎圖都是它畫的,用起來簡單方便,畫UML圖,比通常的專業UML畫圖的都好看(之前主要是跟Rose比)。也看到過不少漂亮的UML圖,不知道用什麼畫的,你們知道的,分享一下啊。
b) MindManager和MindMapper。主要用於畫思惟腦圖的。
c) 另外之前用Together逆向生成不少uml圖,也挺好看的。
d) 聯想的best4c在線繪圖工具 也不錯,有空能夠試一試。
e)前面那些工具都有,你也不必定畫出比較好看並且表達簡單明瞭的圖。最強大的工具出場了,那就是google圖像搜索,你能夠輸入「架構」,「struts2」,"osgi"等等關鍵字,一幅幅漂亮的圖就出如今你的面前,讓你靈感倍增啊。我平時作技術講座,不少圖都是這裏搜的。
有些圖可能看不太清楚,能夠到個人相冊裏看,那裏圖更多更全。
但願和你們一塊兒交流用圖思考和溝通的經驗。