天天看點

軟體架構師的主要工作職責及能力要求

軟體架構師的主要工作職責及能力要求

工作職責

工作職責是在一個軟體項目開發過程中,将客戶的需求轉換為規範的開發計劃及文本,并制定這個項目的總體架構,指導整個開發團隊完成這個計劃。主導系統全局分析設計和實施、負責軟體構架和關鍵技術決策的人員。

能力要求

在技術全面、成熟練達、洞察力強、經驗豐富,具備在缺乏完整資訊、衆多問題交織一團、模糊和沖突的情況下,軟體架構師能迅速抓住問題要害,并做出合理的關鍵決定的能力 l、具備戰略性和前瞻性思維能力,善于把握全局,能夠在更高抽象級别上進行思考。主要包括如下:

⒈對項目開發涉及的所有問題領域都有經驗,包括徹底地了解項目需求,開展分析設計之類軟體工程活動等

⒉具備上司素質,以在各小組之間推進技術工作,并在項目壓力下做出牢靠的關鍵決策;

⒊擁有優秀的溝通能力,用以進行說服、鼓勵和指導等活動,并赢得項目成員的信任;

⒋以目标導向和主動的方式來不帶任何感情色彩地關注項目結果,構架師應當是項目背後的技術推動力,而非構想者或夢想家(追求完美);

⒌精通構架設計的理論、實踐和工具,并掌握多種參考構架、主要的可重用構架機制和模式(例如J2EE架構等);

⒍具備系統設計員的所有技能,但涉及面更廣、抽象級别更高; 活動确定用例或需求的優先級、進行構架分析、建立構架的概念驗證原型、評估構架的概念驗證原型的可行性、組織系統實施模型、描述系統分布結構、描述運作時刻構架、确定設計機制、确定設計元素、合并已有設計元素、構架文檔、參考構架、分析模型、設計模型、實施模型、部署模型、構架概念驗證原型、接口、事件、信号與協定等。

資格認證

在國外,軟體架構師的培養與認證具有嚴格的過程,明确規定了教育目标、認證的要求和學習課程等方面的内容。下面,介紹三個組織的軟體架構師認證情況。

UC

在UC Irvine的軟體架構師認證計劃[27]中,為了拿到軟體架構師C級認證,學員必須完成11個單元的必修課程和至少4個單元的選修課程。這些課程包括:

·必修課程:軟體系統模組化和分析概論(2個單元)、系統分析基礎(3個單元)、使用者需求的分析和文檔化(3個單元)、軟體架構項目(3個單元)。

·選修課程:資訊系統項目管理(2個單元)、系統性能模組化(2.5個單元)、管理業務改進項目(2.5個單元)。

UC Irvine的軟體架構師認證要求學員具有業務系統模組化,決定使用者需求,評價業務過程的能力,掌握項目管理技術,能設計完善的、具有最佳可适應性和可擴充性的架構。該認證程式以一門實踐課程結束,在實踐課程中,學員從頭開始,設計一個大規模軟體解決方案的架構。

CMU

SEI在軟體架構師方面的認證[42]包括三個職位,分别是軟體架構師、ATAM評估師和ATAM主任評估師。這些認證都需要學習2年的課程。其中軟體架構師需要學習的課程有軟體架構:原理與實踐、軟體架構文檔化、軟體架構設計與分析和軟體産品線。

iCMG

iCMG對軟體架構師的認證強調7個層次的課程學習,如圖2所示[30]。在該認證體系中,上面的3個層次由其合作夥伴完成,iCMG隻負責下面4個層次的知識體系。

目前,軟體架構師的認證在國内基本上是空白,既沒有專業的教育訓練機構,也沒有專門的認證指南和權威的教育認證機構。而軟體架構師作為軟體的總設計師,其水準和能力直接決定了軟體系統的總體性能。根據教育部2004年9月8日關于緊缺人才的報告,2005年國内軟體架構和系統分析人才缺口在6萬人以上,是目前軟體開發中急需的高層次技術人才。人事部和資訊産業部[2003]39号檔案決定在全國計算機技術與軟體專業技術資格(水準)考試中設立系統架構設計師級别的認證考試,試圖解決軟體架構師認證問題。但是,由于各種原因,該考試未能如期舉行,一拖再拖。其實,這些措施也隻是暫時起到一個過渡的作用,隻有建立完善的軟體架構師教育教育訓練方案和權威的教育認證機構,才是目前急需解決的問題。

微軟“軟體架構師"

微軟“軟體架構師”是級别最高的微軟認證,它針對擁有十年以上IT管理經驗的CIO級别的專業人士。目前全球範圍内擁有該項認證的人數僅有大約40人。

架構師的職責主要有如下4條:

  1、确認需求

  在項目開發過程中,架構師是在需求規格說明書完成後介入的,需求規格說明書必須得到架構師的認可。架構師需要和分析人員反複交流,以保證自己完整并準确地了解使用者需求。

  2、系統分解

  依據使用者需求,架構師将系統整體分解為更小的子系統群組件,進而形成不同的邏輯層或服務。随後,架構師會确定各層的接口,層與層互相之間的關系。架構師不僅要對整個系統分層,進行“縱向”分解,還要對同一邏輯層分塊,進行“橫向”分解。

  軟體架構師的功力基本展現于此,這是一項相對複雜的工作。

  3、技術選型

  架構師通過對系統的一系列的分解,最終形成了軟體的整體架構。技術選擇主要取決于軟體架構。

  Web Server運作在Windows上還是Linux上?資料庫采用MSSql、Oracle還是MySQL?需要不需要采用MVC或者spring等輕量級的架構?前端采用富用戶端還是瘦用戶端方式?類似的工作,都需要在這個階段提出,并進行評估。

  架構師對産品和技術的選型僅僅限于評估,沒有決定權,最終的決定權歸項目經理。架構師提出的技術方案為項目經理提供了重要的參考資訊,項目經理會從項目預算、人力資源、時間進度等實際情況進行權衡,最終進行确認。

  4、制定技術規格說明

  架構師在項目開發過程中,是技術權威。他需要協調所有的開發人員,與開發人員一直保持溝通,始終保證開發者依照它的架構意圖去實作各項功能。