-
系統架構師是一個既須要掌控總體又須要洞悉局部瓶頸並依據具體的業務場景給出解決方案的團隊領導型人物。
確認和評估系統需求,給出開發規範,搭建系統實現的核心構架,並澄清技術細節、掃清主要難點的技術人員。主要着眼於系統的「技術實現」。所以他/她應該是特定的開發平臺、語言、工具的大師,對常見應用場景能立刻給出最恰當的解決方案,同時要對所屬的開發團隊有足夠的瞭解,可以評估本身的團隊實現特定的功能需求須要的代價。 系統架構師負責設計系統總體架構,從需求到設計的每一個細節都要考慮到,把握整個項目,使設計的項目儘可能效率高,開發容易,維護方便,升級簡單等。
架構師的主要任務不是從事具體的軟件程序的編寫,而是從事更高層次的開發構架工做。他必須對開發技術很是瞭解,而且須要有良好的組織管理能力。能夠這樣說,一個架構師工做的好壞決定了整個軟件開發項目的成敗。
軟件架構師在整個軟件開發過程當中都起着重要的做用,並隨着開發進程的推動而其職責或關注點不斷地變化,在需求階段,軟件架構師主要負責理解和管理非功能性系統需求,好比軟件的可維護性、性能、複用性、可靠性、有效性和可測試性等等,此外,架構師還要常常審查客戶及市場人員所提出的需求,確認開發團隊所提出的設計;在需求愈來愈明確後,架構師的關注點開始轉移到組織開發團隊成員和開發過程定義上;在軟件設計階段,架構師負責對整個軟件體系結構、關鍵構件、接口和開發政策的設計;在編碼階段,架構師則成爲詳細設計者和代碼編寫者的顧問,而且常常性地要舉行一些技術研討會、技術培訓班等;隨着軟件開始測試、集成和交付,集成和測試支持將成爲軟件架構師的工做重點;在軟件維護開始時,軟件架構師就開始爲下一版本的產品是否應該增長新的功能模塊進行決策。
具體要求編輯
首先必須具備豐富的軟件設計與開發經驗,這有助於理解並解釋所進行的設計是如何映射到實現中去。
其次要具備領導能力與團隊協做技能,軟件架構師必須是一個獲得認可的技術領導,能在關鍵時候對技術的選擇做出及時、有效的決定。
第三是具備很強的溝通能力,其實這一點好像什麼角色都最好具有,軟件架構師須要與各路人馬常常打交道,客戶、市場人員、開發人員、測試人員、項目經理、網絡管理員、數據庫工程師等等,並且在不少角色之間還要起溝通者的做用。在技術能力方面,軟件架構師最重要也是最須要掌握的知識是構件通訊機制方面的知識,好比遠程過程調用(RPC,Remote Procedure Call)、JAVA RMI、CORBA、COM/DCOM、各類標準的通訊協議、網絡服務、面對對象數據庫、關係數據庫或者NoSQL數據庫等等,另外,架構師應時刻注意新軟件設計和開發方面的發展狀況,並不斷探索更有效的新方法。開發語言、設計模式和開發平臺不斷很快地升級,軟件架構師須要吸取這些新技術新知識,並將它們用於軟件系統開發工做中。固然,行業的業務知識對軟件架構師也是很重要的,有助於設計出一個知足客戶需求的體系結構,優秀的軟件架構師經常由於要儘快得到對行業業務的理解而必須快速學習而且進行敏銳的觀察。
但做爲一個架構師,在整個軟件系統的開發過程當中是樂趣無窮的,由於這個角色很具備挑戰性,有時須要左右逢源、八面玲瓏,有時又須要果斷堅決、不留情面。在國內,較少軟件企業擁有獨立的架構師,一般一個軟件高手身兼數職,既是項目經理,又是軟件架構師,仍是軟件開發者,有時還要客串一個測試人員,這對軟件的開發週期和產品質量是不利的,有時一我的的觀點立場是很片面的,並且繁重的工做、沉重的壓力會影響一我的的情緒,情緒會影響決策,決策影響結果,因此值得咱們三思然後行。
培養過程編輯
架構師不是經過理論學習能夠搞出來的,不過不學習相關知識那確定是不行的。總結架構師自我培養過程大體以下,僅供參考。
一、架構師胚胎(程序員)
學習的知識是語言基礎、設計基礎、通訊基礎等,應該在大學完成,內容包括java、c、c++、uml、RUP、XML、socket通訊(通訊協議)——學習搭建應用系統所必須的原材料。
二、架構師萌芽(高級程序員)
學習分佈式系統、組建等內容,能夠在大學或第一年工做時間接觸,包括分佈式系統原理、ejb、corba、com/com+、webservice(研究生能夠研究網絡計算機、高性能併發處理等內容)
三、架構師幼苗(設計師)
應該在掌握上述基礎之上,結合實際項目經驗,透徹領會應用設計模式,內容包括設計模式(c++版本、java版本)、ejb設計模式、J2EE構架、UDDI、軟件設計模式等。在此期間,最好可以瞭解軟件工程在實際項目中的應用以及小組開發、團隊管理。
四、軟件架構師的正式成型在於機遇、我的努力和天賦。軟件構架師實際上是一種職位,但一個程序員在充分掌握軟構架師所需的基本技能後,如何獲得這樣的機會、如何利用所掌握的技能進行應用的合理構架、如何不斷的抽象和概括本身的構架模式、如何深刻行業成爲可以勝任分析、構架爲一體的精英人才這可不是每一個人都可以趕上的餡餅……
具有能力編輯
通常來說,系統架構師應該擁有如下幾方面的能力:
1:具有 8 年以上軟件行業工做經驗;
2:具有 4 年以上 C/S 或 B/S 體系結構軟件產品開發及架構和設計經驗;
3:具有 3 年以上的代碼編寫工做經驗;
4:具有豐富的大中型開發項目的整體規劃、方案設計及技術隊伍管理經驗;
5:對相關的技術標準有深入的認識,對軟件工程標準規範有良好的把握;
6:具備面向對象分析、設計、開發能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟練使用 Rational Rose、PowerDesigner 等工具進行設計開發;
7:精通大型數據庫如 Oracle、Sql Server 等的開發;
8:對計算機系統、網絡和安全、應用系統架構等有全面的認識,熟悉項目管理理論,並有實踐基礎;
9:在應用系統開發平臺和項目管理上有深厚的基礎,有大中型應用系統開發和實施的成功案例;
10:良好的團隊意識和協做精神,有較強的內外溝通能力。
架構師的隱形職責
一、爲技術部門提供技術支持
二、在最須要的時刻去攻克最艱鉅的技術壁壘
三、幕後項目經理
四、業務部門與技術部門間的粘合劑
五、業務發展的催化劑
主要分類編輯
軟件架構師
軟件架構師是軟件行業中一種新興職業,工做職責是在一個軟件項目開發過程當中,將客戶的需求轉換爲規範的開發計劃及文本,並制定這個項目的整體架構,指導整個開發團隊完成這個計劃。主導系統全局分析設計和實施、負責軟件構架和關鍵技術決策的人員。
信息架構師
信息架構師即Information Architecture,是一個經常被誤解的職稱。他們是設計者?開發者?管理者?仍是以上所有?咱們在本文將探討信息架構師是作什麼,爲何它和可用性相關,以及在信息架構中須要用到的工具/軟件。咱們也會順便分享一些對於信息架構的初學者來講有用的tweeters(twitter用戶)、書籍和資源。即便您已經對這些內容很是熟悉了,您也可能從中發現一些可能錯過的內容。
網站架構師
網站架構師是網站系統、功能、模塊、流程的設計師,架構師,比如是高樓大廈的設計人員,一般一座大廈在建以前,都先由設計師將藍圖描繪出來,包括其形狀、結構、尺寸、材料等等,而後建築工程師帶領工人們按照藍圖將大廈一層一層地建起來。
發展示狀編輯
在我國,隨着軟件業規模的不斷擴大,軟件人才結構性矛盾將更加突出。國家人事部門預計到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)。這也是軟件行業中最權威的國際認證之一。
架構師技能樹