软件工程第六次做业--结对做业

在线英语学习平台客户端原型前端

1.结对成员
nginx

刘博良 2015034643042算法

杨子龙 2015034643030数据库

2.需求分析
编程

使用NABCD模型进行需求分析json

2.1 N(Need, 需求)

2.1.1背景描述和需求简介

随着经济全球化和信息全球化的发展,英语能力愈来愈受到人们的关注。做为国际通用语言的英语,更是在不少重要场合上普遍使用。由此英语的学习愈来愈被社会所重视,小学到高中自没必要说,英语向来是做为考核的课程之一。而在大学的英语四六级考试一样是要求在校大学生有较强的英语能力,并且英语也是考验中的必考课程之一。Crazy在线英语学习平台,顾名思义,是针对英语学习而生的学习平台。而它的主要服务对象是大学生,里面的词汇既有四六级词汇,也有考验英语须要的词汇,不管是为了四六级考试,或者是备战研考,使用Crazy在线英语学习平台都是一个不错的选择。后端

本项目服务对象有两种,客户端用户和后台管理用户。然后台管理用户可划分两种,超级管理员和普通管理员,超级管理员有操做后台数据的一切权利,而普通管理员只有对静态英语数据的储存有所有操做权限,其余的存储模块只有查看的权限。centos

至于客户端用户,是本项目的前端使用者用户,要成为客户端用户,首先须要进行用户注册,注册后进行登陆才能使用学习平台进行学习使用。如下把客户端用户简称为用户。用户登陆后,能够进入用户的我的中心查看信息。在我的中内心面能够查看或者修改用户的基本信息,而后还能够查看学习历史,除此以外,用户还能够查看好友的信息,查看好友在线状态,能够给好友发送留言信息,同时在我的中内心还能够查看留言板看是否有留言信息接收。服务器

除了我的中心外,主界面里还有排行榜信息查看,能够进入排行榜界面查看前10名用户的排行。而后还有社区模块,进入社区能够浏览其余用户发的信息帖子,在社区模块里面能够发帖,在帖子界面里发送留言信息,回复留言信息等。微信

而后就是主模块,即学习模块,学习模块首先划分学习层次,有英语四级学习,英语六级学习,考研英语学习三大学习层次, 选择好学习层次后, 就能够选择分类学习, 组合学习和总体学习, 分类学习有单词学习,短语学习, 句子翻译学习(四六级汉译英,研考英译汉), 完型填空学习, 阅读理解学习, 还有写做练习;组合学习是从分类中用户选择要组合的类型进行套卷组合进行学习, 而总体学习是包括了全部分类题型的学习。分类学习能够选择题目数量,最少5道题以上,最多100道题,增长数目以5的倍数增长。

学习完成后,系统自动判题统计分数以及给出完成的时间, 根据分数和时间进行积分运算, 积分用于排名。

2.1.2具体功能和数据需求

2.1.2.1 登陆注册管理

(1) 注册

用户填写基本信息进行注册,要填写的信息有(帐号,密码,确认密码,邮箱,密保问题,密保问题能够设置多个,最多三个)

(2) 登陆

用户根据帐号或者邮箱号进行登陆

(3) 忘记密码

根据密保问题重置密码

2.1.2.2 英语资料数据管理

该模块的使用用户只针对管理员

(1) 查看数据

英语数据资料首先根据层次分类,不一样的层次有对应的类型的不一样的题目

(2) 上传数据

选择层次(英语四级,英语六级,研考级)和类型进行上传

(3) 修改数据

可修改题目的层次,类型,描述,答案等

(4) 删除数据

可批量删除和单个删除

2.1.2.3 我的中心模块管理

(1) 用户基本信息的操做

查看/修改用户的基本信息(帐号名,用户昵称,性别,年龄,邮箱,密保问题,学历,毕业学校)

查看用户的荣誉信息(总积分,排名,单词学习积分,短语学习积分,句子翻译学习积分,完型填空学习积分,阅读理解学习积分,写做学习积分)

查看学习历史,查看作过的学习套卷,可查看每道题的得分状况,用的提示次数和用户所作的答案和标准答案以及其余用户对题目的评论信息

(2) 好友模块的操做

查看好友列表,好友信息(好友帐号,好友昵称,好友在线状态,好友总积分,好友排名)

能够给好友发送留言信息

发送好友申请,选择帐号/邮箱号发送好友申请

查看好友申请,能够拒绝申请/接受申请

(3) 留言信息的操做

查看留言信息,回复留言

2.1.2.4 英语学习模块管理

(1) 选择学习层次

选择有:英语四级水平,英语六级水平和研考水平

(2) 选择学习方式

选择分类学习/组合学习/总体学习, 其中分类学习能够选择单词学习,短语学习,句子翻译学习,完型填空学习,阅读理解学习和写做学习等。组合学习能够任意选择一个或多个分类学习中的类型进行套卷组合来作题。总体学习结合全部分类来总体出卷。组合学习和总体学习还能够选择不一样的类型的题目的出题数量来进行学习

(3) 具体学习

具体学习中,每道题有两次提示,用一次提示题目得分/2, 提交试卷后,系统自动给出总分和用户所用提示次数。

2.1.2.5 社区模块管理

(1) 发帖

用户能够建立帖子来进行发布,帖子发布包括(题目,主体内容)

(2) 回帖

可在具体帖子里留言,也可在其余用户留言里回复

2.1.2.6排行榜管理

(1) 查看排行榜

查看总积分排行前10的用户的信息(用户名,总积分,排名,单词学习积分,短语学习积分,句子翻译学习积分,完型填空学习积分,阅读理解学习积分,写做学习积分) 对他们的互动有好友添加和留言

2.2 A(Approach,作法)

2.2.1 项目架构

整个项目咱们大概分为六大模块层,第一模块是数据操做层,主要是存放数据,数据底层操做;第二模块是业务逻辑模块,主要是提供网站的业务逻辑处理,跟网络通讯层和数据操做层紧密结合;第三模块是服务器通讯层,主要是提供网络通讯,稳定进行网络服务,这一层咱们考虑采用nginx做为服务器进行网络通讯服务;第四模块是前端模块,主要是进行客户页面的友好显示和提供前端服务逻辑,这一模块咱们分为两个版本,一个PC页面响应式版,一个是手机端页面版。第五大模块是爬虫和数据处理模块,主要是进行分布式爬虫爬取网站所须要的数据,爬取的数据将暂放到Mongodb中,同时还要负责对爬取的数据进行数据清洗和数据筛选。第六大模块是数据分析模块,这一模块使用机器学习算法对用户数据进行分析,自动对用户的英语学习做出智能的学习报告,以及进行题目的智能推荐,让用户更好地更有效率地进行针对性学习。

对于部署服务器,咱们采用腾讯云服务器centos 7.12进行项目部署,而后数据库采用MySQL和MongoDB, 其中MySQL存放项目中稳定的数据,MongoDB存放爬虫数据。

后台服务端语言使用Python3,Web框架使用的是Django框架, 管理界面将采用比较完善的xadmin后台管理界面。

前端技术采用HTML, CSS, JavaScript, Jquery, Bootstrap, Vue, Swiper等语言和框架进行开发。咱们整个项目之前后端分离以基准,因此会用到大量的异步Ajax进行json数据包的通讯

2.3 B(Benefit,好处)

用户能够自定义学习计划,能够按照你的学习规律和学习习惯定义你的学习计划进行英语学习。

系统智能分析你的学习状况,智能推荐题目提供学习。

同时还能够与好友一块儿学习,一块儿相互监督,一块儿成长

随时获取你的学习记录,查看你的学习状况和知识掌握状况,从而能够改进你的学习计划更好地进行学习

2.4 C(Competitors,竞争)

对比其余竞争产品,如百词斩,扇贝等。

咱们给用户更多的自由学习合适的学习计划进行学习,肯定好学习计划后。同时系统会智能根据你的学习状况进行题目推送

题型较多,除了词汇题,选择题外,还会有各类翻译题甚至是写做题提供练习,而判题由系统进行智能判断

题库庞大,题目质量高,咱们采用全网分布式爬虫进行数据爬取,利用大数据进行数据清洗和数据筛选,而后系统智能对数据进行整合处理,变成各类不一样类型,不一样难度的高质量题目。

与好友更好地互动学习,可以邀请好友PK学习,提供学习的乐趣

有社区模块进行英语学习交流,资料分享等

2.5 D(Delivery,推广)

线上推广:咱们会编写QQ机器人和微信机器人,进行并发广告推送,同时还会创建微信公众号进行公众号推广

线下推广:推广给身边的朋友,师弟师妹,师兄师姐等,有必要能够进行传单推广,同时联系学校的一些协会和组织与咱们进行合做推广

前端用例图

4.PSP

PSP Personal Software Process Stages 预估耗时 实际耗时
Planning 计划 20 10
· Estimate · 估计这个任务须要多少时间 20 10
Development 开发 400 320
· Analysis · 需求分析 (包括学习新技术) 220 150
· Design Spec · 生成设计文档 60 60
· Design Review · 设计复审 (和同事审核设计文档) 20 20
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 30
· Design · 具体设计 180 130
· Coding · 具体编码 --- ---
· Code Review · 代码复审 --- ---
· Test · 测试(自我测试,修改代码,提交修改) 60 30
Reporting 报告 115 130
· Test Report · 测试报告 90 120
· Size Measurement · 计算工做量 5 5
· Postmortem & Process Improvement Plan · 过后总结, 并提出过程改进计划 20 5
合计   610 520

5.原型设计

工具:PhotoShop
前端界面比较多,因此在这里只放部分界面显示

 

 

 

 

 

 

 

 

6.结对过程

首先是阅读<<构建之法>>到第八章,充分了解到了软件开发的开发模式,开发流程和团队合做的流程,以及需求分析和NABCD模型

而后咱们对项目进行深刻地探讨进行需求分析,甚至已经进行了逻辑模式的设计

接着咱们分析项目须要的技术点,根据团队的技术能力状况,综合整个项目来进行架构分析

而后是利用NABCD模型进行分析,PSP分析和原型设计

咱们的结对照

7.心得感想

刘博良:之前作项目大多数是我的开发,一我的作需求,作设计,架构,开发,测试,部署等。固然也有过团队开发和组队编程的经验,但却没试过结对合做。此次结对合做,算是感受良好,两我的相互配合,1+1 > 2 的效果仍是很明显的。在作需求分析的时候,遇到挺多难题,你们各有想法,不过最终咱们慢慢磨合好,把想法合为一致,进度也愈来愈快,效率愈来愈高。这个项目是我提出的一个项目,算是个人一个想法,因此我对这个项目是比较有感受的,因此整个流程算是我做为一个主导的做用,不过子龙也算是给我了不少建议,有个好队友仍是很不错的,咱们结对时候互相配合,作架构的时候也是一块儿探讨,原型设计的时候相互弥补,总体进行的算是比较顺利。

杨子龙: 一直都是本身一我的作项目,借此机会抱紧博良的大腿进行结对合做,感受知识获得了升华,学到了许多专业的知识,克服了不少之前没遇到的困难,增进了我俩的友谊。从需求分析到项目架构,再到原型设计,咱们两个如同亲兄弟通常一块儿思考,一块儿分析研究,从中不断地有新的灵感迸发,这种感受是极其愉快的,仿佛获得生命的大和谐。总之从中能学到更多如何与人合做,如何进行团队协做,为我未来进入企业工做奠基了基础,这是难能难得的。

相关文章
相关标签/搜索