軟體系統的架構
軟體系統的架構
構架設計
子產品構架設計可以從程式的運作時結構和源代碼的組織結構方面考慮
程式的運作時結構
運作時負載均衡可以從系統性能、系統可靠性方面考慮。
需求的符合性
正确性、完整性;功能性需求、非功能性需求
總體性能
記憶體管理、資料庫組織和内容、非資料庫資訊、任務并行性、網絡多人操作、關鍵算法、與網絡、硬體和其他系統接口對性能的影響
性能其實也是客戶需求的一部分,當然可能是明确的,也有很多是隐含的,這裡把它單獨列出來在說明一次。性能是設計方案的重要标準,性能應考慮的不是單台用戶端的性能,而是應該考慮系統總的綜合性能;
性能設計應從以下幾個方面考慮:記憶體管理、資料庫組織和内容、非資料庫資訊、任務并行性、網絡多人操作、關鍵算法、與網絡、硬體和其他系統接口對性能的影響;
幾點提示:算法優化及負載均衡是性能優化的方向。經常要調用的子產品要特别注意優化。占用記憶體較多的變量在不用時要及時清理掉。需要下載下傳的網頁主題檔案過大時應當分解為若幹部分,讓使用者先把主要部分顯示出來
運作可管理性
便于控制系統運作、監視系統狀态、錯誤處理;子產品間通信的簡單性;與可維護性不同
合理的系統構架規劃系統運作資源,便于控制系統運作、監視系統狀态、進行有效的錯誤處理;為了實作上述目标,子產品間通信應當盡可能簡單,同時建立合理詳盡的系統運作日志,系統通過自動審計運作日志,了解系統運作狀态、進行有效的錯誤處理
與其他系統接口相容性
與網絡、硬體接口相容性及性能
系統安全性,可靠性
業務流程的可調整性
業務資訊的可調整性
友善性
構架樣式的一緻性
源代碼的組織結構
開發可管理性
子產品獨立性、層次性
開發工作的負載均衡
進度安排優化
預防員勞工員流動對開發的影響
配置管理(獨立性、層次性)
大小合理性與适度複雜性
可維護性
便于在系統出現故障時及時友善地找到産生故障的原因和源代碼位置,并能友善地進行局部修改、切割;(可維護性與運作可管理性不同)
可擴充性
:系統方案的更新、擴容、擴充性能
系統在建成後會有一段很長的運作周期,在該周期内,應用在不斷增加,應用的層次在不斷更新,是以采用的構架設計等方案因充分考慮更新、擴容、擴充的可行性和便利
可移植性
不同用戶端、應用伺服器、資料庫管理系統
系統架構設計文檔
成功構架的一個重要特色,在于标明最可能變更的領域,應當列出程式中最可能變更的部分,說明構架的其他部分如何應變
構架應重點考慮對于細節全面影響的設計決策,深入這些決策領域:外部軟體接口(相容性、通信方式、傳遞資料結構)、使用者接口(使用者接口和系統層次劃分)、資料庫組織和内容、非資料庫資訊、關鍵算法、記憶體管理(配置政策)、并行性、安全性、可移植性、網絡多人操作、錯誤處理。
要保證需求的可追蹤性,即保證每個需求功能都有相應子產品去實作。
方法學
目标
重用
透明
高效
安全
規則
為了達到上述的目的,我們通常需要對架構設計制定一些簡單的規則
功能分解
解耦(根據實際情況決定不同類間的耦合度)
夠用就好
應用模式
抽象
抽象:業務抽象和技術抽象。架構是現實世界的一個模型,是以我們首先需要對現實世界有一個很深的了解,然後我們還要能夠熟練的應用技術來實作現實世界到模型的映射
架構設計的過程模式
靈活方法
靈活代表着有效和靈活;較低的管理成本和高品質的産出
簡單設計
疊代設計
單次的疊代
疊代的交錯
疊代頻率
組合使用模式
架構願景
架構願景的形成的源頭是需求,需要特别指出的是,這裡的需求主要是那些針對系統基本面的需求。比如說,系統的特點是一個互動式系統,還是一個分布式系統。這些需求将會影響到架構願景的設計。在收集影響架構願景的各項需求之後,按照需求的重要性來設計架構願景。
架構願景的設計并不需要很複雜的過程,也不需要花費很多的時間。我們已經提過,架構遠景的主要目的就是為了能夠在開發團隊中傳播設計思路,是以,架構願景包括基本的設計思路和基本的設計原則。
元件(Architecture Component)
聯結器(Connector)
任務流(Task-flow)
基本概念
一組完成指定功能的語句,包括:輸入、輸出、邏輯處理功能、内部資訊、運作環境(與功能對應但不是一對一關系)
元件
系統中相當重要的、幾乎是獨立的可替換部分,它在明确定義的構架環境中實作确切的功能。
模式
構架模式、分析模式、設計模式和代碼模式或實施模式
構架模式
表示軟體系統的基本結構組織方案。它提供了一組預定義的子系統、指定它們的職責,并且包括用于組織其間關系的規則和指導。常見的軟體結構有:子產品結構、邏輯或概念結構、程序或協調結構、實體結構、使用結構、調用結構、資料流、控制流、類結構等等
層
對模型中同一抽象層次上的包進行分組的一種特定方式。通過分層,從邏輯上将子系統劃分成許多集合,而層間關系的形成要遵循一定的規則。通過分層,可以限制子系統間的依賴關系,使系統以更松散的方式耦合,進而更易于維護。(層是對構架的橫向劃分,分區是對構架的縱向劃分)
常用三層服務(使用者層、業務邏輯層、資料層)
多層結構的技術組成模型(表現層、中間層、資料層)
網絡系統常用三層結構(核心層、彙聚層和接入層)
RUP典型分層方法(應用層、專業業務層、中間件層、系統軟體層)
基于Java的B/S模式系統結構(浏覽器端、伺服器端、請求接收層、請求處理層),(功能層(使用者界面)、子產品層、組裝層(軟體總線)、服務層(資料處理)、資料層、核心層)
自由主題
轉載于:https://www.cnblogs.com/tx720/p/7677382.html