Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 9 Architectural Design (架構風格 (Data-centered architectures(資料中心架構),…
Chapter 9 Architectural Design
軟體架構
三面向
軟體由那些元件所組成
元件自身的工作
元件與元件間的關係
用途
分析設計的有效性 - 讓將來的開發人員較易達成軟體開發需求
考慮架構的替代方案 - 尚未開始coding前,修改架構較能被接受
降低風險 - 分析此架構是否合適、與需求是否matching
Architectural Styles
set of components
: 一組系統所需的元件(e.g. 資料庫、計算模組)
set of connectors
: 一組可用於"溝通、協調、合作"的connector
constraints
: 定義元件如何組成系統
semantic models
: 使設計者能理解系統的整體屬性
架構風格
Data-centered architectures
(資料中心架構)
說明 : 中心是一個像database的地方,其他服務就像client
時機 : 擴充容易,適用於各個服務獨立的系統
Data flow architectures
說明 : 有一套流程,每個模組代表每個階段所在做的事
時機 : 適用於強調複雜流程的系統
Call and return architectures
(傳統架構)
Main program/subprogram architecture
Remote procedure call architecture
Object-oriented architectures
Layered architectures
Architectural Patterns
(架構樣板)
說明 : 定義"處理系統某些行為特徵"的特定方法
架構樣板 v.s 架構風格 : Kitchen pattern vs central-hall colonial (廚房樣式、中央大廳殖民地)
example
Concurrency
: 應用程式必須以模擬平行化的方式處理多個tasks
Persistence
: 強調資料會永久存在電腦上
Distribution
: 作為client元件與server元件當中之間的"中間人"
架構設計
3個主要工作
Represent the system in context
使用
architectural context diagram (ACD)
,描述系統與外界的關係
(:fire::fire::fire:圖p.13)
Define archetypes
archetype
: 一種抽象化(類似class),可用來表系統行為的一個元素
(:fire::fire::fire:圖p.15)
Refine the architecture into components
強化架構的細節 => 整體元件設計圖
考慮的兩個domain : Application domain、Infrastructure domain
(:fire::fire::fire:圖p.17~18)