91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

架構師

admin
2010年8月18日 15:0 本文熱度 3817

經(jīng)常被用來區(qū)分軟件架構和軟件設計開發(fā)的關鍵幾點包括 伸縮性和抽象程度的增加以及作出正確設計決策意義的增強。軟件架構是通過一個全局的觀點,宏觀的視角來理解軟件系統(tǒng)作為一個整體如何工作。開發(fā)和架構的界限難以捉摸。有些人告訴你它根本不存在,架構只是開發(fā)者們所做的設計過程的簡單擴展。 另外一些人認為這是一個鴻溝,它只能由那些做到高度抽象,而且不會陷入實現(xiàn)細節(jié)的開發(fā)者才能跨越。通常,在這兩個極端的觀點中間某處有個可操作的平衡點;不論如何,怎么從開發(fā)轉換為架構師都是個有趣的問題。


即使這能夠幫助區(qū)分軟件開發(fā)和架構,它并不能幫助理解某人如何從開發(fā)提升到架構。 并且,它也不能幫助識別誰能夠成為一個好的軟件架構師,如果你想雇人的話你如何去尋找他們以及你是否是一個軟件架構師。


經(jīng)驗可以判定但你需要更深入地了解


要成為一個軟件架構師并不是一夜之間或者一個職位的提升就能簡單達到的。 這是個職責,而不是頭銜。這是個進化的過程,你將會逐步得到擔當這個職責所需的經(jīng)驗和信心。


當你尋找架構師時,需要考慮各方面的素質,他們過去的經(jīng)驗往往是他們有能力擔當這個職責很好的判斷。由于軟件架構師的職責是多種多樣的,所以你需要再深入了解他們在不同領域的參與度,影響力,領導力和責任感。一般來說,在大多數(shù)項目中軟件架構可分為兩個階段,架構的定義,然后是它的交付。


軟件架構的定義


架構的定義過程看起來非常簡單明了。 你需要做的是理解需求并設計一個系統(tǒng)來滿足需求。 但實際上并沒有那么簡單,根據(jù)你不同的做法,軟件架構的職責之間差距很大,以及如何認真看待自己的職責而定。如下圖所示,這個職責的架構定義部分,可以進一步細分成不同的元素。


The role of a hands-on software architect from a definition perspective



  1. 管理非功能性需求:軟件項目經(jīng)常陷入問用戶要求是什么,什么是他們想要的功能,但很少問他們需要什么非功能性需求(或系統(tǒng)質量)有時候,干系人會告訴我們,“這個系統(tǒng)必須很快”,但是這太主觀了。非功能性需求如果要滿足的話需要明確,可度量,可獲得以及可測試。大多數(shù)非功能性需求本質上是技術層面的而且經(jīng)常對軟件架構有很大的影響。理解非功能性要求是架構師職責非常重要的一個部分,但假設這些需求是什么并不一定是對他們的挑戰(zhàn)。你見過多少系統(tǒng)真正需要24x7的運行呢?


    Management of non-functional requirements

  2. 架構定義:捕捉到了非功能性需求后,下一步是開始思考你打算如何去解決干系人提出的這些問題并定義它的架構。 公平的說每個軟件系統(tǒng)都有一個架構,但并不是每個軟件系統(tǒng)都有一個定義好的架構。這正是問題的關鍵。架構定義過程讓你想清楚你打算怎么在兼顧需求和限制的情況下把問題解決好。架構定義是將結構,方針,原則和領導力引入軟件項目的技術層面。定義架構是作為軟件架構師的工作,但是從頭開始設計一個軟件系統(tǒng)和對已存在的系統(tǒng)擴展是相當不同的。


    Architecture definition

  3. 技術選型:技術選型通常是一個有趣的練習,但它也有公平的挑戰(zhàn),因為你需要綜合考慮成本、許可、供應商關系、技術策略、兼容性、協(xié)作性、支持、部署、升級的政策以及最終用戶環(huán)境等各方面。綜合這些因素,通常會導致簡單選擇類似富客戶端技術而進入了完全的噩夢。接下來的問題就是這些技術是否能真正有用。技術選型是徹頭徹尾的風險管理;復雜性或不確定性太高的時候要減輕風險,當有機會或利益的時候要引入風險。技術決策需要考慮多種因素,而且所有的技術決策需要被檢查和評估。這包含軟件項目的主要組成部分乃至開發(fā)中引入的類庫和框架。如果定義一個架構,你還需要有信心認為選擇這項技術是正確的。同樣在技術評估中也還是存在開發(fā)新系統(tǒng)和向現(xiàn)有的系統(tǒng)增加新技術的不同點。


    Technology selection

  4. 架構評估:如果你設計軟件,你需要問問自己你的架構是否有用。 對我來說,一個架構是成功的,如果它滿足非功能性需求,而且為其他部分的代碼提供必要的基礎,并為解決和存在的業(yè)務問題提供足夠的平臺。軟件的一個最大的問題就是它復雜而抽象,導致很難從UML圖或代碼本身去設想出運行時的特性。在軟件開發(fā)周期中我們進行了很多不同類型的測試,這樣我們能夠有信心我們發(fā)布的系統(tǒng)在推出時能夠正常運行。我們?yōu)槭裁床粚軜嬕策@樣做呢? 如果能夠測試你的架構,那你就可以證明它是有效的。如果你能盡早做到這一點,你就能減少項目失敗的風險,而不是簡單地希望一切都好。


    Architecture evaluation

  5. 架構協(xié)作:任何一個軟件都不是與世隔絕的,需要很多人理解它。 包括從需要理解和切入架構的直接開發(fā)團隊到其他對安全性、數(shù)據(jù)庫、運營、維護、支持等有興趣的干系人。要想讓一個軟件項目成功,你需要和所有的系統(tǒng)干系人緊密協(xié)作來保證架構和所在的環(huán)境很好的集成。不幸的是,現(xiàn)狀是與開發(fā)團隊的架構協(xié)作很少發(fā)生,更不要說外部干系人了。


    Architecture collaboration

軟件架構的發(fā)布


對于架構的發(fā)布也是同樣,對于成功的軟件項目參與程度的不同,也決定了軟件架構職責的不同。


The role of a hands-on software architect from a delivery perspective



  1. 擁有全局的視角:為了把一個架構成功地實現(xiàn),我們需要具有全局的視角并把貫穿軟件開發(fā)生命周期的愿景加以宣傳與推廣,必要的話在整個項目中展開和完善,并對成功發(fā)布負責。如果如果你定義了一個架構,參與并保持不斷發(fā)展的架構才是有意義的,而不是選擇把它傳遞給一個“執(zhí)行小組”。


    Ownership of the bigger picture

  2. 領導力:擁有全局的視角是技術領導的一個方面,但是還有其他事情在軟件項目發(fā)布階段需要做。 這包括承擔責任、提供技術指導、作出技術決策以及具有權力作出這些決定。作為架構師,你需要進行技術領導來確保每件事都被考慮到,而且團隊在朝著正確的方向持續(xù)前進。軟件架構師職位是需要內(nèi)在領導力的,雖然這聽起來很明顯,但很多項目團隊并沒有獲得他們所需要的技術領導,因為架構師認為一個成功的發(fā)布并不一定是他們所關注的問題。


    Leadership

  3. 教練和指導:在大多數(shù)軟件開發(fā)項目中,教練和指導經(jīng)常不被重視,團隊成員得不到他們需要的支持。 雖然技術領導是引導整個項目,但個人也經(jīng)常需要幫助。除此以外,教練和指導提供了一個強化技能的方式,并幫助提升職業(yè)生涯。這應該是軟件架構師份內(nèi)的事,而且指導團隊架構和設計與幫他們解決代碼問題是截然不同的。


    Architecture delivery

  4. 質量保證:即使是世界上最好的架構和領導,很糟糕的交付也足以讓一個具備其他成功條件的項目失敗。質量保證在架構師職責中占很大一部分,但這并不只是簡單做代碼檢查。 比如,你需要一個基線來確保,這意味著引入新的標準和工作實踐。從一個軟件開發(fā)的角度來說,這可能包括代碼標準、設計原則和源碼分析工具甚至于使用持續(xù)集成,自動化單元測試以及代碼覆蓋工具。可以說大多數(shù)項目質量保證做的并不夠,所以你需要搞清楚什么是重要的并給予它足夠的保證。對于我來說,一個項目的重要部分包括架構上的重點,關鍵、復雜或高度可見的業(yè)務。你要關注實效并認識到你并不能保證一切,要知道做總比不做好。


    Quality assurance

  5. 設計、開發(fā)和測試:軟件架構師的職責范圍的最后一件事是設計、開發(fā)和測試。作為一個實際動手的架構師并不是需要你每天都要寫代碼,但是它的確意味著你一直在參與項目,而且積極幫助打造和交付它。說了這么多,為什么每天寫代碼不應該成為一個架構師職責的一部分呢?大多數(shù)架構師都有寫代碼的經(jīng)驗,因此讓這些技能保鮮是有意義的。而且,架構師能體會到團隊里其他人的痛苦和感受,這樣能讓他們更好地理解他們的架構從開發(fā)角度看是什么樣的。很多公司有政策阻止軟件架構師從事寫代碼,因為架構師“去做那些廉價的工作太貴了” ,這顯然是個錯誤的態(tài)度...如果架構師已經(jīng)花了那么多時間精力為項目做架構,何必從政策上不允許他們多走一步來幫助項目達到最終的成功呢?當然,有些情況下卷入代碼級別并不現(xiàn)實。比如,一個大的項目通常意味有一個更大的“全局觀” 來考慮它,而且可能有時候你就是沒有時間。但一般來說,一個寫代碼的架構師比只在旁邊觀望要更高效和快樂。


    Design, development and testing

你是一個軟件架構師嗎?


不管你認為軟件開發(fā)和架構之間的界限只是一個幻覺還是個巨大的鴻溝,以上強調(diào)了人們對整個軟件架構中的經(jīng)驗水平往往有很大的差別,而這取決于他們怎么樣工作以及他們?nèi)绾握J真地看待他們的職責。大多數(shù)開發(fā)人員不是在某一個星期一的早晨醒來就宣布自己成為一個軟件架構師的。我當然也不是,我成為軟件架構師的路線是一個漸進的過程。話雖如此,但很可能同樣那些開發(fā)者已經(jīng)做了一部分架構的工作,不論他們的職位名稱是什么。


為軟件系統(tǒng)的架構作出貢獻和自己負責定義它有很大的區(qū)別,擁有持續(xù)的、跨不同領域的技能、知識和經(jīng)驗構成了軟件架構的職責。跨越軟件開發(fā)者和架構師的界限取決于你自己,但是首先你要明白你的經(jīng)驗水平,才能開始架構師之旅的第一站。


該文章在 2010/8/18 15:00:19 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产亚洲午夜黄频 | 久热99 | 欧美一级夜夜爽视频 | 日韩在线视频观看 | 精品一区卡2卡3卡 | 潘甜甜国产福 | 国产欲乱一级视频 | 日本夜间福利91 | 青青草国产精品视频 | 欧美亚洲午夜成人v | 玖玖福利| 91视频网站| 欧美亚洲日韩激情 | 日韩欧美在线网址 | 国产精品精品国内 | 国产哺乳奶水91 | 91热爆| 精品亚洲国 | 韩国三级在线不 | 国产欧美精品区 | 国产欧美一区二区 | 91欧美日韩91桃 | 91国内视频在线 | 日本又黄又爽 | 国产偷啪视频一区 | 青草青草久热精 | 国产国产精品 | 午夜伦理 | 国产午睡| 日韩精品suv | 国精品吹潮 | 成人精品。。。 | 91福利国产在线 | 午夜成人免费电影 | 91孕妇| 美日韩在线观看 | 99热这里有 | 精品国产欧美精品v | 欧美日韩国产不卡 | 日本三级在 | 海量精品楼凤 |