二、设计规格说明书
1.引言(Introduction)
本章对该文档的目的、功能范围、术语、相关文档、参考资料、版本更新进行说明。
1.1 目的(Purpose)
本文档目的旨在推动APP设计的规范化,使设计人员遵循统一的概要设计书写规范,节省制作文档的时间,降低系统实现的风险,做到系统设计资料的规范性与全面性,以利于系统的实现、测试、维护、版本升级。
1.2 命名规则(Naming Rule)
变量对象命名规则:申明全局变量、局部变量对象的命名规则。
数据库对象命名规则:申明数据库表名、字段名、索引名、视图名等对象的命名规则。
1.3 术语定义(Terms Glossary)
表2-1 术语定义
序号 | 术语名称 | 术语定义 |
1 | 总体结构 | 软件系统的总体逻辑结构。按照不同的设计方法,有不同的总体逻辑结构。若采用面向功能或面向数据的设计方法,则总体逻辑结构为一树形的功能模块结构图。若采用面向对象或面向部件(构件)的设计方法,则总体逻辑结构为部件(构件)的组装图 |
2 | 外部接口 | 本软件系统与其他软件系统之间的接口,接口设施可以是中间件。接口描述包括:传输方式、带宽、数据结构、传输频率、传输量、传输协议 |
3 | 数据结构 | 数据结构包括:数据库表的结构、其他数据结构等 |
4 | 概念数据模型 CDM | 关系数据库的逻辑设计模型,叫做概念数据模型。主要内容包括一张逻辑 E-R 图及其相应的数据字典 |
5 | 物理数据模型 PDM | 关系数据库的物理设计模型,叫做物理数据模型。主要内容包括一张物理表关系图及其相应的数据字典 |
6 | 视图 | 在基表或其他视图之上建立的一张虚表,叫做视图,它具有物理表的许多性质,在数据处理和授权上很有用 |
7 | 角色 | 数据库中享有某些特权操作的用户,叫做角色。角色的权利通过授权来实现 |
8 | 子系统 | 具有相对独立功能的小系统叫做子系统。一个大的软件系统可以划分为多个子系统,每个子系统可由多个模块或多个部件组成 |
9 | 模块 | 具有功能独立、能被调用的信息单元叫做模块。模块是结构化设计中的概念 |
10 | 内部接口 | 软件系统内部各子系统之间、各部件之间、各模板之间的接口,叫做内部接口。接口描述包括:调用方式、入口信息、出口信息等 |
11 | 相关文件 | 相关文件是指当本文件内容变更后,可能引起变更的其他文件。如需求分析报告、详细设计说明书、测试计划、用户手册 |
12 | 参考资料 | 参考资料是指本文件书写时用到的其他资料。如各种有关规范、模板、标准、准则 |
1.4 参考资料(References)
[1] 用户需求报告
[2] 数据库设计规范
[3] 命名规范
1.5 相关文档(Related Documents)
[1] 源程序清单
[2] 测试计划及报告
2.总体设计(Design of Collective)
2.1 体系结构设计(Design of Architecture)
软件系统的结构,按照不同的设计方法,有不同的总体逻辑结构。
2.1.1 系统逻辑架构
图2-1 包图
2.1.2系统物理架构
图2-2部署图
2.2 子系统清单(Subsystem List)
表2-2 子系统清单
子系统编号 | 子系统名 | 子系统功能描述 | 子系统之间的关系 |
1 | 注册 | 用于用户注册新的登陆账号 | |
2 | 登录 | 用于用户登陆账户 | 依赖于1号子系统 |
3 | 创建调查 | 用于用户创建一个新的调查问卷 | |
4 | 编辑调查 | 用于编辑用户新创建的调查表 | 依赖于3号子系统 |
5 | 发布调查 | 用于用户发布已经编辑好的问卷调查表 | 依赖于3和4号子系统 |
6 | 中止调查 | 用于结束当前正在进行统计的调查问卷 | 依赖于5号子系统 |
7 | 参与调查 | 参与填写其他人发起的调查问卷 | |
8 | 查看个人文件 | 查看已终止调查的问卷的结果文件 | |
9 | 修改个人信息 | 修改已经填写的个人信息 | |
10 | 下载 | 下载已终止调查问卷的生成结果文件 | 依赖于6号子系统 |
2.3 模块设计(Module Design)
2.3.1 用例实现
图2-3 注册功能
图2-4 登录功能
图2-5创建调查功能
图2-6 参与调查功能
图2-7 发布功能
图2-8中止调查功能
图2-10 查看个人信息
图2-11 修改个人信息
图2-12 下载功能
2.3.2实现类清单
表2-3 实体类清单
编号 | 类名 | 功能简述 | 接口简述 |
E-1 | 用户信息 | 记录用户的个人信息、问卷信息等 |
表2-4 控制类清单
编号 | 类名 | 功能简述 | 接口简述 |
C-1 | 统计服务 | 将用户发出问卷所收集到的信息进行统计 | |
C-2 | 汇总服务 | 根据统计信息,汇总成数据报告提供给用户 |
表2-5 边界类清单
编号 | 类名 | 功能简述 | 接口简述 |
B-1 | 登录及注册界面 | 提供给用户进行注册及登录 | |
B-2 | 发现界面 | 用于给用户编辑和发起问卷 | |
B-3 | 主页界面 | 给用户提供对已发起问卷的统计信息查询 | |
B-4 | 设置界面 | 用于给用户提供信息的修改,账号的注销以及联系开发者的功能 |
2.3.3关键程序逻辑设计
(1)注册
图2-13 注册
(2)登录
图2-14 登录
(3)创建及发布问卷
图2-15 创建及发布问卷
(4)搜索(输入和扫码)
图2-16 输入 图2-17 扫码
(5)回答问卷
图2-18 回答
3.数据结构设计(Design of Data Structure)
3.1 数据库表名清单(DB Table List)
表2-6 数据库表名单
序号 | 中文表名 | 英文表名 | 表功能说明 |
1 | 用户信息 | account | 用户基本信息 |
2 | 调查问卷 | item | 调查问卷基本信息 |
3 | 问卷细则 | details | 问卷具体问题的详细记录 |
4 | 答案收集 | answer | 用户填写调查后的内容记录 |
5 | 自定义选项 | opt | 问卷中选择题选项的保存 |
6 | 类型 | type | 问题/问卷类型编号信息 |
3.2 数据库表之间关系说明(Relation of DB Table)
图2-19数据库设计
图2-20 E-R图
3.3 数据库表的详细清单(Particular List of DB Table)
每个表的详细清单内容包括:表名、字段中文名、字段英文名、字段的类型、宽度、精 度、主键/外键、空否、取值约束(默认值、最大值、最小值)、索引否。同时要指出该表的 索引:索引文件名、索引字段名、索引特性(主键索引、惟一索引 unique、聚集索引 clustered)。 详细清单可以用列表给出.
表2-7用户信息表(account)
字段名 | 中文含义 | 类型 | 可空否 | 主键/外键 | 取值约束 |
用户邮箱 | Varchar(30) | NOT NULL | PRIMARY KEY | ||
nickname | 用户姓名 | Varchar(255) | NOT NULL | ||
pass | 用户密码 | Varchar(255) | NOT NULL | ||
register_time | 注册时间 | DATATIME | NOT NULL | ||
user_status | 账户状态 | Varchar(25) | NOT NULL | ||
remarks | 备注 | Varchar(255) | NULL |
表2-8 调查问卷回答表(answer)
字段名 | 中文含义 | 类型 | 可空否 | 主键/外键 | 取值约束 |
用户邮箱 | Varchar(30) | NOT NULL | FOREIGN KEY&&PRIMARY KEY | ||
sID | 问卷id | Int(10) | NOT NULL | PRIMARY KEY | |
oid | 选项id | Int(10) | NOT NULL | PRIMARY KEY | |
answer | 问题 | Varchar(255) | NOT NULL | ||
time | 时间 | DATETIME | NULL | 空则为无限时间 |
表2-9 问卷细则表(details)
字段名 | 中文含义 | 类型 | 可空否 | 主键/外键 | 取值约束 |
sid | 问卷id | Int(10) | NOT NULL | PRIMARY KEY& FOREIGN KEY | |
oid | 选项id | Int(10) | NOT NULL | PRIMARY KEY& FOREIGN KEY | |
question | 题干 | Varchar(255) | NULL | ||
type | 类型号 | Varchar(12) | NOT NULL | ||
complete | 答案 | Varchar(255) | NOT NULL | ||
max | 最大 | int(5) | NOT NULL | ||
min | 最小 | int(2) | NOT NULL |
表2-10 选项表(opt)
字段名 | 中文含义 | 类型 | 可空否 | 主键/外键 | 取值约束 |
sid | 问卷id | int(10) | NOT NULL | FOREIGN KEY& PRIMARY KEY | |
oid | 题目id | int(10) | NOT NULL | FOREIGNKEY& PRIMARY KEY | |
content | 选项内容 | Varchar(255) | NOT NULL | ||
num | 编号 | int(10) | NOT NULL | PRIMARY KEY |
表2-11 题目类型表(type)
字段名 | 中文含义 | 类型 | 可空否 | 主键/外键 | 取值约束 |
type_id | 类型号 | int(3) | NOT NULL | PRIMARY KEY | |
type_name | 类型名称 | Varchar(10) | NOT NULL |
表2-12选项表(item)
字段名 | 中文含义 | 类型 | 可空否 | 主键/外键 | 取值约束 |
sid | 问卷id | int(10) | NOT NULL | FOREIGN KEY& PRIMARY KEY | |
邮箱 | VARCHAR(30) | NOT NULL | FOREIGN KEY | ||
title | 题目标题 | VARCHAR(255) | NOT NULL | ||
time_create | 创建时间 | datetime | NOT NULL | ||
time_start | 开始时间 | datetime | NULL | ||
time_end | 结束时间 | datetime | NULL | ||
time_edit | 修改时间 | datetime | NULL | ||
question_num | 问题编号 | int(11) | NOT NULL | ||
complete_num | 答案编号 | int(11) | NULL | ||
check_num | 选项编号 | int(11) | NULL | ||
status | 状态 | int(11) | 0 | 0/1 | |
description | 描述 | varchar(100) | NULL |