內(nèi)容摘要
從架構(gòu)的本質(zhì),軟件工程,架構(gòu)師職責(zé),成長路徑等方面,介紹什么是架構(gòu),架構(gòu)流程以及架構(gòu)師職責(zé)和成長規(guī)劃。
本篇主題
一、什么是架構(gòu)
二、項目中的角色
三、架構(gòu)師職責(zé)和工作內(nèi)容
四、架構(gòu)工作流
五、架構(gòu)師成長路徑
六、架構(gòu)能力模型
七、擴展知識
八、本章總結(jié)
一、什么是架構(gòu)
架構(gòu)是系統(tǒng)的藍圖,描述了系統(tǒng)的結(jié)構(gòu)和關(guān)鍵決策。包含系統(tǒng)的功能和非功能性需求,如何實現(xiàn)的,系統(tǒng)與子系統(tǒng)是如何劃分的,系統(tǒng)之間如何通信的,系統(tǒng)功能如何設(shè)計的和交互的。
包含重要的架構(gòu)決策,系統(tǒng)組成,功能設(shè)計,技術(shù)選型,成本分析等
架構(gòu)的基礎(chǔ)是設(shè)計滿足客戶需求的系統(tǒng),其中包含功能性,非功能性以及質(zhì)量和約束。
二、項目中的角色
客戶:為系統(tǒng)開發(fā)買單的人,關(guān)注系統(tǒng)的業(yè)務(wù)價值。
用戶:使用系統(tǒng)的人,關(guān)注是否滿足功能需求,提升效率和易用性等。
項目經(jīng)理:負責(zé)項目管理,組織,協(xié)調(diào),溝通等管理工作。
需求分析師:負責(zé)需求相關(guān)工作,比如業(yè)務(wù)分析,需求獲取,需求調(diào)研,需求管理,編寫需求規(guī)格說明書等
系統(tǒng)架構(gòu)師:負責(zé)整體的系統(tǒng)分析,架構(gòu)規(guī)劃,技術(shù)選型,核心功能需求和非功能性需求的架構(gòu)設(shè)計。
系統(tǒng)設(shè)計師:在架構(gòu)模型的基礎(chǔ)上,進行核心功能和非核心功能的詳細設(shè)計。
開發(fā)人員:根據(jù)架構(gòu)設(shè)計和詳細設(shè)計完成編碼和單元測試,達到提測標(biāo)準(zhǔn)。
測試人員:驗證開發(fā)功能是否滿足需求,比如進行功能測試,集成測試,性能測試,壓力測試,安全性測試,回歸測試等。
運維人員:負責(zé)部署環(huán)境搭建,部署和日常維護。
三、架構(gòu)師職責(zé)和工作內(nèi)容
架構(gòu)師在項目中起到承上啟下的作用。建議參與到系統(tǒng)建設(shè)過程的全流程中。
架構(gòu)師的職責(zé)如下:
1)支持售前或需求階段,提供概念架構(gòu)或技術(shù)咨詢;
2)系統(tǒng)分析,架構(gòu)設(shè)計,技術(shù)選型,產(chǎn)出架構(gòu)解決方案;
3)指導(dǎo)項目團隊成員,按照架構(gòu)設(shè)計完成,開發(fā),測試和發(fā)布;
4)開發(fā)或設(shè)計開發(fā)框架,制定編碼/編程規(guī)范,設(shè)計架構(gòu)原型,驗證架構(gòu)原型;
5)組織技術(shù)或架構(gòu)培訓(xùn),把握技術(shù)/架構(gòu)方向;
6)方案平衡(實現(xiàn)與成本),干系人溝通,技術(shù)風(fēng)險管理,技術(shù)領(lǐng)袖等;
按照項目階段,簡述工作內(nèi)容,如下:
售前階段,給予商務(wù)支持,提供系統(tǒng)解決方案和架構(gòu)咨詢。
需求階段,與需求分析師一起,參與需求溝通,協(xié)助完成技術(shù)/業(yè)務(wù)咨詢和需求模型。(好的架構(gòu)師同時是業(yè)務(wù)專家)
架構(gòu)階段:進行系統(tǒng)分析和設(shè)計,進行系統(tǒng)抽象,設(shè)計系統(tǒng)模型,進行技術(shù)原型,開發(fā)架構(gòu)原型等
設(shè)計階段:指導(dǎo)設(shè)計人員完成詳細設(shè)計;
開發(fā)階段:指導(dǎo)開發(fā)人員按設(shè)計實現(xiàn),解決技術(shù)難題。
測試階段:指導(dǎo)測試人員測試工作,特別是非功能需求的測試。
發(fā)布階段:指導(dǎo)部署人員按照部署架構(gòu)進行部署,及時解答或反饋試運行期間的架構(gòu)問題。
其他工作:技術(shù)選型,人員培訓(xùn),技術(shù)指導(dǎo)
四、架構(gòu)工作流程
架構(gòu)工作流程是一個系統(tǒng)如何從需求,架構(gòu)到實現(xiàn)的過程和方法。
良好的架構(gòu),需要架構(gòu)師除具備技術(shù)和架構(gòu)設(shè)計能力外,還要有良好(豐富)的業(yè)務(wù)知識。從軟件工程角度,架構(gòu)師除參與系統(tǒng)的架構(gòu)設(shè)計階段外,還需要參與需求分析階段,開發(fā),測試,發(fā)布,試運行階段。
本節(jié)內(nèi)容,從需求模型和解決方案模型,介紹架構(gòu)工作的流程。
主要包括需求模型,架構(gòu)模型,設(shè)計模型,解決方案模型,四個方面。
需求模型:參與需求分析和需求模型設(shè)計,提供技術(shù)建議或引導(dǎo)需求定義,提供解決方案指導(dǎo)。
主要參與者:需求分析師,業(yè)務(wù)分析師
輔助參與者:架構(gòu)師,設(shè)計師
架構(gòu)模型:根據(jù)需求模型,產(chǎn)出架構(gòu)模型。
1)選擇架構(gòu)對象:關(guān)鍵流程,核心用例和非功能需求;
2)流程建模:梳理需求關(guān)鍵流程,分析業(yè)務(wù)對象,子系統(tǒng),模塊,設(shè)計出系統(tǒng)的交互流程;
3)領(lǐng)域建模:梳理業(yè)務(wù)流程中涉及的對象,子系統(tǒng)模塊,劃分子系統(tǒng),模塊,核心對象,通信機制,事務(wù)模型等
4)輸出總體架構(gòu):根據(jù)領(lǐng)域模型和業(yè)務(wù)流程模型,結(jié)合組件架構(gòu),部署架構(gòu),通信機制,輸出系統(tǒng)體架構(gòu)方案。
5)架構(gòu)驗證:驗證架構(gòu)可用性,可以用評審或架構(gòu)原型的方式,進行評審或?qū)嶋H測試驗證。
主要參與者:架構(gòu)師,架構(gòu)委員會
輔助參與者:系統(tǒng)設(shè)計師,開發(fā)人員,測試人員
設(shè)計模型:在架構(gòu)師指導(dǎo)下,根據(jù)系統(tǒng)架構(gòu),完成各子系統(tǒng),模塊,功能,接口的概要或詳細設(shè)計。
主要參與者:系統(tǒng)設(shè)計師,高級工程師
輔助參與者:架構(gòu)師
解決方案模型:架構(gòu)模型,設(shè)計模型,架構(gòu)原型等統(tǒng)一組成架構(gòu)解決方案。
一個完整的系統(tǒng)架構(gòu)應(yīng)包括:整體架構(gòu),子系統(tǒng),模塊,功能概要或詳細設(shè)計,通信機制,事務(wù)機制,接口定義(內(nèi)部,外部),領(lǐng)域模型,業(yè)務(wù)流程,數(shù)據(jù)庫設(shè)計,中間件,組件架構(gòu),部署架構(gòu)等
系統(tǒng)架構(gòu)解決方案標(biāo)準(zhǔn)
1)滿足系統(tǒng)的功能和非功能性需求;
2)符合項目要求的規(guī)模和成本;
3)滿足開發(fā),測試和發(fā)布要求;
五、架構(gòu)師成長路徑
本質(zhì):學(xué)習(xí),實踐,總結(jié),個人進步和能力成長的過程。
開發(fā)工程師:主要在指導(dǎo)下進行開發(fā)或獨立進行簡單功能開發(fā)。本階段的核心是學(xué)好技術(shù)本身,多做一些項目,勤奮,思考,總結(jié)。這個時期就是學(xué)習(xí),實踐讓自己的技能水平不斷提升??臻e時間可以學(xué)一些設(shè)計模式,軟件工程方面的知識,用于拓