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