文档库 最新最全的文档下载
当前位置:文档库 › 软件设计说明书模板

软件设计说明书模板

软件设计说明书模板
软件设计说明书模板

XX系统_1.0.0软件设计说明书

XXXX软件股份有限公司

文档说明

本文档所涉及到的文字、图表等,仅限于XXX软件有限公司内部使用,未经书面许可,请勿扩散。

文档属性:

文档变更历史:

用户确认:

文档送呈:

目录

1前言 (1)

1.1编写目的 (1)

1.2适用范围 (1)

1.3参考资料 (1)

1.4术语定义 (2)

2概述 (2)

2.1产品定位 (3)

2.2设计约束 (3)

3总体设计 (4)

3.1功能架构 (4)

3.2数据架构 (4)

3.3技术架构 (5)

4产品开发规范 (5)

4.1UI布局规范 (6)

4.2前端开发规范 (6)

4.3后端开发规范 (6)

4.4代码风格规范 (7)

5目录及配置文件说明 (7)

5.1工程目录 (7)

5.2类存放目录 (8)

5.3配置文件目录 (8)

5.4页面配置目录 (8)

5.5代码提交规范 (9)

6功能模块设计 (9)

6.1功能模块1 (10)

6.1.1子功能模块1 (10)

6.1.2子功能模块2 (12)

6.2功能模块2 (12)

7非功能性需求的设计 (12)

7.1性能需求的设计 (12)

7.2功能迁移需求的设计 (14)

7.3权限控制需求的设计 (14)

7.4浏览器版本要求的设计 (14)

8接口设计 (15)

8.1内部接口 (15)

8.1.1内部接口1 (16)

8.2外部接口 (16)

8.2.1外部接口1 (16)

9数据库设计 (17)

9.1XX模块数据定义 (18)

9.1.1表结构说明 (18)

9.1.2视图说明 (20)

9.1.3SQL说明 (21)

9.1.4存储过程 (21)

9.1.5表存储说明 (22)

9.2性能设计 (23)

10图表目录 (25)

1 前言

1.1 编写目的

【内容】

说明此文档的主要目的,如用来内部评审,或指导每个研发人员熟悉功能和相关设计等目的。

【裁剪原则】

此部分内容不允许裁剪掉。

1.2 适用范围

【内容】

本文的主要受众以及产品适用的用户。如列出本产品的任务提出者、需求分析者、开发者、用户以及将运行该项软件的单位。

具体开发范围注意与《立项申请》中的范围对应。

【裁剪原则】

此部分内容不允许裁剪掉。

1.3 参考资料

表格1.参考资料表

【内容】

写本文档时用到的参考资料,可以是外部的一本书或文章,也可以是公司内部文档,也可以是一个URL连接。

如果是书、文章、内部文档,请写明名称、作者、发表日期等信息。

如果是URL连接,请用简要内容加原始URL的方式作为名称,如:

云计算的搭建实践:https://www.wendangku.net/doc/652908501.html,.dd/xx.html

【裁剪原则】

此部分内容不允许裁剪掉。

1.4 术语定义

表格2.术语定义表

【内容】

项目/产品中碰到的主要术语,包括技术和业务方面的,通常是业界已有的术语,对于本产品要定义的概念,应该对应到《需求规格说明书》中的概念模型。

【裁剪原则】

此部分内容不允许裁剪掉。

2 概述

【内容】

本小段建议简要阐述一下设计人员对《需求规格说明书》的理解,从而做到需求到设计的平滑过渡。

设计评审的过程中,需求分析人员会非常看重“概述”及“总体设计”两大章节。

【裁剪原则】

此部分内容不允许裁剪掉。

2.1 产品定位

【内容】

简述此系统“是什么”:

1.对应新产品,要让之前未接触过该领域的读者能看懂本章节,如说明什么领域的

什么人群会使用本产品,主要包括的几大项功能是什么;

2.对于升级产品,在说明1的情况下,还要能简要说明产品本次升级版本的定位,

包括针对外部用户的变化(如主要哪几项功能得到提升或新增、用户体验如何得到提升、操作如何得到简化等)和内部用户的变化(如实施人员的实施技能要求如何降低、实施周期如何缩短)。

【裁剪原则】

此部分内容不允许裁剪掉。

2.2 设计约束

【内容】

要涵盖《需求规格说明书》的“前置条件”章节,同时还可以根据需求增加:系统应

当遵循的标准或规范、软件、硬件环境的约束、接口/协议的约束等等。

【裁剪原则】

此部分内容不允许裁剪掉。

3 总体设计

3.1 功能架构

【内容】

将系统分解为若干模块,绘制逻辑图,说明各模块如何协调工作,如何实现这些业务功能。

此功能架构图应该基于《需求规格说明书》中功能架构图的基础上进行细化,保持延续性。

如果是升级项目,请用不同颜色区分修改模块、新增模块与已有模块。

【裁剪原则】

此部分内容不允许裁剪掉。

3.2 数据架构

【内容】

本章节应该用一个大图或多个小图来画出系统具有的重要对象模型,以及这些对象模型的关系(请注意参考《需求规格说明书》的概念模型章节),并辅助以文字描述。对象模型是用来描述、细化和串联:对象(实体概念)、发生在对象上的行为(动作概念)以及对象之间关联关系的(关系可以在对象上作为属性,同时关系本身也可以作为对象)。部分系统对象又通过各种O-R Mapping的开发手段持久化到了数据库中,对于这部分持久化了的

对象对应的数据库表,则还需要到“数据库设计”章节详细说明。

【裁剪原则】

此部分内容不允许裁剪掉。

3.3 技术架构

【内容】

说明系统采用的技术架构与物理部署结构,如下:

技术架构:描述系统层次结构以及技术框架、组件的选用,请画图说明。

物理部署架构:用来说明存在分布式部署,前置采集部署,远程部署等情况的物理部署图,请画图说明。

【裁剪原则】

此部分内容不允许裁剪掉。

4 产品开发规范

【内容】

此章节是产品发布文档《二次开发手册》的重要来源,即产品研发相关的规范同样适用于二次开发。

鉴于产品的业务不同,可以根据具体要求增加相关子章节而不仅限于目前的子章节。

【裁剪原则】

此部分内容不允许裁剪掉。

4.1 UI布局规范

【内容】

UI 布局规范是通用的规范,针对XXX公司发布的《UI统一开发规范.doc》来进行增减(因为部分内容本产品可能用不到或者部分内容还要细化),主要作为通用的布局和基本界面布局的要求,未涉及到产品具体数据的呈现要求。通过本章节的规范来约束让本产品的风格统一、界面漂亮。

【裁剪原则】

此部分内容不允许裁剪掉。

4.2 前端开发规范

【内容】

此处重点强调界面上根据本产品的业务特点说明如何尽量做到显示和组织数据的合理性,从而不只做到漂亮,还要做到能提升用户体验,包括:图形如何呈现、图表默认样式、表格默认排序、表格数据空值处理、网络速率数据的KMGT处理等,还可以包括前端页面文件命名等,此部分是开发人员在开发页面作呈现时必须遵守的细节规定。

【裁剪原则】

此部分内容不允许裁剪掉。

4.3 后端开发规范

【内容】

此处重点强调后端开发的相关要求,如调度、接口、设计模式、文件类和函数命名、

路径等等的统一要求,此部分是强调开发人员在开发后端程序时必须遵守的规定。

【裁剪原则】

此部分内容不允许裁剪掉。

4.4 代码风格规范

【内容】

此处重点强调代码的风格,此部分是强调开发人员在开发所有程序时必须遵守的规定。

【裁剪原则】

此部分内容不允许裁剪掉。

5 目录及配置文件说明

【内容】

说明开发过程涉及到的配置文件、文件目录等的说明。

此章节将作为产品发布文档《配置参考手册》的重要来源。

【裁剪原则】

关于此系统若没有特殊说明,此部分内容不允许裁剪掉。

5.1 工程目录

【内容】

说明开发工程中cvs或svn路径说明。

【裁剪原则】

关于此系统若没有特殊说明,此部分内容不允许裁剪掉。

5.2 类存放目录

【内容】

说明开发工程中src下类包的分类、创建、修改、删除等相关的要求,说明代码包的命名、结构和约束。

【裁剪原则】

关于此系统若没有特殊说明,此部分内容不允许裁剪掉。

5.3 配置文件目录

【内容】

说明开发过程中用到配置文件的说明。

【裁剪原则】

关于此系统若没有特殊说明,此部分内容不允许裁剪掉。

5.4 页面配置目录

【内容】

说明开发工程中表示层(jsp等)文件的说明。

【裁剪原则】

关于此系统若没有特殊说明,此部分内容不允许裁剪掉。

5.5 代码提交规范

【内容】

工程中开发人员代码提交的注意事项,一般应用在团队整体开发,在提交个人代码到cvs或svn上的说明。

【裁剪原则】

关于此系统若没有特殊说明,此部分内容允许裁减掉。

6 功能模块设计

【内容】

对模块功能设计进行描述,对应《需求规格说明书》的“产品功能”章节,同时务必结合“产品原型”和“产品业务场景”进行详细叙述。

此章节的子章节组成关系可对应到《需求规格说明书》中的“产品功能”章节(通常章节上应该稍微多于需求规格说明书),同时每个子功能在研发团队中都应该考虑如何履行自测互测的相关工作:

1.在提交测试之前,每个产品的每个版本的每个新做的子功能应该都是经过自测互

测的,自测就是本子功能的开发人员自己做的测试,互测应该是和该子功能可能

相关的其他研发人员,比如推荐由该子功能的上下游的开发人员来进行互测,也

就是由提供者或者消费者来体验测试该子功能;

2.提交给测试人员的每个产品的每个版本需要同时提交一份《自测互测责任表》,

表格中为子功能和自测互测的交叉矩阵,每个子功能的自测不少于1人,互测不

少于2人,表格中的人员通常应该是参与代码编写的研发人员;

3.提交给测试人员的每个产品的每个版本需要同时提交一份《冒烟测试责任书》,

此责任书的负责人应该是不参与写代码的支持人员或者业务人员;

【裁剪原则】

此部分内容不允许裁剪掉。

6.1 功能模块1

【内容】

简单总结本功能模块。

【裁剪原则】

此部分内容不允许裁剪掉。

6.1.1 子功能模块1

【内容】

简单总结本子功能模块。

【裁剪原则】

此部分内容不允许裁剪掉。

6.1.1.1 功能描述

【内容】

对本子功能模块的设计进行详细描述。

【裁剪原则】

此部分内容不允许裁剪掉。

6.1.1.2 处理流程

【内容】

绘制本子功能模块的数据流图,说明本子模块相关的数据库表和配置文件,并对处理流程进行详细描述。

【裁剪原则】

此部分内容不允许裁剪掉。

6.1.1.3 约束

【内容】

设计中功能模块间存在的数据引用关系和内部的相关限制说明。

【裁剪原则】

此部分内容不允许裁剪掉。

6.1.1.4 界面原型

【内容】

设计中功能模块准备实现的截图,此处务必首先参考原型。

【裁剪原则】

关于此系统若没有特殊说明,此部分内容允许裁剪掉。

6.1.2 子功能模块2

6.2 功能模块2

7 非功能性需求的设计

【内容】

对应《需求规格说明书》的“非功能性需求”中的除“前置条件”和“集成需求”之外四个章节的设计说明。

因为:“前置条件”已对应到了本文档的“设计约束”,而“集成需求”对应到了本文档的“接口设计”。

【裁剪原则】

此部分内容不允许裁剪掉。

7.1 性能需求的设计

【内容】

对应《需求规格说明书》的每个条目进行逐条设计的详细说明。

1.系统关键业务的界面响应速度:

a)关键业务泛指用户使用较为频繁、用户体验较为重要的事务,如系统首页的

登录,自定义报表的展示,工单查询等。

b)界面响应速度泛指事务响应时间,测试业界遵循2、5、10原则,即2秒内为

极佳的用户体验,5秒内为良好的用户体验,10秒内为可以接受的用户体验。

此值在测试的时候应取最大响应时间,而非平均响应时间。但用户或此业务

不需要严格定义响应时间,建议选择平均响应时间。

c)例:pasm系统登录响应时间应小于5秒,**报表响应时间小于3秒,查询操

作平均响应时间应小于5秒等。

2.系统关键业务应支持的并发用户数:

a)这里需要调研系统使用的总用户数、峰值在线用户数,取在线用户数的10%

为事务并发用户数。

b)例:使用系统的用户部门100人,峰值在线20人,取峰值在线20人的10%=2

人为并发用户数。所以性能需求建议定为:在线用户数20人,并发登录操作

2人,并发查询操作2人。如不想使用在线用户数,可修改为并发用户数20

人。

3.后端对服务器主机资源的占用、前端对客户主机资源的占用:

a)后端对服务器主机资源的占用,泛指中间件或系统进程对主机cpu、mem、

diskI/O等资源的占用情况。

b)前端对客户主机资源的占用,泛指B/S架构系统IE浏览器对客户主机内存资

源的占用情况。

c)例:patrolagent占用主机cpu资源小于5%,占用主机mem资源小于30m。

IE浏览器占用客户主机mem资源小于100m。

4.后端服务运行时间的要求:

a)7*24持续运行泛指较为重要的系统,不能随意重新启动或更新系统配置。

b)临时性一次运行泛指可以重启系统调整配置参数,一般用户单交易性能测试。

c)周期性调度运行,泛指周期性采集调度系统。

d)在运行时间要求的基础上,建议加入一定压力为前置条件。

e)例:nms系统在线用户20人,其中10人做历史告警查询,2个人做资源添

加,2个人做告警添加,2个人做工程预约,1个人做添加,3个人做资源查

询。要求系统稳定运行7*24小时。交易成功率100%,cpu资源占用小于10%

等。

【裁剪原则】

此部分内容不允许裁剪掉。

7.2 功能迁移需求的设计

【内容】

对应《需求规格说明书》的每个条目进行逐条设计的详细说明。

【裁剪原则】

此部分内容不允许裁剪掉。

7.3 权限控制需求的设计

【内容】

对应《需求规格说明书》的每个条目进行逐条设计的详细说明。

【裁剪原则】

此部分内容不允许裁剪掉。

7.4 浏览器版本要求的设计

【内容】

对应《需求规格说明书》的每个条目进行逐条设计的详细说明。

【裁剪原则】

此部分内容不允许裁剪掉。

8 接口设计

【内容】

对应《需求规格说明书》的“集成需求”章节。

此章节是产品发布文档《二次开发手册》的重要来源,通常产品发布文档的《二次开发手册》只是发布给公司内部二次开发人员的部分,部分研发内部处理机制用的接口并不对外发布到《二次开发手册》中,也就是本章节比《二次开发手册》要多要全。

【裁剪原则】

此部分内容不允许裁剪掉。

8.1 内部接口

【内容】

系统如何被分解为不同的子系统,子系统之间存在各种接口,同时还包括系统和公司公共组件(P ASM、UIP、Report等)的接口。

此章节需要描述子系统、公共组件它们俩俩之间如何协调工作的,可以通过它们之间的接口名称、输入、输出、处理来说明,同时表明它们之间相互依赖的关系。

每个接口可以作为一个更小的子章节。

此部分内容不允许裁剪掉。

8.1.1 内部接口1

【内容】

描述一个具体的内部接口。同时要说明本接口相关的配置文件和数据库表。

【裁剪原则】

此部分内容不允许裁剪掉。

8.2 外部接口

【内容】

说明本系统同外界的所有接口。如果是纯产品开发,要求通过数据流图或时序图画出本产品和公司其他产品的具体接口关系;如果是在基地项目中,要求通过数据流图或时序图画出本产品和用户其他系统的具体接口关系。

每个接口可以作为一个更小的子章节。

【裁剪原则】

此部分内容不允许裁剪掉。

8.2.1 外部接口1

【内容】

描述一个具体的外部接口。同时要说明本接口相关的配置文件和数据库表。

相关文档