结对作业一
结对作业一
这个作业属于哪个课程 | 2021春软件工程实践|W班(福州大学) |
---|---|
这个作业要求在哪里 | 作业要求 |
结对学号 | 221801413、221801427 |
这个作业的目标 | 阅读《构建之法》第3章和第8章的内容,学习NABCD模型; 根据所学,两人结对合作,阅读客户描述的现实困扰,进行原型设计。 |
其他参考文献 | CSDN、简书、知乎、墨刀官网教程 |
PSP表格和效能分析
PSP表格
PSP2.1(Pair Programming) | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 10 |
Estimate | 估计这个任务需要多少时间 | 10 | 10 |
Development | 开发 | 840 | 872 |
Analysis | 需求分析(包括结对讨论) | 90 | 74 |
Learning Tools | 学习原型设计工具 | 60 | 132 |
Design | 总体设计 | 30 | 30 |
Prototyping | 原型制作 | 600 | 606 |
Test | 测试(自我测试,修改页面,提交修改) | 60 | 30 |
Reporting | 报告 | 45 | 66 |
Size Measurement | 计算工作量 | 15 | 30 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 33 |
Total | 合计 | 895 | 945 |
效能分析
总体分析
通过阅读学长的博文,再结合对这次作业要求的分析,进行了时间预估,总体和预想的没差太多:
- 原型制作,共10个小时,安排了分三天完成,预计分别做2、4、4个小时,实际有弹性调整,分别做了2、5、3个小时,当日任务完成就休息,确实也如期完成了。
- 需求分析与总体设计,预估时是以单人为标准,然而众人拾柴火焰高,集两人的智慧去思考怎么设计页面、满足需求、使产品更具有竞争力是比想象中要快的,是一个新奇的体验;同时,UI设计上,结合了常访问的几个较有设计感的网站的优点作为美术参考,这也节约了用时。
- 总而言之,潜藏于每个环节中的“沟通”这一动作,相较于个人作业要花费更多的时间成本,但以此换来的是整体效率上的提升,原型制作一气呵成,且两个人互相盯着,一有问题就马上指出,帮忙修改,所以最后测试也没什么大问题,比预想的更快完成了,因此认为这个交换是值得的。
哪些子任务存在效率低下的情况?
- 学习原型设计工具
- 计算工作量
原因是?
- 在线原型设计网站比想象中的要更难以使用些,其本质是自带素材库的可视化网页设计工具,一打开就有满屏幕的按钮可以点,有Android Studio和VS的即视感了。而它不见得有前述两者好用,光是“学会如何使用两人协作功能,并开始设计”就花费了将近40分钟。再者,工具都是有缺点的,在:习惯它的各种“坑”;选择、寻找素材;找不到理想的时只好自己去学着制作,这些事情上,也花费了大量的时间。
- 因为是结对编程,相比于个人编程,PSP表格的时间数据来源有了参考了,通过翻看qq聊天记录与通话时间计算了每个子任务的用时,因此在计算工作量花费了较多时间。
改进方法?
- 技术不足、菜是原罪。其实通过翻看学长的博客,就能提前知道软工实践课每个阶段要用到什么新的工具、技术,完全可以在学有余力的时候提前了解、学习,至少先注册个账号、下载个软件点进去也好啊,这样每次作业就能多一些余裕。
- 每一天的各类工作完成后对用时即时进行记录,不要老留着到最后去回顾计算的坏习惯。通过翻阅《构建之法》也发现,以天、小时为单位地进行任务安排与时间管理(以及效能分析?)对于团队项目开发十分重要,这也是敏捷中的关键一环。因此,要上手学习更多的管理方法论了(如制作燃尽图等)。
其他不足
因为221801427同学有完美主义倾向(强迫症),细到每个字体大小,控件XY轴,页眉页脚位置都要安排得明明白白,但又没有利用好原型设计网站的“母版”功能,所以导致不断地去手动调整,浪费了一些时间。---221801427
原型地址
原型介绍
注:文中提到的“热词(关键词)、热门领域、热门研究方向”含义均近似。
网页结构
1.主页
产品提供了一个开放且美观的搜索页面,不用登录即可自由进行论文搜索,用户可以通过点击选项卡来切换搜索选项。同时,考虑到像“小刚”这样的同学初次搜索CV领域论文时的盲目性,设计了关键词标签相关的功能:
-
按关键词搜索论文,页面顶部的搜索框支持模糊搜索,可通过空格或逗号分隔不同关键词,文章的标题、摘要、内容、关键词或研究领域均可以被指向。搜索框的下方提供了“添加用户感兴趣的标签(领域或关键词)”的功能,也可对其进行修改、删除的管理(页面暂未设计);页面中部则提供了图文并茂、双语兼具的关键词推荐,近期热门文章推荐卡片,作为新用户进行搜索的参考,且它们都能够根据用户个性化定义的标签偏好进行实时刷新;点击推荐的关键词卡片,搜索框便会自动为用户键入并提供搜索结果;而点击近期热门文章卡片,即可直接进入具体文章详情界面。页面底部为计算机视觉三大顶会CVPR、ICCV、ECCV的logo,点击可前往对应的简介页面。
-
按作者名搜索所著/参与的论文,同样的,提供了自动分析用户个性化定义的标签偏好,来进行所对应领域论文作者推荐的功能,告别搜索的盲目性。
-
按论文编号/标题更精确地搜索单篇论文。当检测到用户输入的是论文编号时,提供直接指向具体对应论文的选项;当检测到用户输入的是论文标题时,展示可能的匹配结果,也可点击进入;若无对应论文则进入搜索结果页面并告知无搜索结果。
2.后台
产品提供了方便且快速的后台页面,支持用户自己去爬取想要的论文,导入仓库,以便搜索与查看。但考虑到可能有人对论文仓库进行随意、恶意修改,因此设计为登录后才可使用后台功能。
- 爬取界面
无或者无理想搜索结果时,用户可在搜索结果页面点击进入爬取论文界面。可以输入单个论文标题进行爬取并显示成功/失败;也可以上传固定格式的EXCEL/txt等文件,经过系统自动分析,批量获取待爬取论文,标题列表展示在左侧,可以进行清空、单个修改或删除(错误输入等),点击批量爬取后自动到网站爬取论文的摘要、关键词、原文链接,并显示成功/失败;点击完成按钮进入论文仓库页面查看爬取结果。
-
论文仓库
对已有的(已爬取)的论文进行管理(数据库存储),可修改与删除错误的导入,想要添加更多论文则点击前往爬取界面。为方便刚爬取完论文的用户查看,表格默认按最新爬取时间排序,也可以设置按热度或者发布时间二次排序。
3.顶会介绍
-
CVPR、ECCV、ICCV简介页面
展示关于三大顶会的简介,点击"查看热门领域"按钮可以跳转查看该顶会十大热门领域,给初识CV与三大顶会的用户提供了一个快捷了解信息的渠道。底部logo可跳转至其他顶会介绍,图例仅展示CVPR界面。
4.用户登录
产品提供了注册,密码登录或短信验证码、微信扫码快捷登录以及找回密码的功能。
- 密码登录
- 用户注册
5.分析与统计
产品提供了展示搜索结果和对CV三大顶会论文热词进行分析、统计并可视化展示的功能。
-
热词分析
分析相关领域每年发布的论文数,通过动态呈现的折线图给用户直观地展现三大顶会中十大热门领域热度近年走势对比。点击上方选项卡可切换顶会,鼠标移入某条热词折线上可高亮显示。
-
关键词饼图
使用饼图,体现top10热词各自论文数在top10热词论文总数中的所占百分比,以此作搜索与了解了解CV领域研究现状的参考。
-
词云图
使用词云图来展现热门领域。
-
论文列表(搜索结果页面)
采用与百度近似的左内容右边栏的页面设计。将查询结果以列表的形式显示,可按热度或发布时间排序,每条包含论文标题、作者、摘要和关键词,用户可以通过点击相应区域查看文章详情,下方则有收藏、点赞、引用快捷键;如果在后台数据库中找不到匹配项,产品则提供其他学术论文网站的检索结果以及链接,同时,页面最下方也设置了点击前往爬取界面的按钮;右边栏的上方传入在搜索框键入过的关键词,可通过添加和删除来改变搜索结果,直观又快捷;右边栏下方则展示近期十大热词以及热词云图(点击前往大图页面)。
-
论文详情
用户可以查看文章的详细内容,包括浏览量。可以对文章进行点赞、收藏、引用与下载一系列操作,若无下载资源则可访问旁边的原文链接。右边栏与搜索结果页面近似。
困难解决
困难一:动态效果
解决方法:如下拉菜单,一开始是打算使用模板中现成的下拉菜单,但是后来发现这些模板要么有无法更改文本的问题,要么与网页整体设计不搭配等等的问题。之后,我们查询了相关教程,学会了设置组件不同状态,通过状态之间的切换来实现菜单的显示与折叠。页面选项卡的切换也是同样的道理。
困难二:热词动图
解决方法:我们使用了词云图、饼图以及折线图来体现相关领域热度变化,而这些图是利用Highcharts网站中已有的模型,我们改写其中的数据以及代码使其适应本身的要求,然后使用墨刀的网页组件将代码嵌入相应的原型界面中。但其中词云图由于自己写的实在太丑,只好去专业网站WordArt制作,但由于获取资源要付费,只能使用截图替代。
困难三:部分题目要求描述模糊
解决方法:“主动爬取论文”这个功能页面自己是从来没见过的,没有参考,需要发挥自己的想象力,素材库里的模板不理想就要自己设计。
困难四:数据来源
解决方法:一开始对论文爬取抱有疑问,这不是都有版权的吗?平常去知网等平台随便点一个进去看都麻烦的很。因为了解到后续作业涉及到的数据来源主要针对三大顶会,所以后来去CVPR的一个很简单粗暴的论文开源网站浏览了下,发现全是标题、关键词、摘要等纯文本、pdf、arXiv资源裸放,恍然大悟。而对于其他可能不提供原文资源、需要付费获取的论文,则发展出了原型介绍中不展示原文内容、爬取原文链接、访问原文链接等一系列设计,来解决这一问题。
NABCD模型
N (Need,需求)
潜在用户:
A:初出茅庐的小刚同学
- 对CV领域感到酷炫!抱有十足兴趣。
- 但对文献的检索技巧掌握不足。
- 对CV领域也是完全初识,认不得几个单词。是一名懵懂少年。
- 我是谁?我在哪?我该搜索什么能出来我想要的?
- 再这样下去拖下去兴趣就要变成三分钟热度啦。。。
- 总而言之是个小白。
B:网络老手的小强同学
- 见识与阅读面较广,识得不少专业术语。
- 但也仅限看的懂啥意思,想加深了解CV。
- 常年上网冲浪的经验给他带来了天然的信息检索技巧。
- 但碎片化的信息阅读让他成为了一名急躁青年。
- 进入专业文献查询网站,各种界面信息应接不暇,光是搜索框下面就好几个复选框要点,内心开始崩溃:我只是想了解下CV与三大顶会呀!
- 总而言之是个有求知欲的好同学,但没有耐心。
C:做过科研的小果同学
- 相比小刚与小强,专业知识肯定是具备了。
- 掌握了文献的检索方法,因此更注重体验。
- 了解到近三天某个顶会召开了!想去即时了解下前沿热门领域。
- 进入三大顶会官网,网页十分卡顿,令人烦躁,且UI也不是很友好。
- 耐心逐渐用尽。。。网络上的博客也只是推送部分文章,不一定是自己想看的。
- 总而言之,用户体验的问题。
D:热于分享的段老师
- 教计算机的一名老师,专业知识自不用说,热于给同学们分享前沿科技。
- 可能正在上导论课,突然想向同学们介绍下CV热门领域,三大顶会。
- 当场一个个百度不太合适吧,上课效率何在?
- 可能晚上在备课,想在PPT里插入推荐同学们了解的最新会议论文。
- 但是老师好像都很忙啊。。。可能没有时间搜索素材、资料了。
- 总而言之,便捷性的问题。
需求:
1.新手友好的论文检索功能,人性化、个性化的关键词查询功能,操作简单;提供各种关键词、热门文章、作者以供搜索的参考。
2.提供爬取论文服务以及基本的增删改,存储原文链接、标题、作者、摘要、关键词、论文编号等信息。在网站内阅览,告别访问国外卡顿网站的糟糕体验。
3.论文范畴为CV领域与三大顶会,更有针对性,查询起来没有干扰项,很快速便捷。且展示了热词可视化图谱、集中了三大顶会介绍等以供了解,不用去一个个查了。
4.用户权限方面,游客不得对论文仓库做出任何操作,只供查询,注册用户可自由访问爬取功能。
A (Approach,做法)
1.产品将基于Web平台开发,因其兼具可跨平台访问、无需额外安装、便于浏览大量文字以及下载资源等优点。
2.我们团队掌握了java网络编程以及数据库相关技术,能完成核心要求功能如论文的爬取、管理、查询并提供资源链接、分析热词并可视化呈现等要求。后台先通过爬虫获取论文列表和相关资源如pdf、源码的下载链接,并存入数据库中(具体的爬取页面实现思路已在原型介绍中描述);查询时与用户输入的关键词、编号等进行比对,返回结果;而关键词图谱(标签云等)的初步思路为通过传入json数据至js代码中实现。
3.我们团队以前有开发个人博客网站的经验,可以对页面进行与时俱进的美化,以及优化网页整体操作逻辑等,以此来提升用户的体验。
4.团队位于大学城,有一定地理和人脉优势,大学生人群方便通过校园进行推广、免费开放使用、吸引大量用户,对产品进行测试并迭代优化。
B (Benefit,好处)
1.Web平台快速检索,节省时间与网络成本。
2.UI美观简洁,用户体验较好。
3.检索范围有针对性,无干扰,也可主动爬取,对于想了解CV领域的用户们很方便。
4.给出热词图谱,数据展示更直观。
C (Competitors,竞争)
1.对标Papers、EndNote等文献管理软件,本产品有基于Web平台开发,可跨平台访问、无需额外安装的优势;且经调查了解,例如EndNote并没有给论文打标签、关键词来进行管理的功能,本产品则可在论文仓库进行编辑,并通过可添加标签查询,这也是我们的优势。劣势是我们未设计社区模块功能,例如Mendeley就具有强大的社区功能,它甚至可以分享论文的pdf注释与标记。
2.对标知网、百度学术等文献查询网站,我们的优势是提供了热词的可视化呈现与便捷的标签偏好查询、管理,能够帮助学术初心者的同学们快速上手、熟练的科研人员便捷查询。同时,我们也可以设计更美观的ui,带来更好的用户体验。劣势是我们的库仅针对主要包括CV三大顶会会议论文在内的计算机视觉领域,且因此也没有跨库(期刊、辑刊、专利等)查询的选项。
3.总结:搜索范围有限,功能不丰富。
D (Delivery,推广;Data,数据)
1.首先在学院中进行推广,主要面向向对计算机视觉领域有兴趣的同学和从事这方面专业老师,并收集他们的反馈意见以及使用数据。
2.获得一定的反馈意见后,进行产品功能改进,尝试通过学校平台向计算机与软件相关专业的学院、研究所推广,扩大用户基数。
3.针对QQ、微信等社交平台进行网页的宣传,进一步扩展用户。
原型工具的使用
结对过程,队友评价
结对过程
- QQ通话、聊天交流
整个学习与开发过程两人通过qq电话与聊天形式直接交流想法,资料与成果,较为高效。
- 版本控制
通过墨刀的版本记录功能进行版本控制。
- 交流设计
简单、有经验参考的页面设计思路直接通过语言与文字传达,无参考时则手绘设计交流。
- 协同开发
试用了墨刀企业版的协作功能,其保存功能无冲突问题,延迟也不高,很方便很快乐。
- 任务安排
以下展示结对作业checklist,每日的完成顺序为从下至上。
结对感受
221801413:这是我第一次结对完成一次作业。与单人完成的项目不同,这次原型设计是经过两个人不断讨论完成的,比如网页的整体页面结构以及具体页面的相关细节实现等。两个人不同想法之间的融合可以让网页细节更加完善。当然,对于同一问题的不同看法,我们也会通过了积极地沟通来达成共识,这不仅提升了我们表达自身观点的能力,也增强了个人的沟通能力。并且,在原型设计与实现的过程中,通过制定计划,约定时间,分工合作的方式,极大的提升了开发效率。(
特别是对于我这种拖延症患者)。
221801427:我的结对的感受大部分都在效能分析中叙述了,那些部分这里就不啰嗦啦!总之是个快乐的“做中学”的过程。后知后觉的原型设计上的不足之处就是我们没做用户个人界面,因为从一开始就觉得搜索、爬取、热词页面才是侧重点。还有就是写博客时,感觉NACBD模型与原型介绍有不少上下重复啰嗦之处,明明在原型介绍里写了,而在NACBD里却不得不又写了,也不知道写的好不好。
对队友的评价
221801413:在作业发布第二天就找了我结对,非常感谢我的队友。在这次网页原型设计过程中,我觉得LG同学在设计细节处把握的非常好,比如页面与组件之间的颜色的统一和谐、合理设置字体大小提升阅读体验等等。并且他在最初就制定了每天的任务,让分工更加明确。当遇到难题时,我们会一起寻找解决方法;而遇到分歧时,我们能积极并及时沟通,以求达成一致的解决方案。总的来说,我觉得这次结对体验很不错,也对下次的结对编程有了期待。
221801427:个人认为我主要做了指挥(领航员?)的工作吧,队友很有耐心,勤快积极,分担的工作不少,都很好的完成了。虽然由于作业刚发布后我在准备考驾照的原因,延后了几天才开始动工,但我们也没有赶deadline,说明配合较默契、效率不低。总之没什么不对劲的地方吧!期待结对编程作业2!