3.1 概要設計的主要內容
不同的系統類型其概要設計的內容也不相同,通過概要設計准則我們可以根據實際情況確定概要設計的具體內容,但是一般來說,概要設計的內容可以包含系統構架、模塊划分、系統接口、數據設計4個主要方面的內容。
1.系統構架
系統構架包含系統使用的軟硬件技術平台及相關技術列表、系統的物理架構、物理器件類型、數據庫管理系統類型、服務器類型、子系統划分及部署方式、系統的軟件架構、第三方軟件平台列表等。
例: 硬件架構
例: 軟件架構:包括層次划分、子系統&模塊划分

例: 軟件技術平台
軟件技術平台通常定義采用什么樣的軟件體系來實現具體的功能,比如采用SOA結構實現服務分散部署,用ESB解決數據通訊以及共享,采用MVC結構實現交互、業務分離,采用RIA技術支撐復雜、可視交互等等。
例: 子系統划分
2.模塊划分
模塊划分的主要工作是結合業務領域以及系統的要求,通過拆分、合並、分組等方法,將各功能划分到子系統和功能模塊中,並細化到各機能組件和功能模塊上。模塊划分可以通過2步來實現,層次以及模塊設計和流程設計。
第1步層次設計,對於復雜系統需要對系統進行多層的划分,然后一層層的設計。層次划分的方法可以結合業務、部署、運用功能等因素考慮,首先進行分類,然后進行抽象分析,整理共性要素,將功能歸納到模塊。制作方法方法可以采用各種表述方法,下例都是按圖或表的方式制作的。
例 層次、模塊划分
例中對系統首先進行了平台的划分(省、市、終端)、各平台中的子系統(監控系統、分析系統)進行定義,同時對子系統中的各模塊(服務)進行的明確的定義。
例 層次、模塊划分
按業務功能進行划分,同時對一些共性模塊進行抽象后歸納。
第2步進行流程划分,進行模塊間的流程設計。層次、模塊划分完成后,需要對整理描述各模塊間的關系,這些關系可以包括時序關系、狀態關系、數據關系等等。在實際設計中,可以根據情況采用不同的描述方法來制作對應的設計文檔,比如以時序為主的系統可以采用時序圖。
例 模塊切分后,切分用例、流程。采用時序圖的方式進行的模塊間流程設計
3.接口設計
軟件系統結合業務、功能、部署等等因素將軟件系統逐步分解到模塊,那么模塊與模塊間就必須根據各模塊的功能定義對應的接口。概要中的接口設計主要用於子系統/模塊之間或內部系統與外部系統進行各種交互。接口設計的內容應包含:功能描述、接口的輸入輸出定義、錯誤處理等。軟件系統接口的種類以及規范很多,可以有API、服務接口、文件、數據庫等等,所以設計的方法也有很大的差異。但是總體來說接口設計的內容包含:通訊方法、協議、接口調用方法、功能內容、輸入出參數、錯誤/例外機制等。從成果上來看,接口一覽(表)以及詳細設計資料是必須的資料。
例. Web Service 調用的XML格式的接口設計
這個接口定義了數據的格式、含義、類型等方面的內容。
例. API調用模式的接口設計
4.數據設計
現代的軟件系統和信息數據緊密的相連,尤其信息系統主要就是處理各類數據。從本質上來說各類系統都是(信息)收集、轉換、處理、再轉換、傳播的過程。難道不是這樣嗎?從人體這個系統到我們的電視、手機系統,這些本質過程有差異嗎? 軟件系統的數據設計,尤其信息系統,主要包含數據庫設計或完成核心(庫)表的設計,當然除了數據庫設計還包括建立在內存、文件中各種關鍵的數據也是設計內容。
ü 數據庫設計:數據庫邏輯設計、物理設計、容量設計、數據字典、數據部署設計等等內容。
ü 數據設計:配置文件設計、臨時文件設計、內存數據設計(共享數據設計、內容數據結構設計)等內容。
例 數據庫設計(E-R圖)
例 數據字典
補充
例 內存設計
補充
例 配置文件設計
補充
3.2詳細設計的主要內容
詳細設計的是概要設計的延續,這個延續體現在設計粒度上。一般來說,詳細設計根據業務要求以及概要設計的內容,確定細化個各類組件的功能、邏輯流程、業務要求、組件接口。 從過程上基本遵循設計的4個主要活動,具體操作一般可以概括為模塊組件分割、模塊組件設計、設計共通功能3個步驟,其中組件分割是比較關鍵的。一般的信息系統,主要的組件分類可以包括畫面、報表、服務、共同組件。
1.畫面設計
畫面設計是交互性設計的主要內容之一。常見的設計內容包括畫面一覽對應的畫面遷移關系,詳細的畫面功能。
例, 畫面一覽
例,畫面遷移
畫面遷移主要描述畫面間的動作關系、定義所有畫面的出入口等內容。
單體畫面設計
例 畫面的原型
例 畫面的動作定義
例 畫面要素、處理定義
2.服務設計
服務組件對應軟件系統主要通過軟件接口實現功能的模塊,詳細設計中服務設計主要內容包括對應程序模塊(package)設計、Class設計、處理邏輯(時序關系)、內外接口、限制條件等等。
例 處理邏輯
例 Class設計
3.共同設計
詳細設計中關鍵的步驟就是進行共同設計,共同設計的多少往往極大的影響后續開發的工作量。比如一個系統抽取40%的共同和只抽取10%的共同,開發、測試工作量差異很大。建議 具體項目中應盡早以及有效的管理共同設計。共同設計可以大體分為業務共同、技術共同。
ü 業務共同是同業務相關的,可以根據業務的特征識別並抽象出不同的模型進行設計,不過一些常見共同比較容易識別,比如權限管理、基礎(master)數據管理、用戶管理、安全管理等等。再如常見的電商系統,包括內容(CMS)管理、推薦引擎、TM、OSS、BI、支付、廣告管理等都可以根據情況納入到共同設計中。
ü 技術共同一般是和計算機技術相關的,比如線程管理、畫面各組件、LOG管理、內存管理、文件處理、文字處理、配置管理、加解密、日志、消息、異常、錯誤處理等。
例 共同設計
補充
例 目錄( 配置) 結構的設計