軟體架構為誰而設計?
1.
為使用者而設計。
不僅包括功能性需求,也包括非功能性需求,例如效能、穩定性、健壯性等。
2.
為客戶而設計。
使用者和客戶有時是不一樣的,可以這樣理解:客戶是出錢的,使用者是軟體產品的直接使用者。
需要充分考慮客戶的特點。營運目標、時間需求、預算限制以及整合需求。
3.
為開發人員而設計。
主要關注軟體的非功能性需求。
4.
為管理員設計。
為專案經理制定專案計劃、管理項目分工和考核項目進度提供參考。
什麼是軟體架構視圖?
一個架構視圖是對於從某一視角或某一點上看到的系統所做的簡化描述,描述中涵蓋了系統中某一特定方面,而省略了與此方面無關的實體。
軟體架構視圖出現的原因:分治思想。
一方面,出於交流的考慮,架構師如果不採用視圖的方式,那麼和不同部分的人員交流就會產生困難。
另一方面,軟體架構是一個非常複雜的事情,架構中,會牽扯到很多概念和技術,而利於軟體架構視圖的方法,使得問題得以清晰化和簡單化。
傳統意義上,架構可以分為物理架構和邏輯架構兩部分。
軟體的邏輯架構規定了軟體系統由哪些邏輯元素組成以及這些邏輯元素之間的關係。
軟體的邏輯架構的任務:
1.
識別功能。
2.
規劃功能塊的介面。
3.
明確功能之間的使用關係和使用機制。
邏輯架構中關於職責劃分的決策,體現為層、子系統和模組等的劃分決定,從靜態視角為詳細設計和編程實現提供實際的指導,有了分解就必須產生協作,邏輯架構還規定了不同邏輯單元之間的互動介面和互動機制。
一般的互動機制包括方法調用、基於RMI的遠程方法調用和訊息機制等。
軟體的物理架構規定了組件系統的物理元素,這些物理元素之間的關係,以及它們部署到硬體上的策略。物理架構可以反映出軟體系統動態運行時的組織情況。
物理架構規定了軟體系統如何使用進程和線程完成期望的並發處理,進程線程這些主動對象會調用哪些被動對象參與處理,互動機制是怎樣的等,從而為詳細設計和編程提供了工作目標的動態視圖。
參考文獻
《軟體架構設計》 溫昱