第6次结对作业--郑锦伟&古维城
第6次结对作业
在线英语学习平台客户端原型
1.结对成员
郑锦伟 2015034643034
古维城 2015034643033
2.原型设计工具实现-Photoshop

3.需求分析
使用NABCD模型进行需求分析
3.1 N(Need, 需求)
3.1.1具体功能和数据需求
3.1.1.1 登录注册管理
(1) 注册
用户填写基本信息进行注册,要填写的信息有(账号,密码,确认密码,邮箱,密保问题,密保问题可以设置多个,最多三个)
(2) 登录
用户根据账号或者邮箱号进行登录
(3) 忘记密码
根据密保问题重置密码
3.1.1.2 英语资料数据管理
该模块的使用用户只针对管理员
(1) 查看数据
英语数据资料首先根据层次分类,不同的层次有对应的类型的不同的题目
(2) 上传数据
选择层次(英语四级,英语六级,研考级)和类型进行上传
(3) 修改数据
可修改题目的层次,类型,描述,答案等
(4) 删除数据
可批量删除和单个删除
3.1.1.3 个人中心模块管理
(1) 用户基本信息的操作
查看/修改用户的基本信息(账号名,用户昵称,性别,年龄,邮箱,密保问题,学历,毕业学校)
查看用户的荣誉信息(总积分,排名,单词学习积分,短语学习积分,句子翻译学习积分,完型填空学习积分,阅读理解学习积分,写作学习积分)
查看学习历史,查看做过的学习套卷,可查看每道题的得分情况,用的提示次数和用户所做的答案和标准答案以及其他用户对题目的评论信息
(2) 好友模块的操作
查看好友列表,好友信息(好友账号,好友昵称,好友在线状态,好友总积分,好友排名)
可以给好友发送留言信息
发送好友申请,选择账号/邮箱号发送好友申请
查看好友申请,可以拒绝申请/接受申请
(3) 留言信息的操作
查看留言信息,回复留言
3.1.1.4 英语学习模块管理
(1) 选择学习层次
选择有:英语四级水平,英语六级水平和研考水平
(2) 选择学习方式
选择分类学习/组合学习/整体学习, 其中分类学习可以选择单词学习,短语学习,句子翻译学习,完型填空学习,阅读理解学习和写作学习等。组合学习可以任意选择一个或多个分类学习中的类型进行套卷组合来做题。整体学习结合所有分类来整体出卷。组合学习和整体学习还可以选择不同的类型的题目的出题数量来进行学习
3.1.1.5 社区模块管理
(1) 发帖
用户可以创建帖子来进行发布,帖子发布包括(题目,主体内容)
(2) 回帖
可在具体帖子里留言,也可在其他用户留言里回复
3.1.1.6排行榜管理
(1) 查看排行榜
查看总积分排行前10的用户的信息(用户名,总积分,排名,单词学习积分,短语学习积分,句子翻译学习积分,完型填空学习积分,阅读理解学习积分,写作学习积分) 对他们的互动有好友添加和留言
3.2 A(Approach,做法)
3.2.1 项目架构
整个项目我们大概分为六大模块层,第一模块是数据操作层,主要是存放数据,数据底层操作;第二模块是业务逻辑模块,主要是提供网站的业务逻辑处理,跟网络通信层和数据操作层紧密结合;第三模块是服务器通信层,主要是提供网络通信,稳定进行网络服务,这一层我们考虑采用nginx作为服务器进行网络通信服务;第四模块是前端模块,主要是进行客户页面的友好显示和提供前端服务逻辑,这一模块我们分为两个版本,一个PC页面响应式版,一个是手机端页面版。第五大模块是爬虫和数据处理模块,主要是进行分布式爬虫爬取网站所需要的数据,爬取的数据将暂放到Mongodb中,同时还要负责对爬取的数据进行数据清洗和数据筛选。第六大模块是数据分析模块,这一模块使用机器学习算法对用户数据进行分析,自动对用户的英语学习作出智能的学习报告,以及进行题目的智能推荐,让用户更好地更有效率地进行针对性学习。
3.3 B(Benefit,好处)
用户可以自定义学习计划,可以按照你的学习规律和学习习惯定义你的学习计划进行英语学习。
系统智能分析你的学习情况,智能推荐题目提供学习。
同时还可以与好友一起学习,一起相互监督,一起成长
随时获取你的学习记录,查看你的学习情况和知识掌握情况,从而可以改进你的学习计划更好地进行学习
3.4 C(Competitors,竞争)
给用户更多的自由学习合适的学习计划进行学习,确定好学习计划后。同时系统会智能根据你的学习情况进行题目推送
题型较多,除了词汇题,选择题外,还会有各种翻译题甚至是写作题提供练习,而判题由系统进行智能判断
题库庞大,题目质量高,我们采用全网分布式爬虫进行数据爬取,利用大数据进行数据清洗和数据筛选,然后系统智能对数据进行整合处理,变成各种不同类型,不同难度的高质量题目。
3.5 D(Delivery,推广)
线上推广:我们会编写QQ机器人和微信机器人,进行并发广告推送,同时还会建立微信公众号进行公众号推广
线下推广:推广给身边的朋友,师弟师妹,师兄师姐等,有必要可以进行传单推广,同时联系学校的一些协会和组织与我们进行合作推广
4.PSP
|
PSP |
Personal Software Process Stages |
预估耗时 |
实际耗时 |
|
Planning |
计划 |
25 |
10 |
|
· Estimate |
· 估计这个任务需要多少时间 |
25 |
10 |
|
Development |
开发 |
100 |
180 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
120 |
150 |
|
· Design Spec |
· 生成设计文档 |
40 |
30 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 |
20 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
10 |
|
· Design |
· 具体设计 |
100 |
130 |
|
· Coding |
· 具体编码 |
--- |
--- |
|
· Code Review |
· 代码复审 |
--- |
--- |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
30 |
30 |
|
Reporting |
报告 |
100 |
130 |
|
· Test Report |
· 测试报告 |
10 |
120 |
|
· Size Measurement |
· 计算工作量 |
5 |
5 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
10 |
5 |
|
合计 |
595 |
520 |
5.原型设计
5.1学习界面
5.2修改密码

6.结对过程
我们结对后,首先是阅读<<构建之法>>到第八章,了解学习了软件开发的开发模式,开发流程和团队合作的流程,以及需求分析和NABCD模型
之后我们沟通商量,确定完成哪方的项目,然后我们对项目进行深入地探讨进行需求分析,根据团队的技术能力情况,综合整个项目来进行架构分析,然后是利用NABCD模型进行分析,PSP分析和原型设计
我们的结对照

7.心得感想
郑锦伟:在团队项目中,最重要的是良好的沟通和配合,这次与古维城进行结对合作,是我第一次进行结对合作,原来还可以这样去合作一个项目,因为双方是不同的项目,在沟通后确定了做我原先团队的《疯狂英语的项目》,两个人不但想出来新奇的想法,效率也更加高。这次结对作业让我学习颇多。
古维城: 古维城:本次团队任务让我感触良多,团队虽然只有两个人,但我可以深刻感受到合作的种种好处.两个人共同作业的速度远远大于一个人.然而和队友之间进行需求分析以及功能界面的讨论时会有争论,思想之间的交流.与以前一个人完成作品,不明白就上网找资料的方法相比,是有很大的不同.让我感受到团队的强大与完善.
第6次结对作业--郑锦伟&古维城的更多相关文章
- 软件工程第三次作业-结对作业NO.1
第一次结对作业 结对人员: 潘伟靖 170320077 张 松 170320079 方案分析 我们对所供的资料进行分析,如下: 从提供的资料可以看出,需要解决的问题以及满足的需求主要有两类目标用户,各 ...
- Lobooi 结对作业(24235+24229)
结队作业 GitHub项目地址 https://github.com/Lobooi/PairProgramming.git 伙伴博客地址 https://www.cnblogs.com/lanti/p ...
- 结对作业1----基于flask框架的四则运算生成器
011.012结对作业 coding地址:https://coding.net/u/nikochan/p/2nd_SE/git 一.作业描述 由于上次作业我没有按时完成,而且庞伊凡同学编程能力超棒,所 ...
- [2019BUAA软件工程]结对作业
Tips Link 作业链接 [2019BUAA软件工程]结对作业 GitHub地址 WordChain PSP表格 psp2.1 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 ...
- [BUAA软工]第一次结对作业
[BUAA软工]结对作业 本次作业所属课程: 2019BUAA软件工程 本次作业要求: 结对项目 我在本课程的目标: 熟悉结对合作,为团队合作打下基础 本次作业的帮助:理解一个c++ 项目的开发历程 ...
- 软工实践——结对作业2【wordCount进阶需求】
附录: 队友的博客链接 本次作业的博客链接 同名仓库项目地址 一.具体分工 我负责撰写爬虫爬取信息以及代码整合测试,队友子恒负责写词组词频统计功能的代码. 二.PSP表格 PSP2.1 Persona ...
- 第四,五周——Java编写的电梯模拟系统(结对作业)
作业代码:https://coding.net/u/liyi175/p/Dianti/git 伙伴成员:石开洪 http://www.cnblogs.com/shikaihong/(博客) 这次的作业 ...
- 结对作业——随机生成四则运算(Core 第7组)
结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...
- 结对作业(1.0版)(bug1已修复)
import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing ...
随机推荐
- Git版本控制:Git分支处理
http://blog.csdn.net/pipisorry/article/details/46958699分支的意义创建分支可以避免提交代码后对主分支的影响,同时也使你有了相对独立的开发环境. 假 ...
- 【翻译】为Ext JS和Sencha Touch开发人员准备的应用程序监测(App Inspector)
和其他的Sencha开发人员一样,我会花费大约半天的时间在我喜欢的IDE工具上编写JavaScript,而另一半时间则是在浏览器上测试和调试我的应用程序.在过去几年,每一个主要的浏览器都已大为改善.现 ...
- gcc学习(一)[第二版]
gcc简介 1. gcc是GNU Compiler Collection的缩写.最初是作为C语言的编译器(GNU C Compiler),作者为Richard Stallman,是GNU项目的奠基者 ...
- SpriteBuilder中关节的Breaking force属性
在SpriteBuilder中三种物理关节都包含Breaking force区域在属性框中. 该属性被设置成关节可以承受的压力临界值.如果关节的压力超出了Breaking force中设置的值,则关节 ...
- SpriteBuilder中pivot关节中的Collide bodies属性
在SpriteBuilder中,pivot类型的关节表示两个物体围绕一个中心旋转运动的关节,也称之为pin关节. 默认情况下Collide bodies是不选的.因为在大多数情况下你不希望pivot连 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(一) indigo v-rep
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- 【网站建设】Linux上安装MySQL - 12条命令搞定MySql
从零开始安装mysql数据库 : 按照该顺序执行 : a. 查看是否安装有mysql:yum list installed mysql*, 如果有先卸载掉, 然后在进行安装; b. 安装mysql客 ...
- C/C++语言中NULL、'\0’和0的区别
注:本文参考了http://blog.csdn.net/mylinx/article/details/6873253及书籍<征服C指针>([日]前桥和弥著). NULL.'\0'和0的值是 ...
- android studio JNI使用
Step: 1. 添加native接口注意写好native接口和System.loadLibrary()即可了,并无特别之处. Step: 2.执行Build->Make Project 生成了 ...
- Linux文件系统的简单操作 - df, du, ln
现在我们知道磁盘的整体数据是在 superblock 区块中,但是每个各别文件的容量则在 inode 当中记载的. 那在文字接口底下该如何叫出这几个数据呢?底下就让我们来谈一谈这两个命令: df:列出 ...