




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件系統架構實踐中國信息化培訓中心2013年10月課程目錄一、系統架構概述二、系統架構之三分過程三、系統架構之四入策略四、系統架構之六大戰術五、系統架構之案例探究六、系統架構之評估體系七、系統架構師成長之路二、系統架構之三分過程(一)系統架構之架構分析--架構準備(二)系統架構之架構分割--概要架構(三)系統架構之架構分劃--細化架構(四)系統架構之非功能目標(三)系統架構之架構分劃1、細化架構案例2、細化架構概述3、細化架構之邏輯架構4、細化架構之物理架構、運行架構、開發架構5、細化架構之數據架構RA階段:細化架構案例一:方案書確認以后(驕傲的架構師,郁悶的程序員)公司在談一個項日,但還沒有得到客戶的認可。后來,除了老李這個項目經理之外,小張作為架構師、小王作為需求分析師也都參與了進來。他們幾個在和客戶溝通的基礎上,通力合作,最后成功提交了《方案書》,并獲得客戶的認可?!斗桨笗肥抢侠?、小張、小王各負責一部分來寫的,其中架構師小張負責總體設計部分。小張認為《方案書》被認可說明架構已經很明確,無須“再”架構設計了最后,苦了程序員,因為他們在實際開發中沒有得到足夠的指導和限制。RA階段:細化架構“方案”與“架構”的關系方案包含一定的架構內容。方案涉及的架構基本在概念架構一級。
架構設計的工作還遠未完成。方案=“項目+需求+架構”的總覽方案≠架構的全部RA階段:細化架構“細化架構”與“概念架構”的區別接口,在細化架構中占核心地位,概念架構不關心子系統,細化架構重視通過子系統和模塊來分割整個系統,并且子系統往往有明確的接口;而概念架構中只有抽象的組件,這些組件沒有接口交互機制,細化架構基于接口編程、消息機制或遠程方法調用進行實在的交互,而概念架構的交互是“概念化”的,如“A層使用B層服務”RA階段:細化架構案例二:辦公室里的爭論辦公室里,關于什么是軟件架構,爭論正酣。
程序員說,軟件架構就是要決定須要編寫哪些類,使用哪些現成框架(Framework)。程序經理笑了程序經理說,軟件架構就是模塊的劃分和接口定義。系統分析員笑了系統分析員說,軟件架構就是為業務領域對象的關系建模。配置管理員笑了;
配置管理員說,軟件架構就是開發出來的及編譯后的軟件到底是個啥結構.數據庫工程師笑了;數據庫工程師說,軟件架構規定了持久化數據的結構,其他一切都不過是對數據的操作而已。部署工程師笑了;部署工程師說,軟件架構規定了軟件部署到硬件的策略。用戶笑了用戶說,軟件架構就是決定一個個子系統如何劃分。程序員又笑了大家想了想說,這些架構視圖好像我們都需要啊,軟件架構師哭了。RA階段:細化架構貼近實踐的多視圖方法不同涉眾看待軟件架構的視角是不同的(三)系統架構之架構分劃1、細化架構案例2、細化架構概述3、細化架構之邏輯架構4、細化架構之物理架構、運行架構、開發架構5、細化架構之數據架構細化架構概述概念架構與細化架構細化架構概述概念架構與細化架構
誤解與正解細化架構概述細化架構的多視圖裝修案例
裝修的兩視圖細化架構概述細化架構的多視圖業界現狀:RUP4+1視圖RUP的4+1視圖細化架構概述細化架構的多視圖業界現狀:SEI3視圖(模塊視圖,組件-連接器視圖,分配視圖)
SEI3視圖方法細化架構概述細化架構的多視圖實踐要領:5視圖方法提出,每個視圖,一個思維角度邏輯視圖物理視圖開發視圖數據視圖運行視圖
細化架構概述細化架構的多視圖:每個視圖,一組技術關注點
運行架構數據架構物理架構邏輯架構開發架構
持久數據單元文件關系數據庫實時數據庫數據存儲格式文件格式數據庫Schema
程序單元源文件、配置文件程序庫、框架目標單元程序單元組織
Project劃分
Project目錄結構編譯依賴關系
控制流進程、線程中斷服務程序控制流組織系統啟動與停機控制流通信加鎖與同步
職責劃分邏輯層(Layer)子系統、模塊關鍵類職責間協作接口協作關系
物理節點
―PC、服務器
―單片機、單板機、專用機
―軟件安裝、部署、燒寫
―系統軟件選型物理節點拓撲
―連接方式、拓撲結構
―物理層(Tier)
―冗余考慮(三)系統架構之架構分劃1、細化架構案例2、細化架構概述3、細化架構之邏輯架構4、細化架構之物理架構、運行架構、開發架構5、細化架構之數據架構細化架構-邏輯架構劃分子系統策略可歸納為3種:?分層的細化?分區的引入?機制的提取
細化架構-邏輯架構分層的細化:
細化架構-邏輯架構分區的引入:架構中引入分區,支持深度優先的迭代開發
只有分區,如何迭代開發
細化架構-邏輯架構機制的提取:基于接口(或抽象類)的協作是機制,基于具體類的協作則算不上機制
直接組裝稱為協作
細化架構-邏輯架構機制的提?。夯诮涌冢ɑ虺橄箢悾┑膮f作是機制,基于具體類的協作則算不上機制實現不同的最終功能可以重用同一個機制
基于抽象的協作稱為機制
細化架構-邏輯架構子系統劃分:必須三管齊下,綜合運用3種手段:分層細化、分區引入、機制提取
細化架構-邏輯架構子系統劃分:架構設計關注點分離原理
細化架構-邏輯架構子系統劃分:三種手段位于不同的維度,相輔相成
細化架構-邏輯架構子系統劃分:4個重要原則?職責不同的單元劃歸不同子系統?通用性不同的單元劃歸不同子系統?需要不同開發技能的單元劃歸不同子系統?兼顧工作量的相對均衡,把太大的子系統進一步做切分
細化架構-邏輯架構子系統劃分:4個重要原則
細化架構-邏輯架構接口的設計:協作決定接口(xBank與SAP)“我的接口我做主”觀點錯誤
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計質疑驅動結構設計和行為設計相分離
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計過程串聯:第一步,根據當前理解運用3手段切分
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計過程串聯:第二步,找到某功能的參與單元
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計過程串聯:第三步,通過行為讓他們協作完成功能
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計過程串聯:第四步,質疑并推進設計的深入
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計案例示范:設計MyZip從概念架構開始,如下圖:
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計案例示范:設計MyZip運用3手段進行子系統劃分,如下圖:
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計案例示范:設計MyZip讓職責協作,驗證能否支持“壓縮”
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計案例示范:設計MyZip定義“包-接口圖”,如下:
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計案例示范:設計MyZip再從結構跳轉到行為,讓控制負擔“ZipOneFile”職責
細化架構-邏輯架構整體思路:質疑驅動的邏輯架構設計案例示范:設計MyZip逐步明確接口的方法級定義
細化架構-邏輯架構更多經驗總結:10條經驗要點
細化架構-邏輯架構設計模式:包內結構,包間協作實現方案:灰盒包圖的運用
灰盒包頭在邏輯架構思維中的“位置”
細化架構-邏輯架構設計模式:包內結構,包間協作實現方案:灰盒包圖的運用設計不足的灰盒包圖
恰到好處的灰盒包圖
細化架構-邏輯架構PASS練習案例概念架構開始
細化架構-邏輯架構PASS練習案例子系統劃分:3種手段的引入(分層細化、分區引入、機制提取),并運用4原則
細化架構-邏輯架構PASS練習案例從結構設計跳轉到行為設計,開展質疑?
細化架構-邏輯架構PASS練習案例改進之后的邏輯架構
(三)系統架構之架構分劃1、細化架構案例2、細化架構概述3、細化架構之邏輯架構4、細化架構之物理架構、運行架構、開發架構(增加部署方式講解)5、細化架構之數據架構細化架構-物理架構物理架構的設計內容硬件選擇與物理拓撲軟件到硬件的映射關系方案的優化
細化架構-物理架構物理架構的設計的思維框架
細化架構-運行架構運行架構的設計內容:確定引入哪些控制流確定每條控制流的任務控制流的創建、銷毀、通信機制等控制流之間的同步關系,加鎖機制等
細化架構-運行架構運行架構的設計思路物理架構中的每個節點(node)之上至少一條控制流節點之間通信,引入專門控制流(xBank緩存同步)需求一級是并行或并發時,引入多條控制流用戶并發訪問,要求支持多控制流如果控制流復雜,可引入協調控制流
細化架構-運行架構運行架構的設計思路,控制流圖是關鍵
M、N模塊考慮加鎖
細化架構-開發架構為什么開發人員不遵守架構?
許多公司困擾于:開發人員不按照架構進行詳細設計和編程。如何讓開發人員更“擁護”架構?在架構設計中重視“開發架構視圖”,讓開發人員看到他最關心的“程序單元”、“源碼目錄結構”等概念架構設計不可“高來高去”,能支持并行的詳細設計是“架構設計進行到什么程度”的標志應令HR對開發人員批評、教育編程一線的程序經理參與架構設計細化架構-開發架構開發架構設計的工作內容將“邏輯職責”映射為“程序單元”要自主編寫的源程序可重用的庫、框架其他方式(shell腳本,平臺配置文件)開發技術選型:開發語言,開發工具“程序單元”間關系Project劃分Project目錄結構編譯依賴關系
細化架構PASS案例練習物理架構:從邏輯層(Layer)到物理層(Tier)的映射關系
細化架構PASS案例練習持續不斷的非功能需求考慮
細化架構PASS案例練習開發架構:劃分為5個Project
細化架構PASS案例練習開發架構:劃分為5個Project
細化架構架構應設計到什么程度比較合適?應為開發人員提供足夠的指導和限制因項目、開發團隊的情況不同而變化業務層、通用機制應更深入的設計
(三)系統架構之架構分劃1、細化架構案例2、細化架構概述3、細化架構之邏輯架構4、細化架構之物理架構、運行架構、開發架構5、細化架構之數據架構細化架構-數據分布數據分布的6種策略獨立Schema(Separate-schema)集中(Centralized)分區(Partitioned)復制(Replicated)子集(Subset)重組(Reorganized)
細化架構-數據分布數據分布的6種策略:獨立Schema(Separate-schema)當一個大系統由相關的多個小系統組成,且不同小系統具有互不相同的數據庫Schema定義,這種情況稱為“獨立Schema”
細化架構-數據分布數據分布的6種策略:集中(Centralized)指一個大系統必須支持來自不同地點的訪問、或者該系統由相關的多個小系統組成,而持久化數據進行集中化的、統一格式的存儲
細化架構-數據分布數據分布的6種策略:分區(Partitioned)當系統要為“地域分布廣泛的用戶”提供“相同的服務”時,常常采用水平分區策略。水平分區的特點可以概括為“兩個相同,兩個不同”,相同的應用程序、不同的應用程序部署實例(instance),相同的數據模型、不同的數據值。
細化架構-數據分布數據分布的6種策略:分區(Partitioned)垂直分區方式的特點:不同數據節點的Schema會有“部分字段(Field)”的差異,但可以從同一套總的數據Schema中抽取得到
細化架構-數據分布數據分布的6種策略:復制(Replicated)在整個分布式系統中,數據保存多個副本、并且以某種機制(實時或快照)保持多個數據副本之間的數據一致性,叫做復制數據分布策略
細化架構-數據分布數據分布的6種策略:子集(Subset)“子集”是“復制”的特殊方式,就是某節點因功能或非功能考慮而保存全體數據的一個相對固定的子集
細化架構-數據分布數據分布的6種策略:重組(Reorganized)“統計性重組”——數據的重新組織較多地
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 拍賣隊伍協作協議
- 餐廳用品供貨合同
- 旅游服務提供者勞務合同
- 車輛支付條款及流程協議
- 綠化效果評估及反饋協議
- 物業服務企業財務管理系統開發合同
- 認證電子產品銷售合同
- 電商平臺技術支持服務合同
- 產品代銷協議詳細內容條款
- 智能旅游智能預訂平臺開發合同
- 2024年高考真題-地理(河北卷) 含答案
- 單位駕駛員勞務派遣投標方案投標文件(技術方案)
- 資本經營-終結性考試-國開(SC)-參考資料
- 2024年浙江省中考科學試卷
- 拆除工程地坪拆除施工方案
- 軟件授權書范本
- 招聘筆試題與參考答案(某大型國企)2025年
- DB34∕T 2570-2015 祁紅香螺加工技術規程
- 安徽合肥濱湖投資控股集團有限公司招聘筆試題庫2024
- 2024年四年級英語下冊 Module 4 Things we enjoy Unit 12 The ugly duckling第3課時教案 牛津滬教版(三起)
- 2024年鐵路職業技能競賽(線路工)理論考試題庫及答案
評論
0/150
提交評論