前言:本次题目博客地址https://edu.cnblogs.com/campus/tju/2016SCSMaster-TJU/homework/104
第一题.对四则运算软件需求的获取方式进行实践,例如使用调查问卷访问相关关系人等。--By梁旭晖
我们采用调查问卷的形式,取得我们想要的结果
第二题.采用四象限法将你小组的四则运算软件的需求功能进行分类。阐述其优势与不足。--By侯伟婷
1.四象限法
首先四象限法是将要做的事情按照紧急、不紧急、重要、不重要的排列组合分成四个象限,这四个象限的划分有利于我们对时间进行深刻的认识,并且有效地对项目在时间上进行管理。
如图所示,第一象限包含的是紧急而重要的事情,这一类事情无法回避也不能拖延,必须优先解决;第二象限包含的是紧急但不重要的事,不具有时间上的紧迫性;第三象限的事件是紧急但不重要的事,有时候这一象限的事情会因为它的紧急占据人们很多宝贵的时间;第四象限的事件大多是琐碎的杂事,没有时间的紧迫性,也没有任何的重要性。
2.四则运算功能需求
四则运算的功能性需求如下所示:
a)随机生成题目
需求详解:可随机生成预满足条件的算术表达式。
b)题目要求
需求详解:一次性可以批量给出100道以上的题目,且不会重复。
c)年级选择
需求详解:按照小学具体情况,共设置6个年级的题目,不同年级的学生选择本年级的题目。
d)难度选择
需求详解:针对同一年级学生的水平也会出现高低不同的情况,将为用户设定自测题目,之后根据用户的水平层次来分配难易题目。
e)年级排行榜
需求详解:为提高同学的学习动力,设置年级排行榜,根据答题总题目,正确答题数,答题速度等各项指标对同学答题成绩进行排行。
f)每周竞赛
需求详解:设置每周一次的数学答题竞赛,给同学们一个良性的竞争环境。
g)用户答题要求
需求详解:答题者计算算式值并填写最终计算结果最简形式,其中分数采用真分数或假分数的形式表示。
h)答题结果分析
需求详解:分析答题结果,显示所有答对和答错的题目数量,并指出具体答对、答错的题目编号。
i)题目存储
答题结束后,允许用户人工选择是否存储题目及正确答案到文件中去。
根据四象限法则进行划分的话,结果如下:
优势:在能够为学生提供题目的基础上,为了提高学生的答题成绩,从学生角度设计了多种方式来让学生提高学习兴趣并获得锻炼。
不足:可能竞赛或者排名会对成绩较差的学生产生了消极懈怠的心理,这就需要家长和老师帮助进行心理疏导;软件也可以从家长或者老师的角度出发,帮助达到提高学生成绩的目的。
第三题.尝试把四则运算软件需求进行分解,变为每个小组成员可执行的积压工作项,分配这些工作项到小组成员,并预算完成时间(以小时为单位)。并在完成后填入实际用时。--By林培文
1.经过小组讨论后,制定最终版小学生四则运算需求。对比小组当前的工作进度后,余下未完成的工作项大致有如下几个方面:
界面设计 | 界面线稿、低保真设计、界面交互设计及界面原型设计 |
数据库 | 本地数据库SQLite设计及接口实现、后台数据库MySQL设计与实现 |
Android客户端 | 依年级自动生成运算题、依用户需求自动生成运算题、界面的代码实现及相应动画 |
后台服务器 | 服务器后台搭建 |
2.依据小组成员的特长和前期的工作内容分配对应的工作项,小组成员的人物分配如下:
郭青云 |
本地数据库SQLite的表设计及相应功能接口实现; Android客户端自动生成运算题、各功能接口; 后台服务器功能编写; |
梁旭辉 |
SQLite后台数据表设计及相应功能接口代码实现; 后台服务器框架搭建; |
林培文 |
界面线稿、低保真设计、界面交互设计及界面原型设计; Android客户端界面代码实现; |
侯伟婷 |
后台服务器的框架搭建; 需求分析; |
3.将具体积压的工作项细化并分配完成后,为保证项目的进展,制定出对应的工作时间,每个小组成员按照该时间表完成对应工作,表格如下:
任务 | 具体内容 | 预算完成时间 | 实际完成时间 |
需求分析 | 设计问卷调查表、利用各问卷服务平台投放问卷 | 20h | 18h |
界面设计 | 界面线稿、低保真设计、界面交互设计及界面原型设计 | 50h | 进行中 |
数据库 | 本地数据库SQLite设计及接口实现、后台数据库MySQL设计与实现 | 15h | 进行中 |
Android客户端 | Android客户端自动生成运算题、Android客户端各功能接口、Android客户端界面代码实现 | 60h | 进行中 |
后台服务器 | 后台服务器的框架搭建、后台服务器功能编写 | 60h | 未开始 |
第四题.总结近5周以来的github上的工作情况,以图表方式分析你小组的工作情况、存在的问题及解决的方案。--By郭青云
1.GitHub总体工作内容详情
(a)小组成员更新github网络折线图
(b)小组成员github代码贡献走势图
2.任务详情小组成员大致任务分工与完成进度如下图所示:
3.出现的问题及解决方案
在工作过程中确实遇到过很多大大小小的问题,通常我们遵循“小问题个人解决、大问题集体解决“的原则来处理。这种解决问题的方法屡试不爽,即保质也能保量的完成任务。由于问题太多,下面仅列举了我们遇到的三个示例:
(a)批量生成题目时的重复性检测
解决方法(算法):
1.算式生成之后计算出它的值,并于其它已生成的互不重复的算式的值做比较。
2.如果相同的值已存在则对这两个具有相同值的算式进行分析,否则两个算式不重复。
3.如果上一步获得的两个算式各自包含的运算符一一匹配,则进一步分析它们的各自包含的数值。否则可以判断这两个算式不重复。
4.如果两个算式各自包含的数值一一匹配,则可以判断这两个算式是重复的,否则不重复。
(b)分式计算问题
解决方法:在计算分式值的过程中,将除号看作分数线,整数以分母为1的分式对待,从而计算整个分式的值。分式求值方法与整式求值方法相同,均采用后缀表达式来计算。最后约分,以真分数或假分数的形式显示计算结果。
(c)github提交冲突问题
解决方法:
方法一:手动修改。把<<<<那些都删除,整理出一个版本,保存。这是手动merge了。
方法二:采用git命令解决冲突。
4.总结
小组成员的任务分工原则是:个人实际能力和开发经验。比如林培文擅长PS,做过游戏场景开发,因此本组的UI设计任务由他来主导;再比如侯伟婷语言组织能力强,因此本组的文档撰写工作大部分由她来担当;还有梁旭晖等......概括起来就是各取所长,各显神通,所以本组的任务分配称得上科学合理。尽管分工有合理的分工,但是开发过程中不可避免地遇到了一些短时间内难解决的问题,这里我们采用“小问题个人解决、大问题集体解决“的原则来处理,也达到了很好的预期效果。组员们对工作内容既充满信心也怀有浓厚的工作热情,主要体现:1.在每周的课程作业发布下来之后都能积极去承担任务,保质保量的完成任务并发表了博客;2.小组成员积极地参与到了Git上的项目,并多次提交个人最新的工作内容(参照本体第一点的工作折线图);3.小组讨论时均能踊跃地参与到讨论中来,针对不同的问题都提出了自己的见解与建议,为项目的顺利进行铺平了道路(参考上周作业的小组讨论内容截图)。相信在本组成员的共同努力下,最终一定能拿出一个令人满意的作品!