详细设计文档模板
文件名称 |
|
文件版本 |
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中运行,命名规则按驼峰式命名法,写好每一个变量、过程、函数、包的注释。变量以@开头,后接实际名称。
总之一点,不管程序代码中还是数据库的过程或函数,都要以清晰的代码结构和详细的注释,以此为标准。