课程:软工实践(连接)
结对第一次—原型设计(文献摘要热词统计)(连接)
结对学号:221600219 221600212
PDF附件:
连接:https://pan.baidu.com/s/12ad0ZsxRxEgGrREWUywnmw
提取码:b6wj
复制这段内容后打开百度网盘手机App,操做更方便哦html
做业目标:
1、阅读《构建之法》第3章和第8章的内容,并在下方做业里体现出阅读后的成果。特别是第8章中的NABCD模型。
2、结对合做,阅读下方的客户描述的现实困扰,以共同发布一份博客随笔的形式,设计一套方案,向客户推销。描述大体方案,以向客户证实你正确理解了客户的需求、提供给客户可行的优化的使用建议,给出原型模型,并提供大概的解决方案预期规划。
3、最终客户将以评论的方式给出接纳与否或修改完善的建议。python
1、问题和需求
小樱是一名大三的学生,一直痴迷于吃鸡类游戏,某日听闻同宿舍的小狼刚和导师去参加了CVPR会议,心里羡慕不已,便下定决心痛改前非、努力钻研,但愿能在毕业前完成一篇站在时代前沿的优秀论文。但使人苦恼的是,他不知道近几年顶会的热门领域和研究方向,根据论文list去一篇一篇查找总结效率又着实过低,因而求助于“软工实践互助爱心组织”,但愿咱们能帮助他设计一个平台解决现阶段的需求。但愿此平台至少具有如下功能:mysql
- 用户可给定论文列表
- 经过论文列表,爬取论文的题目、摘要、关键词、原文连接;
- 可对论文列表进行增删改操做(今年、近两年、近三年);
- 对爬取的信息进行结构化处理,分析top10个热门领域或热门研究方向;
- 可对论文属性(oral、spotlight、poster)进行筛选及分析;
- 造成如关键词图谱之类直观的查看方式;
- 可进行论文检索,当用户输入论文编号、题目、关键词等基本信息,分析返回相关的paper、source code、homepage等信息;
- 可对多年间、不一样顶会的热词呈现热度走势对比(这里将范畴限定在计算机视觉的三大顶会CVPR、ICCV、ECCV内)。
- 可进行数据统计,例如每一个国家录用文章的分析、每一个学校录用文章的分析、哪一个学校哪方面的研究方向比较强等。
顶会背景:android
- 计算机视觉领域世界三大顶级会议分别为国际计算机视觉与模式识别会议(CVPR)、国际计算机视觉大会(ICCV)和欧洲计算机视觉国际会议(ECCV)。
- 以CVPR 为例,据会议官网显示,2018年大会有超过 3300 篇论文投稿,其中录取 979 篇。录取的论文有三种介绍形式:oral、spotlight、poster。
特别说明:以上是本次做业的基础要求,但愿同窗们能够在知足总的设计思路和用户需求不变的前提下,尽可能发挥本身的想象能力,帮小樱设计出一个比较满意的平台。ios
2、设计思路(NABCD)
一、需求(Need)
用户的需求点sql
-
核心需求:
(1)目前基本只有国外网站能够获取顶会论文,用户但愿能够拥有一个中文平台,解决阅读障碍;(ICCV: http://www.informatik.uni-trier.de/~ley/db/conf/iccv/index.html)
(2)用户但愿该平台不管是在手机端或者电脑端,均可以较方便的使用;
(3)能够进行论文检索,而且增长更多人性化的搜索方式,例如按年份或者按主题搜索以及组合搜索(如:年份+顶会名称+论文主题);
(4)用户给定论文列表,软件自动爬取论文的题目、摘要、关键词、原文连接;
(5)用户能够对论文列表进行增删改查等操做;
(6)经过论文属性(oral、spotlight、poster)进行筛选及热点分析,造成关键词图谱;
(7)可对多年间、不一样顶会的热词呈现热度走势对比;
(8)可进行数据统计,例如每一个国家录用文章的分析、每一个学校录用文章的分析、哪一个学校哪方面的研究方向比较强等;数据库 -
扩展需求:
(9)在顶会期间,实时推送会议的热点新闻;
(10)用户但愿能够拥有帐号功能,在登陆帐号的前提下,能够享受对已下载的论文进行云备份,查看本身的浏览记录,收藏喜欢的论文,关注其余感兴趣的用户等实用操做;
(11)用户但愿平台能够提供与某论文的其余读者进行交流的功能,以及信息交流,资源共享;小程序
二、作法(Approach)
-
针对需求(1)与需求(2):
经过使用最新的uni-app技术,轻松实现编写一套代码,可编译到iOS、Android、H五、小程序等多个平台。后端 -
针对需求(3),需求(4),需求(5)与需求(9):
针对付费论文,咱们尊重做者的版权,仅提供论文连接与查看论文的属性,不支持下载功能;针对免费的论文,咱们在提供原文连接外,经过使用python爬虫框架scapy和代理IP池,用户将论文列表按照规定的格式列好并存储成文件上传至平台,咱们对用户所需的论文主流论文网站进行了爬取,爬取成功的论文信息和连接集中保存在数据库中。并在后端实现对论文列表的增删改查功能,支持批量处理,多种查找方式更好保证用户准确查找到须要的论文,避免对搜索结果进行额外的筛选。爬取会天天在已设置好的时刻自动开始,保证用户不错过每一条新的热点资讯。微信 -
针对需求(6),需求(7)与需求(8):
爬虫得到的数据存储在mysql数据库后,搭建hadoop与spark这两个数据处理平台,使用sqoop等工具将sql数据库中的数据转入HBase,再经过使用主流的英语分词器爬到的数据进行分词和过滤常见的无用的词以及符号,对分好的词使用LDA模型进行文档主题的生成,以后使用SparkStreaming进行主题词频统计,最后可使用matplotlib+python画出可视化交互式图表展现信息。 -
针对需求(10)与需求(11):
后端使用数据库技术以用户帐号为主键存储用户信息,同时使用云技术实现同步功能。为论文开设一个评论或者笔记功能,方便论文读者的交流。也能够开发一个相似社区的板块,用于用户进行信息交流,资源共享。
三、好处(Benefit)
(1)用户没必要经过一个个网站去翻论文,咱们的应用自动把全部的论文进行了集中爬取,用户能够直接检索;
(2)用户没必要担忧难以把握热点,经过天然语言分析和大数据技术处理,咱们把每一年的热点都进行了概括和整理,同时提供了走势图和关键词图谱;
(3)用户没必要担忧阅读英文论文会有困难,咱们集成了英文翻译功能,提供中英对照,逐句翻译以及单词查询;
(4)经过使用uni-app技术,能够实现iOS、Android、H五、小程序等多个平台流畅使用,同时更新和维护都会更快更同步;
(5)云存储功能,收藏夹功能方便了用户在不一样机器上的使用体验,评论与社区功能也能够为用户提升额外的交流方式;
四、竞争者(Competitors)
- 竞争者的优点:
- 竞争者若是经过使用android或ios技术开发产品,相比咱们使用uni-app技术,有着更好的原生支持;
- 竞争着可能有着更好地创意,值得咱们去学习。
- 咱们和竞争者都实现的功能:
- 较为完整的基本功能
- 经过爬虫搜集论文信息;
- 能够进行检索;
- 能够生成图表,描述当下热点和趋势;
- 咱们的优点:
- 咱们使用uni-app技术,支持多种客户端,方便用户在不一样的设备上使用;
- 经过集成翻译功能,咱们能够翻译论文,用户用的更加舒心;
- 经过使用代理IP池技术,咱们实现了更加快速和高效的爬取;
- 交互式图表让用户更直观的获取信息。
- 云储存技术方便用户的使用
五、推广(Delivered)
考虑到咱们的产品主要面向的是研究计算机前沿技术的部分人群,所以在宣传上咱们但愿减小没必要要的宣传,尽量将产品精准的推广到目标用户群。
(1)前期先在班级内试用,根据同窗的反馈完善产品的不足,经过参与比赛,提升产品的知名度。
(2)在产品质量较稳定后,能够经过同窗们口头推荐,数计学院QQ群,学院媒体的微信公众号,在数计学子活动较频繁的地区进行海报宣传,将用户扩大至整个学院。
(3)根据更多用户的反馈,不断完善优化本身的产品后,最后能够经过与相邻高校合做,将产品推广到校外,同时借助网络渠道,在全国各大高校板块以及计算机讨论板块宣传本身的产品,欢迎你们的使用与建议。
3、原型模型
详细功能介绍
- 主页
- 主页会推送最新的顶会资讯和论文,在页面的顶部点击搜索,进入搜索页面,在页面的右下角点击悬浮的图标能够进入收藏夹中。
- Top 10
- 在导航栏栏右侧点击弹出下拉列表,能够选择指定的收藏夹进行10大热点论文分析
- 热词
- 在导航栏栏右侧点击弹出下拉列表,能够选择指定的收藏夹进行热词分析,统计出一段时间里出现次数较多的主题
- 趋势
- 在导航栏栏右侧点击弹出下拉列表,能够选择指定的收藏夹进行热点趋势分析,以折线图形势直观地展现给用户
- 个人
- 在该界面你能够进行帐户管理,进入本身的收藏夹,浏览历史以及系统设置。
<
- 搜索
- 您能够再搜索框里输入本身想要的内容,得到想要的结果。
- 收藏夹
- 收藏夹里保存着你收藏的论文,对其进行增删改查以及统计等功能。
- 添加论文
- 在该界面您能够输入论文编号,论文标题和论文连接添加本身想要的论文。1
- 论文详情
- 该界面用于展现一篇论文的具体内容,你能够在这里看到论文做者,发表日期,摘要,DOI,原文以及现场图片等信息。
- 自动中英对照
- 该功能主要用于解决阅读障碍,支持单词翻译以及全文翻译等功能。
4、困难和解决
-
困难:
一、 因为使用墨刀的次数很少,致使上手时操做不熟练,像是没找到怎么修改圆角,下降了效率。还有发现状态栏和图片之间老是有一条白线影响观感,可是没找到解决方法。
二、 在讨论NABCD模型的时候,耗费了较多的时间在上面,这主要是以往较少从用户角度进行基于NABCD的模型的分析。
三、 时间上的紧张,在有限的时间内出了完成这项做业外,还要复习考研,私事。所以想要较好的完成做业难度较大。 -
解决
一、 经过两人的不段摸索,在完成任务的同时也慢慢的熟悉了墨刀的基本操做。
二、 尽管以往经验较少,可是在和队友的讨论当中仍是迸发出了许多有趣的点子。
三、 时间老是有限的,能作的就是尽量充分利用时间。队友间的相互理解与承担也让这项做业有条不紊的进行着。
5、效能分析和PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 20 |
• Estimate | • 估计这个任务须要多少时间 | 30 | 20 |
Development | 开发 | 300 | 370 |
• Analysis | • 需求分析 (包括学习新技术) | 90 | 90 |
• Design Spec | • 生成设计文档 | 60 | 30 |
• Design Review | • 设计复审 | 30 | 10 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 0 | 0 |
• Design | • 具体设计 | 120 | 240 |
• Coding | • 具体编码 | 0 | 0 |
• Code Review | • 代码复审 | 0 | 0 |
• Test | • 测试(自我测试,修改代码,提交修改) | 0 | 0 |
Reporting | 报告 | 50 | 40 |
• Test Repor | • 测试报告 | 0 | 0 |
• Size Measurement | • 计算工做量 | 20 | 10 |
• Postmortem & Process Improvement Plan |
• 过后总结, 并提出过程改进计划 | 30 | 30 |
All | 合计 | 380 | 430 |
6、总结
关于此次做业,结对两人受益颇多:
(1)清晰地认识到,在开发过程当中,代码毫不是最重要的一个环节。开发过程前期的NABCD需求分析也是及其重要的。全面的分析可让后面的设计更有目的性和效率。
(2)大三后各类事情让时间变得紧张起来,但正是在这种环境锻炼;了咱们的适应能力,去努力利用时间,合理分配精力在不一样的事情上。
(3)一个团队里,优秀的队友是极其重要的。不只仅是在能力上能够解决开发中遇到的难题,更多的是在搭档的过程当中,互相激励对方,一块儿完成任务。