详细设计文档模板

文件名称

 

文件版本

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层的细节。(当然,并非所有的分层架构都这么隔绝,但绝大多数是不透明的,或至少是几乎不透明的。)

WPFWindows Presentation Foundation(WPF)是Microsoft的一个图形子系统(类似于WinForms),用于在基于Windows的应用程序中呈现用户界面。 WPF,以前称为“Avalon”,最初于2006年作为.NET Framework 3.0的一部分发布.WPF使用DirectX,并尝试为构建应用程序提供一致的编程模型。

MVVMModel-view-viewmodel是一种软件架构模式,它有助于将应用程序的业务和表示逻辑与其用户界面(UI)完全分离。 在应用程序逻辑和UI之间保持清晰的分离有助于解决许多开发问题,并使应用程序更易于测试,维护和发展。 它还可以极大地改善代码重用机会,并允许开发人员和UI设计人员在开发应用程序的各个部分时更轻松地进行协作。

MVVM模式中有三个核心组件:模型,视图和视图模型。 每个都有不同的目的。 下图显示了三个组件之间的关系。 

EF 6Entity 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中运行,命名规则按驼峰式命名法,写好每一个变量、过程、函数、包的注释。变量以@开头,后接实际名称。

总之一点,不管程序代码中还是数据库的过程或函数,都要以清晰的代码结构和详细的注释,以此为标准。

7.4   代码目录结构

posted on 2019-09-12 14:55  wangzhiliang  阅读(37478)  评论(1编辑  收藏  举报

导航