所在位置:首頁 -- 軟件設計 -- 正文

軟件架構學習小結


發布時間:2013-10-4  來源:admin

軟件架構設計系統整體架構,從需求到設計的每個細節都要考慮到,把握整個項目,使設計的項目盡量效率高,開發容易,維護方便,升級簡單。本文從架構師職責、軟件架構定義、設計架構、評估架構、架構管理等方面來描述了解軟件架構的含義和怎樣設計軟件架構。

一、軟件架構師的職責

架構師分為以下幾大類:業務架構師、主題領域架構師、技術架構師、項目架構師(J2EE架構師、.NET架構師等)、系統架構師。

1、架構師的職責主要體現

架構師的職責就是設計一個公司系統的基礎架構,并提供關于怎樣建立和維護系統的指導方針。具體來講,架構師的職責主要體現在以下幾方面:

1)、負責公司系統的架構設計、研發工作。

2)、承擔從業務向技術轉換的橋梁作用。

3)、協助項目經理制定項目計劃和控制項目進度。

4)、負責輔助并指導系統分析開展設計工作。

5)、負責組織技術研究和攻關工作。

6)、負責組織和管理公司內部的技術培訓工作。

7)、負責組織及帶領公司內部員工研究與項目相關的新技術。

8)、管理技術支撐團隊并給項目、產品開發實施團隊提供技術保障。

9)、理解系統的業務需求,制定系統的整體框架(包括、技術框架和業務框架)。

10)、對系統框架相關技術和業務進行培訓,指導開發人員開發。并解決系統開發、運行中出現的各種問題。

2、構架設計師必須具備的技能

經驗:既包括在問題領域的經驗(通過徹底了解需求),也包括在軟件工程領域的經驗。對于一個構架團隊,這些素質要求可由各團隊成員來分別承擔,但其中至少要有一名構架設計師能夠把握項目的全局。

領導才能:能夠推動各個團隊的技術進展,并能在壓力下作出關鍵性的決策然后將其貫徹到底。要提高效率,構架設計師和項目經理必須緊密協作。構架設計師主要負責解決技術問題,項目經理主要負責解決行政管理問題。構架設計師必須有權在技術問題上作出決定。

溝通:能夠贏得他人的信任,以對其進行說服、激勵和指導。構架設計師不能靠命令進行領導,而必須要贏得項目中其他人員的贊同。為了提高效率,構架設計師必須贏得項目團隊、項目經理、客戶、用戶群體以及管理團隊的尊敬。

以目標為中心、積極主動:不懈地追求成效。構架設計師是推動項目發展的技術動力,而不是空想家。在其職業生涯中,成功的構架設計師一直都要在捉摸不定和承受壓力的情況下作出折衷決定。構架設計師只有將注意力集中在該做的事情上,才能在項目中取得成功。

專業:精通構架設計的理論、實踐和工具,并掌握多種參考構架、主要的可重用構架機制和模式(例如J2EE架構等)。具備系統設計員的所有技能,但涉及面更廣、抽象級別更高。

二、軟件架構、架構模式、參考模型、參考架構

1、對于軟件架構定義有很多種,通用的定義是:某個軟件或計算機系統的軟件架構是該系統的一個或多個結構,他們由軟件元素,這些元素的外部可見屬性以及這些元素之間的關系組成。
這里所說的某個元素的“外部可見屬性”是指其他元素對該元素所做的假設,如它所提供的服務、性能特征、錯誤處理、共享資源的使用,等等。

其他的定義包括:架構是一種高層設計。架構是系統的總體結構。架構是一個軟件或系統的組件、組件之間的相互關系以及管理其設計和演變的原理和方針的結構。架構是組件和連接器。

2、架構模式是對元素和關系類型以及一組對其使用方式的限制的描述。

3、參考模型是一種考慮數據流的功能劃分。

4、參考架構是映射到軟件元素(它們相互協作,共同實現在參考模型中定義的功能)及元素之間數據流上的參考模型。

5、軟件架構、架構模式、參考模型、參考架構之間的關系:

軟件結構 關系
 
適用環境
分解 是一個子模塊;與之共享秘密 資源分配、項目結構化和規劃;信息隱藏、封裝;配置控制
使用 要求正確出現 設計子集;設計擴展
分層 要求正確的出現、使用服務、提供抽象 增量式開發;在“虛擬機”可移植性之上實現系統
是一個實例;共享訪問方法 在面向對象的設計系統中,從一個公共的模版中產生快速的、相近的實現
客戶機-服務器 與之通信;依賴于 分布式操作;關注點分離;性能分析;負載平衡
進程 與之并發運行、可能會與之并發運行;排除;優先于等 調度分析;性能分析
并發 在相同的邏輯線程上運行 確定存在資源爭用,線程可以交叉、連接、被創建或被殺死的位置
共享數據 產生數據;使用數據 性能;數據完整性;可修改性
部署 分配給;移植到 性能、可用性、安全性分析
實現 存儲在 配置控制、集成、測試活動
工作分配 分配到 項目管理、最佳利用專業技術、管理通用性

注:在<Pattern-Oriented Software Architecture (面向模式的軟件體系架構) >中首次提出了8種體系結構模式: 層(Layers)、管道和過濾器(Pipes and Filters) 、黑板(Black board )、代理者(Broker)、模型-視圖-控制器(Model-View-Controller)、表示-抽象-控制(Presentation-Abstraction-Control)、微核(Microkernel)、映像(Reflection)。

6、架構定義中指出系統由多種結構構成的,下面列出一些常見的結構。

7、質量屬性

系統從設計、實現到部署的整個過程中考慮質量屬性的實現。質量屬性包括下列三類:

(1)、系統的質量屬性。(可用性、可修改性、性能、安全性、可測試性和易用性)

(2)、受架構影響的商業屬性。(上市時間、成本和收益、所希望的系統生命期的長短、目標市場、推出計劃、與老系統的集成)

(3)、與架構本身相關的一些質量屬性。(概念完整性、正確性與完整性、可構建性)

六個質量屬性的戰術列表:

三、設計架構

幾乎在我們遇到的所有成功的面向對象系統中都具有但失敗的系統中缺少的兩個特性是:存在一個強大的構架構想,應用管理良好的迭代式增量開發周期。功能、質量和商業需求的某個集合“塑造”了構架。我們把這些塑造需求稱為“構架驅動因素”。

構架設計必須按需求分析進行,但不需要在需求分析完成后在開始構架設計。實際上,在確定了關鍵的構架驅動因素后,就可以開始構架設計了。當設計了構架的足夠多的部分后,就可以開始開發骨架系統了。該骨架系統在上面進行迭代開發(以及其在任何一個點交付的能力)的框架。組織結構對構架產生影響。

屬性驅動的設計(ADD)是一個用于設計構架以滿足質量需求和功能需求的方法。ADD把一組質量屬性場景作為輸入,并使用對質量屬性實現和構架之間的關系的了解,對構架進行設計。

ADD步驟:

(1) 選擇要分解的模塊。

(2) 根據這些步驟對模塊進行求精。

對需要進一步分解的每個模塊重復上述步驟。

在設計架構過程中可以重用架構,重用一些技術以方便來實現架構與設計。高層重用技術分類

高層重用

設計模式

框架

軟件架構

架構風格

架構設計風格

架構框架

架構平臺

設計模式:使用相互通信的類和對象可為常見的設計問題提供通用的解決方案。為了幫助用戶掌握模式的概念并有效地設計模式,我通常為設計模式的描述提供一個帶有比喻性的抽象。常見的設計模式有:Fvacade(外觀模式),它為子系統中的一系列動作提供一個統一接口;Ovbserver(觀察者模式),具體的設計模式內容參考GOF23設計模式。
框架:提供一組相互協作的類及運行時對象,用于生成某些特定領域的應用軟件。我們可以根據特定應用的需求方便地對框架中的抽象和類進行定制,以重用框架的設計和代碼。

軟件架構:編制軟件也稱為架構軟件。一個可操作的軟件內部應具有某種形式的架構。軟件架構技術中可重用的實體可以進一步地分為4類:架構風格、架構設計風格、架構框架、架構平臺。

架構風格給出了精心設計的軟件全局的通用形態。例如,Shaw和Garlan提出了7種架構風格:管道和過濾器、面向對象的組織、隱式調用、分層系統、倉庫、狀態機、解釋器,及過程控制。

架構設計風格給出了軟件架構的設計方法論。Shaw將眾多的設計風格分類為如下8種:功能分解、數據流、面向對象、狀態機、面向事情、過程控制、數據結構及決定表。

架構框架是來為詳細而完整的框架,它為開發特定領域的應用系統使用了一系列多種架構設計風格。一個采用了某些設計風格的軟件架構制品,只有當它具有完備的文檔,并具備包含一個特定的應用領域所需要的充分靈活性時才可以作為軟件框架來重用。

架構平臺提供了一個可以適應多種應用系統的靈活的底層結構,架構平臺的設計目的即是為了應用軟件的互操作性提供硬件平臺及操作系統平臺無關環境。我們可以將它們用做底層結構,以促進對象級的協作和重用。對象管理組織(OMG)的通用對象請求代理體系結構(Common Object Request Broker Architecture,CORBA)即是一個示例。

四、架構評估方法

軟件構架的評估方法:SAAM和ATAM。這里只詳細說明ATAM方法。

ATAM一種進行構架評估的綜合方法,ATAM是評估軟件構架的一個健壯的方法。在該方法中,項目決策者和涉眾要清晰地闡述一個準確的質量屬性需求列表(以場景的方式),并說明與實現每個高優先場景相關的構架決策。然后,把這些決策確定為有風險決策或無風險決策,以找到構架中任何存在問題的地方。

ATAM不是需求評估。

ATAM不是代碼評估。

ATAM不包括實際的系統測試。

ATAM不是一個準確的手段,但它識別了構架中可能存在風險的區域。這些風險包含在敏感點和權衡中。

ATAM活動的4個階段:

在第0階段(合作關系和準備)確定細節:人員名單,時間,地點;評估小組獲取資料并進行初步了解分析。

第1階段,評估階段,決策者參與,小組開始信息收集與分析;耗時約1周。1~2周中斷期,評估小組進一步以非正式方式了解構架。

第2階段,評估階段,涉眾參與,分析繼續;約2天。

第3階段,后續階段,生成最終報告,進行評估活動總結;1周。

上一頁 1 2 3 4 下一頁
中国比特币暴涨 2018香港十二生肖69期开奖结果 内蒙古时时玩法 平特一肖找官方网站 重庆时时龙虎和坑爹 福建时时论坛 赛马会九龙一码 云南时时走势规律图 五分彩计划软件 贵州快3历史开奖 白小姐开奖结果生肖2019年 凤凰彩票平台地址 新快3开奖时间 安徽时时走势图官方网站 辽宁快乐12全天计划 晚秋一句定三码字谜汇总 c重庆时时怎么玩