0429团队项目-对师姐的软件的一些改进
一、团队
小组团队名称:开拓者队
团队博客地址:http://www.cnblogs.com/rightTeam/
团队GITHUB地址:https://github.com/rightTeam
团队成员:
学号:201406114205
姓名:陈嘉慧
个人博客链接:http://home.cnblogs.com/u/hui1005039632/
个人GITHUB链接:https://github.com/Sandyjiahui
学号:201406114215
姓名:林志杰
个人博客链接:http://www.cnblogs.com/15linzhijie/
个人GITHUB链接:https://github.com/hellolaona
学号:201406114228
姓名:郑铭泽
个人博客链接:http://www.cnblogs.com/95mz/
个人GITHUB链接: https://github.com/zhengmingze
学号:201406114237
姓名:古林萍
个人博客链接:http://www.cnblogs.com/moliny/
个人GITHUB链接:https://github.com/Moliny
二、题目:
在此基础上,进行软件的改进。
首先,我们把这个软件理解成一个投入市场的、帮助小朋友进行算术运算练习的APP。
从质量保证的角度,有哪些需要改进的BUG?
从用户的角度(把自己当成小学生或真的请小学生帮忙),需要在哪些方面进行改进?
从产品的角度(软件的市场定位、推广方式、盈利模式等),我们要对现有软件做些什么手脚?
从开发者的角度,在架构、算法、技术实现、可扩展性、代码规范等方面可以怎样优化?
......
参考但并不限于以上几条,列出你们觉得需要改进的地方及理由。(博客)
并尽可能从你们组的列表中选择两点将改进实现。(GITHUB)
截止日期:2016.4.28晚10点。
三、改进内容:
(一)、从质量保证的角度,有哪些需要改进的BUG?
该程序中在运行过程中,会报错自动退出,体现在当程序由使用界面返回至主界面时。
改进如下:
一、当用户点击返回键时提示“再一次退出程序”防止用户误点。
MainActivity.java
二、修复游戏点击返回键报错自动退出。
MainActivity.java
PlayActivity.java
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
(二)、从用户的角度(把自己当成小学生或真的请小学生帮忙),需要在哪些方面进行改进?
(1)菜单:在进入该程序的时候,应该要有一个菜单供我们选择,比如开始测试,测试分数记录 测试难度选择,退出测试等;
(2)增加难度选择功能:这个功能可以给我们提供一个难度选择,如初级,中级,高级。不可能每一个小学生的能力都和现在软件的数学水平相等。
(3)增加每道测试时间限制的功能:这个功能也可以说是一个难度,有了时间的限制,可以让我们能更好的做好每一道题目。而且还能提高自己的计算能力。
(4)增加测试结束时查询测试结果(或者错题)的功能:这个功能能提供一个查看自己刚刚所做题目哪些是做错的题目,对自己的错题所错的地方有一个了解和改进。
(5)设置测试结束菜单(可选择返回菜单,或者继续测试):在做完所有的题目的时候应该要有一个返回菜单供我们选择,让我们继续使用该软件,而不是要用手机的返回键返回,而且用手机返回键返回还会出现闪退。
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
(三)、从产品的角度(软件的市场定位、推广方式、盈利模式等),我们要对现有软件做些什么手脚?
(1)首先是从消费者的需求出发,小学生功课很多,现在市场也出现了很多的补习班,家长挺重视小学生的功课,市场很大,竞争者不多。而且很多运算软件都不是免费的,整体的潜在市场大;
(2) 现在推广方式有很多,微信、电子邮件、微博、博客、论坛、短信、广告、超市、路演......普遍家长能接受的有网络推广;
(3) 嵌入一些小广告,玩家可以试用一个星期,一个星期之后就会收费;
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
(四)、 从开发者的角度:在架构、算法、技术实现、可扩展性、代码规范等方面可以怎样优化?
1、改进内容:
(1)游戏成功界面跟游戏失败界面只不过是一个单词的差别,却另外做了一个界面,降低了运行效率,占多了内存空间
(2)没有音乐开关按钮,显得不人性化
(3)也不能提供新的一轮题目,每次运行一次就被强制退出,也不够人性化
(4)使用的是UI设计,主要是对界面的设计,虽然UI设计者背景大多数是软件工程师,但是并不能很好地体现出软件工程的思想(使用工程化的方法)。只能说设计思路比较先进,符合潮流而已。
2、改进实现代码:
该项目主要算法:最大公约数算法
Calculator.java
代码优化:
这四个函数都是用于除法运算,作用小,又没按照顺序,可以放在一块
修改之后如果有必要,可以再添加四舍五入计算
对改进的代码进行单元测试:
3、总结:
这段代码又可以放在一个函数,虽然函数多有利于测试,可是这两句代码作用小,而且还特地用了两个函数,不利于阅读和审查代码
使用构造方法,这样修改的好处是calculator类只提供带形参的方法,在调用的时候可以直接把实参放进去,还方便进行junit测试。
4、建议:
1、可以多使用接口interface,这样就可以提高扩展性,不用在后续的功能在还得修改前面的代码。
2、多使用带形参的构造方法,方便组员之间阅读和使用。
3、有意识地把每个模块进行分类,并进行说明。既有利于单元测试,又简明,减少冗余代码。
4、在用类和方法的时候要多注意究竟是使用类还是使用方法比较合适。建议类可以要么只放着带参数的构造方法,要么可以在此基础上继承的父类。如果在使用类或者方法的时候很随意,只会让代码的结构混乱而复杂。好的代码读起来简单易读,像是艺术一样。
四、资源
github地址:https://github.com/rightTeam
五、团队评分
<1> 陈嘉慧:19
<2> 林志杰:22
<3> 郑铭泽:21
<4> 古林萍:18