分析与设计

分工:

张敏201521122053:需求分析、需求规格说明书

陈志强201521122054:原型设计、类图

伊梦扬201521122067:用例图、需求规格说明书

王超超201521122056:用例规约

郑开添201521122045:顺序图、编码规范

一、需求分析

  小学生四则运算主要的用户范围包括老师、学生以及家长。系统可以给出不同层次的题目,便于满足不同阶段的学生,系统可以统计学生的答题正确率、时间、进步或者退步情况。同时,老师和家长可以实时了解学生的答题及算术情况,老师可以建立邀请学生加入,能够发布作业,考试,限时完成后,由系统统计,并向成绩优秀者发放奖励,这样能够分析全班学生学习状况,帮助老师及时改善自己的教学。家长注册登录账号之后,可以绑定自己孩子对应的信息(即向对应的学生发出申请,通过即可绑定),绑定之后,家长拥有权限查看学生作业以及考试完成情况。

1.1针对用户

  1.工作量大且任务繁重的小学生老师

  2.重视孩子教育的家长

  3.针对小学生的辅导班等教育机构

  4.自主学习的小学生

典型用户

 

教师——管理学生的人

 

姓名

王老师

 

性别、年龄

女,30

 

职业

西北师范大学附属小学四年级班主任,同时也是该班级的数学老师

 
 

知识层次和能力

本科毕业,对电脑有一定的了解,能够熟练操作各种APP、网页等新一代科技用品

 

典型场景

这学期学生们要学四则运算了,自己出题十分麻烦,而且即使出题完成,每个学生的答题情况还需要自己花时间全部阅完才可以知道,学生人数多,要想知道每位学生的学习情况还需要逐一对多次考试结果进行分析

 

典型描述

出题麻烦,阅卷费时,统计费力,总而言之,费时费事

 

学生——进行测试的人

 

姓名

王某某

 

性别、年龄

男,11

 

职业

五年级三班的小学生一枚

 

知识层次和能力

小学生,刚学会四则运算,学校开设信息技术课,会操作手机,电脑浏览器等

 

动机,目的,困难

想要熟练掌握四则运算  困难:自主和自制力差,没有老师布置作业,自己不会主动去练习

 

用户偏好

玩游戏、电脑游戏手机游戏通吃

 

典型场景

新学期开始了,这学期我们要学习四则运算,学好这个知识点最重要的就是要多练习,但是纸质练习册十分枯燥,老师布置完练习题后一般不会给答案,做完要等老师把自己的作业阅完之后才知道自己做的对不对,有时候自己都忘记自己当时是怎么做题的状态了

 
 

典型描述

形式枯燥,等待周期长

 

 

1.4.2 功能描述(概要)

学生

1. 注册账号、登陆账号;

2. 进行考试,查看成绩并获得积分或红包奖励;

3. 查看近期成绩,错题本,包括近期成绩表(可以查看错题并下载试题记录表)。

4. 修改个人信息

5.同意老师或家长邀请,加入班级或者与家长账号绑定。

老师

  1. 1.  注册登录账号;
  2. 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

主要参与者:学生

简要说明:学生登入四则运算系统后根据老师的验证码加入班级。

前置条件:学生必须经过系统登录确认,收到老师所给验证码。

后置条件:学生正确输入班级验证码,成功加入班级。

扩展点:查阅班级信息。

触发事件:学生成功输入班级验证码,点击“确认”加入班级开始该用例。

基本流:

  1. 学生输入验证码点击”确认“加入班级。
  2. 系统显示班级其他学生信息(姓名)。
  3. 学生自己查看自己信息是否有错。

备选流:

*a在输入验证码过程中若发生中断或学生输入的验证码有误,用例结束。

*b若在基本流第6步骤用时过长(超过50秒),系统自动返回初始界面,用例结束。

成功场景:

  1. 加入班级:基本流
  2. 操作超时:基本流中第6步骤用时过长。

失败场景:

输入错误的验证码:基本流第1步骤中,学生输入错误验证码。

 

 

 

 

 

用例名称:创建班级

用例编号:UC02

主要参与者:老师

简要说明:老师登入四则运算系统后根据系统功能创建班级。

前置条件:老师必须经过系统登录确认。

后置条件:老师成功创建所需要的班级。

扩展点:查阅班级所有成员全部信息信息。

触发事件:老师成功登入四则运算系统,选择好班级规格后,点击”创建“开始该用例。

基本流:

  1. 老师成功登入四则运算系统。
  2. 老师在功能菜单选择”创建“操作。
  3. 老师选择班级规格(允许自定义,人数不能超过35)。
  4. 确认规格无误点击”确认“创建班级。

备选流:

*a在输入班级规格时超过了最大人数(35),用例结束。

成功场景:

  1. 创建成功:基本流。
  2. 取消创建:在基本流的某个步骤老师选择了”取消“操作。

失败场景:

输入错误的班级规格:基本流第3步骤中,老师输入错误班级规格。

 

 

 

 

 

用例名称:出题

用例编号:UC03

主要参与者:老师

简要说明:老师登入四则运算系统后针对班级学生情况出题。

前置条件:老师必须经过系统登录确认。

后置条件:老师成功出题。

扩展点:记录学生成绩并按照高低顺序排列。

触发事件:老师成功登入四则运算系统,选择好题型(单符号运算,多符号运算等)后,点击”出题“开始该用例。

基本流:

  1. 老师成功登入四则运算系统。
  2. 老师选择好题型,选择好题目数量。
  3. 老师在功能菜单选择”出题“操作。
  4. 出题成功后发布到班级中。
  5. 测试结束后,生成成绩单。

备选流:

*a出题过程中,任何一步骤中选择”取消“操作,结束该用例。

成功场景:

  1. 出题成功:基本流。
  2. 取消创建:在基本流的某个步骤老师选择了”取消“操作。

失败场景:

无。

 

 

 

 

用例名称:开始答题

用例编号:UC04

主要参与者:学生

简要说明:学生登入四则运算系统后作答老师出的考题。

前置条件:学生必须经过系统登录确认,成功加入老师的班级。

后置条件:加入老师的班级,完成老师出的考题。

扩展点:无。

触发事件:学生在主菜单中选择”开始答题“开始该用例。

基本流:

  1. 学生在主菜单中选择”开始答题“操作。
  2. 系统提示学生考试截止时间。
  3. 学生开始做题。
  4. 截止时间后学生提交答案。

备选流:

*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());

posted @ 2018-05-20 15:48  Aero、酷  阅读(240)  评论(0编辑  收藏  举报