文件名稱 |
|
文件版本 |
V1.0 |
文檔編號 |
|
總頁數 |
共 頁 |
xxx系統詳細設計說明書
擬 制 |
|
日 期 |
|
復 核 |
|
日 期 |
|
質 量 |
|
日 期 |
|
標准化 |
|
日 期 |
|
批 准 |
|
日 期 |
|
xxx有限公司
修訂記錄
日期 |
修訂版本 |
描述 |
作者 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
目 錄
1 引言... 5
1.1 背景... 5
1.2 編寫目的與范圍... 6
1.3 術語定義... 6
1.4 參考資料... 8
1.5 相關工具... 8
2 設計概述... 8
2.1 任務和目標... 8
2.2 需求概述... 8
2.3 運行環境概述... 9
2.3.1 硬件環境... 9
2.3.2 支持環境... 11
2.4 限制和約束... 11
2.5 詳細設計方法... 11
3 總體方案確認... 12
3.1 體系結構詳細設計... 12
3.2 功能模塊划分... 13
3.3 程序框架設計... 13
4 系統詳細設計... 15
4.1 車輛信息維護... 15
4.1.1 界面... 15
5 數據庫設計... 40
6 安全性設計... 41
6.1 用戶權限... 41
6.2 軟件授權... 41
7 設計與開發規范... 43
1 引言
1.1 背景
xxx。
產品名稱:xxx
所屬系統:xxx
任務提出:xxx
任務承擔:xxx
產品用戶:xxx
應用場景:xxx。
1.2 編寫目的與范圍
本文檔為“xxx系統詳細設計說明書”,主要用於為實現系統功能而進行的系統詳細設計說明,具體描述了系統包含的的軟件模塊的實現流程、功能、接口、數據結構等內容,供項目組開發人員和軟件維護人員閱讀。
本文檔用於軟件設計階段的詳細設計階段,其范圍是:系統各組成部門的構成;各軟件模塊(或類)的屬性、方法、事件、外部接口;用戶界面設計;數據結構設計等內容。
1.3 術語定義
分層:在分解復雜的軟件系統時,軟件設計者用得最多的技術之一就是分層。在計算機本身的架構中,可以看到:到處都有分層的例子。不同的層從包含了操作系統調用的程序設計語言,到設備驅動程序和CPU指令集,再到芯片內部的各種邏輯門。網絡互聯眾,FTP層架構再TCP之上,TCP架構再IP之上,IP又架構再以太網之上。
當用分層的觀點來考慮系統時,可以將各個子系統想象成按照“多層蛋糕”的形式來組織,每一層都依托在其下層之上。在這種組織方式下,上層使用了下層定義的各種服務,而下層對上層一無所知。另外,每一層對自己的上層隱藏其下層的細節。因此,第4層使用第3層的服務,第3層使用第2層的服務,第4層無需知道第2層的細節。(當然,並非所有的分層架構都這么隔絕,但絕大多數是不透明的,或至少是幾乎不透明的。)
WPF:Windows Presentation Foundation(WPF)是Microsoft的一個圖形子系統(類似於WinForms),用於在基於Windows的應用程序中呈現用戶界面。 WPF,以前稱為“Avalon”,最初於2006年作為.NET Framework 3.0的一部分發布.WPF使用DirectX,並嘗試為構建應用程序提供一致的編程模型。
MVVM:Model-view-viewmodel是一種軟件架構模式,它有助於將應用程序的業務和表示邏輯與其用戶界面(UI)完全分離。 在應用程序邏輯和UI之間保持清晰的分離有助於解決許多開發問題,並使應用程序更易於測試,維護和發展。 它還可以極大地改善代碼重用機會,並允許開發人員和UI設計人員在開發應用程序的各個部分時更輕松地進行協作。
MVVM模式中有三個核心組件:模型,視圖和視圖模型。 每個都有不同的目的。 下圖顯示了三個組件之間的關系。
EF 6:Entity Framework 6是一個經過實踐檢驗的.NET對象關系映射器(O / RM),具有經過多年開發的功能和穩定性。
作為ORM,EF6減少了關系和面向對象世界之間的阻抗不匹配,使開發人員能夠開發這樣的程序:使用.NET應用程序域中的強類型對象,與存儲在關系數據庫中的數據進行交互,這樣就不再需要編寫大量的數據訪問“管道”代碼。
1.4 參考資料
《xxx需求規格設計說明書》
1.5 相關工具
設計時采用Power Designer、Visio等工具。開發時采用Visual Studio 2019、Sql Sever Management Studio 2012等工具。
2 設計概述
2.1 任務和目標
2.2 需求概述
2.3 運行環境概述
本系統的運行環境的規定如下:
2.3.1 硬件環境
本系統的硬件環境包括:
a) 服務器
服務器硬件推薦選用寶德至強雙路雲服務器PR2510SW,其主要技術參數如下表所示:
表1 服務器主要技術參數
指標名稱 |
指標參數 |
處理器型號 |
Intel® Xeon® E5-2600V3/V4系列處理器 |
處理器數量 |
1/2個 |
尺寸 |
2U機架 |
內存 |
8 DIMM插槽, 支持2400MHz DDR4的RDIMM內存 ,最大支持512GB |
硬盤 |
支持8個3.5”/2.5” SATA/SAS/SSD硬盤,可內置兩個2.5” SATA/SAS/SSD硬盤,最大支持存儲容量68TB |
板載網絡 |
集成2個Intel i210千兆GE網口;可選配外接千兆及萬兆網卡 |
PCIE擴展 |
提供6個PCI-E 擴展插槽(3 PCI-E3.0×8,1 PCI-E3.0×4(in×8),1 PCI-E 3.0 ×16, 1 PCI-E 2.0×4(in ×8)) |
風扇 |
3個熱插拔風扇 |
2.3.2 支持環境
本系統軟件運行環境包括:
a) xxx系統軟件所需的軟件支持環境包括:
1) 數據庫: SQL Server 2008 R2;
2) 操作系統:Windows Server 2012 Enterprise(如需正版軟件,由用戶方提供);
3) Web Server:IIS 7.5
4) .Net Framework 4.5.2
2.4 限制和約束
2.5 詳細設計方法
本文采用結構化設計方法,結合數據流圖進行整體功能模塊的划分。針對各個具體模塊的設計采用面向對象設計方法,結合相應的UML模型進行功能設計,具體包括以包圖表示的軟件體系結構圖,以交互圖表示的用例實現圖,完整精美的類圖、針對復雜對象的類圖,用以描述流程處理過程的活動圖。
3 總體方案確認
3.1 體系結構詳細設計
3.2 功能模塊划分
3.3 程序框架設計
本系統采用分層架構模式將整個系統分為業務展示層(提供服務、顯示信息)、系統服務層(業務邏輯,系統中真正的核心)、數據采集層(與數據庫、消息系統及其他軟件包通信)。
表現層采用MVVM(Model-View-View-Model)設計模式,結合微軟 WPF 框架,可以把界面設計(用xaml語言實現)和業務邏輯開發(用C#實現)分離。
領域層設計符合面向接口編程規范,這樣可以降低層與層之間的耦合,也有利於接口設計和實現的分離,但針對基本的單表的增刪改查服務則是直接調用數據源層的EF API來實現,從而減少過度的接口封裝。
數據源層運用ORM技術來簡化對數據表結構的維護,具體運用了微軟 .Net框架下的的Entity Framework 框架。
4 系統詳細設計
4.1 車輛信息管理
4.1.1 菜單
基礎數據 >> 車輛信息
4.1.2 界面
4.1.3 界面描述
頁面元素 |
元素說明 |
查詢條件 |
|
車牌號 |
文本錄入,忽略大小寫模糊匹配 |
列表項 |
|
車牌號 |
PlateNumber |
操作 |
|
頁面加載 |
默認不查詢數據 |
查詢 |
查詢表“xxx” 固定條件:IsDelete != true 查詢條件:根據條件錄入,對應字段 排序:ID 倒序 |
4.1.4 新增/修改界面
4.1.5 功能詳細說明
xxx。
4.1.6 類圖
4.1.7 主要方法
public List<xxxDto> QueryList(); //查詢信息列表
4.1.8 數據庫表
xxx xxx表,表關系如下圖:
4.1.9 UML模型
5 數據庫設計
數據庫表整體結構如下,詳見《xxx系統數據庫設計說明》。
6 安全性設計
6.1 用戶權限
6.2 軟件授權
7 設計與開發規范
7.1 界面設計原則
以用戶為中心:Theo Mandel博士創造了人機交互的“黃金三原則”:置於用戶控制之下;保持界面一致性;減輕用戶的記憶負擔。
擁有良好的直覺特征:以用戶所熟悉的現實世界事務的抽象來給用戶暗示和隱喻,來幫助用戶快速地學會使用軟件。
較快的響應速度。
簡單且美觀。
7.2 面向對象程序設計原則
單一職責原則(SRP):就一個類而言,應該僅有一個引起它變化的原因。
里氏替換原則(LSP):子類型(subtype)必須能夠替換掉它們的基類型。
依賴倒置原則(DIP):
a高層模塊不應該依賴於低層模塊,兩者都應該依賴於抽象。
b抽象不應該依賴於細節,細節應該依賴於抽象。
接口隔離原則(ISP):不應該強迫客戶依賴於它們不要的方法。接口屬於客戶,不屬於它所在的類層次結構。
開閉原則(OCP):軟件實體(類、模塊、函數等)應該是可以擴展的,但是不可修改的。
迪米特原則(LoD):也叫最少知識原則,即一個軟件是他應當盡可能少地於其他實體發生相互作用,模塊之間的交互要少。
7.3 編碼規范
7.3.1 模塊命名
每一個模塊分一個包,包名以包名的英文單詞命名。小模塊依次放在所屬的大模塊下面,也是以模塊的英文單詞來命名。
7.3.2 類命名
數據訪問類,用駝峰式命名法,首字母大寫,以業務名稱開頭,Repository結尾,例如UserRepository.cs。
業務邏輯類,用駝峰式命名法,首字母大寫,以業務名稱開頭,Service結尾,例如UserService.cs。
業務控制類,用駝峰式命名法,首字母大寫,以業務名稱開頭,ViewModel結尾,例子如UserViewModel.cs。
7.3.3 變量命名
要以有意義的命名的方式來為變量命名,並且單詞首字母小寫,以駝峰式命名法。
7.3.4 過程函數命名
本系統的過程或函數都在Sql Server2012中運行,命名規則按駝峰式命名法,寫好每一個變量、過程、函數、包的注釋。變量以@開頭,后接實際名稱。
總之一點,不管程序代碼中還是數據庫的過程或函數,都要以清晰的代碼結構和詳細的注釋,以此為標准。