一、需求分析
(1)用户确定及采访
在经过我们小组内的讨论后,我们确定了我们这次课题的目标用户:小学生以及他们的家长或数学老师。于是根据我们的目标用户我们随机采访了一些小学生还有他们的家长,采访情况如下:
问:如果有一个可以自动出题的软件你希望它能有什么功能或者说它的什么方面可以比较吸引你?
同学A:我希望这个软件可以有一个排行榜之类的功能。每一次的做题成绩都可以在排行榜上显示出来,这样要是做的好的话比较有成就感,感觉特别厉害。
同学B:除了出题目答题目之外,还希望它能根据我们每个人错的题目类型进行总结,类似于错题本一样的功能。
同学C:要是能有个按难度出题的选择就好了,这样我们就可以按照自己适合的难度做题。
同学D:希望界面能够好用好看一些。
家长A:希望有让我们检查作业完成情况的功能,每个家长登陆账户就可以看到老师布置的作业以及孩子的完成情况。
我们对很多小学生以及家长进行了调查,答案有重复的就不一一贴出来了,以上是比较有代表性以及概括性的回答。对于这个结果我们也进行了讨论分析,得出了我们目标用户的基本需求,如下:
1、 基本的四则运算功能。
2、 用户排行榜功能
3、 类似错题总结的错题本功能
4、 按照难度出题
5、 美观易用的界面
6、 有布置作业以及家长检查的功能
(2)《软件需求说明书》
《软件需求说明书》git链接:https://git.coding.net/NianQiFeng/szys.git
(3)NABCD 写作
1.Need(获取用户需求)
经过了简单的调研,目前结合题目所实现的要求,以及调研的结果,并且结合自身实际,可以定义这款基于web或手机APP的四则运算的软件的受众主要分为这两个角色:学生,家长。
功能性需求(产品必须实现的功能):
a.家长或老师的需求:
①可以通过这款软件监督管理学生的学习进度;
②可以对学生的答题正确率以及学习频度有所了解学生的需求。
b.学生的需求:
①可以通过软件为自己的学习情况做出评估;
②可以通过软件收集自己所出错的题,并为之统计反复训练。
适用环境:中小学生家长需要监督管理自身孩子的学习,通过软件要求孩子进行训练;亦或者学生自己需要提高自身能力,争取高分。
2.Approach(实现方法)
这是一个基于web或手机APP的四则运算的软件,包含的功能有:用户登录、注册功能,“倒计时”功能,按正确率和耗时排名功能,按难易分级功能,记录功能等。通过一系列复杂的算法,实现一个简洁的app界面,帮助用户们系统性的训练自身能力。
问题:不能明确了解如何用户对于难易度的区分
解决方法:a.通过市场调研,了解对于用户而言心里的难易度辩知
b.结合自身团队的实际,确定难易度的区别
3.B (Benefit 好处)
1.拿起手机,随时随地的可以训练自身的四则运算能力,不必端坐于电脑面前;
2.并且可以记录下自身的错误,统计正确率,对自己的能力有清晰的辨别;3.还有排行榜,可以与朋友同学pk对比,增大学习的热情;
4.对于家长用户而言,不仅使得孩子不再拿起手机就是玩游戏的局面,还可以设置奖励制度,多做多玩,提升孩子的热情;
5.并且可以监督孩子学习是否扎实,看清孩子的基础,完美!
4.C (Competitors 竞争)
我们目前的竞争者感觉上很少,毕竟网上对于这种系统的四则运算训练的app不算多,即使有,也有广告之类的影响适用体验,我们争取做出最简洁的界面,最完善的功能,从竞争中脱颖而出。
5.D (Delivery 交付)
通过将产品发布与网上,例如中小学校的贴吧或者微博上,看看是否能够吸引他们参与使用这款软件,并且在学生周边进行宣传;亦可以通过向自己身边的有孩童的家长们宣传,通过这个来提高他们的运算能力;若是有条件的话,亦可以寻找以前的数学老师,让他帮我们在他现在带的学生班级上推广,可以方便管理和布置作业。
(5)成员分工及工作量比例
原型设计---邱文鑫(15%):原型设计能够在表现层将设计合成一个逻辑整体,用户能和你一起看到未来交互的软件蓝图、功能和效果,获得较真实的感受,在不断讨论的基础上完善未来的设计思想。原型设计可以起到有效沟通的作用,漂亮、直观的原型图让人在赏心悦目的同时更好的了解产品。
软件需求规格说明书---念其锋、林青(40%):软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。说明编写这份软件需求说明书的目的,指出预期的读者。软件需求说明书的作用在于便于用户、开发人员进行理解和交流,反映出用户问题的结构,可以作为软件开发工作的基础和依据,并作为确认测试和验收的依据。
NABCD写作,视频---黄子敬(15%):需求<Need>、方法<Approach>、好处<Benefit>、竞争对手<Competitor>、高效<Delivery>,从五个方面阐述产品的属性,这样能让用户更好的直观了解产品。这样可以在短时间内,自然而有条理地把项目说清楚。
用户调研---潘志坚、余洋(25%):通过各种方式得到受访者的建议和意见,并对此进行汇总,研究事务的总特征,用户调研的目的在于为生产提供相关数据基础。做调研最终的目的还是服务于产品设计,帮我们找到真正的目标用户,明确核心的需求和功能点的优先级,涉及到具体的项目能说的十分有限,case by case才是进步的不二法则。
博客汇总整理---念其锋(5%):团队博客的整理和汇总展示。
二、原型设计
原型设计能够在表现层将设计合成一个逻辑整体,用户能和我们一起看到未来交互的软件蓝图、功能和效果,获得较真实的感受,在不断讨论的基础上完善未来的设计思想。因此,原型设计能起到有效沟通的作用,漂亮,直观的原型图更是让人赏心悦目。我们团队使用墨刀这个软件来制作原型设计的蓝图,如下:
三、编码规范
以下是我们之前就约定好的代码规范:
1 Arithmetic类 2 astr 返回答案字符串 3 qstr 返回问题字符串 4 int_operation() 整数计算函数 5 fra_operation() 分数计算函数 6 common_divisor(int m,int n) 7 公约数计算函数 8 toString() 输出函数 9 Frame类 10 hs 实例化History 11 hh 实例化QA_List 12 timer 实例化Work_Time 13 Time 计时器动态窗口 14 answer1~10 输入窗口 15 Review 复习按钮 16 question1~10 题目显示标签 17 Right_answer1~10 正确答案显示标签 18 Tip1~10 提示正确与否标签 19 Time_cost 所花时间显示标签 20 Right_percent 正确率显示标签 21 Set_question 开始按钮 22 jLabel5 历史正确题数 23 jLabel7 历史总题数 24 rn 单次正确题数 25 tot 单次总题数 26 Frame() Frame构造函数 27 initComponents() 窗体显示 28 xxxClicked(KeyEvent evt) 29 点击事件 30 KeyPressed(JLabel i,JLabel j,JLabel l,int x,JTextField k) 31 点击事件批量处理函数 32 Hide() 使不需要的输入窗口关闭 33 Tip(String answer,int i)提示对错并计入 34 Histroy类 35 qstr 问题字符串 36 astr 答案字符串 37 str 答案+问题字符串(写入文件) 38 str2 正确题数+总题数字符串(写入文件) 39 tot 总题数 40 rn 正确题数 41 qstrlist 问题字符串列(读入文件) 42 astrlist 答案字符串列(读入文件) 43 scan(String qstr,String astr) 44 qstr+" "+astr 45 scan2(int tot,int rn) 46 tot+" "+rn 47 Histroy_create() 历史文档生成 48 Histroy_save() 存储历史题目与答案 49 Histroy_saveNum() 存储历史题目数目 50 Histroy_read() 读入历史题目与答案 51 History_num() 读入历史题目数目 52 QA_List类 53 i 加入列题目个数 54 Qusetion 问题字符串列 55 Answer 答案字符串列 56 QA_List() QA_List构造函数 57 Test_Number类 58 i 显示Test_Number窗体次数 59 l 语言转化参数标识 60 Cancel_Button 取消按钮 61 Sure_Button 确定按钮 62 English 英文界面标签 63 Simplified_Chinese 简体中文界面标签 64 Traditional_Chinese 繁体中文界面标签 65 Number 所需题数 66 Test_Number() Test_Number构造函数 67 initComponents() Test_Number窗体显示 68 xxxClicked(KeyEvent evt) 69 点击事件 70 Test类 71 main(String[] args) 72 Work_Time类 73 x 00:00.x 74 y 00:y.00 75 z z:00.00