架構(師)
選擇正確的模式解決問題
1.根據要解決的問題,對目標的系統邊界進行界定
2.並對目標按照系統的某個原則進行切分
3.根據2,使得這些部分之間能夠進行有機的聯絡,合併組裝成為乙個整體,完成目標系統的所有工作。
//軟體需求分析的三個層次
業務目標,使用者目標,系統目標
//六種質量屬性
1.系統的質量屬性:
可用性,可修改性,效能,安全性,可測試性,易用性。
可用性:系統穩定工作持續的時間或者出現故障恢復的時間。
可修改性:解決的問題是,防止連鎖反應,修改乙個模組不影響另乙個模組(使用介面和引數)。
戰術:影響質量屬性相應的設計決策
架構策略:戰術的集合
架構模式:以某種方式將戰術打包在一起。
安全模式是進入最簡的系統模式,此時連網絡卡,顯示卡音效卡的驅動程序都不會啟動
bios看英文就知道,是主機板基本輸入輸出系統,完全是在主機板上的東西
//可用性戰術:錯誤檢測;錯誤恢復;錯誤預防
錯誤檢測的戰術:
①訊號/響應:乙個元件發訊號,希望在預定時間內收到來自審查元件的響應。(主動詢問)
②心跳:定期返回資訊、資料。另乙個元件收聽該資訊。(被動方式)
③異常:異常處理程式通常將錯誤在語義上轉換為可以被處理的形式,異常通常與
引入異常的程式在同乙個程序中。
錯誤恢復的戰術:
①表決:執行在處理器上的多個程序相同輸入。表決者元件看輸出是否異常,決定終止通常用於控制系統。
②主動冗餘:冗餘元件都以並行的方式對事件作出響應,他們的狀態相同。(恢復時間在幾毫秒)
③被動冗餘:主元件對事件作出響應,通知其他備用元件必須進行狀態更新。這樣,主從狀態一致。(恢復時間在幾秒)
④備件:
⑤重新引入:
shadow操作:
狀態再同步:
檢查點/回滾:
錯誤預防的戰術:
①從服務中刪除:從操作中刪除了系統的乙個元件,以執行某些活動來防止預期發生的故障。
②事務:繫結幾個有序的步驟,以能夠立刻撤銷這個繫結,可以使用事務來防止任何資料受到影響
③程序監視器:監視程序中存在的錯誤,如果發現錯誤,則刪除該執行程序,並未該程序建立乙個新的例項。
//可修改性戰術:區域性化修改;防止連鎖反應;延遲繫結時間
區域性化修改:
①預期期望的變更
②維持語義一致性
③泛化模組
④限制選擇引數
防止連鎖反應:
①連鎖反應
②依賴關係
防止連鎖反應的戰術:
資訊隱藏:
維持現有藉口:
限制通訊路徑:
使用仲裁者:管理a,b之間的依賴相關活動
//效能戰術:目標是對一定時間限制內到達系統的事件生成乙個響應,這些時間可以是訊息到達、
定時器到達,系統狀態的變化。
效能戰術3個分類:
資源需求:分析影響效能的資源因素
資源管理:提高資源的應用效率
資源仲裁:解決資源的爭用
互斥:至少有乙個資源必須處於非共享模式,即一次只有乙個程序可使用。
如果另一程序申請該資源,那麼申請程序應等到該資源釋放為止。
占有並等待:—個程序應占有至少乙個資源,並等待另乙個資源,
而該資源為其他程序所占有。
非搶占:資源不能被搶占,即資源只能被程序在完成任務後自願釋放。
迴圈等待:有一組等待程序 ,p0 等待的資源為 p1 占有,
p1 等待的資源為 p2 占有,……,pn-1 等待的資源為 pn 占有,pn 等待的資源為 p0 占有。
資源需求戰術:
①減少處理乙個事件流所需要的資源
提高計算效率;減少計算開銷
②減少所處理事件數的數量
③控制資源的使用
限制執行時間;限制佇列大小
資源管理戰術:
資源仲裁戰術:
固定優先順序
動態優先順序
//安全性戰術:分為與抵抗攻擊有關的戰術、與檢測攻擊有關的戰術以及與從攻擊中恢復有關的戰術。
抵抗攻擊:
對使用者進行身份驗證
對使用者進行授權
維護資料機密性
維護完整性
限制暴露的資訊
限制訪問
檢測攻擊:
入侵檢測系統。
從攻擊中恢復:
與恢復狀態相關的戰術和與識別攻擊者相關的戰術
資料庫:第一正規化:二維表表頭最簡單形式,屬性不可再分。
第二正規化:消除直接依賴
第三正規化:消除傳遞依賴
//可測試性戰術:目標是允許在完成軟體開發的乙個增量後,輕鬆地對軟體進行測試
白盒測試:驗證資料處理流程
黑盒測試:驗證輸入輸出的正確性。
//易用性:
執行時戰術:
維持任務的乙個模型
維持使用者的乙個模型
維持系統的乙個模型
設計時戰術:將使用者介面與應用的其餘部分分離開來
//////效用樹:效能(響應時間,吞吐量,商業產品改變)
可修改性(改變訊息資料格式,改變web ui)
可用性(硬體故障,軟體故障)
《一線架構師實踐指南》閱讀筆記01
第一節課結束以後一臉懵逼,我有了了很多問題,其中的大前提什麼是軟體架構模式?設計模式是一套解決類似問題的經驗的總結。採用設計模式的目的是為了可重用 而架構模式也乙個通用的 可重用的解決方案。我覺得他們的區別是,設計模式跟 更有直接關係,架構模式站在系統全域性的角度解決子系統之間的關係 功能需求與非功...
《一線架構師實踐指南》閱讀筆記01
一 什麼是架構模式?第一節課結束以後一臉懵逼,我有了了很多問題,其中的大前提什麼是軟體架構模式?設計模式是一套解決類似問題的經驗的總結。採用設計模式的目的是為了可重用 而架構模式也乙個通用的 可重用的解決方案。我覺得他們的區別是,設計模式跟 更有直接關係,架構模式站在系統全域性的角度解決子系統之間的...
閱讀筆記一線架構師實踐指南01
通過閱讀第前5章,我明確了很多概念性的東西,比如,用例是功能需求的實際標準,用例涉及但不涵蓋非功能需求等。本書在緒論部分講到了四個核心主張,通過閱讀後面的,我發現這四個主張貫穿本書全文。1 方法體系是大趨勢 一線架構師真正需要的,是覆蓋需求進 架構出全過程的實踐指導 只有綜合了不 同方法優點的 方法...