软件架构概述
軟件架構概述
- 什么是軟件架構
- 軟件架構在軟件開發過程中的位置
- 需求和架構的關系
- 需求分類
- 關于功能需求
- 關于質量屬性需求
- 小結 功能需求/質量屬性需求與架構關系
- ==質量屬性需求可以引出架構決策==
- 架構是設計的載體
- 本文參考《Software Architecture in Practice 3rd》
最近在了解軟件架構,結合一些學習資料和自身的思考有了一些體會,現記錄如下以備今后查閱:
什么是軟件架構
軟件架構是一套用于推理系統的結構,這套結構由系統元素、元素之間的關系、元素和關系兩者本身的屬性構成。
- 架構在需求(業務)分析與設計(概要設計/詳細設計)之間搭起了一座橋梁
- 架構是需求的具體化,設計(概要設計/詳細設計)的抽象化
- 架構是設計(概要設計/詳細設計)的載體
軟件架構在軟件開發過程中的位置
需求之后—>軟件架構—>設計(概要設計/詳細設計)之前, 如下圖
需求和架構的關系
要明確需求和架構的關系,需要先了解需求的分類:
需求分類
系統需求可來自各種形式:文字需求、原型、現存系統、用例、用戶描述等,不管來源是什么,所有的需求可分為如下幾類:
關于功能需求
-
在所有的需求中,功能需求和架構的關系是最奇怪的。
-
首先,功能需求并不決定架構:因為只給定一組功能需求,可以創建無數種架構來滿足這些功能點。
-
如果功能是唯一的關注點,那根本就不需要將系統劃分成一些小的結構,一個沒有內部結構的單一整體就可以了。
-
但是:
盡管功能獨立于任何特定的結構,但功能是通過將職責分配給架構元素來實現的,從而產生最基本的架構結構之一。
關于質量屬性需求
我們將系統設計成協作的架構元素的結構化集合——模塊、邏輯層、類、服務、數據庫、應用程序、線程、對等體、物理層等等——使它們易于理解,以支持各種質量屬性需求。
小結 功能需求/質量屬性需求與架構關系
盡管職責可以任意分配給任何模塊,但當其他質量屬性很重要時,軟件架構會限制這種分配。例如,系統經常被劃分,以便幾個人可以合作地構建它們。架構師對功能的興趣在于它如何與其他質量屬性進行交互和約束。
質量屬性需求可以引出架構決策
從一些業務目標可以引出一些質量屬性需求,而這些質量需求會引出架構決策,這些業務目標也可以直接引出架構決策或者引出非架構解決方案。
架構是設計的載體
設計(概要設計/詳細設計)會在架構設計/策略的基礎上進行細化設計。
本文參考《Software Architecture in Practice 3rd》
總結
- 上一篇: Ubuntu 禁用向日葵的服务自启动
- 下一篇: zabbix设置微信告警