概要設計首先要明白的是根據架構設計的內容進一步對某個模塊的設計進一步細化。架構設計在系統級,而概要設計在子系統或模塊級。拿建築來比喻,架構設計是把一個建築的框架結構所有定清楚,包括地基要挖多深,核心框架和承重結構如何,每一層的結構圖如何,應該分爲幾個大套間這些內容都應該定下來。每一個大套間的水,電,氣等管道接入點在哪裏等。而概要設計要作的是拿着一個套間,來考慮這個套間內部該如何設計,如何劃分功能區域,如何將水電氣接入點進一步在房間內延伸,哪些地方須要進一步增長非承重的隔斷等。 基於以上思路咱們看到在架構設計的時候,除了不多部分的核心用例咱們會談到具體的用例實現完,大多數功能咱們都不會談到具體的用例實現層面。而到了概要設計則須要進一步的分解我這塊模塊究竟須要實現哪些功能點,具體的每一個功能點究竟如何實現都必需要考慮到。 嚴格的概要設計,咱們但願是到了概要設計的某個功能模塊,模塊所涉及到的核心的類所有會出來,類關係圖所有會出來。數據庫設計也進一步細化到該模塊的數據庫物理模型。對於用例進行用例實現分析,在實現分析過程當中能夠看到每一個類核心的public方法所有會分析識別出來。 拿着架構設計的接口,概要設計也須要進一步細化,細化出接口具體的輸入輸出和使用方法,包括模塊應該使用哪些外部接口,模塊自己又提供哪些接口出去都必須細化清楚。作概要設計的時候必定要清楚當前作的這個模塊在整個應用系統架構中的位置,和外部的集成和交互點。 概要設計不用到詳細設計這麼細化,包括類裏面的私有方法,public方法的具體實現步驟和邏輯,僞代碼等。可是咱們要看到概要設計裏面對於核心的業務邏輯必需要設計清楚如何實現,實現的機制和方法。不少時候咱們到了概要設計畫uml的時序圖,不少時候一看沒有任何意義,全是跨層的簡單的交互和調用。這個應該在架構設計的架構運行機制說清楚便可。設計到多個業務類間的交互調用纔是重點,一個簡單的功能增刪改查,徹底沒有必要畫什麼時序圖。 其次架構設計中給出了各類安全,性能,緩存的設計。那麼在概要設計中出來另一個問題,即架構給出的各類實現方案和技術,咱們在概要設計中如何選擇,如何使用。不是全部功能都須要緩存,那就要說清楚哪些功能根據分析須要緩存,須要緩存哪些對象,緩存自己的時效性如何設置等問題。 概要設計做爲咱們要達到一個目的,就是不管是誰拿走概要設計來作,最終實現出來的功能模塊不會走樣,功能模塊最終實現出來可能有性能,易用性等方面的問題,可是整個功能實現的大框架必定是定了的。