系統(tǒng)架構(gòu)師即軟件架構(gòu)師,這是軟件行業(yè)中一種新興職業(yè),工作職責是在一個軟件項目開發(fā)過程中,將客戶的需求轉(zhuǎn)換為規(guī)范的開發(fā)計劃及文本,并制定這個項目的總體架構(gòu),指導(dǎo)整個開發(fā)團隊完成這個計劃。架構(gòu)師的主要任務(wù)不是從事具體的軟件程序的編寫,而是從事更高層次的開發(fā)構(gòu)架工作。他必須對開發(fā)技術(shù)非常了解,并且需要有良好的組織管理能力?梢赃@樣說,一個架構(gòu)師工作的好壞決定了整個軟件開發(fā)項目的成敗。
軟件架構(gòu)師實際上就是軟件的總體設(shè)計師。首席設(shè)計師就是總設(shè)計師,打個通俗的比方:鄧小平是中國改革開放的總設(shè)計師,我們用現(xiàn)在的說法可以講,鄧小平是中國改革開放的首席架構(gòu)師。架構(gòu)師的形成一定是在實踐中積累起來的,而并非上了幾次培訓(xùn)班,讀了幾本書就可以成功的,架構(gòu)師是在工程實踐中培養(yǎng)出來的! 不過,不學(xué)習,缺少理論基礎(chǔ)架構(gòu)師也是成長不起來的。
架構(gòu)師也并非是萬能的。架構(gòu)師是客戶需求和開發(fā)者之間的橋梁。在軟件行業(yè)中,一般提到的架構(gòu)師是技術(shù)架構(gòu)師,而忽略了領(lǐng)域架構(gòu)師或者講是領(lǐng)域工程師的概念。一個好的領(lǐng)域?qū)<乙欢ㄊ菢I(yè)務(wù)領(lǐng)域的架構(gòu)師,他能夠給出某一個業(yè)務(wù)領(lǐng)域的架構(gòu),我們可以稱為業(yè)務(wù)架構(gòu),只有技術(shù)架構(gòu)和業(yè)務(wù)架構(gòu)緊密結(jié)合才有可能真正創(chuàng)造出一個好的系統(tǒng)!
架構(gòu)師,首先讓我想起的是高樓大廈的設(shè)計人員,通常一座大廈在建之前,都先由設(shè)計師將藍圖描繪出來,包括其形狀、結(jié)構(gòu)、尺寸、材料等等,然后建筑工程師帶領(lǐng)工人們按照藍圖將大廈一層一層地建起來。
近年來,軟件領(lǐng)域也漸漸地流行起架構(gòu)師的角色,特別是對一些大型軟件產(chǎn)品或項目的開發(fā),這一角色顯得很關(guān)鍵,因為缺乏好的軟件架構(gòu)師而導(dǎo)致項目失敗的例子不勝枚舉,一個沒有經(jīng)驗和能力的架構(gòu)師也會使項目失敗的速度加快。
軟件架構(gòu)師的重要作用
軟件架構(gòu)師在整個軟件開發(fā)過程中都起著重要的作用,并隨著開發(fā)進程的推進而其職責或關(guān)注點不斷地變化,在需求階段,軟件架構(gòu)師主要負責理解和管理非功能性系統(tǒng)需求,比如軟件的可維護性、性能、復(fù)用性、可靠性、有效性和可測試性等等,此外,架構(gòu)師還要經(jīng)常審查和客戶及市場人員所提出的需求,確認開發(fā)團隊所提出的設(shè)計;在需求越來越明確后,架構(gòu)師的關(guān)注點開始轉(zhuǎn)移到組織開發(fā)團隊成員和開發(fā)過程定義上;在軟件設(shè)計階段,架構(gòu)師負責對整個軟件體系結(jié)構(gòu)、關(guān)鍵構(gòu)件、接口和開發(fā)政策的設(shè)計;在編碼階段,架構(gòu)師則成為詳細設(shè)計者和代碼編寫者的顧問,并且經(jīng)常性地要舉行一些技術(shù)研討會、技術(shù)培訓(xùn)班等;隨著軟件開始測試、集成和交付,集成和測試支持將成為軟件架構(gòu)師的工作重點;在軟件維護開始時,軟件架構(gòu)師就開始為下一版本的產(chǎn)品是否應(yīng)該增加新的功能模塊進行決策。
如何成為優(yōu)秀的軟件架構(gòu)師
顯而易見,在軟件開發(fā)過程中,一個優(yōu)秀軟件架構(gòu)師的重要性是不應(yīng)低估的。那么如何成為優(yōu)秀的軟件架構(gòu)師呢?
首先必須具有豐富的軟件設(shè)計與開發(fā)經(jīng)驗,這有助于理解并解釋所進行的設(shè)計是如何映射到實現(xiàn)中去。
其次要具有領(lǐng)導(dǎo)能力與團隊協(xié)作技能,軟件架構(gòu)師必須是一個得到承認的技術(shù)領(lǐng)導(dǎo),能在關(guān)鍵時候?qū)夹g(shù)的選擇作出及時、有效的決定。
第三是具有很強的溝通能力,呵呵,其時這一點好象什么鬼角色都好具備,軟件架構(gòu)師需要與各路人馬經(jīng)常打交道,客戶、市場人員、開發(fā)人員、測試人員、項目經(jīng)理、網(wǎng)絡(luò)管理員、數(shù)據(jù)庫工程師等等,而且在很多角色之間還要起溝通者的作用。在技術(shù)能力方面,軟件架構(gòu)師重要也是需求掌握的知識是構(gòu)件通信機制方面的知識,比如遠程過程調(diào)用、JAVARMI、CORBA、COM/DCOM、各種標準的通信協(xié)議、網(wǎng)絡(luò)服務(wù)、面對對象數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫等等,另外,架構(gòu)師應(yīng)時刻注意新軟件設(shè)計和開發(fā)方面的發(fā)展情況,并不斷探索更有效的新方法。開發(fā)語言、設(shè)計模式和開發(fā)平臺不斷很快地升級,軟件架構(gòu)師需要吸收這些新技術(shù)新知識,并將它們用于軟件系統(tǒng)開發(fā)工作中。當然,行業(yè)的業(yè)務(wù)知識對軟件架構(gòu)師也是很重要的,有助于設(shè)計
出一個滿足客戶需求的體系結(jié)構(gòu),優(yōu)秀的軟件架構(gòu)師常常因為要盡快獲得對行業(yè)業(yè)務(wù)的理解而必須快速學(xué)習并且進行敏銳的觀察。
上面的描述是枯燥乏味的,但作為一個軟件架構(gòu)師,在整個軟件系統(tǒng)的開發(fā)過程中是樂趣無窮的,因為這個角色很具有挑戰(zhàn)性,有時需要左右逢源八面玲瓏,有時又需要果斷堅定不留情面。在國內(nèi),較少軟件企業(yè)擁有獨立的架構(gòu)師,通常一個軟件高手身兼數(shù)職,既是項目經(jīng)理,又是軟件架構(gòu)師,還是軟件開發(fā)者,有時還要客串一個測試人員,這對軟件的開發(fā)周期和產(chǎn)品質(zhì)量是不利的,有時一個人的觀點立場是很片面的,而且繁重的工作、沉重的壓力會影響一個人的情緒,情緒會影響決策,決策影響結(jié)果,所以值得我們?nèi)级笮小?BR>構(gòu)架師自我培養(yǎng)過程
構(gòu)架師不是通過理論學(xué)習可以搞出來的,不過不學(xué)習相關(guān)知識那肯定是不行的?偨Y(jié)構(gòu)架師自我培養(yǎng)過程大致如下,僅供參考。
1、構(gòu)架師胚胎(程序員)
學(xué)習的知識是語言基礎(chǔ)、設(shè)計基礎(chǔ)、通信基礎(chǔ)等,應(yīng)該在大學(xué)完成,內(nèi)容包括java、c、c++、UML、RUP、XML、socket通信(通信協(xié)議)——學(xué)習搭建應(yīng)用系統(tǒng)所必須的原材料。
2、構(gòu)架師萌芽(高級程序員)
學(xué)習分布式系統(tǒng)、組建等內(nèi)容,可以在大學(xué)或第一年工作時間接觸,包括分布式系統(tǒng)原理、EJB、corba、com/com+、webservice(研究生可以研究網(wǎng)絡(luò)計算機、高性能并發(fā)處理等內(nèi)容)
3、構(gòu)架師幼苗(設(shè)計師)
應(yīng)該在掌握上述基礎(chǔ)之上,結(jié)合實際項目經(jīng)驗,透徹領(lǐng)會應(yīng)用設(shè)計模式,內(nèi)容包括設(shè)計模式(c++版本、java版本)、ejb設(shè)計模式、J2EE構(gòu)架、UDDI、軟件設(shè)計模式等。在此期間,好能夠了解軟件工程在實際項目中的應(yīng)用以及小組開發(fā)、團隊管理。
4、軟件構(gòu)架師的正是成型在于機遇、個人努力和天賦軟件構(gòu)架師其實是一種職位,但一個程序員在充分掌握軟構(gòu)架師所需的基本技能后,如何得到這樣的機會、如何利用所掌握的技能進行應(yīng)用的合理構(gòu)架、如何不斷的抽象和歸納自己的構(gòu)架模式、如何深入行業(yè)成為能夠勝任分析、構(gòu)架為一體的精英人才這可不是每個人都能夠遇上的餡餅……
軟件構(gòu)架師職場概況
如果您今天有幸同全球首富比爾·蓋茨交換名片,您會注意到他的頭銜是微軟公司首席軟件架構(gòu)師。同樣假如您得到中國首富丁磊的名片,您也會看到他的頭銜是網(wǎng)易公司首席架構(gòu)師。悄然間,架構(gòu)師已經(jīng)成為職場上讓人羨慕的職位。
在我國,隨著軟件業(yè)規(guī)模的不斷擴大,軟件人才結(jié)構(gòu)性矛盾將更加突出。國家人事部門預(yù)計到2005年我國軟件產(chǎn)業(yè)的規(guī)模將達到2500億元,全國計算機應(yīng)用專業(yè)人才的需求每年將增加百萬人左右。其中,架構(gòu)師這樣的專業(yè)高級人才每年培養(yǎng)人數(shù)全國不過數(shù)百名,缺口非常之大,而其中尤其以Java架構(gòu)師缺口為明顯。
眾所周知,Java是當前熱門的軟件開發(fā)語言,它具有跨平臺、面向?qū)ο、強大的網(wǎng)絡(luò)功能等特性。你不僅能在電腦上使用Java程序,還能在手機、PDA、家用電器上使用Java程序,甚至舉世矚目的火星車也全部采用Java技術(shù)。Java在不到10年時間內(nèi)已經(jīng)變成流行的軟件開發(fā)平臺,新的企業(yè)級Java 2.0版本(簡稱:J2EE)也成為企業(yè)應(yīng)用系統(tǒng)上受歡迎的開發(fā)標準。
事實上,全世界范圍內(nèi)的J2EE架構(gòu)師都是緊缺的人才,只是中國更加明顯而已。在英國,有經(jīng)驗的J2EE架構(gòu)師,目前平均年薪已經(jīng)飆漲到七萬至十萬英鎊。全球著名的電子商務(wù)平臺提供商SilverSTreAM軟件公司的技術(shù)服務(wù)總監(jiān)Mark AShton對J2EE人才的短缺深有感受,他表示許多求職者的履歷表上都有把J2EE列進去,但是仔細查看或是面試之后就會發(fā)現(xiàn)大多數(shù)人只是聽過J2EE,并沒有真正用過這些技術(shù)。信息產(chǎn)業(yè)部電子信息產(chǎn)品管理司副司長丁文武近期也表示,目前我國Java人才還遠遠不夠,至少短缺20萬。特別是隨著大量軟件外包業(yè)務(wù)進入中國,許多外資或中資軟件企業(yè)也開始面臨著高級Java人才奇缺的問題,尤其是熟悉J2EE又能掌握一門相應(yīng)外語的人才成為了眾多大公司爭搶的對象。
作為Java的發(fā)明者和Java開發(fā)標準的主要制定者——美國Sun公司對從事Java開發(fā)的技術(shù)人員提供了三級認證體系,即初級的程序員認證(SCJP)、中級的開發(fā)員認證(SCJD和SCWD)和高級的架構(gòu)師認證(SCEA)。這也是軟件行業(yè)中權(quán)威的國際認證之一。目前國內(nèi)已經(jīng)有針對美國Sun公司認證體系的培訓(xùn),但絕大多數(shù)主要針對初級的程序員認證,只有極少數(shù)專業(yè)培訓(xùn)機構(gòu)能夠提供三層完整培訓(xùn)!皩ν釰2EE國際軟件工程師就業(yè)班”課程除了由淺入深,完整地教授整個J2EE體系外,還詳盡地教授開發(fā)企業(yè)級應(yīng)用軟件所必須掌握的知識體系,如:操作系統(tǒng)、UML、數(shù)據(jù)庫、項目管理、軟件測試等。
上篇文章:
棗莊本地如何做好網(wǎng)站建設(shè)
下篇文章:
棗莊本地云計算技術(shù)的產(chǎn)生、概念、原理