软件设计说明书模板.docx
- 文档编号:30803010
- 上传时间:2024-01-28
- 格式:DOCX
- 页数:31
- 大小:57.88KB
软件设计说明书模板.docx
《软件设计说明书模板.docx》由会员分享,可在线阅读,更多相关《软件设计说明书模板.docx(31页珍藏版)》请在冰豆网上搜索。
XX系统_1.0.0
软件设计说明书
XXXX软件股份有限公司
XXX系统_1.0.0_软件设计说明书
文档说明
本文档所涉及到的文字、图表等,仅限于XXX软件有限公司内部使用,未经书面许可,请勿扩散。
文档属性:
属性
内容
产品名称
XXX
产品版本
1.0.0
文档标题
软件设计说明书
文档版本
1.0
作者
yourname
完成部门
XXX
完成日期
2011-10-25
密级
机密
完成状态
发布
文档变更历史:
版本
描述
修订人
修订日期
V1.0
用户确认:
客户方
公司方
客户代表确认
确认时间
公司代表确认
确认时间
文档送呈:
姓名
目的
本文档仅XXXXX软件有限公司和被呈送方内部使用,未经双方许可,请勿扩散到第三方。
目录
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.1 UI布局规范 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.1 XX模块数据定义 18
9.1.1 表结构说明 18
9.1.2 视图说明 20
9.1.3 SQL说明 21
9.1.4 存储过程 21
9.1.5 表存储说明 22
9.2 性能设计 23
10 图表目录 25
本文档仅XXXXX软件有限公司和被呈送方内部使用,未经双方许可,请勿扩散到第三方。
第III页
1前言
1.1编写目的
【内容】
说明此文档的主要目的,如用来内部评审,或指导每个研发人员熟悉功能和相关设计等目的。
【裁剪原则】
此部分内容不允许裁剪掉。
1.2适用范围
【内容】
本文的主要受众以及产品适用的用户。
如列出本产品的任务提出者、需求分析者、开发者、用户以及将运行该项软件的单位。
具体开发范围注意与《立项申请》中的范围对应。
【裁剪原则】
此部分内容不允许裁剪掉。
1.3参考资料
表格1.参考资料表
序号
文档名称
文档作者
发表日期
1
2
3
4
5
6
【内容】
写本文档时用到的参考资料,可以是外部的一本书或文章,也可以是公司内部文档,也可以是一个URL连接。
如果是书、文章、内部文档,请写明名称、作者、发表日期等信息。
如果是URL连接,请用简要内容加原始URL的方式作为名称,如:
云计算的搭建实践:
http:
//aa.bb.cc.dd/xx.html
【裁剪原则】
此部分内容不允许裁剪掉。
1.4术语定义
表格2.术语定义表
序号
中文
英文
描述
1
2
3
4
5
6
【内容】
项目/产品中碰到的主要术语,包括技术和业务方面的,通常是业界已有的术语,对于本产品要定义的概念,应该对应到《需求规格说明书》中的概念模型。
【裁剪原则】
此部分内容不允许裁剪掉。
2概述
【内容】
本小段建议简要阐述一下设计人员对《需求规格说明书》的理解,从而做到需求到设计的平滑过渡。
设计评审的过程中,需求分析人员会非常看重“概述”及“总体设计”两大章节。
【裁剪原则】
此部分内容不允许裁剪掉。
2.1产品定位
【内容】
简述此系统“是什么”:
1.对应新产品,要让之前未接触过该领域的读者能看懂本章节,如说明什么领域的什么人群会使用本产品,主要包括的几大项功能是什么;
2.对于升级产品,在说明1的情况下,还要能简要说明产品本次升级版本的定位,包括针对外部用户的变化(如主要哪几项功能得到提升或新增、用户体验如何得到提升、操作如何得到简化等)和内部用户的变化(如实施人员的实施技能要求如何降低、实施周期如何缩短)。
【裁剪原则】
此部分内容不允许裁剪掉。
2.2设计约束
【内容】
要涵盖《需求规格说明书》的“前置条件”章节,同时还可以根据需求增加:
系统应当遵循的标准或规范、软件、硬件环境的约束、接口/协议的约束等等。
【裁剪原则】
此部分内容不允许裁剪掉。
3总体设计
3.1功能架构
【内容】
将系统分解为若干模块,绘制逻辑图,说明各模块如何协调工作,如何实现这些业务功能。
此功能架构图应该基于《需求规格说明书》中功能架构图的基础上进行细化,保持延续性。
如果是升级项目,请用不同颜色区分修改模块、新增模块与已有模块。
【裁剪原则】
此部分内容不允许裁剪掉。
3.2数据架构
【内容】
本章节应该用一个大图或多个小图来画出系统具有的重要对象模型,以及这些对象模型的关系(请注意参考《需求规格说明书》的概念模型章节),并辅助以文字描述。
对象模型是用来描述、细化和串联:
对象(实体概念)、发生在对象上的行为(动作概念)以及对象之间关联关系的(关系可以在对象上作为属性,同时关系本身也可以作为对象)。
部分系统对象又通过各种O-RMapping的开发手段持久化到了数据库中,对于这部分持久化了的对象对应的数据库表,则还需要到“数据库设计”章节详细说明。
【裁剪原则】
此部分内容不允许裁剪掉。
3.3技术架构
【内容】
说明系统采用的技术架构与物理部署结构,如下:
技术架构:
描述系统层次结构以及技术框架、组件的选用,请画图说明。
物理部署架构:
用来说明存在分布式部署,前置采集部署,远程部署等情况的物理部署图,请画图说明。
【裁剪原则】
此部分内容不允许裁剪掉。
4产品开发规范
【内容】
此章节是产品发布文档《二次开发手册》的重要来源,即产品研发相关的规范同样适用于二次开发。
鉴于产品的业务不同,可以根据具体要求增加相关子章节而不仅限于目前的子章节。
【裁剪原则】
此部分内容不允许裁剪掉。
4.1UI布局规范
【内容】
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内部接口
【内容】
系统如何被分解为不同的子系统,子系统之间存在各种接口,同时还包括系统和公司公共组件(PASM、UIP、Report等)的接口。
此章节需要描述子系统、公共组件它们俩俩之间如何协调工作的,可以通过它们之间的接口名称、输入、输出、处理来说明,同时表明它们之间相互依赖的关系。
每个接口可以作为一个更小的子章节。
【裁剪原则】
此部分内容不允许裁剪掉。
8.1.1内部接口1
【内容】
描述一个具体的内部接口。
同时要说明本接口相关的配置文件和数据库表。
【裁剪原则】
此部分内容不允许裁剪掉。
8.2外部接口
【内容】
说明本系统同外界的所有接口。
如果是纯产品开发,要求通过数据流图或时序图画出本产品和公司其他产品的具体接口关系;如果是在基地项目中,要求通过数据流图或时序图画出本产品和用户其他系统的具体接口关系。
每个接口可以作为一个更小的子章节。
【裁剪原则】
此部分内容不允许裁剪掉。
8.2.1外部接口1
【内容】
描述一个具体的外部接口。
同时要说明本接口相关的配置文件和数据库表。
【裁剪原则】
此部分内容不允许裁剪掉。
9数据库设计
【内容】
本章节的开头应该用一个大图或多个小图来画出系统具有的重要数据模型(不一定要细到每张表),以及这些重要数据模型的关系(请注意参考《需求规格说明书》的概念模型章节),可以是标准的ER图,也可以是能说明关系的其他图。
同时本章节应该说明对于系统跨不同类型数据库的支持是如何设计的,如果只支持一种数据库,则请说明具体的数据库名称和版本。
而以下子章节的内容则用来分模块说明数据库表、视图、存储过程、表存储的功能结构,作为设计,可以采用两种方式之一来表述:
1.直接嵌入从数据库建模工具导入的结构(如pdm模型),并说明打开查看的方法;
2.在文档中分章节进行描述:
分章节进行描述的情况下,格式参考了产品发布文档的《数据库定义手册》中的对应章节。
此章节是产品发布文档《数据库定义手册》的重要来源,通常产品发布文档的《数据库定义手册》只是发布给二次开发人员或者实施人员、最终用户的部分,部分研发内部处理机制用的表格并不对外发布到《数据库定义手册》中。
也就是本章节比《数据库定义手册》要多要全。
【裁剪原则】
此部分内容不允许裁剪掉。
9.1XX模块数据定义
9.1.1表结构说明
9.1.1.1XX表
【内容】
描述该表的主要用途。
9.1.1.1.1表结构
【内容】
如果不同数据库,表结构不一致,请分开描述。
表格3.SQLServer中的XX表结构
名称
类型
描述
允许空
表格4.Oracle中的XX表结构
名称
类型
描述
允许空
表格5.Sybase中的XX表结构
名称
类型
描述
允许空
表格6.MySQL中的XX表结构
名称
类型
描述
允许空
9.1.1.1.2表索引
【裁剪原则】
可选,没有可以不写。
9.1.1.1.3表存储
【裁剪原则】
此部分内容不允许裁剪掉。
9.1.1.1.4表分区
【裁剪原则】
此部分内容不允许裁剪掉。
9.1.1.1.5入库处理机制
【内容】
l从界面录入
l通过内部工具导入
l通过外部工具导入
l通过接口与外部系统同步
9.1.1.1.6生命周期
l数据库表的生命周期
l数据库表数据的生命周期
9.1.2视图说明
9.1.2.1XX视图
【内容】
描述该视图的主要用途。
9.1.2.1.1基本信息
【内容】
l视图的名称
l视图的类型
l构成视图的数据表与表之间的关系
9.1.2.1.2视图结构
【内容】
如果不同数据库,视图结构也不一致,请分开描述。
表格7.XX视图结构
名称
类型
描述
关联表
关联字段
9.1.3SQL说明
【内容】
提交所有关于数据库操作的代码(增删改查及ddl操作,可以java代码形式),并标注预计可能存在性能问题及关键模块需要优先考虑的SQL。
【裁剪原则】
此部分内容不允许裁剪掉。
9.1.4存储过程
9.1.4.1XX存储过程
【内容】
描述该存储过程的主要用途。
9.1.4.1.1执行规则
l执行频率,小时粒度的存储过程和天粒度的存储过程执行频率不同。
l执行依赖,天粒度存储过程一定要等小时粒度的存储过程执行完了才能运行。
l执行时长,该存储过程执行时大概耗时或相关计算公式。
9.1.4.1.2参数定义
表格8.XX存储过程的参数定义
参数名
类型
参数传递方向
描述
输入
输出
9.1.4.2调度说明
【内容】
在该模块中存储过程的调度规律和调度顺序,比如多少时间调度一次,多个存储过程之间的顺序或嵌套是什么样的,以及延迟多长时间汇聚等。
9.1.5表存储说明
9.1.5.1SQLServer
【内容】
描述该模块下的表存储特殊要求,以及提供计算数据文件大写的计算公式。
9.1.5.2Oracle
【内容】
描述Oracle的表空间如何规划以及特殊要求,以及提供规划的计算依据。
9.1.5.3Sybase
9.1.5.4MySQL
9.2性能设计
【内容】
本章节描述从整个数据库及关键模块的性能方面考虑所采用的优化方法,对应《需求规格说明书》的每个条目进行逐条设计的详细说明。
例如:
1.考虑到数据库数据量可能非常庞大,采用oracle表压缩技术,减少存储空间
2.本产品为DSS分析系统,以大量读取操作为主,数据块设计为16k
3.建议项目中采用raid10或大缓存的raid5存储,以提高io性能
4.本产品数据库设计为表与索引存放于不同表空间,建议表空间所对应数据文件分散在不同磁盘,以分散io
5.XX模块对相同数据进行大量并发反复读取,在应用端做缓存提高性能
6.XX模块的主要表XXX数据量随时间变化增加较快,设计为按小时分区的分区表
7.XX模块存在大量并发按资源id查询的情况,故在资源id上创建索引
8.XX模块存在对大量数据进行聚合计算,适当使用并行技术提高性能
9.XX模块对数据载入速度要求较高,采用SQLLoader直接路径方式加载数据
以上为针对数据库各项操作的优化方法案例,产品设计时不局限于此,同时要对应《需求规格说明书》中关于非功能性设计—性能设计部分。
【裁剪原则】
此部分内容不允许裁剪掉。
10图表目录
【内容】
请及时更新该目录。
【裁剪原则】
此章节不可裁减。
附图目录:
未找到图形项目表。
附表目录:
表格1. 参考资料表 1
表格2. 术语定义表 2
表格3. SQLServer中的XX表结构 18
表格4. Oracle中的XX表结构 18
表格5. Sybase中的XX表结构 18
表格6. MySQL中的XX表结构 18
表格7. XX视图结构 20
表格8. XX存储过程的参数定义 22
本文档仅XXXXX软件有限公司和被呈送方内部使用,未经双方许可,请勿扩散到第三方。
第25页共31页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 说明书 模板