软件概要设计说明书范例.docx

上传人:b****2 文档编号:2165754 上传时间:2022-10-27 格式:DOCX 页数:12 大小:110.68KB
下载 相关 举报
软件概要设计说明书范例.docx_第1页
第1页 / 共12页
软件概要设计说明书范例.docx_第2页
第2页 / 共12页
软件概要设计说明书范例.docx_第3页
第3页 / 共12页
软件概要设计说明书范例.docx_第4页
第4页 / 共12页
软件概要设计说明书范例.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

软件概要设计说明书范例.docx

《软件概要设计说明书范例.docx》由会员分享,可在线阅读,更多相关《软件概要设计说明书范例.docx(12页珍藏版)》请在冰豆网上搜索。

软件概要设计说明书范例.docx

软件概要设计说明书范例

**概要设计说明书

拟制

***

日期

2018年10月20日

审核

日期

批准

日期

文档修改记录

修改日期

版本/状态

作者

修改章节

修改描述

2017-10-17

V1.0

***

初版V1.0发布

填写说明

1.系统结构的定义

本体系对整个软件系统按如下结构方式进行划分:

系统→子系统→模块→子模块

其中:

(1)“系统→子系统”划分属于“系统设计”,在系统设计说明书中予以描述。

(2)“子系统→模块”划分属于“概要设计”,在本说明书中予以描述。

(3)“模块→子模块”划分属于“详细设计”,在详细设计说明书中予以描述。

如果系统相对简单,可以省略“子模块”这一层次。

2.如果填写了系统设计说明书,则在本说明书中略过“系统→子系统”划分的相关内容(即第2章)。

3.如果系统相对简单,不需要做“系统→子系统”划分,这种情况下,取消填写系统设计说明书,只须填写本说明书,直接套用“子系统→模块”划分(即第3章)进行“系统→模块”划分(把其中“子系统”一词替换为“系统”),并删除本说明书中“系统→子系统”划分的相关内容(第2章)。

1.简介

1.1.背景和目的

本文档编制的目的是说明对软件系统的设计考虑,包括软件系统的基本处理流程,软件系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计奠定基础。

1.2.*围

本文档适用于消息推送项目二期产品的服务端。

1.3.术语和缩略语

缩略语

英文全名

中文解释

*MPP

TheE*tensibleMessagingandPresenceProtocol

可扩展通讯和表示协议

2.系统总体设计

{裁剪说明:

如果已编写系统设计说明书,或项目不做“系统→子系统”划分,此章省略;否则内部的各节必须按要求填写。

}

{“系统──>子系统”划分。

}

{目的:

1)设计系统整体框架:

系统最高层次的逻辑结构、物理结构;

2)子系统的划分与依赖关系定义、子系统之间的接口定义、子系统功能定义。

}

1.1.任务概述

1.1.1.目标

实现目标和功能。

1.1.2.需求概述

参考“软件需求规格说明书”。

1.2.设计概述

1.2.1.总体约束

1.2.2.系统外部接口

1.2.3.设计方案概述

建立一套即时通讯&消息推送的解决方案:

1)云端运用spring+mina+jgroups建立一个分布式的服务端系统,以*MPP协议提供接口;

2)终端运用smack建立一个*MPP协议的客户端,调用协议接口实现消息接收和终端展示。

1.3.系统架构设计

1.3.1.系统的逻辑架构设计

1.3.1.1.单IDC服务器架构图

分六层结构:

负载均衡层、接入层、逻辑处理层、数据访问层、数据层、WEB层。

1)负载均衡层:

TV终端通过域名访问云端,DNS智能解析终端的IP地址让它连接就近的分发服务器,从分发服务器获取接入服务器列表,然后断开*MPP连接;

2)接入层:

TV终端和接入服务器建立*MPP长连接,创建会话;

3)逻辑处理层:

终端协议服务器、推送服务器(RS)、统计服务器。

a)终端协议服务器:

终端往接入服务器发送协议包,接入服务器转发给终端协议服务器处理;

b)推送服务器:

负责从MQ取出消息、解析消息(条件体和消息体)、终端在线和离线查询、按各接入服务器有哪些终端登录把消息包分发给接入服务器;

c)统计服务器:

运用quartz执行定时任务,实现终端每天在线数、终端每小时在线数、终端每天激活数、终端登录次数、消息推送结果等统计功能。

4)数据访问层:

提供数据访问组件,如MysqlJDBC接口、jedis缓存接口。

提供第三方推送接口,供第三方云端调用的API,提供单点推送(明消息/暗消息)、条件(区域+机型)推送、regid推送。

5)数据层:

Mongodb集群,Mysql数据库(主从+读写分离),ActiveMQ消息队列,Redis缓存服务器。

6)WEB层:

运营平台、第三方推送平台。

1.3.1.2.多IDC服务器架构图

需要整理

1.3.2.系统的物理架构设计

1.4.子系统定义

1.4.1.子系统列表

子系统编号

子系统名称(标识)

功能描述

开发方式

1

运营平台子系统

由超级管理员和运营人员使用,提供第三方管理、基础数据、消息管理、运维、统计、系统设置、日志查询等功能。

自行开发

2

第三方推送接口子系统

供第三方云端调用的API,提供单点推送(明消息/暗消息)、条件(区域+机型)推送、regid推送。

自行开发

3

第三方推送平台子系统

给第三方使用,提供开发者账号注册、应用管理、消息发布、消息推送结果查询等功能。

自行开发

4

推送服务器子系统

云端的一个逻辑服务器,实现从MQ取出消息、解析消息(条件体和消息体)、终端在线和离线查询、按各接入服务器有哪些终端登录把消息包分发给接入服务器。

自行开发

5

后台任务子系统

云端的后台任务系统,运用quartz执行定时任务,实现终端每天在线数、终端每小时在线数、终端每天激活数、终端登录次数、消息推送结果等统计功能。

自行开发

6

云端与终端接口:

分发服务器、接入服务器、终端协议服务器

为消息盒子终端提供云端接口,用*MPP协议。

提供获取接入服务器列表、电视终端获取唯一标识userid、以userid登录认证、建立会话及长连接、推送消息、反馈消息接收和点击情况、终端应用激活上报等协议。

自行开发

7

云端集群

在云端用JGroups技术组建一个集群,管理各逻辑服务器,实现各成员之间的通讯、成员状态反馈、成员列表维护等功能。

自行开发

注:

开发方式可选:

采购、外包、自行开发、复用。

1.4.2.子系统间关系

{裁剪说明:

必填}

{明确子系统之间的调用关系、子系统间的接口(消息、数据结构)以及相关子系统之间的协同工作,可以使用结构图、(交互)事务图、消息序列图、ER图描述。

}

3.子系统1设计

{裁剪说明:

必填}

{标题上加入子系统的编号及名称(标识)}

{“子系统──>模块”划分。

}

{目的:

1)设计子系统整体框架:

子系统的逻辑结构;

2)模块的划分与依赖关系定义、模块之间的接口定义、模块功能定义。

}

1.5.任务概述

1.5.1.目标

{裁剪说明:

可选}

{说明设计意图目标(总目标、分期目标)、作用*围等。

}

1.5.2.需求概述

{裁剪说明:

可选}

{解释软件产品将完成或不完成的功能(可以直接描述也可以参考相关文档)}

1.6.设计概述

1.6.1.总体约束

1.6.1.1.开发规*

{裁剪说明:

可选。

如果已填写在2.2.1.1,此处则略。

}

(1)编码约定

{规定代码体系、模块之间的接口和命名规则。

}

(2)文件约定

{规定子系统的所有配置、日志等文件命名方式与格式。

}

(3)目录约定

{规定子系统的目录结构,包括运行目录、源文件目录、配置目录、日志目录、数据目录等。

}

1.6.1.2.XX约束

{裁剪说明:

可选。

如果已填写在2.2.2.2,此处则略。

}

{列出对软件设计有重要影响的系统内外部约束和限制,可选的约束包括:

• 用户环境

• 内存或其它资源限制

• 数据存储和分发需求

• 安全和可靠性需求

• 性能需求

• 测试和可维护性需求}

1.6.2.子系统外部接口

{裁剪说明:

如果第2章已删除,这里必填(如果有)。

}

{描述该软件子系统与外部实体的接口,包括用户界面、软件接口、硬件接口和通信接口。

}

{软件子系统的外部实体,包括:

操作系统、驱动程序、硬件、中断、其它软件子系统等。

}

{描述待开发软件子系统与外部实体的关系,可以使用系统架构图、顶层数据流图、事务图等来描述系统结构和交互关系,并标示出外部实体和本系统相互作用的性质(比如:

消息、库调用)和类型(比如:

OS服务、通信服务、系统工具等)。

}

{详细描述子系统外部接口的参数,如:

• 接口名称

•调用方式 

•传输的数据:

–哪些数据项. 

–数据格式. 

–长度. 

–类型. 

•频度(实时/批处理) 

•数据同步机制 

•平台无关性 

•遵循的标准 

•提供的功能 

•前置条件 

•后置条件 }

1.6.3.设计方案概述

{裁剪说明:

必填。

如果在“3.1设计概述”中已描述过的部分,可略。

}

{描述内容包括:

(1)整个设计所采用的方法:

面向对象设计还是结构化设计

(2)采用的系统架构:

例如MVC架构、N层架构

(3)使用的相应技术和工具:

例如OMT、Rose、Visio

(4)采用的框架技术的形式

(5)使用的设计模式:

层模式、微内核模式、代理模式等

(6)描述资源/内存分配,Flash资源/文件分配

(7)描述哪些模块采用软件复用

}

1.7.子系统架构设计

{裁剪说明:

必填}

{定义子系统的总体逻辑结构,定义模块划分以及模块之间的依赖关系。

}

{可以采用分层结构描述如何将子系统分解为模块。

}

{结构描述可以使用结构图、层次分解图、数据流图,并用文字说明相互间的关系。

}

{举例,绘制结构图如下:

具有继承等关系的类图的可使用UML等工具画出关系图,如下:

}

1.8.模块定义

3.1.1.模块列表

{裁剪说明:

必填}

{列举模块时,可以采用表格方式(编号可以省略)。

}

模块编号

模块名称(标识)

功能简述

开发方式

注:

开发方式可选:

采购、外包/自行开发/复用

3.1.2.模块间关系

{裁剪说明:

必填}

{明确模块之间的调用关系、模块间的接口(消息、数据结构)以及相关模块之间的协同工作,如模块间时序图,协作图,以及系统之间状态切换流程图。

}

3.1.3.模块描述

3.1.3.1.模块1

{标题上加入模块的编号及名称(标识)}

1)功能描述

{裁剪说明:

必填}

{说明该模块具备什么样的基本功能,以及每个功能之间的相互关系。

}

2)性能描述

{裁剪说明:

必填}

{说明对模块的性能要求,包括精度、时间特性和处理速度。

}

3)接口描述

{裁剪说明:

必填}

{说明与其它模块的接口,与其它系统或硬件的接口。

}

{对于接口函数,可以采用以下形式描述:

接口1:

形式:

输入:

输出:

返回:

描述返回什么。

描述:

总体描述该接口实现的目的。

}

{需要明确的信息包括:

(1)输入项

列出模块每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效*围、输入方式、数量和频度、输入介质等;

可以是逻辑层面的输入项,如:

图片资源、媒体流、网络数据等,也可以是具体的物理层面的输入项,如变量1、变量2,等等。

(2)输出项

列出模块每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效*围、输出方式、数量和频度、输出介质等。

}

4)配置描述

{裁剪说明:

可选}

{说明该模块所处的逻辑位置、物理位置,如指明模块放在哪个应用服务器或客户端的哪个目录、哪个文件(库),或是在数据库内部建立的对象。

}

3.1.3.2.模块2

{同3.3.3.1。

}

4.非功能性需求的实现方案

{裁剪说明:

整章可选}

6.1.性能的考虑

{如:

为满足延时、吞吐量等性能,在既定硬件环境

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1