(轉)軟體架構師定義
阿新 • • 發佈:2019-02-06
軟體架構師是軟體行業中一種新興職業,工作職責是在一個軟體專案開發過程中,將客戶的需求轉換為規範的開發計劃及文字,並制定這個專案的總體架構,指導整個開發團隊完成這個計劃。架構師的主要任務不是從事具體的軟體程式的編寫,而是從事更高層次的開發構架工作。他必須對開發技術非常瞭解,並且需要有良好的組織管理能力。可以這樣說,一個架構師工作的好壞決定了整個軟體開發專案的成敗。
軟體架構師實際上就是軟體的總體設計師。首席設計師就是總設計師,打個通俗的比方:鄧xiao平是中國改革開放的總設計師,我們用現在的說法可以講,鄧xiao平是中國改革開放的首席架構師。架構師的形成一定是在實踐中積累起來的,而並非上了幾次培訓班,讀了幾本書就可以成功的,架構師是在工程實踐中培養出來的!
架構師也並非是萬能的。架構師是客戶需求和開發者之間的橋樑。在軟體行業中,一般提到的架構師是技術架構師,而忽略了領域架構師或者講是領域工程師的概念。一個好的領域專家一定是業務領域的架構師,他能夠給出某一個業務領域的架構,我們可以稱為業務架構,只有技術架構和業務架構緊密結合才有可能真正創造出一個好的系統!
架構師,首先讓我想起的是高樓大廈的設計人員,通常一座大廈在建之前,都先由設計師將藍圖描繪出來,包括其形狀、結構、尺寸、材料等等,然後建築工程師帶領工人們按照藍圖將大廈一層一層地建起來。
近年來,軟體領域也漸漸地流行起架構師的角色,特別是對一些大型軟體產品或專案的開發,這一角色顯得很關鍵,因為缺乏好的軟體架構師而導致專案失敗的例子不勝列舉,一個沒有經驗和能力的架構師也會使專案失敗的速度加快。
軟體架構師的重要作用
軟體架構師在整個軟體開發過程中都起著重要的作用,並隨著開發程序的推進而其職責或關注點不斷地變化,在需求階段,軟體架構師主要負責理解和管理非功能性系統需求,比如軟體的可維護性、效能、複用性、可靠性、有效性和可測試性等等,此外,架構師還要經常審查和客戶及市場人員所提出的需求,確認開發團隊所提出的設計;
在需求越來越明確後,架構師的關注點開始轉移到組織開發團隊成員和開發過程定義上;在軟體設計階段,架構師負責對整個軟體體系結構、關鍵構件、介面和開發政策的設計;
在編碼階段,架構師則成為詳細設計者和程式碼編寫者的顧問,並且經常性地要舉行一些技術研討會、技術培訓班等;
隨著軟體開始測試、整合和交付,整合和測試支援將成為軟體架構師的工作重點;
在軟體維護開始時,軟體架構師就開始為下一版本的產品是否應該增加新的功能模組進行決策。
如何成為優秀的軟體架構師
顯而易見,在軟體開發過程中,一個優秀軟體架構師的重要性是不應低估的。那麼如何成為優秀的軟體架構師呢?
首先必須具有豐富的軟體設計與開發經驗,這有助於理解並解釋所進行的設計是如何對映到實現中去。
其次要具有領導能力與團隊協作技能,軟體架構師必須是一個得到承認的技術領導,能在關鍵時候對技術的選擇作出及時、有效的決定。
第三是具有很強的溝通能力,呵呵,其時這一點好象什麼鬼角色都最好具備,軟體架構師需要與各路人馬經常打交道,客戶、市場人員、開發人員、測試人員、專案經理、網路管理員、資料庫工程師等等,而且在很多角色之間還要起溝通者的作用。
在技術能力方面,軟體架構師最重要也是最需求掌握的知識是構件通訊機制方面的知識,比如遠端過程呼叫、JAVARMI、CORBA、COM/DCOM、各種標準的通訊協議、網路服務、面對物件資料庫、關係資料庫等等,另外,架構師應時刻注意新軟體設計和開發方面的發展情況,並不斷探索更有效的新方法。開發語言、設計模式和開發平臺不斷很快地升級,軟體架構師需要吸收這些新技術新知識,並將它們用於軟體系統開發工作中。當然,行業的業務知識對軟體架構師也是很重要的,有助於設計
出一個滿足客戶需求的體系結構,優秀的軟體架構師常常因為要儘快獲得對行業業務的理解而必須快速學習並且進行敏銳的觀察。
上面的描述是枯燥乏味的,但作為一個軟體架構師,在整個軟體系統的開發過程中是樂趣無窮的,因為這個角色很具有挑戰性,有時需要左右逢源八面玲瓏,有時又需要果斷堅定不留情面。在國內,較少軟體企業擁有獨立的架構師,通常一個軟體高手身兼數職,既是專案經理,又是軟體架構師,還是軟體開發者,有時還要客串一個測試人員,這對軟體的開發週期和產品質量是不利的,有時一個人的觀點立場是很片面的,而且繁重的工作、沉重的壓力會影響一個人的情緒,情緒會影響決策,決策影響結果,所以值得我們三思而後行。
構架師自我培養過程
構架師不是通過理論學習可以搞出來的,不過不學習相關知識那肯定是不行的。總結構架師自我培養過程大致如下,僅供參考。
1、構架師胚胎(程式設計師)
學習的知識是語言基礎、設計基礎、通訊基礎等,應該在大學完成,內容包括java、c、c++、uml、RUP、XML、socket通訊(通訊協議)——學習搭建應用系統所必須的原材料。
2、構架師萌芽(高階程式設計師)
學習分散式系統、組建等內容,可以在大學或第一年工作時間接觸,包括分散式系統原理、ejb、corba、com/com+、webservice(研究生可以研究網路計算機、高效能併發處理等內容)
3、構架師幼苗(設計師)
應該在掌握上述基礎之上,結合實際專案經驗,透徹領會應用設計模式,內容包括設計模式(c++版本、java版本)、ejb設計模式、J2EE構架、UDDI、軟體設計模式等。在此期間,最好能夠了解軟體工程在實際專案中的應用以及小組開發、團隊管理。
4、軟體構架師的正是成型在於機遇、個人努力和天賦軟體構架師其實是一種職位,但一個程式設計師在充分掌握軟構架師所需的基本技能後,如何得到這樣的機會、如何利用所掌握的技能進行應用的合理構架、如何不斷的抽象和歸納自己的構架模式、如何深入行業成為能夠勝任分析、構架為一體的精英人才這可不是每個人都能夠遇上的餡餅……
軟體構架師職場概況
如果您今天有幸同全球首富比爾·蓋茨交換名片,您會注意到他的頭銜是微軟公司首席軟體架構師。同樣假如您得到中國首富丁磊的名片,您也會看到他的頭銜是網易公司首席架構師。悄然間,架構師已經成為職場上最讓人羨慕的職位。
在我國,隨著軟體業規模的不斷擴大,軟體人才結構性矛盾將更加突出。國家人事部門預計到2005年我國軟體產業的規模將達到2500億元,全國計算機應用專業人才的需求每年將增加百萬人左右。其中,架構師這樣的專業高階人才每年培養人數全國不過數百名,缺口非常之大,而其中尤其以Java架構師缺口最為明顯。
眾所周知,Java是當前最熱門的軟體開發語言,它具有跨平臺、面向物件、強大的網路功能等特性。你不僅能在電腦上使用Java程式,還能在手機、PDA、家用電器上使用Java程式,甚至舉世矚目的火星車也全部採用Java技術。Java在不到10年時間內已經變成最流行的軟體開發平臺,最新的企業級Java 2.0版本(簡稱:J2EE)也成為企業應用系統上最受歡迎的開發標準。
事實上,全世界範圍內的J2EE架構師都是緊缺的人才,只是中國更加明顯而已。在英國,有經驗的J2EE架構師,目前平均年薪已經飆漲到七萬至十萬英鎊。全球著名的電子商務平臺提供商SilverStream軟體公司的技術服務總監Mark Ashton對J2EE人才的短缺深有感受,他表示許多求職者的履歷表上都有把J2EE列進去,但是仔細檢視或是面試之後就會發現大多數人只是聽過 J2EE,並沒有真正用過這些技術。資訊產業部電子資訊產品管理司副司長丁文武近期也表示,目前我國Java人才還遠遠不夠,至少短缺20萬。特別是隨著大量軟體外包業務進入中國,許多外資或中資軟體企業也開始面臨著高階Java人才奇缺的問題,尤其是熟悉J2EE又能掌握一門相應外語的人才成為了眾多大公司爭搶的物件。
作為Java的發明者和Java開發標準的主要制定者——美國Sun公司對從事Java開發的技術人員提供了三級認證體系,即初級的程式設計師認證(SCJP)、中級的開發員認證(SCJD和SCWD)和高階的架構師認證(SCEA)。這也是軟體行業中最權威的國際認證之一。目前國內已經有針對美國 Sun公司認證體系的培訓,但絕大多數主要針對初級的程式設計師認證,只有極少數專業培訓機構能夠提供三層完整培訓。國家資訊化教育示範基地——上海文華學院(www.wenhua.org)是上海僅有的一家擁有Java自上而下、由淺入深的完善的培訓及認證體系的學院。作為Sun華東區最佳培訓中心,上海文華學院的“對外J2EE國際軟體工程師就業班”課程除了由淺入深,完整地教授整個J2EE體系外,還詳盡地教授開發企業級應用軟體所必須掌握的知識體系,如:作業系統、UML、資料庫、專案管理、軟體測試等。因此,即使你沒有任何軟體開發知識,也能完成這門課程的學習。課程採用專案教學,並培訓計算機英語和第二外語。學員考試通過後,可以獲得美國Sun公司的最高級別國際認證:Sun認證企業級Java 2架構師(SCEA),還推薦就業。學員入學前還可參加免費的“軟體開發潛質測試”,評估自己是否適合開發軟體。
(部分摘自《東方生活報——才富週刊》)
來源:http://www.cnblogs.com/cxd4321/archive/2009/01/09/1372878.html
軟體架構師實際上就是軟體的總體設計師。首席設計師就是總設計師,打個通俗的比方:鄧xiao平是中國改革開放的總設計師,我們用現在的說法可以講,鄧xiao平是中國改革開放的首席架構師。架構師的形成一定是在實踐中積累起來的,而並非上了幾次培訓班,讀了幾本書就可以成功的,架構師是在工程實踐中培養出來的!
架構師也並非是萬能的。架構師是客戶需求和開發者之間的橋樑。在軟體行業中,一般提到的架構師是技術架構師,而忽略了領域架構師或者講是領域工程師的概念。一個好的領域專家一定是業務領域的架構師,他能夠給出某一個業務領域的架構,我們可以稱為業務架構,只有技術架構和業務架構緊密結合才有可能真正創造出一個好的系統!
架構師,首先讓我想起的是高樓大廈的設計人員,通常一座大廈在建之前,都先由設計師將藍圖描繪出來,包括其形狀、結構、尺寸、材料等等,然後建築工程師帶領工人們按照藍圖將大廈一層一層地建起來。
近年來,軟體領域也漸漸地流行起架構師的角色,特別是對一些大型軟體產品或專案的開發,這一角色顯得很關鍵,因為缺乏好的軟體架構師而導致專案失敗的例子不勝列舉,一個沒有經驗和能力的架構師也會使專案失敗的速度加快。
軟體架構師的重要作用
軟體架構師在整個軟體開發過程中都起著重要的作用,並隨著開發程序的推進而其職責或關注點不斷地變化,在需求階段,軟體架構師主要負責理解和管理非功能性系統需求,比如軟體的可維護性、效能、複用性、可靠性、有效性和可測試性等等,此外,架構師還要經常審查和客戶及市場人員所提出的需求,確認開發團隊所提出的設計;
在需求越來越明確後,架構師的關注點開始轉移到組織開發團隊成員和開發過程定義上;在軟體設計階段,架構師負責對整個軟體體系結構、關鍵構件、介面和開發政策的設計;
在編碼階段,架構師則成為詳細設計者和程式碼編寫者的顧問,並且經常性地要舉行一些技術研討會、技術培訓班等;
隨著軟體開始測試、整合和交付,整合和測試支援將成為軟體架構師的工作重點;
在軟體維護開始時,軟體架構師就開始為下一版本的產品是否應該增加新的功能模組進行決策。
如何成為優秀的軟體架構師
顯而易見,在軟體開發過程中,一個優秀軟體架構師的重要性是不應低估的。那麼如何成為優秀的軟體架構師呢?
首先必須具有豐富的軟體設計與開發經驗,這有助於理解並解釋所進行的設計是如何對映到實現中去。
其次要具有領導能力與團隊協作技能,軟體架構師必須是一個得到承認的技術領導,能在關鍵時候對技術的選擇作出及時、有效的決定。
第三是具有很強的溝通能力,呵呵,其時這一點好象什麼鬼角色都最好具備,軟體架構師需要與各路人馬經常打交道,客戶、市場人員、開發人員、測試人員、專案經理、網路管理員、資料庫工程師等等,而且在很多角色之間還要起溝通者的作用。
在技術能力方面,軟體架構師最重要也是最需求掌握的知識是構件通訊機制方面的知識,比如遠端過程呼叫、JAVARMI、CORBA、COM/DCOM、各種標準的通訊協議、網路服務、面對物件資料庫、關係資料庫等等,另外,架構師應時刻注意新軟體設計和開發方面的發展情況,並不斷探索更有效的新方法。開發語言、設計模式和開發平臺不斷很快地升級,軟體架構師需要吸收這些新技術新知識,並將它們用於軟體系統開發工作中。當然,行業的業務知識對軟體架構師也是很重要的,有助於設計
出一個滿足客戶需求的體系結構,優秀的軟體架構師常常因為要儘快獲得對行業業務的理解而必須快速學習並且進行敏銳的觀察。
上面的描述是枯燥乏味的,但作為一個軟體架構師,在整個軟體系統的開發過程中是樂趣無窮的,因為這個角色很具有挑戰性,有時需要左右逢源八面玲瓏,有時又需要果斷堅定不留情面。在國內,較少軟體企業擁有獨立的架構師,通常一個軟體高手身兼數職,既是專案經理,又是軟體架構師,還是軟體開發者,有時還要客串一個測試人員,這對軟體的開發週期和產品質量是不利的,有時一個人的觀點立場是很片面的,而且繁重的工作、沉重的壓力會影響一個人的情緒,情緒會影響決策,決策影響結果,所以值得我們三思而後行。
構架師自我培養過程
構架師不是通過理論學習可以搞出來的,不過不學習相關知識那肯定是不行的。總結構架師自我培養過程大致如下,僅供參考。
1、構架師胚胎(程式設計師)
學習的知識是語言基礎、設計基礎、通訊基礎等,應該在大學完成,內容包括java、c、c++、uml、RUP、XML、socket通訊(通訊協議)——學習搭建應用系統所必須的原材料。
2、構架師萌芽(高階程式設計師)
學習分散式系統、組建等內容,可以在大學或第一年工作時間接觸,包括分散式系統原理、ejb、corba、com/com+、webservice(研究生可以研究網路計算機、高效能併發處理等內容)
3、構架師幼苗(設計師)
應該在掌握上述基礎之上,結合實際專案經驗,透徹領會應用設計模式,內容包括設計模式(c++版本、java版本)、ejb設計模式、J2EE構架、UDDI、軟體設計模式等。在此期間,最好能夠了解軟體工程在實際專案中的應用以及小組開發、團隊管理。
4、軟體構架師的正是成型在於機遇、個人努力和天賦軟體構架師其實是一種職位,但一個程式設計師在充分掌握軟構架師所需的基本技能後,如何得到這樣的機會、如何利用所掌握的技能進行應用的合理構架、如何不斷的抽象和歸納自己的構架模式、如何深入行業成為能夠勝任分析、構架為一體的精英人才這可不是每個人都能夠遇上的餡餅……
軟體構架師職場概況
如果您今天有幸同全球首富比爾·蓋茨交換名片,您會注意到他的頭銜是微軟公司首席軟體架構師。同樣假如您得到中國首富丁磊的名片,您也會看到他的頭銜是網易公司首席架構師。悄然間,架構師已經成為職場上最讓人羨慕的職位。
在我國,隨著軟體業規模的不斷擴大,軟體人才結構性矛盾將更加突出。國家人事部門預計到2005年我國軟體產業的規模將達到2500億元,全國計算機應用專業人才的需求每年將增加百萬人左右。其中,架構師這樣的專業高階人才每年培養人數全國不過數百名,缺口非常之大,而其中尤其以Java架構師缺口最為明顯。
眾所周知,Java是當前最熱門的軟體開發語言,它具有跨平臺、面向物件、強大的網路功能等特性。你不僅能在電腦上使用Java程式,還能在手機、PDA、家用電器上使用Java程式,甚至舉世矚目的火星車也全部採用Java技術。Java在不到10年時間內已經變成最流行的軟體開發平臺,最新的企業級Java 2.0版本(簡稱:J2EE)也成為企業應用系統上最受歡迎的開發標準。
事實上,全世界範圍內的J2EE架構師都是緊缺的人才,只是中國更加明顯而已。在英國,有經驗的J2EE架構師,目前平均年薪已經飆漲到七萬至十萬英鎊。全球著名的電子商務平臺提供商SilverStream軟體公司的技術服務總監Mark Ashton對J2EE人才的短缺深有感受,他表示許多求職者的履歷表上都有把J2EE列進去,但是仔細檢視或是面試之後就會發現大多數人只是聽過 J2EE,並沒有真正用過這些技術。資訊產業部電子資訊產品管理司副司長丁文武近期也表示,目前我國Java人才還遠遠不夠,至少短缺20萬。特別是隨著大量軟體外包業務進入中國,許多外資或中資軟體企業也開始面臨著高階Java人才奇缺的問題,尤其是熟悉J2EE又能掌握一門相應外語的人才成為了眾多大公司爭搶的物件。
作為Java的發明者和Java開發標準的主要制定者——美國Sun公司對從事Java開發的技術人員提供了三級認證體系,即初級的程式設計師認證(SCJP)、中級的開發員認證(SCJD和SCWD)和高階的架構師認證(SCEA)。這也是軟體行業中最權威的國際認證之一。目前國內已經有針對美國 Sun公司認證體系的培訓,但絕大多數主要針對初級的程式設計師認證,只有極少數專業培訓機構能夠提供三層完整培訓。國家資訊化教育示範基地——上海文華學院(www.wenhua.org)是上海僅有的一家擁有Java自上而下、由淺入深的完善的培訓及認證體系的學院。作為Sun華東區最佳培訓中心,上海文華學院的“對外J2EE國際軟體工程師就業班”課程除了由淺入深,完整地教授整個J2EE體系外,還詳盡地教授開發企業級應用軟體所必須掌握的知識體系,如:作業系統、UML、資料庫、專案管理、軟體測試等。因此,即使你沒有任何軟體開發知識,也能完成這門課程的學習。課程採用專案教學,並培訓計算機英語和第二外語。學員考試通過後,可以獲得美國Sun公司的最高級別國際認證:Sun認證企業級Java 2架構師(SCEA),還推薦就業。學員入學前還可參加免費的“軟體開發潛質測試”,評估自己是否適合開發軟體。
(部分摘自《東方生活報——才富週刊》)
來源:http://www.cnblogs.com/cxd4321/archive/2009/01/09/1372878.html