架構(gòu)師定義以及應(yīng)具備的能力
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
架構(gòu)師是軟件行業(yè)中一種新興職業(yè),工作職責(zé)是在一個(gè)軟件項(xiàng)目開發(fā)過(guò)程中,將客戶的需求轉(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ù)非常了解,并且需要有良好的組織管理能力??梢赃@樣說(shuō),一個(gè)架構(gòu)師工作的好壞決定了整個(gè)軟件開發(fā)項(xiàng)目的成敗。
架構(gòu)師實(shí)際上就是軟件的總體設(shè)計(jì)師。首席設(shè)計(jì)師就是總設(shè)計(jì)師,打個(gè)通俗的比方:鄧小平是中國(guó)改革開放的總設(shè)計(jì)師,我們用現(xiàn)在的說(shuō)法可以講,鄧小平是中國(guó)改革開放的首席架構(gòu)師。架構(gòu)師的形成一定是在實(shí)踐中積累起來(lái)的,而并非上了幾次培訓(xùn)班,讀了幾本書就可以成功的,架構(gòu)師是在工程實(shí)踐中培養(yǎng)出來(lái)的! 架構(gòu)師也并非是萬(wàn)能的。架構(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)! 近年來(lái),軟件領(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ā)過(guò)程中都起著重要的作用,并隨著開發(fā)進(jìn)程的推進(jìn)而其職責(zé)或關(guān)注點(diǎn)不斷地變化,在需求階段,軟件架構(gòu)師主要負(fù)責(zé)理解和管理非功能性系統(tǒng)需求,比如軟件的可維護(hù)性、性能、復(fù)用性、可靠性、有效性和可測(cè)試性等等,此外,架構(gòu)師還要經(jīng)常審查和客戶及市場(chǎng)人員所提出的需求,確認(rèn)開發(fā)團(tuán)隊(duì)所提出的設(shè)計(jì);在需求越來(lái)越明確后,架構(gòu)師的關(guān)注點(diǎn)開始轉(zhuǎn)移到組織開發(fā)團(tuán)隊(duì)成員和開發(fā)過(guò)程定義上;在軟件設(shè)計(jì)階段,架構(gòu)師負(fù)責(zé)對(duì)整個(gè)軟件體系結(jié)構(gòu)、關(guān)鍵構(gòu)件、接口和開發(fā)政策的設(shè)計(jì);在編碼階段,架構(gòu)師則成為詳細(xì)設(shè)計(jì)者和代碼編寫者的顧問(wèn),并且經(jīng)常性地要舉行一些技術(shù)研討會(huì)、技術(shù)培訓(xùn)班等;隨著軟件開始測(cè)試、集成和交付,集成和測(cè)試支持將成為軟件架構(gòu)師的工作重點(diǎn);在軟件維護(hù)開始時(shí),軟件架構(gòu)師就開始為下一版本的產(chǎn)品是否應(yīng)該增加新的功能模塊進(jìn)行決策。 如何成為優(yōu)秀的軟件架構(gòu)師 顯而易見,在軟件開發(fā)過(guò)程中,一個(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)常打交道,客戶、市場(chǎng)人員、開發(fā)人員、測(cè)試人員、項(xiàng)目經(jīng)理、網(wǎng)絡(luò)管理員、數(shù)據(jù)庫(kù)工程師等等,而且在很多角色之間還要起溝通者的作用。在技術(shù)能力方面,軟件架構(gòu)師最重要也是最需求掌握的知識(shí)是構(gòu)件通信機(jī)制方面的知識(shí),比如遠(yuǎn)程過(guò)程調(diào)用、JAVARMI、CORBA、COM/DCOM、各種標(biāo)準(zhǔn)的通信協(xié)議、網(wǎng)絡(luò)服務(wù)、面對(duì)對(duì)象數(shù)據(jù)庫(kù)、關(guān)系數(shù)據(jù)庫(kù)等等,另外,架構(gòu)師應(yīng)時(shí)刻注意新軟件設(shè)計(jì)和開發(fā)方面的發(fā)展情況,并不斷探索更有效的新方法。開發(fā)語(yǔ)言、設(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ā)過(guò)程中是樂趣無(wú)窮的,因?yàn)檫@個(gè)角色很具有挑戰(zhàn)性,有時(shí)需要左右逢源八面玲瓏,有時(shí)又需要果斷堅(jiān)定不留情面。在國(guó)內(nèi),較少軟件企業(yè)擁有獨(dú)立的架構(gòu)師,通常一個(gè)軟件高手身兼數(shù)職,既是項(xiàng)目經(jīng)理,又是軟件架構(gòu)師,還是軟件開發(fā)者,有時(shí)還要客串一個(gè)測(cè)試人員,這對(duì)軟件的開發(fā)周期和產(chǎn)品質(zhì)量是不利的,有時(shí)一個(gè)人的觀點(diǎn)立場(chǎng)是很片面的,而且繁重的工作、沉重的壓力會(huì)影響一個(gè)人的情緒,情緒會(huì)影響決策,決策影響結(jié)果,所以值得我們?nèi)级笮小?BR> 構(gòu)架師自我培養(yǎng)過(guò)程 構(gòu)架師不是通過(guò)理論學(xué)習(xí)可以搞出來(lái)的,不過(guò)不學(xué)習(xí)相關(guān)知識(shí)那肯定是不行的??偨Y(jié)構(gòu)架師自我培養(yǎng)過(guò)程大致如下,僅供參考。 1、構(gòu)架師胚胎(程序員) 學(xué)習(xí)的知識(shí)是語(yǔ)言基礎(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è)人都能夠遇上的餡餅…… 一般來(lái)講,系統(tǒng)架構(gòu)師應(yīng)該擁有以下幾方面的能力: 1:具備 8 年以上軟件行業(yè)工作經(jīng)驗(yàn); 2:具備 4 年以上 C/S 或 B/S 體系結(jié)構(gòu)軟件產(chǎn)品開發(fā)及架構(gòu)和設(shè)計(jì)經(jīng)驗(yàn); 3:具備 3 年以上的代碼編寫工作經(jīng)驗(yàn); 4:具備豐富的大中型開發(fā)項(xiàng)目的總體規(guī)劃、方案設(shè)計(jì)及技術(shù)隊(duì)伍管理經(jīng)驗(yàn); 5:對(duì)相關(guān)的技術(shù)標(biāo)準(zhǔn)有深刻的認(rèn)識(shí),對(duì)軟件工程標(biāo)準(zhǔn)規(guī)范有良好的把握; 6:對(duì) .Net/JAVA 技術(shù)及整個(gè)解決方案有深刻的理解及熟練的應(yīng)用,并且精通WebService/J2EE 架構(gòu)和設(shè)計(jì)模式,并在此基礎(chǔ)上設(shè)計(jì)產(chǎn)品框架; 7:具有面向?qū)ο蠓治?、設(shè)計(jì)、開發(fā)能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟練使用 Rational Rose、PowerDesigner 等工具進(jìn)行設(shè)計(jì)開發(fā); 8:精通大型數(shù)據(jù)庫(kù)如 Oracle、Sql Server 等的開發(fā); 9:對(duì)計(jì)算機(jī)系統(tǒng)、網(wǎng)絡(luò)和安全、應(yīng)用系統(tǒng)架構(gòu)等有全面的認(rèn)識(shí),熟悉項(xiàng)目管理理論,并有實(shí)踐基礎(chǔ); 10:在應(yīng)用系統(tǒng)開發(fā)平臺(tái)和項(xiàng)目管理上有深厚的基礎(chǔ),有大中型應(yīng)用系統(tǒng)開發(fā)和實(shí)施的成功案例; 11:良好的團(tuán)隊(duì)意識(shí)和協(xié)作精神,有較強(qiáng)的內(nèi)外溝通能力。 該文章在 2010/8/18 15:04:44 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |