一、分工合作
1.需求分析与需求规格说明书(陆伟枫 201521122050)
2.原型设计(黄雯婷 201521122032)
3.用例图与用例规约(郑炜 201521122049 /耿展鹏201521122058)
4.顺序图与类图(陈美杰 201521122051)
二、需求分析
程序实现的是自动生成四则运算表达式的程序,并且支持自动计算结果和批改的功能,通过输入生成题目的数量和运算底数的氛围,生成包含‘+’,‘-’,‘*’,‘÷’,‘(’,‘)’的四则运算表达式,其中表达式的数包含自然数和分数,分数以真分数和带分数的形式出现。例如(1/2和1‘2/3)。程序支持1W道题目的生成,生成题目后将题目和题目的运算结果保存至文件保存。程序能够对生成的题目进行查重,不允许出现重复的题目。用户通过UI界面答题,程序能够和正确答案进行匹配,进行自动批改。并将最终结果进行分析。通过web浏览器进入主界面,选择需要生成的题目数量,然后选择运算难度,后台通过运算生成题目并返回至主界面显示。用户通过分页进行答题,提交后将显示正确答案与试卷结果 分析。至此用户完成该程序功能。 添加出题人与答题人角色,出题人可为教师,教师通过创立小组,小组有唯一编号(可用二维码形式),答题人通过扫描二维码加入小组答题。提交后教师可以查看已提交的用户试题,并且可以对所有答题结果进行数据分析。
小学生四则运算需求分析问卷调查:
您好!首先感谢您在百忙之中抽出时间来参与我们的调查问卷。现在正在做一个有关小学生四则运算的系统,麻烦您就您的实际情况填写我们的问卷。感谢您的参与与配合~
1、 您是老师,家长还是小学生?
A、 老师(转到2题) B、家长(转到11题) C、小学生(转到15题)
老师:
2您教的是什么学科?
A、数学 B、语文 C、英语 D、其他
3、您教几年级的学生?
A、一年级 B、二年级
C、三年级 D、四年级
E、五年级 F、六年级
4、现在的小学生普遍会使用电脑吗?
A、会 B、不会
5、学生们在网上做题一次做多少道题能达到练习的目的:
A 、20道 B、30道
C、 50道 D、80道
E、 其他:__________
6、学生在线答题您建议的频率:
A 、每天两次 B、每天一次
C、 两天一次 D、三天一次
E、其他____________
7、学生做错的题需要在错题本里显示之前的错误答案吗?
A、需要 B、不需要
8、在所做测试中,是否需要对学生错题进行重复测试?
A、需要 B、不需要
9、您为什么不希望有学习模块?(多选)
A、学校已经学习过了,耽误时间
B、模块没有实际用处
C、有这个模块我的学生不会使用
D、其他_______
10、您希望有出题功能吗?
A、希望 B、不希望
家长:11、您的孩子现在在上小学几年级?
A、一年级 B、二年级
C、三年级 D、四年级
E、五年级 F、六年级
12、您的孩子现在会自己操作使用电脑吗?
A、会 B、不会
13、您的孩子在家学习的自主性如何?
A、自主性很强,每次都能自觉独立完成作业
B、一般,做作业时会拖拖拉拉
C、很差,每次学习都需要家长的监督
D、从不自己主动学习
14、您认为学习模块应该以什么方式展示?
A、视频讲解 B、动态图片 C、图片 D、其他_______
小朋友:
15、你今年在上几年级?
A、一年级 B、二年级
C、三年级 D、四年级
E、五年级 F、六年级
16、你会自己操作电脑吗?
A、会 B、不会
老师A:ABDBACDABD
老师B:DDCDBACDCBD
家长A:AABB
家长B:ABAB
小学生A:AB
小学生B:DA
三、原型设计
1.登录注册
2.教师界面
3.学生界面
四、用例图与用例规约
用例名称 |
做题 |
用例编号 |
Cac 001 |
执行者 |
学生 |
用例简述 |
该用例规定了学生如何进行做题。 |
前置条件 |
教师已发布试题,学生已登录并加入班级。 |
后置条件 |
系统批改学生试题,更新已答题试题数据库。 |
基本流程 |
|
扩展流程 |
1a:学生用户名或者密码错误,将重新定向至登录首页并重新登录。 2a:学生若未加入班级将无法答题。
3a:教师发布一则试题,具体用例规则参考用例Cac002 4a:学生答题,若当前题目未答,则可跳过进入下一题。 5a:当学生答至最后一题,将提示未答试题,并可跳转至该试题,也可选择直接提交试题。
|
补充说明 |
|
用例名称 |
新建考试 |
用例编号 |
CAC002 |
用例描述 |
教师根据需求新建一场新的考试,设置与考试相关的内容。 |
参与者 |
教师,系统 |
前置条件 |
教师正确登陆系统,且题库中有足够的题目可供选择。 |
后置条件 |
新建考试后,考试系统插入相关信息,同时班级学生收到考试通知。 |
主要流程描述 |
|
扩展流程描述 |
1a.教师登录系统时,系统自动生成日志文件 1b.若多次输入密码错误,系统锁定相应账号,并向账号手机/邮箱发送通知 2a.教师选择新建考试后,系统显示最近的考试信息 3a.系统根据设置的难度,随机生成部分题目,并从题库中选择部分存在的题目展示 4a.教师设置考试题目的时候,有以下几种模式
8a.教师发布考试后,系统将锁定相应的试题,考试结束前无法编辑 |
补充说明 |
教师可以将一场考试设置对应多个班级 同一班级同一时间不能有多场考试 |
五、顺序图与类图
1.类图
2.顺序图
六、编码规范
1、代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
2、常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
3、抽象类命名使用 Abstract 或 Base 开头; 异常类命名使用 Exception 结尾; 测试类命名以它要测试的类的名称开始,以 Test 结尾。
4、中括号是数组类型的一部分,数组定义如下: String[] args;
5、POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。
反例: 定义为基本数据类型 Boolean isDeleted; 的属性,它的方法也是 isDeleted()。 RPC框架在反向解析的时候, “以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异常。
6、包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
7、如果使用到了设计模式,建议在类名中体现出具体模式。有利于阅读者快速理解架构设计思想。
8、接口类中的方法和属性不要加任何修饰符号(public 也不要加) ,保持代码的简洁性,并加上有效的 Javadoc 注释。尽量不要在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,并且是整个应用的基础常量。
9、枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。
说明: 枚举其实就是特殊的常量类,且构造方法默认强制为私有。
正例: 枚举名字: DealStatusEnum, 成员名称: SUCCESS / UNKOWN_REASON。
10、各层命名规约:
A) Service/DAO 层方法命名规约
1) 获取单个对象的方法用 get 做前缀。
2) 获取多个对象的方法用 list 做前缀。
3) 获取统计值的方法用 count 做前缀。
4) 插入的方法用 save(推荐) 或 insert 做前缀。
5) 删除的方法用 remove(推荐) 或 delete 做前缀。
6) 修改的方法用 update 做前缀。
B) 领域模型命名规约
1) 数据对象: xxxDO, xxx 即为数据表名。
2) 数据传输对象: xxxDTO, xxx 为业务领域相关的名称。
3) 展示对象: xxxVO, xxx 一般为网页名称。
4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。