分工:
张敏201521122053:需求分析、需求规格说明书
陈志强201521122054:原型设计、类图
伊梦扬201521122067:用例图、需求规格说明书
王超超201521122056:用例规约
郑开添201521122045:顺序图、编码规范
一、需求分析
小学生四则运算主要的用户范围包括老师、学生以及家长。系统可以给出不同层次的题目,便于满足不同阶段的学生,系统可以统计学生的答题正确率、时间、进步或者退步情况。同时,老师和家长可以实时了解学生的答题及算术情况,老师可以建立邀请学生加入,能够发布作业,考试,限时完成后,由系统统计,并向成绩优秀者发放奖励,这样能够分析全班学生学习状况,帮助老师及时改善自己的教学。家长注册登录账号之后,可以绑定自己孩子对应的信息(即向对应的学生发出申请,通过即可绑定),绑定之后,家长拥有权限查看学生作业以及考试完成情况。
1.1针对用户
1.工作量大且任务繁重的小学生老师
2.重视孩子教育的家长
3.针对小学生的辅导班等教育机构
4.自主学习的小学生
典型用户
教师——管理学生的人
姓名 | 王老师 | |
性别、年龄 | 女,30 | |
职业 | 西北师范大学附属小学四年级班主任,同时也是该班级的数学老师 | |
知识层次和能力 | 本科毕业,对电脑有一定的了解,能够熟练操作各种APP、网页等新一代科技用品 | |
典型场景 | 这学期学生们要学四则运算了,自己出题十分麻烦,而且即使出题完成,每个学生的答题情况还需要自己花时间全部阅完才可以知道,学生人数多,要想知道每位学生的学习情况还需要逐一对多次考试结果进行分析 | |
典型描述 | 出题麻烦,阅卷费时,统计费力,总而言之,费时费事 |
学生——进行测试的人
姓名 | 王某某 | |
性别、年龄 | 男,11 | |
职业 | 五年级三班的小学生一枚 | |
知识层次和能力 | 小学生,刚学会四则运算,学校开设信息技术课,会操作手机,电脑浏览器等 | |
动机,目的,困难 | 想要熟练掌握四则运算 困难:自主和自制力差,没有老师布置作业,自己不会主动去练习 | |
用户偏好 | 玩游戏、电脑游戏手机游戏通吃 | |
典型场景 | 新学期开始了,这学期我们要学习四则运算,学好这个知识点最重要的就是要多练习,但是纸质练习册十分枯燥,老师布置完练习题后一般不会给答案,做完要等老师把自己的作业阅完之后才知道自己做的对不对,有时候自己都忘记自己当时是怎么做题的状态了 | |
典型描述 | 形式枯燥,等待周期长 |
1.4.2 功能描述(概要)
学生
1. 注册账号、登陆账号;
2. 进行考试,查看成绩并获得积分或红包奖励;
3. 查看近期成绩,错题本,包括近期成绩表(可以查看错题并下载试题记录表)。
4. 修改个人信息
5.同意老师或家长邀请,加入班级或者与家长账号绑定。
老师
- 1. 注册登录账号;
- 2. 创建班级,并向学生发出邀请,邀请学生加入。
3. 在班级里查看学生列表,可进行增删改;
4. 查看整个班级学生成绩统计,包括错题集以及试题记录得下载;
5. 发布考试或作业,设置奖励,限时完成后,由系统发奖,也可设置人工发奖。
6. 修改个人信息。
家长
1. 注册登录账号;
2. 向自己孩子的账号发出申请,学生同意之后,进行绑定。
3. 可以查看自己孩子的学习情况,包括作业以及考试情况,
4. 修改个人信息。
需求规格说明书地址:
https://gitee.com/ck250/four-operation/tree/master
二、原型设计
墨刀原型设计地址:
https://modao.cc/workspace/apps/p52296BDFBB1524133348417/preview
界面展示:
首页
登录
注册
主页面
三、用例图与用例规约
用例图
用例规约
用例名称:加入班级
用例编号:UC01
主要参与者:学生
简要说明:学生登入四则运算系统后根据老师的验证码加入班级。
前置条件:学生必须经过系统登录确认,收到老师所给验证码。
后置条件:学生正确输入班级验证码,成功加入班级。
扩展点:查阅班级信息。
触发事件:学生成功输入班级验证码,点击“确认”加入班级开始该用例。
基本流:
- 学生输入验证码点击”确认“加入班级。
- 系统显示班级其他学生信息(姓名)。
- 学生自己查看自己信息是否有错。
备选流:
*a在输入验证码过程中若发生中断或学生输入的验证码有误,用例结束。
*b若在基本流第6步骤用时过长(超过50秒),系统自动返回初始界面,用例结束。
成功场景:
- 加入班级:基本流
- 操作超时:基本流中第6步骤用时过长。
失败场景:
输入错误的验证码:基本流第1步骤中,学生输入错误验证码。
用例名称:创建班级
用例编号:UC02
主要参与者:老师
简要说明:老师登入四则运算系统后根据系统功能创建班级。
前置条件:老师必须经过系统登录确认。
后置条件:老师成功创建所需要的班级。
扩展点:查阅班级所有成员全部信息信息。
触发事件:老师成功登入四则运算系统,选择好班级规格后,点击”创建“开始该用例。
基本流:
- 老师成功登入四则运算系统。
- 老师在功能菜单选择”创建“操作。
- 老师选择班级规格(允许自定义,人数不能超过35)。
- 确认规格无误点击”确认“创建班级。
备选流:
*a在输入班级规格时超过了最大人数(35),用例结束。
成功场景:
- 创建成功:基本流。
- 取消创建:在基本流的某个步骤老师选择了”取消“操作。
失败场景:
输入错误的班级规格:基本流第3步骤中,老师输入错误班级规格。
用例名称:出题
用例编号:UC03
主要参与者:老师
简要说明:老师登入四则运算系统后针对班级学生情况出题。
前置条件:老师必须经过系统登录确认。
后置条件:老师成功出题。
扩展点:记录学生成绩并按照高低顺序排列。
触发事件:老师成功登入四则运算系统,选择好题型(单符号运算,多符号运算等)后,点击”出题“开始该用例。
基本流:
- 老师成功登入四则运算系统。
- 老师选择好题型,选择好题目数量。
- 老师在功能菜单选择”出题“操作。
- 出题成功后发布到班级中。
- 测试结束后,生成成绩单。
备选流:
*a出题过程中,任何一步骤中选择”取消“操作,结束该用例。
成功场景:
- 出题成功:基本流。
- 取消创建:在基本流的某个步骤老师选择了”取消“操作。
失败场景:
无。
用例名称:开始答题
用例编号:UC04
主要参与者:学生
简要说明:学生登入四则运算系统后作答老师出的考题。
前置条件:学生必须经过系统登录确认,成功加入老师的班级。
后置条件:加入老师的班级,完成老师出的考题。
扩展点:无。
触发事件:学生在主菜单中选择”开始答题“开始该用例。
基本流:
- 学生在主菜单中选择”开始答题“操作。
- 系统提示学生考试截止时间。
- 学生开始做题。
- 截止时间后学生提交答案。
备选流:
*a在基本流的任意步骤选择”取消“操作,用例结束。
*b在截止时间后还没提交答题,系统强制提交,用例结束。
成功场景:
1. 提交成功:基本流。
2. 取消做题:在基本流第3步骤中学生选择了”取消“操作。
3. 提交超时:在基本流第4步骤中学生做题超时。
失败场景:
无效答案:在基本流第4步骤中学生提交的是无效答案(结果全为一个数字)。
四、顺序图
五、类图
六、编码规范
包名:
全部小写。
类名:
大驼峰式命名法单词首字母大写,如计算类为Calculation.java、题目类为Question.java、生成题目的类为CreateQuestion.java。
变量名:
小驼峰式命名法:小写单词开头,后面单词首字母大写,如:int myStudentCount,定义数值固定的常量使用全大写、下划线分隔的方法。如定义每次测试奖励的最大数量:final int MAX_REWORD_PER_TEST = 100,变量名除了少数循环可以用i、x、y等简单字母以外,其他地方均要使用能表达变量作用的命名。例如遍历每个问题的部分代码如下:
for(int i=0;i<totalQuestion.size();i++)
{
for(Question perQuestion:totalQuestion)
{
......
}
}
空行:
处理不相同的事之间要有空行。如package和import之间、函数和函数之间、单个复杂函数中根据不同步骤进行空行。
缩进:
使用4个空格。不使用Tab键,不同情况下可能Tab的缩进不同。
括号:
复杂操作加“()”小括号方便阅读。代码中的“{}”格式如下:
For(int i=0;i<10;i++)
{
n=n+2;
}
HTML代码应将标签对称放齐(左右对称、上下对称)。如:
<div>
<a>abc</a>
</div>
换行:
不同类型变量的定义换行。即不能出现如下情况:
int questionNum; float score;
应该分两行定义。
过长的语句选取合适的地方换行。如该递归语句:
return addBracketsL(tnode, tnode.getLeftTreeNode())
+ tnode.getData()
+ addBracketsR(tnode, tnode.getRightTreeNode());