架構(gòu)師的職責(zé)及工作描述_第1頁
架構(gòu)師的職責(zé)及工作描述_第2頁
架構(gòu)師的職責(zé)及工作描述_第3頁
架構(gòu)師的職責(zé)及工作描述_第4頁
架構(gòu)師的職責(zé)及工作描述_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、架構(gòu)師的職責(zé)及工作描述什么叫架構(gòu)師系統(tǒng)分析員屬于Analyst角色組合,與其相比,架構(gòu)師則是屬于Developer角色組里的一個(gè)角色,一個(gè)非常重要的角色。架構(gòu)師的職責(zé)及工作描述Thesoftwarearchitectroleisresponsibleforthesoftwarearchitecture,whichineludesthekeytechnicaldecisionsthatconstraintheoveralldesignandimplementationfortheproject.負(fù)責(zé)在整個(gè)項(xiàng)目中對(duì)技術(shù)活動(dòng)和工件進(jìn)行領(lǐng)導(dǎo)和協(xié)調(diào)。構(gòu)架設(shè)計(jì)師要確立每個(gè)構(gòu)架視圖的整體結(jié)構(gòu):視圖的詳細(xì)組織

2、結(jié)構(gòu)、元素的分組以及這些主要分組之間的接口。因此,與其他角色相比,構(gòu)架設(shè)計(jì)師的見解重在廣度,而不是深度。架構(gòu)師負(fù)責(zé)理解系統(tǒng)的業(yè)務(wù)需求,并創(chuàng)建合理、完善的系統(tǒng)體系架構(gòu)。架構(gòu)師也負(fù)責(zé)通過軟件架構(gòu)來決定主要的技術(shù)選擇。這典型的包括識(shí)別和文檔化系統(tǒng)的重要架構(gòu)方面,包括系統(tǒng)的需求、設(shè)計(jì)、實(shí)現(xiàn)和部署視圖。Thesoftwarearchitecthasoverallresponsibilityfordrivingthemajortechnicaldecisions,expressedasthesoftwarearchitecture.Thistypicallyincludesidentifyinganddo

3、cumentingthearchitecturallysignificantaspectsofthesystem,includingrequirements,design,implementation,anddeploymentviewsofthesystem.Thearchitectisalsoresponsibleforprovidingrationaleforthesedecisions,balancingtheconcernsofthevariousstakeholders,:注:這就是說架構(gòu)師要在大家意見不統(tǒng)一的時(shí)候給出一個(gè)基本的并且這些人都比較能接受的基本意見,這就是要求架構(gòu)師要有

4、一定的判斷力和決定能力以及體現(xiàn)核心作用、核心力量和支柱的這樣一種領(lǐng)導(dǎo)力。drivingdowntechnicalrisks,andensuringthatdecisionsareeffectivelycommunicated,validated,andadheredto.:注:架構(gòu)師一定要具備降低風(fēng)險(xiǎn)(當(dāng)然主要是技術(shù)方面)的能力,以及他的這種架構(gòu)思想切實(shí)得到貫徹和落實(shí)的能力。建模軟件應(yīng)用和方案,并創(chuàng)建和管理可重用的模式和模型;維護(hù)在我們的軟件系統(tǒng)中的系統(tǒng)組件和他們的接口。建模信息架構(gòu),創(chuàng)建和維護(hù)組織技術(shù)設(shè)施的布局,并提供滿足業(yè)務(wù)需求的技術(shù)觀點(diǎn)和遠(yuǎn)景。架構(gòu)師的技能要求和能力素養(yǎng)Insummary

5、,thesoftwarearchitectmustbewell-rounded,possesmaturity,vision,andadepthofexperieneethatallowsforgraspingissuesquicklyandmakingeducated,criticaljudgmentintheabseneeofcompleteinformation.Morespecifically,thesoftwarearchitect,ormembersofthearchitectureteam,mustcombinetheseskills:構(gòu)架設(shè)計(jì)師必須多才多藝、成熟練達(dá)、洞察力強(qiáng)、經(jīng)

6、驗(yàn)豐富。這樣,他才能在無法獲得完整信息的情況下迅速領(lǐng)會(huì)問題并根據(jù)經(jīng)驗(yàn)作出審慎的判斷。更準(zhǔn)確地說,構(gòu)架設(shè)計(jì)師(或者構(gòu)架團(tuán)隊(duì)的成員)必須兼具以下技能:Experieneeinboththeproblemdomain,throughathoroughunderstandingoftherequirements,andthesoftwareengineeringdomain.Ifthereisateam,thesequalitiescanbespreadacrosstheteammembers,butatleastonesoftwarearchitectmustprovidetheglobalvisi

7、onfortheproject.經(jīng)驗(yàn):既包括在問題領(lǐng)域的經(jīng)驗(yàn)(通過徹底了解需求),也包括在軟件工程領(lǐng)域的經(jīng)驗(yàn)。對(duì)于一個(gè)構(gòu)架團(tuán)隊(duì),這些素質(zhì)要求可由各團(tuán)隊(duì)成員來分別承擔(dān),但其中至少要有一名構(gòu)架設(shè)計(jì)師能夠把握項(xiàng)目的全局。Leadershipinordertodrivethetechnicaleffortacrossthevariousteams,andtomakecriticaldecisionsunderpressureandmakethosedecisionsstick.Tobeeffective,thesoftwarearchitectandtheprojectmanagermustworkc

8、loselytogether,withthesoftwarearchitectleadingthetechnicalissuesandtheprojectmanagerleadingtheadministrativeissues.Thesoftwarearchitectmusthavetheauthoritytomaketechnicaldecisions.領(lǐng)導(dǎo)才能:能夠推動(dòng)各個(gè)團(tuán)隊(duì)的技術(shù)進(jìn)展,并能在壓力下作出關(guān)鍵性的決策然后將其貫徹到底。要提高效率,構(gòu)架設(shè)計(jì)師和項(xiàng)目經(jīng)理必須緊密協(xié)作。構(gòu)架設(shè)計(jì)師主要負(fù)責(zé)解決技術(shù)問題,項(xiàng)目經(jīng)理主要負(fù)責(zé)解決行政管理問題。構(gòu)架設(shè)計(jì)師必須有權(quán)在技術(shù)問題上作出決定。Co

9、mmunicationtoearntrust,topersuade,tomotivate,andtomentor.Thesoftwarearchitectcannotleadbydecree,onlybytheconsentoftherestoftheproject.Inordertobeeffective,thesoftwarearchitectmustearntherespectoftheprojectteam,theprojectmanager,thecustomer,andtheusercommunity,aswellasthemanagementteam.溝通:能夠贏得他人的信任,以

10、對(duì)其進(jìn)行說服、激勵(lì)和指導(dǎo)。構(gòu)架設(shè)計(jì)師不能靠命令進(jìn)行領(lǐng)導(dǎo),而必須要贏得項(xiàng)目中其他人員的贊同。為了提高效率,構(gòu)架設(shè)計(jì)師必須贏得項(xiàng)目團(tuán)隊(duì)、項(xiàng)目經(jīng)理、客戶、用戶群體以及管理團(tuán)隊(duì)的尊敬。Goal-orientationandPro-activitywitharelentlessfocusonresults.Thesoftwarearchitectisthetechnicaldrivingforcebehindtheproject,notavisionaryordreamer.Thecareerofasuccessfulsoftwarearchitectisalongseriesofsub-optimal

11、decisionsmadeinuncertaintyandunderpressure.OnlythosewhocanfocusondoingwhatneedstobedonewillbesuccessfuIinthisenvironmentoftheproject.*以目標(biāo)為中心、積極主動(dòng),不懈地追求成效。構(gòu)架設(shè)計(jì)師是推動(dòng)項(xiàng)目發(fā)展的技術(shù)動(dòng)力,而不是空想家。在其職業(yè)生涯中,成功的構(gòu)架設(shè)計(jì)師一直都要在捉摸不定和承受壓力的情況下作出折衷決定。構(gòu)架設(shè)計(jì)師只有將注意力集中在該做的事情上,才能在項(xiàng)目中取得成功。從專業(yè)角度看,構(gòu)架設(shè)計(jì)師必須具備系統(tǒng)設(shè)計(jì)員(designer)的所有能力。但是:However,

12、unlikethedesigner,thesoftwarearchitect:tendstobeageneralistratherthanaspecialist,knowingmanytechnologiesatahighlevelratherthanafewtechnologiesatthedetaillevelmakesbroadertechnicaldecisions,andthereforebroadknowlegeandexperienee,aswellascommunicationandleadershipskills,arekey.注:此處兩點(diǎn),一語道破架構(gòu)師和設(shè)計(jì)師的本職區(qū)別。

13、請(qǐng)認(rèn)真體會(huì),側(cè)重點(diǎn)是不同的。架構(gòu)師應(yīng)該能夠:理解企業(yè)應(yīng)用的體系結(jié)構(gòu),能夠?qū)Ψ植际狡髽I(yè)應(yīng)用系統(tǒng)體系結(jié)構(gòu)、面向服務(wù)的應(yīng)用系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)要點(diǎn)給出指導(dǎo)性建議的。團(tuán)隊(duì)里架構(gòu)師配備的方法和指導(dǎo)原則Iftheprojectislargeenoughtowarrantanarchitectureteam,thegoalistohaveagoodmixoftalents,coveringawidespectrumofexperieneeandsharingacommonunderstandingofsoftwareengineeringprocess.Thearchitectureteamneednotbe

14、acommitteeofrepresentativesfromvariousteams,domainsorcontractors.Softwarearchitectureisafull-timefunction,withstaffpermanentlydedicatedtoit.如果項(xiàng)目較大,需要組建一個(gè)構(gòu)架團(tuán)隊(duì),則應(yīng)盡量廣聚賢才,使該團(tuán)隊(duì)既擁有廣泛的經(jīng)驗(yàn),又對(duì)軟件工程流程具有一致的認(rèn)識(shí)。構(gòu)架團(tuán)隊(duì)不應(yīng)該是由各團(tuán)隊(duì)、領(lǐng)域或承包商的代表組成的委員會(huì)。軟件構(gòu)架設(shè)計(jì)是一項(xiàng)長(zhǎng)期的工作,始終都需要配備專職人員。Forsmallerprojects,asinglepersonmayactasbothproj

15、ectmanagerandsoftwarearchitect.However,ifatallpossible,itisbettertohavetheserolesperformedbyseparatepeople,inordertoensurethattimepressureononeroledoesntcausetheotherroletobeneglected.注:小型項(xiàng)目架構(gòu)師可以兼做項(xiàng)目經(jīng)理。但是不要因?yàn)闀r(shí)間安排問題導(dǎo)致兩種角色互有影響。架構(gòu)師需要對(duì)此有很好的調(diào)節(jié)能力和全局安排、協(xié)調(diào)處理、解決能力。軟件架構(gòu)模型(4+1)架構(gòu)模型軟件架構(gòu)用來處理軟件高層次結(jié)構(gòu)的設(shè)計(jì)和實(shí)施。它以精心選擇的

16、形式將若干結(jié)構(gòu)元素進(jìn)行裝配,從而滿足系統(tǒng)主要功能和性能需求,并滿足其他非功能性需求,如可靠性、可伸縮性、可移植性和可用性。Perry和Wolfe使用一個(gè)精確的公式來表達(dá),該公式由Boehm做了進(jìn)一步修改:軟件架構(gòu)=元素,形式,關(guān)系/約束軟件架構(gòu)涉及到抽象、分解和組合、風(fēng)格和美學(xué)。我們用由多個(gè)視圖或視角組成的模型來描述它。為了最終處理大型的、富有挑戰(zhàn)性的架構(gòu),該模型包含五個(gè)主要的視圖(請(qǐng)對(duì)照?qǐng)D1):邏輯視圖(LogicalView),設(shè)計(jì)的對(duì)象模型(使用面向?qū)ο蟮脑O(shè)計(jì)方法時(shí))。過程視圖(ProcessView),捕捉設(shè)計(jì)的并發(fā)和同步特征。物理視圖(PhysicalView),描述了軟件到硬件的映

17、射,反映了分布式特性。開發(fā)視圖(DevelopmentView),描述了在開發(fā)環(huán)境中軟件的靜態(tài)組織結(jié)構(gòu)。架構(gòu)的描述,即所做的各種決定,可以圍繞著這四個(gè)視圖來組織,然后由一些用例(usecases)或場(chǎng)景(scenarios)來說明,從而形成了第五個(gè)視圖。正如將看到的,實(shí)際上軟件架構(gòu)部分從這些場(chǎng)景演進(jìn)而來,將在下文中討論。圖14+1視圖模型注:請(qǐng)?zhí)貏e留意這四個(gè)view的各自主要使用對(duì)象。比如DevelopmentView,主要是programmers看到的系統(tǒng)架構(gòu)圖。我們?cè)诿總€(gè)視圖上均獨(dú)立地應(yīng)用Perry&Wolf的公式,即定義一個(gè)所使用的元素集合(組件、容器、連接符),捕獲工作形式和模式,并且

18、捕獲關(guān)系及約束,將架構(gòu)與某些需求連接起來。每種視圖使用自身所特有的表示法一藍(lán)圖(blueprint)來描述,并且架構(gòu)師可以對(duì)每種視圖選用特定的架構(gòu)風(fēng)格(architecturalstyle),從而允許系統(tǒng)中多種風(fēng)格并存。我們將輪流的觀察這五種視圖,展現(xiàn)各個(gè)視圖的目標(biāo):即視圖的所關(guān)注的問題,相應(yīng)的架構(gòu)藍(lán)圖的標(biāo)記方式,描述和管理藍(lán)圖的工具。并以非常簡(jiǎn)單的形式?!?+1視圖模型具有相當(dāng)?shù)钠毡樾裕虼丝梢允褂闷渌臉?biāo)注方法和工具,也可以采用其他的設(shè)計(jì)方法,特別是對(duì)于邏輯和過程的分解。但文中指出的這些方法都已經(jīng)成功的在實(shí)踐中運(yùn)用過。邏輯結(jié)構(gòu)面向?qū)ο蟮姆纸膺壿嫾軜?gòu)主要支持功能性需求即在為用戶提供服務(wù)方面系

19、統(tǒng)所應(yīng)該提供的功能。系統(tǒng)分解為一系列的關(guān)鍵抽象,(大多數(shù))來自于問題域,表現(xiàn)為對(duì)象或?qū)ο箢惖男问健K鼈儾捎贸橄?、封裝和繼承的原理。分解并不僅僅是為了功能分析,而且用來識(shí)別遍布系統(tǒng)各個(gè)部分的通用機(jī)制和設(shè)計(jì)元素。進(jìn)程架構(gòu)過程分解進(jìn)程架構(gòu)考慮一些非功能性的需求,如性能和可用性。它解決并發(fā)性、分布性、系統(tǒng)完整性、容錯(cuò)性的問題,以及邏輯視圖的主要抽象如何與進(jìn)程結(jié)構(gòu)相配合在一起一即在哪個(gè)控制線程上,對(duì)象的操作被實(shí)際執(zhí)行。進(jìn)程架構(gòu)可以在幾種層次的抽象上進(jìn)行描述,每個(gè)層次針對(duì)不同的問題。在最高的層次上,進(jìn)程架構(gòu)可以視為一組獨(dú)立執(zhí)行的通信程序(叫作processes)的邏輯網(wǎng)絡(luò),它們分布在整個(gè)一組硬件資源上,這

20、些資源通過LAN或者WAN連接起來。多個(gè)邏輯網(wǎng)絡(luò)可能同時(shí)并存,共享相同的物理資源。例如,獨(dú)立的邏輯網(wǎng)絡(luò)可能用于支持離線系統(tǒng)與在線系統(tǒng)的分離,或者支持軟件的模擬版本和測(cè)試版本的共存。進(jìn)程是構(gòu)成可執(zhí)行單元任務(wù)的分組。進(jìn)程代表了可以進(jìn)行策略控制過程架構(gòu)的層次(即:開始、恢復(fù)、重新配置及關(guān)閉)。另外,進(jìn)程可以就處理負(fù)載的分布式增強(qiáng)或可用性的提高而不斷地被重復(fù)。軟件被劃分為一系列單獨(dú)的任務(wù)。任務(wù)是獨(dú)立的控制線程,可以在處理節(jié)點(diǎn)上單獨(dú)地被調(diào)度。開發(fā)架構(gòu)子系統(tǒng)分解開發(fā)架構(gòu)關(guān)注軟件開發(fā)環(huán)境下實(shí)際模塊的組織。軟件打包成小的程序塊(程序庫或子系統(tǒng)),它們可以由一位或幾位開發(fā)人員來開發(fā)。子系統(tǒng)可以組織成分層結(jié)構(gòu),每

21、個(gè)層為上一層提供良好定義的接口。系統(tǒng)的開發(fā)架構(gòu)用模塊和子系統(tǒng)圖來表達(dá),顯示了輸出和輸入關(guān)系。完整的開發(fā)架構(gòu)只有當(dāng)所有軟件元素被識(shí)別后才能加以描述。但是,可以列出控制開發(fā)架構(gòu)的規(guī)則:分塊、分組和可見性。大部分情況下,開發(fā)架構(gòu)考慮的內(nèi)部需求與以下幾項(xiàng)因素有關(guān):開發(fā)難度、軟件管理、重用性和通用性及由工具集、編程語言所帶來的限制。開發(fā)架構(gòu)視圖是各種活動(dòng)的基礎(chǔ),女口:需求分配、團(tuán)隊(duì)工作的分配(或團(tuán)隊(duì)機(jī)構(gòu))、成本評(píng)估和計(jì)劃、項(xiàng)目進(jìn)度的監(jiān)控、軟件重用性、移植性和安全性。它是建立產(chǎn)品線的基礎(chǔ)。物理架構(gòu)軟件至硬件的映射物理架構(gòu)主要關(guān)注系統(tǒng)非功能性的需求,如可用性、可靠性(容錯(cuò)性),性能(吞吐量)和可伸縮性。軟件

22、在計(jì)算機(jī)網(wǎng)絡(luò)或處理節(jié)點(diǎn)上運(yùn)行,被識(shí)別的各種元素(網(wǎng)絡(luò)、過程、任務(wù)和對(duì)象),需要被映射至不同的節(jié)點(diǎn);我們希望使用不同的物理配置:一些用于開發(fā)和測(cè)試,另外一些則用于不同地點(diǎn)和不同客戶的部署。因此軟件至節(jié)點(diǎn)的映射需要高度的靈活性及對(duì)源代碼產(chǎn)生最小的影響。場(chǎng)景綜合所有的視圖四種視圖的元素通過數(shù)量比較少的一組重要場(chǎng)景(更常見的是用例)進(jìn)行無縫協(xié)同工作,我們?yōu)閳?chǎng)景描述相應(yīng)的腳本(對(duì)象之間和過程之間的交互序列)。在某種意義上場(chǎng)景是最重要的需求抽象,它們的設(shè)計(jì)使用對(duì)象場(chǎng)景圖和對(duì)象交互圖來表示。該視圖是其他視圖的冗余(因此+1),但它起到了兩個(gè)作用:作為一項(xiàng)驅(qū)動(dòng)因素來發(fā)現(xiàn)架構(gòu)設(shè)計(jì)過程中的架構(gòu)元素,這一點(diǎn)將在下文

23、中討論。作為架構(gòu)設(shè)計(jì)結(jié)束后的一項(xiàng)驗(yàn)證和說明功能,既以視圖的角度來說明又作為架構(gòu)原型測(cè)試的出發(fā)點(diǎn)。視圖之間的對(duì)應(yīng)性各種視圖并不是完全是正交的或獨(dú)立的。視圖的元素根據(jù)某種設(shè)計(jì)規(guī)則和啟發(fā)式方法與其他視圖中的元素相關(guān)聯(lián)。模型的剪裁并不是所有的軟件架構(gòu)都需要4+1視圖。無用的視圖可以從架構(gòu)描述中省略,比如:只有一個(gè)處理器,則可以省略物理視圖;而如果僅有一個(gè)進(jìn)程或程序,則可以省略過程視圖。對(duì)于非常小型的系統(tǒng),甚至可能邏輯視圖與開發(fā)視圖非常相似,而不需要分開的描述。場(chǎng)景對(duì)于所有的情況均適用。迭代過程Witt等人為設(shè)計(jì)和架構(gòu)指出了4個(gè)階段:勾畫草圖、組織、具體化和優(yōu)化,分成了12個(gè)步驟7。他們還指出需要某種程度的反向工程。而我們認(rèn)為對(duì)于大型的項(xiàng)目,該方法太,線性化了。在4個(gè)階段的末尾,可用于驗(yàn)證架構(gòu)的內(nèi)容太少。我們提倡一種更具有迭代性質(zhì)的方法,即架構(gòu)先被原形化、測(cè)試、估量、分析,然后在一系列的迭代過程中被細(xì)化。該方法除了減少與架構(gòu)相關(guān)的風(fēng)險(xiǎn)之外,對(duì)于項(xiàng)目而言還有其他優(yōu)點(diǎn):團(tuán)隊(duì)合作、培訓(xùn),加深對(duì)架構(gòu)的理解,深入程序和工具等等(此處提及的是演進(jìn)的原形,逐漸發(fā)展成為系統(tǒng),而不是一次性的試驗(yàn)性的原形)。這種迭代方法還能夠使需求被細(xì)化、成熟化并能夠被更好地理解。場(chǎng)景驅(qū)動(dòng)(seenario-driven)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論