論軟件架構(gòu)師的角色和培養(yǎng):角色與定位

系統(tǒng)架構(gòu)設(shè)計(jì)師 責(zé)任編輯:q459565833 2015-10-20

添加老師微信

備考咨詢

加我微信

摘要:好的軟件架構(gòu)師不只是一位受到尊敬的資深技術(shù)人員,通常也是策略制定和組織協(xié)調(diào)的高手,稱職的顧問與管理者。這是因?yàn)檐浖軜?gòu)規(guī)劃與設(shè)計(jì)主要是以宏觀的角度切入系統(tǒng)架構(gòu),一般所謂的設(shè)計(jì)則是以微觀的角度切入。軟件工程師和程序員所考慮的是單個(gè)構(gòu)件的功能,而軟件架構(gòu)師必須從全局的角度理解軟件項(xiàng)目的業(yè)務(wù)目的和期望結(jié)果,能夠定義不同的構(gòu)件是如何組裝在一起的[27]。軟件架構(gòu)師規(guī)劃系統(tǒng)的角度主要是從自上而下的方式著手,

    2。軟件架構(gòu)師的角色與定位

    2.1軟件架構(gòu)師的職責(zé)

    好的軟件架構(gòu)師不只是一位受到尊敬的資深技術(shù)人員,通常也是策略制定和組織協(xié)調(diào)的高手,稱職的顧問與管理者。這是因?yàn)檐浖軜?gòu)規(guī)劃與設(shè)計(jì)主要是以宏觀的角度切入系統(tǒng)架構(gòu),一般所謂的設(shè)計(jì)則是以微觀的角度切入。軟件工程師和程序員所考慮的是單個(gè)構(gòu)件的功能,而軟件架構(gòu)師必須從全局的角度理解軟件項(xiàng)目的業(yè)務(wù)目的和期望結(jié)果,能夠定義不同的構(gòu)件是如何組裝在一起的[27]。軟件架構(gòu)師規(guī)劃系統(tǒng)的角度主要是從自上而下的方式著手,而軟件設(shè)計(jì)師則多半從自下而上的方式著手。這種從宏觀/微觀的角度進(jìn)行劃分,在其它學(xué)科也??匆?,如宏觀經(jīng)濟(jì)學(xué)與微觀經(jīng)濟(jì)學(xué)等。這種宏觀角度的本質(zhì),就是軟件架構(gòu)師專業(yè)領(lǐng)域與其它軟件開發(fā)人員最根本的區(qū)別。

    從宏觀的角度,舉凡架構(gòu)規(guī)格與決策、排定架構(gòu)審閱時(shí)程、解決所有架構(gòu)相關(guān)的問題、所有主要技術(shù)決策的核準(zhǔn)、維護(hù)架構(gòu)規(guī)格等都是架構(gòu)設(shè)計(jì)的主要工作。通常在項(xiàng)目一開始,需求與初始分析等工作流程會(huì)產(chǎn)生規(guī)劃的企業(yè)流程與預(yù)期系統(tǒng)完成的功能。有了這些信息,軟件架構(gòu)師就能草擬最初的高層架構(gòu)藍(lán)圖,并列出影響架構(gòu)的可能的因素清單。另外,軟件架構(gòu)師也要擔(dān)負(fù)估算項(xiàng)目成本的職責(zé),評(píng)估項(xiàng)目計(jì)劃對(duì)系統(tǒng)既有基礎(chǔ)結(jié)構(gòu)(infrastructure)與架構(gòu)的沖擊,以及計(jì)算可能付出的成本與所帶來的效益。

    除了上述任務(wù)以外,檢查初期架構(gòu)規(guī)劃設(shè)計(jì)、影響因素與成本,維持與組織架構(gòu)決策的一致性也是架構(gòu)設(shè)計(jì)師的重要職責(zé)之一。這通常要找出制定項(xiàng)目的架構(gòu)決策與其優(yōu)先級(jí)的判斷基準(zhǔn)、定義問題領(lǐng)域、決定可能解決方案的制約條件、確認(rèn)有關(guān)可能解決方法的假設(shè)狀況以及辨識(shí)模塊重用的可能性。軟件架構(gòu)師也必須負(fù)責(zé)確保需求的達(dá)成,以及硬件、軟件、基礎(chǔ)結(jié)構(gòu)、性能、安全性、容量、可用性和系統(tǒng)運(yùn)行、管理與維護(hù)等屬于系統(tǒng)層次相關(guān)技術(shù)之間的協(xié)調(diào)與平衡。在某些關(guān)鍵時(shí)刻,軟件架構(gòu)師也要做出系統(tǒng)與架構(gòu)在協(xié)調(diào)、平衡上種種必須當(dāng)機(jī)立斷但又很難判斷的決策。

    軟件架構(gòu)師必須設(shè)法降低可能的技術(shù)風(fēng)險(xiǎn)對(duì)系統(tǒng)的沖擊。在規(guī)劃初期,技術(shù)風(fēng)險(xiǎn)對(duì)一般人來說通常都是不可知、不可驗(yàn)證也不可測(cè)的。風(fēng)險(xiǎn)大多與系統(tǒng)層次的需求有關(guān),有時(shí)也會(huì)與組織需求有關(guān)。不論任何類型的風(fēng)險(xiǎn),有經(jīng)驗(yàn)的架構(gòu)設(shè)計(jì)師都可在項(xiàng)目的先期也就是構(gòu)建架構(gòu)時(shí)期,預(yù)先列出這些可能的風(fēng)險(xiǎn),然后在后續(xù)的開發(fā)時(shí)期配合開發(fā)人員予以適當(dāng)?shù)靥幚砼c解決。另外,架構(gòu)設(shè)計(jì)師也必須領(lǐng)導(dǎo)開發(fā)團(tuán)隊(duì),保持與其它成員的良好互動(dòng),確保開發(fā)人員是根據(jù)架構(gòu)藍(lán)圖來構(gòu)建系統(tǒng)。

    總之,軟件架構(gòu)師的主要任務(wù)就是規(guī)劃與系統(tǒng)架構(gòu)層次相關(guān)的事務(wù),評(píng)估可能的風(fēng)險(xiǎn)與成本,并有效運(yùn)用有限的人力、物力資源滿足系統(tǒng)層次的需求。優(yōu)秀的軟件架構(gòu)師是保證軟件系統(tǒng)強(qiáng)大生命力的核心人物。專業(yè)架構(gòu)師能夠幫助組織全面研究現(xiàn)有架構(gòu)和設(shè)計(jì)模式、評(píng)估系統(tǒng)設(shè)計(jì)的優(yōu)缺點(diǎn)和可能存在的風(fēng)險(xiǎn),通過一系列的專題指導(dǎo)和具體案例幫助組織掌握先進(jìn)的、成熟的設(shè)計(jì)模式,簡(jiǎn)化復(fù)雜的業(yè)務(wù)邏輯和需求,確定系統(tǒng)最佳方案。在必要的情況下,還可就特定領(lǐng)域或課題,為開發(fā)人員提供定制指導(dǎo)。

    2.2軟件架構(gòu)師與系統(tǒng)分析師的區(qū)別

    在一個(gè)較大規(guī)模的軟件組織里,一般都有項(xiàng)目管理師、軟件架構(gòu)師、系統(tǒng)分析師、軟件設(shè)計(jì)師、測(cè)試工程師、數(shù)據(jù)庫(kù)工程師、程序員、過程改進(jìn)、質(zhì)量保證等不同的職位。在這些職位中,人們?nèi)菀谆煜氖窍到y(tǒng)分析師和軟件架構(gòu)師。對(duì)于系統(tǒng)分析師的角色,業(yè)界有兩種觀點(diǎn),一種是把系統(tǒng)分析師當(dāng)成既懂技術(shù)又懂管理的全能冠軍,另一種是把系統(tǒng)分析師當(dāng)作需求分析師,而架構(gòu)師才是靈魂。那么,系統(tǒng)分析師與軟件架構(gòu)師在角色方面的分配究竟有什么區(qū)別呢?

    當(dāng)軟件規(guī)模比較小時(shí),系統(tǒng)分析師所完成的工作是把真正的業(yè)務(wù)需求(這個(gè)需求不是指客戶簡(jiǎn)單所說的哪一個(gè)功能,而是需要去挖掘的,可能是潛在的但又是系統(tǒng)必需的,條例清楚、邏輯清晰的業(yè)務(wù)功能,而且需求不僅僅只是來自業(yè)務(wù)上的,系統(tǒng)所依賴的運(yùn)行環(huán)境也會(huì)產(chǎn)生一些需求)轉(zhuǎn)換成計(jì)算機(jī)可理解、可實(shí)現(xiàn)、可計(jì)算的模型。但由于現(xiàn)在的系統(tǒng)規(guī)模越來越大,復(fù)雜程度越來越高,而且應(yīng)用領(lǐng)域也越來越廣,所以很難由一個(gè)工種的人來全面完成這項(xiàng)艱巨的任務(wù)。

    在具體的軟件設(shè)計(jì)過程中,現(xiàn)在把它分解為由系統(tǒng)分析師與軟件架構(gòu)師合作共同來完成這一任務(wù)。其中系統(tǒng)分析師側(cè)重的是前一部分的工作,軟件架構(gòu)師側(cè)重的是后一部分的工作。系統(tǒng)分析師的主要工作內(nèi)容包括業(yè)務(wù)需求分析、系統(tǒng)需求分析、可行性分析以及建模等,其特點(diǎn)是更多地與行業(yè)希賽網(wǎng)、用戶溝通,再及時(shí)與項(xiàng)目經(jīng)理(項(xiàng)目管理師)、軟件架構(gòu)師以及老板商討,分析項(xiàng)目具備的特點(diǎn)、成本、風(fēng)險(xiǎn)等,考慮實(shí)現(xiàn)的模型。系統(tǒng)分析師所面臨的往往是有許多不確定性的事件,需要對(duì)這些不確定的事件進(jìn)行分析、總結(jié),使之得出一個(gè)相對(duì)可靠的確定性結(jié)論或?qū)嵤┓桨改P汀?/p>

    軟件架構(gòu)師的主要工作內(nèi)容就是在系統(tǒng)需求比較清晰的條件下進(jìn)行系統(tǒng)總體的架構(gòu)設(shè)計(jì),當(dāng)然它也可能會(huì)涵蓋一些系統(tǒng)分析師的工作內(nèi)容和軟件設(shè)計(jì)師的內(nèi)容,但其特點(diǎn)是確定性的東西會(huì)多一些,力求為系統(tǒng)找到或架構(gòu)一個(gè)最優(yōu)的模型,這里面雖然可能有很多創(chuàng)新的成分,但更重要的是如何充分運(yùn)用現(xiàn)有的各種模型、結(jié)構(gòu)、方案,并根據(jù)項(xiàng)目的特點(diǎn),在各種方案中取長(zhǎng)補(bǔ)短,找到一個(gè)最好的平衡點(diǎn)和結(jié)合點(diǎn),使之最適合當(dāng)前項(xiàng)目的解決方案。所以,軟件架構(gòu)師實(shí)際上是使系統(tǒng)細(xì)致化、完善化,為擁有更好的可靠性提供保障。

    在實(shí)際的職責(zé)上,軟件架構(gòu)師比系統(tǒng)分析師所站的角度更高一些。在大規(guī)模的軟件系統(tǒng)中,系統(tǒng)分析師可能就系統(tǒng)的某個(gè)子系統(tǒng)進(jìn)行分析與設(shè)計(jì),而軟件架構(gòu)師應(yīng)該對(duì)整個(gè)系統(tǒng)的結(jié)構(gòu)負(fù)責(zé)。

    根據(jù)全國(guó)計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試的安排,其中作為高級(jí)工程師級(jí)別的職位有項(xiàng)目管理師、系統(tǒng)分析師和系統(tǒng)架構(gòu)師(這里的系統(tǒng)架構(gòu)主要是指軟件系統(tǒng)的架構(gòu))。教育聯(lián)展網(wǎng)綱對(duì)這三個(gè)職位的要求和職責(zé)定義如下:

    (1)項(xiàng)目管理師:掌握信息系統(tǒng)項(xiàng)目管理的知識(shí)體系,具備管理大型、復(fù)雜信息系統(tǒng)項(xiàng)目和多項(xiàng)目的經(jīng)驗(yàn)和能力;能根據(jù)需求組織制定可行的項(xiàng)目管理計(jì)劃;能夠組織項(xiàng)目實(shí)施,對(duì)項(xiàng)目的人員、資金、設(shè)備、進(jìn)度和質(zhì)量等進(jìn)行管理,并能根據(jù)實(shí)際情況及時(shí)做出調(diào)整,系統(tǒng)地監(jiān)督項(xiàng)目實(shí)施過程的績(jī)效,保證項(xiàng)目在一定的約束條件下到達(dá)既定的項(xiàng)目目標(biāo);能分析和評(píng)估項(xiàng)目管理計(jì)劃和成果;能在項(xiàng)目管理進(jìn)展的早期發(fā)現(xiàn)問題,并有預(yù)防問題的措施;能協(xié)調(diào)項(xiàng)目所涉及的相關(guān)人員。即項(xiàng)目管理師的主要職責(zé)是負(fù)責(zé)整個(gè)項(xiàng)目的實(shí)施和控制,協(xié)調(diào)各種資源(包括組織內(nèi)部資源和客戶資源)。

    (2)系統(tǒng)分析師:熟悉應(yīng)用領(lǐng)域的業(yè)務(wù),能分析用戶的需求和約束條件,寫出信息系統(tǒng)需求規(guī)格說明書,制訂項(xiàng)目開發(fā)計(jì)劃,協(xié)調(diào)項(xiàng)目開發(fā)與運(yùn)行所涉及的各類人員;能指導(dǎo)制訂企業(yè)的戰(zhàn)略數(shù)據(jù)規(guī)劃,組織開發(fā)項(xiàng)目;能評(píng)估和選用適宜的開發(fā)方法和工具;能按照標(biāo)準(zhǔn)規(guī)范編寫系統(tǒng)分析、設(shè)計(jì)文檔;能對(duì)開發(fā)過程進(jìn)行質(zhì)量控制與進(jìn)度控制;能具體指導(dǎo)項(xiàng)目開發(fā)。即系統(tǒng)分析師的主要職責(zé)是獲取并分析用戶的需求,形成規(guī)范化的文檔,指導(dǎo)整個(gè)項(xiàng)目的開發(fā),需要與客戶不斷的交流,熟悉應(yīng)用領(lǐng)域的業(yè)務(wù)。

    (3)系統(tǒng)架構(gòu)師:能夠根據(jù)用戶需求,結(jié)合用戶應(yīng)用領(lǐng)域的實(shí)際情況,設(shè)計(jì)正確、合理的軟件構(gòu)架,維護(hù)系統(tǒng)構(gòu)件及其接口,并確保系統(tǒng)構(gòu)架具有良好的性能;能夠?qū)?xiàng)目進(jìn)行系統(tǒng)構(gòu)架級(jí)的描述、分析、設(shè)計(jì)與評(píng)估;能夠按照相關(guān)標(biāo)準(zhǔn)編寫相應(yīng)的設(shè)計(jì)文檔;具有扎實(shí)的理論功底、廣博的知識(shí)面,能夠與系統(tǒng)分析師、項(xiàng)目管理師相互協(xié)作、配合工作。即系統(tǒng)架構(gòu)師的職責(zé)是負(fù)責(zé)整體的、宏觀的系統(tǒng)設(shè)計(jì),重點(diǎn)在架構(gòu)級(jí)別上。還要對(duì)架構(gòu)進(jìn)行描述、分析和評(píng)估,屬于純技術(shù)性的工作。


相關(guān)推薦:

備考必看:軟考錦囊

考前必看!軟考考前良好心態(tài)調(diào)節(jié)方法

計(jì)算機(jī)軟考信息系統(tǒng)項(xiàng)目管理師考試建議

作為一名程序員,如何讓自己的工作更有效率


更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢?cè)诰€老師!