文件名稱數據庫 |
|
文件版本編程 |
V1.0設計模式 |
文檔編號安全 |
|
總頁數服務器 |
共 頁網絡 |
xxx系統詳細設計說明書 數據結構
擬 制架構 |
|
日 期app |
|
復 核框架 |
|
日 期 |
|
質 量 |
|
日 期 |
|
標準化 |
|
日 期 |
|
批 準 |
|
日 期 |
|
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 201九、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中運行,命名規則按駝峯式命名法,寫好每個變量、過程、函數、包的註釋。變量以@開頭,後接實際名稱。
總之一點,無論程序代碼中仍是數據庫的過程或函數,都要以清晰的代碼結構和詳細的註釋,以此爲標準。