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