随机点名的需求文档

点击查看

1 引言

编写目的

为教师教学提供完善的随机点名应用程序.

1.2范围

a. 名称: 随机点名 V13;

b. 用途: 学校/教育机构线下教学 教学机应用, 提供随机点名, 基本学生管理, 分性别点名等;

c. 系统需求: Windows® 7 ServePack1及以上版本 / Windows® 8 / Windows® 8.1 / Windows® 10 / Arch Linux v274.5 with Wine 5.8 / Fedora 32 with Wine 5.8;

d. 运行环境需求:

1, Microsoft® .NET Framework 4.5 及以上版本 / dotnet45 with Wine 5.8.

1.3 定义、首字母缩写词或缩略语

**MS: 指Microsoft®公司;

Win: 指软件所兼容的Windows®操作系统;

Linux: 指软件所兼容的Fedora和Arch Linux操作系统;

Dotnet: 指软件使用的Microsoft® .NET®技术;

1.4 参考资料

https://docs.microsoft.com/zh-cn/dotnet/

2 项目概述

2.1 产品描述

采用MS .NET技术开发的随机点名应用程序, 具有完善的随机点名功能和跨平台支持.

2.2 \产品需求**

2.2.1 \功能需求****
**A. 软件可以完成1~6人的一次性点名, 采用开放寻址类似算法保证多次点名时的公平性;

B. 软件可以在完成点名后根据学号来查询对应的学生姓名;

C. 软件可以根据性别设置来分性别抽取学生;

D. 软件可以方便的管理学生列表, 包括增, 查, 删, 改, 导入学生数据;

E. 软件可以暗化背景以防止黑板在投影仪照射下的反光干扰教师教学;

F. 软件具有倒计时功能, 可以精确到秒的进行考试倒计时.

2.2.2 \性能需求****
**A. 至少支持十万级数据检索时的毫秒级响应;

B. 至少支持十万级数据在六人模式下的工作时间不超过1.5s;

C. 程序处于非工作状态时UI刷新率至少保持在30FPS以上;

D. 至少支持千人数据编辑延迟在10ms以下 (肉眼不可见) ;

2.2.3 \可服务性需求****
**A. 应保证解压即可使用;

B. 应保证可以从txt文件列表中导入学生数据;

2.3 \用户及用户特点****
**用户团体为教育机构, 多为老师.

特点:

a. 班级人数不多, 对大型数据的处理没有需求;

b. 点名频率并不高, 对高性能高响应没有需求, 反而需要延长点名时间来制造悬疑性.

2.4 \一般约束****
**a. 必须在支持.NET技术的平台上运行;

b. 必须在支持WinForm图形库的平台上运行;

c. 构建时所采用的.NET版本不得高于4.5.2, 否则跨兼容性会出现问题;

2.5 \假设和依据****
**

假设 依据
人数小于10k 一般学校的全体人数在2k左右, 班级人数则一般不超过120人, SQLite快速检索最大支持百万级数据, 在十万级数据时出现可以察觉到的延迟, 于是点名人数限制在10k以下, 可以满足几乎所有学校的任何需求.
性别只有男女 不考虑其它非主流性别
倒计时的最大天数支持为999 一般学制为3年, 从九月一日招生起到三年后六月七日高考, 其间有1019天. 考虑到四位天数的排版问题, 决定只兼容3位数. 多出来的20天会出现一些可以忍受的显示问题.

3 \用例描述**

3.1 \用例1**

用例编号 1
用例名称 随机抽取
参与者 老师
用例说明 老师上课时随机抽取六名学生
前置条件 学生数据成功导入
基本事件流 1.老师打开软件
2.点击默认模式
3.人数调整到6
4.点击Let’s GO
5.软件经过一分钟计算后得出六个号码
6.软件查询号码对应的学生姓名并显示
7.软件将本次抽取记录到全局概率均衡器中
异常事件流 2-3a.调整到平均模式, 但人数小于2, 抽取失败, 软件弹窗警告
4a.快速多次点击Let’s GO, 造成单线程界面假死, 并导致全局概率均衡器出错
5a.所有模式下软件发现要抽取的人数大于班级总人数, 弹窗警告, 抽取失败
7a.软件保存全局概率均衡器时SQLite出错
后置条件

3.2 \用例2**

用例编号 2
用例名称 更改软件设置
参与者 老师
用例说明 更改软件的学生列表, 高考倒计时等数据
前置条件
基本事件流 1.老师打开软件
2.点击软件设置
3.通过增删改三个按钮与方向键对列表进行编辑
4.以20190607格式编辑高考倒计时
5.点击保存
6.软件读取设置数据并写入到SQLite中
7.更新数据到全局均衡器
异常事件流 3a.设置性别时试图输入0和1之外的字符, 软件弹窗警告, 恢复上一次的设置
3a.试图删除单个单元格, 软件弹窗警告, 删除失败
3a.保存数据时有未初始化的单元格, 软件崩溃
7a.更新数据失败, 软件需要重启才能应用新数据
后置条件

4 \外部接口需求**

4.1 \用户接口****
**基于.NET构建的图形化界面

4.2 \硬件接口****
**

4.3 \软件接口****
**

4.4 \通信接口****
**

5 \属性**

5.1 \可用性****
**保证在可发行的平台上稳定运行; 保证在Windows平台上不出错误; 保证在其他兼容的Linux平台基本功能可用.

5.2 \安全性****
**本软件不对任何系统底层文件进行更改, 不更改注册表, 不对软件安装目录之外的任何路径进行读写, 不需要管理员权限, 不对运行内存栈之外的内存区域做出修改, 无内存泄露问题.

5.3 \可维护性****
**采用WinForm构建, 保证重要函数不依赖于其它函数, 便于代码重用.

5.4 \可移植性****
**可采用Wine移植到Linux平台; 理论上可以使用Wine移植到Mac平台, 无法移植到移动端 (包括Android和iOS)

\6 其他需求**

\6.1 数据库****
**SQLite

评论

:D 一言句子获取中...