
项目名称
软件系统设计报告
姓名:
学号:
班级:
日期:
1.文档说明
1.1设计文档的目的和文档使用范围;
简要描述这个文档的编写目的和使用范围。
正文。
1.2文档的读者;
描述这个文档的读者。
正文。
1.3参考资料;
及本设计相关的资料。一般是指设计依据的资料。如:
| 编号 | 相关文档 |
| 1 | UniMed4.0系统框架设计报告.doc |
| 2 | |
1.4缩略语;
定义重要的术语、缩写词 或缩略语;
| 缩略语、术语 | 全称、解释 |
2.系统概述
主要从系统需求的角度,描述系统;描述的输入是用户需求(式样)。
正文。
2.1系统部署图
给出系统部署图,并进行简要说明。使用Visio描画,表示方法参见图例。
图例参见:
例图如下:
图 1 – 系统部署图
下面应该对部署图进行说明。
正文。
2.2硬件环境
描述系统的硬件环境:以及对系统有影响的关键硬件信息。
| 硬件名称 | 基本要求 | 推荐配置 |
| CPU | 1G Pentium | 1.6G Pentium |
| 硬盘 | 20G | 40G |
| 内存 | 512M | 1G |
| 显卡 | ||
| 显示器 | ||
| 其它 |
正文。
2.3软件环境
描述系统的软件环境:OS、以及对系统正常工作提供支持的所有软件对象(如3D的插件等);
以及使用到的第三方接口。
2.3.1OS环境
说明操作系统及其版本号。
| 系统名称 | 版本号 | 提供商 |
2.3.2依赖软件
说明依赖软件、组件、服务信息。
| 软件名称 | 版本号 | 提供商 | 备注 |
2.3.3开发环境
说明开发工具等信息。
| 软件名称 | 版本号 | 使用语言 | 提供商 | 备注 |
| Visual Studio.net | 2005 | C++ | Microsoft |
2.4系统安装
描述对系统安装方法/方式的考虑,如提供那些安装方法/方式。
正文。
2.5系统启动
描述系统启动的操作步骤。
正文。
2.6系统退出
描述系统退出的操作步骤。
正文。
3.关键技术
描述采用的新技术、新的技术方向(如VOIP),以及可能带来的风险或技术难点。
先应该描述技术点(表)和关键算法(表)。然后对每个技术点和算法进行描述。
技术点列表如下:
| 编号 | 技术点略称 | 状态 |
| No.1 | XXX1 | |
| No.2 | XXX2 | |
状态包括:掌握、了解、了解中;用于跟踪是否存在风险。
关键算法列表如下:
| 编号 | 算法略称 | 备注 |
| No.1 | YYY1 | |
| No.2 | YYY2 | |
3.1技术点描述
逐个对技术点进行描述。描述每个技术点的内容、解决方法 、状态等。
正文。
3.1.1XXX1技术点
正文。
3.1.2XXX2技术点
正文。
3.2关键算法描述
逐个对关键算法进行描述。对每个算法进行详细说明。
3.2.1YYY1关键算法
正文。
3.2.2YYY2关键算法
正文。
4.结构设计
4.1软件架构图
描述系统的软件架构图,并对图中的模块进行说明。
使用UML的包图或Visio图描述软件架构图,软件架构图的描述方法参照图例。
软件架构图主要体现系统的内部架构,及及外部的关系。
内部重点描述模块组成(层次)关系,对于小系统,一般架构图就可以描述全部模块的关系,因此也就不需要后续的模块关系图。如果系统比较大,此处可以只画出系统中的一级模块,更详细的结构在后面的模块关系图中描述。
及外部的关系,主要表达及那些外部对象进行交互,以及如何及外部进行交互的。
例图如下:
图 2 – 软件架构图
以下对软件架构图进行描述。
正文。
4.2模块关系图
请画出模块关系图。
使用包图描述,模块关系图的描述方法参照软件架构图的图例。
模块关系图主要体现系统的内部架构。重点描述模块组成(层次)关系,对于小系统,一般架构图就可以描述全部模块的关系,因此也就不需要模块关系图。
根据需要,模块关系图中的某个(些)模块还可以放大,进行更进一步的描述。
正文。
4.3模块功能说明
请参照模块关系图,将各个模块功能进行详细说明。如,
| No | 模块名称 | 概述 |
| 1 | Interface | 此模块主要负责对xml文件进行修改,添加命令行,以及执行xml文件等操作 |
| 2 | Navigator | 负责xml 命令的解析及执行 |
| 3 | Control | 脚本API的功能实现模块,被Navigator模块调用 |
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 |
请使用时序图描述系统初始化、退出的处理过程。
使用Rose或Visio描述时序图,描述方法参照图例。
时序图的对象应该是对象或者模块。
系统初始化时序图的一个例子如下:
图 5 – 系统初始化时序
正文。
系统退出的时序图如下:
图 6 – 系统退出时序
正文。
4.5系统状态图
描述系统的状态图。
状态图描述方法参照图例。
不是所有系统都有状态图,但对于有明显状态变化的系统(例如复杂的画面迁移)需要描述状态图。
如果状态图不足以描述,可以增加状态迁移表进行补充。
例图如下:
图 8 – 系统状态图
状态图说明列表:
| From | To | 事件 | 行为 |
| Start | Wait Init | APPMgr启动 | 如FCPMgr通讯正常,每隔10秒要一次初始化信息。 |
| Wait Init | Normal | 接收到 FCPInit包 | 根据屏幕初始化设备信息、初始化AppCtrl和MsgBoxCtrl、启动ADMgr、RollMgr。 向应用派发状态改变事件。 |
5.并发设计
5.1线程结构
描述线程的组成、线程之间的关系、线程及模块关系。
使用线程关系图描述线程关系、通过模块线程关系图描述线程的部署。
图例参见:
1.线程组成:通过线程列表,对线程的职责、生命周期进行说明;
| No. | 线程名 | 职责 | 生命周期 |
| 1 | Aca1 | …. | 全局 |
| 2 | Aca2 | …. | 全局 |
| 3 | Aca4 | …. | 全局 |
2.线程关系。
图 9 – 线程关系图
3.线程及模块关系。
图 10 – 线程及模块关系图
需要使用文字描述线程及模块的关系,一个模块有那个(些)线程。
如Aca1模块中有Aca1 线程、Aca2模块中有Aca2线程、Aca5模块中有Aca5线程。
正文。
6.模块内设计
识别出模块的数据结构----Class,以及Class之间的关系,并根据需要,描述状态转化图、算法描述、主要数据结构等关键技术细节。
6.1XX模块设计
6.1.1类的关系图
请描述类图,描述方法参见图例:
图 13 – XX模块类关系图
6.1.2类的说明
将类图提及的类的功能进行说明。
| Class List | ||
| No. | Class Name | Description |
| 1 | MForm | 生成初始运行界面 |
| 2 | CFindDlg | 查找类(起到查找字符串功能) |
| 3 | CAboutBox | 用于显示About对话框 |
| 4 | CStringTable | 备用 |
| 5 | CSettingsDlg | 备用 |
6.1.3接口说明
列出子模块对外的宏定义、类型定义、枚举定义、结构体和联合体定义。
说明子模块对外的函数。
正文。
XXX接口
| InterFace Specification | ||||
| Name | ||||
| CopyBuild() | ||||
| Interface Description | ||||
| 从上下载脚本中指定的part type版本目录到指定目录下。 | ||||
| Prototype | ||||
| COPYBUILD_EXPORT bool CopyBuild(const TCHAR* buildScript, const TCHAR* partType, const TCHAR* installType, const TCHAR* , const TCHAR* destination) | ||||
| Parameter List | Name | Type | I/O | Description |
| buildScript | const TCHAR* | I | Build脚本的路径。 | |
| partType | const TCHAR* | I | partType类型对应的值,如-1(ANY) | |
| installType | const TCHAR* | I | InstallType类型对应的值。 | |
| const TCHAR* | I | 的路径。 | ||
| destination | const TCHAR* | I | 复制的目标路径。 | |
| Return Value | Value | Description | ||
| true | 复制成功。 | |||
| false | 复制失败,如ini文件总没有相关信息,路径错误等。 | |||
描述出模块内的关键算法。如该算法是系统的核心算法,可以在系统核心算法中描述。
如模块内容没有算法,则本节可以不进行描述。
正文。
6.2YY模块设计
…..
