軟體架構與架構師

Liuwei-Sunny發表於2012-09-17

       架構一詞是舶來品,是Architecture的中文翻譯, 其英文的本意是來源於建築行業的建築藝術、建築(風格)和結構,引入到軟體領域裡面來以後,並沒有一個統一的定義。有的人將架構定義為:功能+設計+構造手段,我們可以通俗的理解為:總體設計和總體結構。

  買過房子的人都知道5層以下的樓房一般是磚混結構,而高層和小高層的樓房都是框架結構,樓層越高對結構要求越高。軟體也是一樣,系統越龐大,生命週期越長,結構的重要性就越明顯。因此,隨著人們對軟體工程的深刻理解,將架構進行充分的強調是很自然的,正如人們越來越強調系統的需求分析,從而有了領域工程師和領域專家的概念一樣。其實強調軟體架構的最主要的目的有3個:

  重用:人們希望系統能夠重用以前的程式碼和設計,從而提高開發效率;

  擴充套件:人們希望在系統能夠保持結構的穩定的前提下很容易地擴充功能和效能,希望能夠“以靜制動“;

  簡潔:常言道,簡潔就是美,好的架構一定易於理解,易於學習,易於維護,人們希望能夠通過一個簡潔的架構來把握系統;

  正如我們可以很簡單地用磚混結構和框架結構來概括一幢大樓的結構,專家們也定義了一些術語來定義軟體的架構風格,如層次結構、B/S結構等。軟體架構設計是軟體設計的一部分,是其中的總體設計。軟體的架構設計有一定的創造性,但它畢竟是一個工程活動,架構的設計是有章可循的,有一定的規律性的,是可以重複的,有其穩定的模式。當然,在系統一開始很難可以建立一個完善的穩定的架構。迭代是軟體開發過程中必然的一個過程,這是人的思維活動的一個必然階段。

  軟體架構師實際上就是軟體的總體設計師。首席設計師就是總設計師,打個通俗的比方:鄧小平是中國改革開放的總設計師,我們用現在的說法可以講,鄧小平是中國改革開放的首席架構師。架構師的形成一定是在實踐中積累起來的,而並非上了幾次培訓班,讀了幾本書就可以成功的,架構師是在工程實踐中培養出來的!
       架構師也並非是萬能的。架構師是客戶需求和開發者之間的橋樑。在軟體行業中,一般提到的架構師是技術架構師,而忽略了領域架構師或者講是領域工程師的概念。一個好的領域專家一定是業務領域的架構師,他能夠給出某一個業務領域的架構,我們可以稱為業務架構,只有技術架構和業務架構緊密結合才有可能真正創造出一個好的系統!

       【作者:任甲林,擅長於系統需求分析與設計,有豐富的專案管理經驗、研發管理經驗,曾管理過大型研發隊伍,現任北京賽柏科技有限公司諮詢師。本文轉自:http://dev.yesky.com/SoftChannel/72342376173010944/20050116/1901594.shtml

 

【作者:劉偉 http://blog.csdn.net/lovelion

相關文章