一圖勝千言——軟件開發中的形象思惟與圖的運用

   人生下來的時候不認識文字,但眼睛已經可以接受大量的圖像信息。聽說人眼得到的信息,占人得到總信息的40%以上。形象思惟是人的本能,它大量被運用於人的工做和生活過程當中,一樣也貫穿於軟件開發過程當中。用圖交流是最有效的溝通手段之一,有時候你們爭論半天,到白板前畫幾下就都清楚了。若是你想當一個好的傳播者,軟件設計師,用圖來思惟和表達是必須具有的素質。 程序員

       應該說,我通常主要以邏輯思惟爲主,右腦形象思惟能力不好。這些圖都是從我過去畫的圖中精選出來的,不是特別漂亮,但表達的目的性很強。下面,讓我一一介紹給你們,但願給你們啓發。 架構

 

主要內容: app

  • 邏輯圖
  • 功能模型
  • 系統用例圖
  • 架構圖
  • 座標圖
  • 包邏輯關係圖
  • 領域模型圖
  • UML類圖
  • UML活動圖(泳道圖)
  • UML時序圖
  • UML部署圖
  • UML狀態圖
  • 腦圖
  • 魚骨圖
  • 畫圖工具介紹

 

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"等等關鍵字,一幅幅漂亮的圖就出如今你的面前,讓你靈感倍增啊。我平時作技術講座,不少圖都是這裏搜的。

 

有些圖可能看不太清楚,能夠到個人相冊裏看,那裏圖更多更全。

 

但願和你們一塊兒交流用圖思考和溝通的經驗。

相關文章
相關標籤/搜索