軟件結構設計的目的、原則和基本視圖安全
1.軟件結構設計的目的架構
可重用:爲大規模開發提供基礎和規範,並提供可重用的資產,軟件系統的大規模開發,必需要有必定的基礎和遵循必定的規範,這既是軟件工程自己的要求,也是客戶的要求。架構設計的過程當中能夠將一些公共部分抽象提取出來,造成公共類和公共接口,其餘功能模塊所需相關功能便可調用,以達到重用的目的。框架
縮短週期:必定程度上縮短項目的週期,利用軟件架構提供的框架或重用組件,縮短項目開發的週期。單元測試
下降開發和維護的成本:大量的重用和抽象,能夠提取出一些開發人員不用關心的公共部分,這樣即可以使開發人員僅僅關注於業務邏輯的實現,從而減小了不少工做量,提升了開發效率。測試
提升產品的質量:好的軟件架構設計是產品質量的保證,特別是對於客戶經常提出的非功能性需求的知足。spa
2.軟件架構的基本設計原則架構設計
知足功能性需求和非功能需求:這是一個軟件系統最基本的要求,也是架構設計時應該遵循的最基本的原則。設計
實用性原則:就像每個軟件系統交付給用戶使用時必須實用,能解決用戶的問題同樣,架構設計也必須實用,不然就會「高來高去」或「過分設計」。orm
接口複用:公共部分可設計成接口,減小冗餘,最大程度的提升開發人員的工做效率。對象
低耦合:耦合是描述模塊之間的依賴程度,若是一個模塊的修改,都有另外一個模塊會受到影響,則兩模塊之間是相互依賴耦合的。(依賴具備傳遞性,耦合的兩個模塊可能間接依賴),低耦合是咱們的設計目的,但不是不能夠存在耦合不存依賴,依賴是必須的,由於模塊之間是必需要通訊交互。設計依賴應該依賴於不變或者不易變的接口,無需瞭解模塊的具體實現,即爲面向對象的封裝性。
高內聚:高內聚是指某個特定模塊包括程序、類型都應完成一系列相關功能,描述了不一樣程序和類型中方法,方法中不一樣操做描述的邏輯之間的距離相近。高內聚意味可維護性,可重塑性,由於模塊對外部的依賴少(功能的完備性)。若是兩個模塊之間的修改,互不影響各個模塊的業務,這說明模塊之間是高內聚的。模塊的內聚和其擔當的職責成反比,即模塊的職責越多,模塊的內聚性越低,這也是模塊的單一原則(SRP),SRP提倡每一個類型都最好只承擔單一的職責,只有單一的改變因素。
3.軟件架構設計的基本視圖
因爲軟件系統的不一樣的角色會站在不一樣的角度上提出的問題,咱們就得從不一樣的視角來看待軟件架構設計這項工做:
邏輯架構視角:從系統用戶的角度考慮問題,設計出來的軟件架構可以知足業務邏輯的需求,可以處理如今愈來愈複雜的業務邏輯需求。
開發架構視角:從系統開發人員的角度來考慮問題,設計的架構要易於理解,易於開發,易於單元測試,最好作到讓開發人員能夠用最少的代碼行數完成功能的開發。
運行架構視角:從系統運行時的質量需求考慮問題,特別關注於系統的非功能需求,客戶經常都會要求咱們系統的功能畫面的最長響應時間不超過4秒,能知足2000個用戶同時在線使用,基於角色的系統資源的安全控制等。
物理架構視角:關注系統安裝和部署在什麼樣的環境上,例如如今最流行的企業應用服務解決方案IBM Http Server + WebSphere Application Server + DB2,WebLogic + Oracle等。
數據架構視角:現在咱們開發的各種系統,如管理信息系統(Management Information System,MIS)、ERP(企業資源計劃),SAP,基本上都是對各種數據的操做,把一堆不太好懂的數據展示成用戶容易看懂的數據,自動處理各種數據的運算等,因此數據的持久化是十分重要的一件事情。