1引言
1.1编写目的
详细设计说明书是在概要设计的基础上进一步说明系统结构,表示出软件结构的图表,完成算法设计、数据结构设计、物理设计等,详细地描述逐个模块,包括算法和逻辑流程,为下一步系统的实现和测试做准备。
预期的读者是程序开发人员和程序测试人员。
1.2背景
b. 本项目的任务提出者:米新江教授
开发者:申明霜
用户:廊坊师范学院全体教职工和学生
实现该软件的计算中心或计算机网络:图书馆电子阅览室 机房 廊坊师范学院局域网
c. 该软件系统同其他系统或其他机构的基本的相互来往关系:VB开发,SQLSever2008数据库存储 由廊坊师范学院信息技术提高班做技术支持。
1.3定义
SQL sever:系统服务器所使用的数据库关系系统(DBMS);
SQL:一种用于访问查询数据库的语言,结构化查询语言。
VB(Visual Basic):是一种由 Microsoft 公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。
1.4参考资料
a. 概要设计说明书(GB856T——88)
b. 《软件工程》 张海藩 人民邮电出版社
c. 《软件工程知识体系指南》(2004版)蒋遂平翻译
d. 《SQL入门经典》 敖富江译
e. 《Visual Basic6.0数据库开发经典实例精解》 夏邦贵 刘凡馨等编著
f. 《数据库视频》(耿建玲)
g. 《软件工程视频》 张洪志 (哈尔滨工业大学)
2程序系统的结构
用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系。
层次结构关系图:
A. 一般用户模块:主要负责查询相关学生信息以及上下机情况
B. 操作员模块:负责学生注册、修改、充值、退卡等操作管理工作;
C. 管理员模块:负责整个系统基本数据的设定、对操作员和一般用户的管理以及账目管理工作。
3一般用户的设计说明
3.1程序描述
改程序只对学生的上下机情况及学生信息进行查看,没有涉及管理功能,只是将学生的信息输入数据库,经过系统数据后得到的数据信息。
3.2功能
说明该程序应具有的功能,可采用IPO图(即输入一处理一输出图)的形式:
3.3性能
3.31精度
软件的输入精度:小数点后保留两位有效数字
输出数据的精度:小数点后保留两位有效数字
传输过程中的精度:小数点后保留两位有效数字
3.32时间特性要求
响应时间:0.5S内
更新处理时间:0.5S内
数据的更换和传送时间:1S内
3.33灵活性
a.运行环境的变化:该软件使用于现在流行的操作系统
b.精度和有效时限的变化:因不同情况而定
c.计划的变化和改进:根据用户的需求随时对软件做必要的升级和更新
3.4输入项
名称 | 标识 | 数据类型 | 输入方式 | 安全保密 |
学号 | StudentNo | int | 自动 | 中 |
卡号 | CardNo | int | 刷卡 | 中 |
姓名 | StudentName | char(10) | 自动 | 中 |
系别 | Department | char(10) | 自动 | 中 |
性别 | Sex | char(6) | 自动 | 中 |
年纪 | Grade | char(10) | 自动 | 中 |
班级 | Class | char(10) | 自动 | 中 |
余额 | Cash | numeric(10, 3) | 自动 | 中 |
备注 | Explain | numeric(10, 3) | 自动 | 中 |
类型 | type | char(10) | 自动 | 中 |
上机日期 | Ondate | date | 自动 | 中 |
上机时间 | ontime | time(0) | 自动 | 中 |
3.5输出项
名称 | 标识 | 数据类型 | 输入方式 | 安全保密 |
学号 | StudentNo | int | 自动 | 中 |
卡号 | CardNo | int | 刷卡 | 中 |
姓名 | StudentName | char(10) | 自动 | 中 |
系别 | Department | char(10) | 自动 | 中 |
性别 | Sex | char(6) | 自动 | 中 |
年纪 | Grade | char(10) | 自动 | 中 |
班级 | Class | char(10) | 自动 | 中 |
余额 | Cash | numeric(10, 3) | 自动 | 中 |
备注 | Explain | numeric(10, 3) | 自动 | 中 |
类型 | type | char(10) | 自动 | 中 |
下机日期 | offdate | date | 自动 | 中 |
下机时间 | offtime | time(0) | 自动 | 中 |
3.6算法
时间差=(下机日期-上机日期)+(下机时间-上机时间)
金额计算:当大于准备时间后不足1小时按1小时计费,大于1小时按四舍五入计算消费金额。
3.7流程逻辑
用图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。
3.8接口
3.9存储分配
名称 | 标识 | 数据类型 |
学号 | StudentNo | int |
卡号 | CardNo | int |
姓名 | StudentName | char(10) |
系别 | Department | char(10) |
性别 | Sex | char(6) |
年纪 | Grade | char(10) |
班级 | Class | char(10) |
余额 | Cash | numeric(10, 3) |
备注 | Explain | numeric(10, 3) |
类型 | type | char(10) |
上/下机日期 | Ondate/offdate | date |
上/下机时间 | Ontime/offtime | time(0) |
3.10注释设计
a. 在模块首部注释说明模块开始编写的时间、编写人员及其基本功能
b. 在变量声明阶段,大概说明变量的类型和用途
c. 在个别判断、循环或者顺序枝分点上注释说明程序代码的功能。
3.11限制条件
必须保证程序正常的连接到服务器
3.12测试计划
测试用例:选取有代表性的数据,避免使用穷举法
测试方法:使用百合测试法,语句覆盖、判定覆盖、条件覆盖等操作。
3.13尚未解决的问题
暂无
4.操作员模块设计说明
4.1程序描述
该模块主要负责学生上下机的管理工作,包括注册、充值、修改信息、退卡,以及对操作员工作记录的查询工作,一般用户没有此权限
4.2功能
4.3性能
4.31精度
软件的输入精度:小数点后保留两位有效数字
输出数据的精度:小数点后保留两位有效数字
传输过程中的精度:小数点后保留两位有效数字
4.32时间特性要求
响应时间:0.5S内
更新处理时间:0.5S内
数据的更换和传送时间:1S内
4.33灵活性
a.运行环境的变化:该软件使用于现在流行的操作系统
b.精度和有效时限的变化:因不同情况而定
c.计划的变化和改进:根据用户的需求随时对软件做必要的升级和更新
4.4输入项
名称 | 标识 | 数据类型 | 输入方式 | 安全保密 |
学号 | StudentNo | int | 手动 | 中 |
卡号 | CardNo | int | 手动 | 中 |
姓名 | StudentName | char(10) | 手动 | 中 |
系别 | Department | char(10) | 手动 | 中 |
性别 | Sex | char(6) | 自动 | 中 |
年纪 | Grade | char(10) | 手动 | 中 |
班级 | Class | char(10) | 手动 | 中 |
余额 | Cash | numeric(10, 3) | 手动 | 中 |
备注 | Explain | numeric(10, 3) | 手动 | 中 |
类型 | type | char(10) | 手动 | 中 |
日期 | date | date | 自动 | 中 |
时间 | time | time(0) | 自动 | 中 |
4.5输出项
名称 | 标识 | 数据类型 | 输出媒介 | 安全保密 |
学号 | StudentNo | int | 无 | 中 |
卡号 | CardNo | int | 无 | 中 |
姓名 | StudentName | char(10) | 无 | 中 |
系别 | Department | char(10) | 无 | 中 |
性别 | Sex | char(6) | 无 | 中 |
年纪 | Grade | char(10) | 无 | 中 |
班级 | Class | char(10) | 无 | 中 |
余额 | Cash | numeric(10, 3) | 无 | 中 |
备注 | Explain | numeric(10, 3) | 无 | 中 |
类型 | type | char(10) | 无 | 中 |
日期 | date | date | 无 | 中 |
时间 | time | time(0) | 无 | 中 |
4.6算法
A总金额=剩余金额+充值金额
B.剩余金额=总金额-消费金额
C退还金额=剩余金额-消费金额
4.7流程逻辑
4.8接口
4.9存储分配
名称 | 标识 | 数据类型 |
学号 | StudentNo | int |
卡号 | CardNo | int |
姓名 | StudentName | char(10) |
系别 | Department | char(10) |
性别 | Sex | char(6) |
年纪 | Grade | char(10) |
班级 | Class | char(10) |
余额 | Cash | numeric(10, 3) |
备注 | Explain | numeric(10, 3) |
类型 | type | char(10) |
日期 | date | date |
时间 | time | time(0) |
4.10注释设计
a. 在模块首部注释说明模块开始编写的时间、编写人员及其基本功能
b. 在变量声明阶段,大概说明变量的类型和用途
c. 在个别判断、循环或者顺序枝分点上注释说明程序代码的功能。
4.11限制条件
必须保证程序正常的连接到服务器
4.12测试计划
主要在注册模块,注意选取不同的数据,确保输入数据合适,对于充值、退卡以及信息维护模块,举例测试并观察测试结果是否符合逻辑规律。
4.13尚未解决的问题
暂无
5.管理员模块设计说明
5.1程序描述
管理员模块主要是对整个系统的管理,包括对操作员的查看和管理,添加删除用户,系统基本数据的设定以及结账工作。
5.2功能
5.3性能
5.31精度
软件的输入精度:小数点后保留两位有效数字
输出数据的精度:小数点后保留两位有效数字
传输过程中的精度:小数点后保留两位有效数字
5.32时间特性要求
响应时间:0.5S内
更新处理时间:0.5S内
数据的更换和传送时间:1S内
5.33灵活性
a.运行环境的变化:该软件使用于现在流行的操作系统
b.精度和有效时限的变化:因不同情况而定
c.计划的变化和改进:根据用户的需求随时对软件做必要的升级和更新
5.4输入项
名称 | 标识 | 数据类型 | 输入方式 | 安全性 |
用户名 | UserID | Int | 手动 | 高 |
日期 | Date | date | 选择输入 | 中 |
固定每小时消费 | Rate | numeric(19, 4) | 手动 | 高 |
临时每小时费用 | tmpRate | numeric(19, 4) | 手动 | 高 |
递增单位时间 | unitTime | int | 手动 | 高 |
至少上机时间 | leastTime | int | 手动 | 高 |
准备时间 | PrepareTime | int | 手动 | 高 |
余额 | limitCash | numeric(19, 4) | 手动 | 高 |
用户名 | head | Char(10) | 手动 | 高 |
时间 | time | time(0) | 手动 | 高 |
5.5输出项
名称 | 标识 | 数据类型 | 输出媒介 | 安全保密 |
学号 | StudentNo | int | 无 | 中 |
卡号 | CardNo | int | 无 | 中 |
姓名 | StudentName | char(10) | 无 | 中 |
系别 | Department | char(10) | 无 | 中 |
性别 | Sex | char(6) | 无 | 中 |
年纪 | Grade | char(10) | 无 | 中 |
班级 | Class | char(10) | 无 | 中 |
余额 | Cash | numeric(10, 3) | 无 | 中 |
备注 | Explain | numeric(10, 3) | 无 | 中 |
类型 | type | char(10) | 无 | 中 |
日期 | date | date | 无 | 中 |
时间 | time | time(0) | 无 | 中 |
5.6算法
A.总金额=剩余金额+充值金额
B.剩余金额=总金额-消费金额
C.退还金额=剩余金额-消费金额
5.7流程逻辑
5.8接口
5.9存储分配
名称 | 标识 | 数据类型 |
学号 | StudentNo | int |
卡号 | CardNo | int |
姓名 | StudentName | char(10) |
系别 | Department | char(10) |
性别 | Sex | char(6) |
年纪 | Grade | char(10) |
班级 | Class | char(10) |
余额 | Cash | numeric(10, 3) |
备注 | Explain | numeric(10, 3) |
类型 | type | char(10) |
日期 | date | date |
时间 | time | time(0) |
固定每小时消费 | Rate | numeric(19, 4) |
临时每小时费用 | tmpRate | numeric(19, 4) |
递增单位时间 | unitTime | int |
至少上机时间 | leastTime | int |
准备时间 | PrepareTime | int |
5.10注释设计
a. 在模块首部注释说明模块开始编写的时间、编写人员及其基本功能
b. 在变量声明阶段,大概说明变量的类型和用途
c. 在个别判断、循环或者顺序枝分点上注释说明程序代码的功能。
5.11限制条件
必须保证程序正常的连接到服务器
系统投入到运行中,学生上下机正常
5.12测试计划
A.主要在结账模块,注意选取不同的时间段,观察结账是否符合系统逻辑运算法则;
B.对于添加和删除用户模块,举例测试并观察测试结果是否符合逻辑规律
C.最后是日结和周结账单,检验报表是否正确,能否正确预览和打印