结对作业一
结对第一次作业
这个作业属于哪个课程 | 2021春软件工程实践 -W班 (福州大学) |
---|---|
这个作业要求在哪里 | 结对作业一 |
结对学号 | 061800217、221801133 |
这个作业的目标 | 阅读《构建之法》第3章和第8章的内容 结对合作制作原型 |
其他参考文献 | 简书/博客园 |
目录:
一、 PSP表格和效能分析
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 20 |
Estimate | 估计任务需要时间 | 20 | 20 |
Development | 开发 | 790 | 690 |
Demand understanding | 需求理解 | 90 | 80 |
Team discussion | 结队讨论 | 120 | 100 |
Learning prototype design tools | 学习原型设计工具 | 40 | 30 |
Prototype design | 原型具体设计 | 480 | 440 |
Design review | 设计复审 | 60 | 40 |
Reporting | 报告 | 150 | 150 |
Design Repor | 设计报告 | 90 | 100 |
Size Measurement | 计算工作量 | 20 | 20 |
Postmortem & Prrocess Improvement Plan | 事后总结&提出过程改进计划 | 40 | 30 |
合计 | 960 | 860 |
效能分析
本次结队任务耗时主要在需求理解,结队讨论以及原型具体设计上。
-
小刚的需求中有很多模糊不清的问题描述,比如,
-
用户输入单个论文题目,一般情况不会是准确完整的题目,那我们是否需要进行模糊匹配,即用关键词等获得文章;
-
当用户在论文列表进行查询时,在未找到目标论文的情况下,我们将从网上爬取目标文章,是否会造成用户已删减文章又重复添加;
-
-
如何设计我们的原型,能更贴合用户的需求,使我们的产品更具有竞争力;
针对以上问题,我们进行长时间的讨论,并在原型中做出相应的改动来解决问题。
二、 原型地址
三、 原型介绍
本次原型设计按照上中下三个部分安排页面。点击导航栏中“论文检索”、“个人中心”、“论文分析”、“论文管理”可直接到达对应页面,点击“注销”将登出账号跳转至游客界面。
- 游客界面:在此界面,我们介绍了平台的主要功能,吸引用户注册并使用该平台。点击“马上体验”或“马上注册”按钮将进入注册界面
- 登录注册页面
- 个人中心页面:在此页面,为了给用户提供更好的体验,增加了显示用户使用时长,收藏的论文篇数以及已读的论文篇数。并提供三大会议的10篇热文供用户参考。
-
个人中心页面(点击“收藏”):展示用户收藏的论文
-
个人中心页面(点击“历史”):查看用户曾阅读的论文
- 论文检索页面:在此页面,用户可以选择导入论文列表,并点击爬取,然后由平台根据用户的列表去爬取论文。用户也可以选择输入论文关键字或准确题目,交由平台生产列表并爬取论文。
- 论文检索页面(点击“爬取”):平台爬取论文成功后弹出的提示框
- 论文检索页面(点击“爬取”):平台爬取论文失败后弹出的提示框
- 论文管理界面:当用户选择“文本”显示方式
- 论文管理界面:当用户选择“图片”显示方式
- 当用户查找论文,在用户的论文列表中找不到时
- 论文分析界面:在此界面提供对多年间、不同顶会的热词及热词呈现热度走势对比和对于已导入的论文列表的分析。分析内容以可视化图标展示
四、 困难解决
遇到的问题一:网页该如何工作?
- 讨论:从用户的目的角度切入,用户进入网页,想要获得的信息是计算机视觉领域的热门研究方向和这个方向有关的论文;
从平台为用户服务的的角度切入,平台主要功能是分析某些内容然后为用户提供可视化的图表,同时爬取用户想要查看的论文,并提供给用户。 - 解决:网页的工作总体应该是获取到一份待爬取的论文列表,然后爬取论文的某些内容并反馈,最后分析某些内容比提供给用户参考。
遇到的问题二:待爬取的论文从哪里来?
- 讨论:作业中写到“支持用户输入单个论文题目,也支持批量导入论文列表;”,但是把我们放在用户的角度,用户在查找某个方向的论文时并不知道论文的准确题目,因此用户输入的论文题目可能是个关键词,而非准确的指向一篇文章。因此我们更倾向于“知网”等网站的搜索模式,“输入论文题目”意味着此时要允许模糊搜索。导入的论文列表是用户导入的、想了解的论文列表。
- 解决:若用户选择导入列表,该列表即为待爬取列表;若用户选择检索,通过检索的关键词\准确论文题目,使用模糊搜索生成待爬取列表
遇到的问题三:如何对已爬取的论文列表进行增删改查?
- 讨论:用户可以随时将已爬取的论文从自己的列表中删除。在平台爬取到论文后使用查询功能,如果找不到,则需去其他网站再次爬取,再将爬取的论文提供给用户,让用户决定是否添加。
- 解决:删:从论文列表中删除论文
查:查询论文,查询成功,则显示已爬取论文;若失败,则扩展至“增”的步骤。
遇到的问题四:“对多年间、不同顶会的热词呈现热度走势对比”是针对用户的论文列表进行的操作吗?
- 讨论:如果对用户的论文列表进行走势分析,在用户的论文列表数不多的情况下,该分析并没有意义,并且用户想要获得的热门研究方向应该是针对全网。因此这个功能与用户的论文列表无关,需要平台去爬取三大顶会的论文并进行分析,将热词呈现给用户。
- 解决:无需用户的操作,平台直接去爬取三大顶会论文的关键词,并进行分析,以图表的形式展现。
遇到的问题五:是否需要提供详细的论文内容给用户?
- 讨论:一是论文可能有版权问题,并且有些论文时付费论文;二是用户通过我们的平台主要是想了解热门研究方向,可以给出论文连接给用户,是否打开阅读由用户决定。
- 解决:在平台上显示论文关键词、摘要、题目和论文连接,不显示论文内容。
遇到的问题六:当用户对已爬取的表格进行查询的时候,当未查询到目标论文时,平台将去其他网站爬取,此时该爬取所以相关内容吗?
- 讨论:第一,这时候用户想要的内容应当是相关的少量论文,如果直接爬取可能会给用户的列表加入大量相关文章,会给用户带来极大糟糕的体验;第二,若爬取的目标论文包含用户已经删除的论文,直接添加会使用户的删除操作无效。
- 解决:若查询不到论文,则去其他网站再次爬取,并将爬取的论文显示给用户,此时加入勾选环节,用户可选择将哪些论文导入列表。
遇到的问题七:需不需要加入评论功能?
- 讨论:评论的内容是否对外可见呢?每位用户在该平台上检索的内容不同,看到同一篇论文的可能性不大,这样的评论并没有很大的意义,起不到交流讨论的作用。
- 解决:由于用户与用户阅读同一篇论文的可能性极小,评论失去其讨论交流的作用,因此不需要加入。
遇到的问题八:有没有什么功能可以给用户更好的体验?
- 讨论:结合知乎,微博等我们日常使用软件的功能,加入收藏,分享,和浏览历史记录功能,且这些功能在后续的实现中也比较现实,简单。
- 解决:给用户的个人功能,加入收藏,分享,浏览历史记录功能。
五、 NABCD模型
N(Need)
刚性需求:
-
获取待爬取论文列表及论文信息爬取;
- 支持用户输入单个论文题目,也支持批量导入论文列表;
- 通过论文列表,爬取论文的摘要、关键词、原文链接;
-
对已爬取的论文列表进行操作;
- 可对论文列表进行增删改操作;
- 可对论文列表进行查询(输入论文题目,也支持模糊查询:输入论文编号、关键词等基本信息),若在论文列表中不存在所要检索的论文,则根据输入的查询语句到网站爬取并返回论文的摘要、关键词、原文链接;
-
分析已爬取到的论文信息,提取top10个热门领域或热门研究方向;
- 形成如关键词图谱之类直观的查看方式,点击某个关键词可展现相关的论文;
-
可对多年间、不同顶会的热词呈现热度走势对比,以动图的形式呈现(这里将范畴限定在计算机视觉的三大顶会CVPR、ICCV、ECCV内);
-
平台工作流程
- 用户使用平台的简易流程
辅助性需求:
- 用户的注册,登录;
- 用户个人中心页面,可查看收藏及浏览过的论文;
- 用户可分享论文给他人;
A(Approach)
- 实现技术
在web端实现界面,用python语言实现后端开发
-
支持功能
-
搜索
- 方式:论文题目,编号,关键词等
-
数量:支持搜索单个论文或批量论文列表
- 反馈:得到论文的摘要,关键词,原文连接
-
方法:精确查询,以及模糊查询(给关键词进行查询)
-
管理
- 对论文列表增删操作
- 对已爬取论文进行查询
-
分析
- 论文的热词统计和走向
- 爬取论文的关键词直观图谱
B(Benefit)
- 支持批量导入待查询论文列表,对已爬取论文列表进行管理操作;
- 对搜索论文支持模糊查询,即用户给关键词,能爬取到相关论文;
- 有对近些年顶会热词统计和对比,能直观展现学术的发展趋势;
- 针对只对顶会感兴趣的用户提供更精确的服务,不会出现不相关,多余的信息;
- 提供多种数据可视化图表,清晰明了展现数据分析结果。
C(Competitors)
-
优势:
- 产品在web端实现,不需要用户下载,使用成本低且便捷;
- 产品支持收藏功能,用户可以收藏自己心仪的文章,之后再进行爬取研究;
- 产品支持分享功能,用户可将已爬取论文连接分享给他人;
- 产品支持浏览历史记录功能,方便用户查询自己浏览过的文章;
- 产品提供对多年间、不同顶会的热词呈现热度走势对比,方便用户了解近些年学术的发展趋势;
-
产品可对论文进行更精细,准确的搜索匹配。
-
劣势:
- 产品只针对顶会使用,搜索范围有限;
- 面向人群受限,潜在客户群体较小。
D(Delivery)
- 校内推广,基于产品只针对顶会进行爬取和热词统计,则面向的对象主要由学生和相关领域行业的人员组成。可以先在校内通过朋友圈,学校公众号推广,收集用户反馈,进行产品改进。
- 搜索引擎推广,当用户搜索顶会的官方网站,可在相关词条下进行推广,使产品面向主要用户;
- 公众号推广,联系顶会相关的公众号,发表推文来推销产品。
六、 原型工具的使用
我们使用墨刀作为原型工具。因为我们看中了墨刀丰富的模板和素材。
- 工作台展示
七、 结对过程
-
结对讨论
在进行需求分析时,我们使用QQ语聊,通话的方式进行探讨。
-
同步进度
为了方便管理作业进度,我们在github上创建共同作业空间,协同开发,方便查看修改。
-
共同作业
我们使用墨刀开发原型,通过它的协同设计功能,一起设计原型。
八、结对感受及队友评价
结对感受
思雨:
单人作业与结对作业的区别很大。双人的想法会更多,讨论更加全面,分摊的工作量也会相对减少。我很喜欢讨论的过程,在过程中发现问题,解决问题,补足我们的方案,这是一个人很难做到。但是,也会有意见相左的时候,我们都通过讨论商量达成了统一,解决矛盾。总体来说,本次结对体验很好,也得到了不错的结果。
睿珏:
之前在《构建之法》读到结对编程的内容时,对于双人合作有所期待也有所担忧,期待在与两个人的共同合作,担心在与两个人性格不合等问题。好在这次的合作很顺利,两个人在完成作业的过程中积极讨论。结对作业相对单人作业来说,两个人互相推动,动力更大、想法更多、想到的内容也更周全。总而言之,这次结对作业对我来说收获良多!
队友评价
思雨->珏:
在UI方面,两个人都是新手,都是摸索进行设计的。我们之间有很多讨论,比如,用什么设计软件,作业的模糊要求,附加功能,用户体验啊之类的,多次感谢自己拥有一个多么好的队友,优秀(◎`・ω・´)人(´・ω・`),然后也很感谢耐心回答我各种奇奇怪怪的问题。虽然是短短几天的结对经历,体验非常好,结果也不错,我们都辛苦啦✧٩(ˊωˋ)و✧。
珏->思雨:
思雨是一位很棒的队友!我们两个刚组队的时候就达成共识——要尽早完成作业。两个人都是设计新手,所以在设计初期,在软件选择和需求方面遇到了一些问题,好在我们都积极沟通,善于思考,很快就找到解决方案!在设计中后期,两个人分工合作,在自己预期的时间内完成了原型设计。是一次很好滴结对编程经历!