zoukankan      html  css  js  c++  java
  • 详细设计文档模板

    文件名称

     

    文件版本

    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   代码目录结构

  • 相关阅读:
    go-elasticsearch 来自官方的 golang es client
    nginx unit nodejs 模块试用(续)
    WebSocket-Over-HTTP Protocol
    pushpin Server-sent events && openresty 集成试用
    Rendering on the Web
    pushpin openresty 集成试用
    100 webhook implementations
    streamdataio 实时数据分发平台
    Generic Realtime Intermediary Protocol
    Pushpin How it works
  • 原文地址:https://www.cnblogs.com/hellowzl/p/11511922.html
Copyright © 2011-2022 走看看