架構設計

架構設計

架構設計是人們對一個結構內的元素及元素間關係的一種主觀映射的產物。架構設計是一系列相關的抽象模式,用於指導大型軟體系統各個方面的設計。

基本介紹

  • 中文名:架構設計
  • 來源:人對結構內元素間關係映射產物
  • 性質:抽象模式
  • 用途:指導大型軟體系統各個方面的設計
軟體架構師的職責,軟體架構師之路,軟體架構師的重要,

軟體架構師的職責

架構師是軟體行業中一種新興職業,工作職責是在一個軟體項目開發過程中,將客戶的需求轉換為規範的開發計畫及文本,並制定這個項目的總體架構,指導整個開發團隊完成這個計畫。架構設計是軟體設計過程的早期階段,它把需求分析和設計流程連線在一起。架構師的主要任務不是從事具體的軟體程式的編寫,而是從事更高層次的開發構架工作。他必須對開發技術非常了解,並且需要有良好的組織管理能力。可以這樣說,一個架構師工作的好壞決定了整個軟體開發項目的成敗。

軟體架構師之路

所謂架構師通俗的說就是設計師、畫圖員、結構設計者,這些定義範疇主要用在建築學上很容易理解。小時候到河中玩耍,經常幹的事就是造橋,步驟如下:1、在沙灘上畫圖;2、選擇形狀好看、大小適合的石頭;3、搭建拱橋。其中我們挑出來畫圖的那位光PP小孩就是傳說中的“架構師”了。
軟體工程中,架構師的作用在於三方面:1、行業套用架構,行業架構師往往是行業專家,了解行業套用需求,其架構行為主要是將需求進行合理分析布局到套用模型中去,偏向於套用功能布局;2、套用系統技術體系架構,技術架構師往往是技術高手中的高手,掌握各類技術體系結構、掌握套用設計模式,其架構行為考慮軟體系統的高效性、復用性、安全性、可維護性、靈活性、跨平台性等;3、規範架構師是通過多年磨礪或常年苦思頓悟後把某一類架構抽象成一套架構規範,當然也有專門研究規範而培養的規範架構師。他們的產物往往也分為套用規範和技術規範兩類。
與建築學類似,如果軟體系統沒有一個好的架構是不可能成為成功的軟體系統的。沒有圖紙的建築地、沒有設計的造橋工程都是不可以想像的混亂世界。建築工程如是,軟體工程中亦然!
由於國內合格、勝任的軟體架構師極為少見,直接導致了我國民族軟體產業水平的落後。在未來以信息產業為主導的社會,信息產業水平的低下將直接影響國家核心競爭力。究其原因,無非企業急功近利、個人缺乏引導造成。
企業的急功近利是有無法克服的原因的,那就是社會發展總體水平。“生存是第一位的,賺錢是第一位的”,多年來許多客戶抱怨國內的軟體公司無法信任、系統項目累做累敗、公司越換越差,但因國外不可能給中國做套用系統項目還不得不找國內軟體公司做。由於人月費用低、公司開發成本高,軟體企業對於套用只能草草了事,拿錢走人(很多公司拿不到後期尾款)。這樣的環境下,企業幾乎無法投入更多資源培養自己的架構師,加上眼花繚亂的跳槽風氣企業更是不願投入……
架構設計
那么要成為架構師的途徑似乎只有現在較為流行的軟體學院和個人自我培養了。關於軟體學院我接觸過不少,其宗旨絕大部分都是造就(or打造)企業需要的軟體架構師(or程式設計師or人才)。教師來源與企業、學員來源與企業、人才輸送到企業是他們辦學的手段。儘管各個如雨後春筍般出現的軟體學院口號差不多,但恐怕大多只是為了圈錢賣學位了事...
架構師不是通過理論學習可以搞出來的,不過不學習相關知識那肯定是不行的。參考軟體企業架構師需求、結合目前架構師所需知識,總結架構師自我培養過程大致如下僅供參考:
1、架構師胚胎(程式設計師)學習的知識是語言基礎、設計基礎、通信基礎等,應該在大學完成,內容包括java、c、c++、uml、RUP、XML、socket通信(通信協定)——學習搭建套用系統所必須的原材料。
2、架構師萌芽(高級程式設計師)學習分散式系統、組建等內容,可以在大學或第一年工作時間接觸,包括分散式系統原理、ejb、corba、com/com+、webservice(研究生可以研究網路計算機、高性能並發處理等內容)
3、架構師幼苗(設計師)應該在掌握上述基礎之上,結合實際項目經驗,透徹領會套用設計模式,內容包括設計模式(c++版本、java版本)、ejb設計模式、J2EE架構、UDDI、軟體設計模式等。在此期間,最好能夠了解軟體工程在實際項目中的套用以及小組開發、團隊管理。
4、軟體架構師的正式成型在於機遇、個人努力和天賦,軟體架構師其實是一種職位,但一個程式設計師在充分掌握軟架構師所需的基本技能後,如何得到這樣的機會、如何利用所掌握的技能進行套用的合理架構、如何不斷的抽象和歸納自己的架構模式、如何深入行業成為能夠勝任分析、架構為一體的精英人才這可不是每個人都能夠遇上的餡餅……
然而學海無涯,精力有限,個人如何能夠很快將這些所謂的架構師知識掌握?這是秘密,每個人都有自己的獨門家傳秘笈就不敢一一暴露了。不過有一點就是廣泛學習的基礎之上一定要根據個人興趣、從事領域確定一條自己的主線來努力。
如果說架構師是在模型圖紙上工作的,那么模型元素必須是實實在在的,正如我們不可能期望抽象派畫家來設計高樓大廈,沒有實際意義的模型元素,是不可能構築出軟體系統的。迄今為止,絕大部分軟體架構師是依賴軟體程式設計師來實現他們的架構意圖的,這二者直接的鴻溝是顯而易見的。設計模式的出現是為縮短二者之間的鴻溝所做的努力,目的是讓架構師和程式設計師之間有更多的共同語言和規範。儘管設計模式讓軟體開發效率和質量有一定程度的提升,但是它始終面臨一個很明顯的局限,那就是人的因素。人雖然在創造性方面有絕對優勢,但是在精確性、持久性、效率、質量上是無法比擬機器的。所以我們希望在軟體系統構建過程中,人和機器發揮各自的長處,也就是說,讓人來扮演架構師的角色,而讓機器來扮演程式施工者的角色。

軟體架構師的重要

測試架構師不僅僅會影響到公司內的測試部門,還會影響開發、市場部門,好的測試架構師,可以從保證質量的角度,對產品的研發、銷售各個方面施加深遠而正確的影響,也吸收來自各個部門的建議,最終提高整體軟體質量。大家可能很吃驚,測試架構師怎么能影響到市場部門?我們可能有這樣的經驗,項目經理要去拿著不完善的產品去演示,測試人員更清楚產品的新特性及需要進一步改進的地方,把這些信息告訴項目經理,避免在客戶現場演示時獻醜,還能知道如何充分展示產品的優越性。我們的測試架構師當然也可以在更高的層次上給出市場行銷的建議。
軟體質量保證是一個貫穿需求分析、設計架構、軟體測試等整個軟體工程的過程,測試架構師需要熟悉需求分析方面的知識,在需求分析師整理用戶需求的時候,才能和需求分析師結對工作共同保障整理的需求滿足用戶要求。測試架構師需要掌握軟體架構設計方面的知識,在軟體架構師構建軟體框架的時候,才能和軟體架構師結對工作共同保障架構沒有致命的缺陷。測試架構師在測試技術、測試方法學上雄厚的知識,讓他們具有需求分析師、架構設計師所不具備的視角,測試架構師和需求分析師、架構設計師的結對協同工作可以更加有效的獲取完備的需求,更科學的進行軟體架構

相關詞條

熱門詞條

聯絡我們