软件工程 结对作业一
结对作业一
这个作业属于哪个课程 | <2021春软件工程实践S班 (福州大学)> |
---|---|
这个作业要求在哪里 | <结对作业一> |
结对学号 | <221801410、041801406> |
这个作业的目标 | <完成原型设计、撰写博客> |
其他参考文献 | 无 |
作业基本信息描述:找到结对队友,阅读《构建之法》第三章、第八章,完成原型设计,并撰写同一份markdown博文。
PSP表格和效能分析
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 15 | 15 |
• Estimate | • 估计这个任务需要多少时间 | 15 | 15 |
Development | 开发 | 460 | 385 |
• Analysis | • 需求分析 (包括学习新技术) | 35 | 40 |
• Design Spec | • 生成设计文档 | 15 | 0 |
• Design Review | • 设计复审 | 10 | 0 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 0 | 0 |
• Design | • 具体设计 | 45 | 30 |
• Coding | • 具体编码 | 300 | 270 |
• Code Review | • 代码复审 | 15 | 15 |
• Test | • 测试(自我测试,修改代码,提交修改 | 40 | 30 |
Reporting | 报告 | 125 | 105 |
• Test Repor | • 测试报告 | 80 | 60 |
• Size Measurement | • 计算工作量 | 15 | 15 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 600 | 505 |
效能分析:本次结对作业,主要用时花在了计划分工和原型设计上,在前几次作业的预估耗时基础上,都是实际花费时间会比预估时间花费的多。这次作业由于有了伙伴加入,需要额外考虑到两个人在工作进度上是否匹配, 这一部分会额外花费时间。但是出乎意料的具体设计时间在两个人的合作之下比预估减少,分工合作互相拟补,整体进度是要1+1大于2的,遇到困难多个人一同想办法,提升了效率。
原型地址
原型介绍
总体介绍,根据基本要求中的三大用户需求,我们的设计总体思路被分为了三大模块,分别为:主页面(用于让用户输入所想要搜索的内容)、爬取界面(用于根据用户所输入的内容,将爬取的结果展示出来)、分析界面(将爬取到的信息经过分析,可视化展示给用户)
我们的设计目的是通过我们的平台,批量处理用户查询需求,减少用户查询论文所花费的世界,并且通过总结分析需求信息来可视化地将信息展示给用户,从而达到提高用户效率,方便用户使用的目的。
原型主页
主页在整体布局上是模仿微软bing搜索的设计,主要目的是让整体尽量的简洁.点击左下角的两个箭头可以不断切换背景图片,在之后的具体实现时,会在里面加入更多的图片. 左上角的导航栏是方便用户在搜索和论文分析以及查看已经爬取的论文之间切换.
搜索栏是可以进行切换的,主要适应单行搜索和批量导入论文这个功能. 在点击搜索按钮 (也就是放大镜)之后,会切换到论文爬取界面,这时论文分析界面也会生成相应的分析,因为只是设计原型,没有对数据进行处理,只是简单的制作了样式.
论文爬取界面
论文查看界面是为了满足用户在爬取到论文后,想要在网站上简单预览时使用.点击对应的查看按钮就可以跳转到该界面,然后点击右上角X可以回到原先的界面. 这一个设计任然有一些问题,例如没有贴上原文链接,在后续的实现时会加以改进.
在本界面,还可以对已经爬取的论文列表进行操作,在右上方设计的搜索框可以根据编号、题目、时间范围及关键词来对已经获取的列表进行查询,将查询到的所需要的论文信息展示出来,其他论文信息隐藏。如果没有查询到该信息,便重复主页中搜索的动作,对输入的内容进行二次爬取,最终获得的信息展示在论文里表中(类似下方展示的新增功能),由于原型还没有真实爬取的信息,所以该功能会在后续的实现时才能完成。
新增功能展示:通过新增论文按钮,在弹出的搜索框中输入想要新增的论文题目,之前根据内容爬取并添加在列表中。
删除论文功能展示:通过删除按钮,用户可以主动筛选自己所不需要的论文从列表中删去。
论文分析界面
界面整体展示如下:
在本平台的该界面中,我们将爬取后所得到的的论文数据进行分析,进行“词频统计”,出现频率最高的10个词通过统计图的样式,可视化展现在该界面中(图中左边的统计图仅作为原型设计其中只有top5的数据)。点击图中的关键词则会跳转到相关的论文连接,在原型中创建了一个论文展示界面作为代替。
该界面另一大功能,根据所爬取到的论文的时间和热词,生成一个可动态变化展示热度走势的统计图,通过每年热词数目变化来产生对比。如下图中展示:
困难解决
- 困难描述:在使用原型工具设计时,遇到了论文分析界面的动图展示的困难,这与界面的变化不同,界面的变化可以通过跳转实现。实际编码中在网页通过JS生成动图应该有可行性,但是在我们选择的墨刀这一原型生成工具中实现有困难。
解决尝试:想要制作GIF图插入,但是图片的制作与该困难的解决相同,又回到了怎么制作出这样的走势图的原型来向用户表达上。该解决尝试失败。
随后,通过查找资料,但是多数解决办法都是针对Axure中的动态面板来使用的,最终我们查找到了利用墨刀中的动态组件,设置该组件的状态,不同状态代表一个年度的热词走势,这样在状态的切换中,实现了动图的展示。该解决方案成功解决了困难。
收获:在查找资料和实践的过程中,学会了对墨刀的动态组件原型设计,让我们的原型看起来不再只是一张图片,或者简单的跳转,通过状态的变化可以让用户更深入地了解我们的平台产品。
- 困难描述: 第一个遇到的困难是在原型设计工具的使用方面,因为是第一次使用该类工具,不能熟练地运用,特别是在交互功能的设计方面,因为图层的问题,容易发生一个大的界面覆盖掉他下层的小按钮导致运行时小按钮无法被点击.后续在设计完时,在对图层关系进行排序.有一些设计则是将整个界面设计成多个状态,全部的组件都放在一个状态里.
是否成功解决: 算是解决了目前的困难.
收获: 收获就是收到了教训吧,以后在设计原型时,应该在一开始就计算好图层上下的关系,不能想一个加一个进去, 还有就是对图层好好分组命名,方便后续排版.
NABCD模型
详细说明:
- N(Need, 需求):用户希望能够通过我们的平台,提高他对计算机视觉领域的论文的查找总结效率,解决现阶段的需求。
- A(Approach, 做法)(主要分析):网页作为和用户交互的平台,利用爬虫结合用户输入的数据,对专门的国际计算机视觉与模式识别会议(CVPR)、国际计算机视觉大会(ICCV)和欧洲计算机视觉国际会议(ECCV)这三个网站的论文进行搜索查找,可以排除一些从其他网站爬取质量不高的滥竽充数的文章,提高查找效率。并对查找到的文章利用词频统计工具来分析文章结构及内容,从而生成最终的统计数据,来做到对需求的实现,有针对性才能更好地解决用户需求。
- B(Benefit, 好处):快速方便地获取信息,并且得到的是有效且有价值的信息。
- C(Competitors,竞争)(主要分析):首先我们的竞争对手有很多,首当其冲的就是与我们一同进行这次作业项目设计的同学们,不同的小组便会设计出不同的平台,和我们解决的用户需求相同,竞争也相当激烈。其次,现在的网站中已经有如百度指数这样用来查找关键词的平台,也有已经存在的论文数据网站知网这样的竞争对手。对于如何竞争,我们也将针对这两类不同的竞争对手来展开。竞争方案一:针对已存在的大型数据网站,他们的针对性弱,查找的数据太过广泛,在百度指数中还只能查找已经收录的关键词,想要使用未收录关键词还要付费。我们的竞争想法就是,打造免费的平台且具有对计算机视觉这一领域的针对性,从而找到的论文及数据是高效又廉价的,借此来提高我们对已存在的平台的针对性。竞争方案二:针对于我们同班同学对相同需求设计得到产品,会具有相同的针对性。所以我们采用的竞争想法是,将平台设计的更加简洁美观,提高爬取数据的速度以及数据处理的速度,从而提升用户的体验度,用这样的方法来竞争。
- D(Delivery,推广):可以通过在一些网站投入广告连接,同时在我们设计的平台上也提供一些邀请别人加入即可获得的优惠或者好处,利用广告和口耳相传来实现推广。
原型工具的使用
我们采用的原型工具是墨刀,其中的企业版可以让我们两个人同时加入一个项目,并且支持同时对项目进行设计更改,实时保存。
结对过程,队友评价
由于本次作业的时间我们还未返校,两人之间的合作只能过QQ聊天以及电话进行交流。像下图这样的文字交流还有很多但是很零散。主要的交流方式还是通过在边使用原型工具的同时,边进行QQ语音交流,有商有量的进行设计。(下图把名字备注模糊化)
下方是我们合作时,一边使用QQ语言一边使用原型工具进行设计的照片(按顺序分别是221801410、041801406):
221801410的感受:对于第一次结对的感受已经感觉到了1+1大于2的效果,原本以为两个人在想法上会有不同,设计起来也会非常麻烦,会担心用时过多造成效率低下。但是实际上进行原型设计的时候,出现的是一方提出一种想法,队友如果有更优的想法就可以提出,很快便能择优来设计,不仅没有花费更多的时间,做出来的效果也更加好看。
对041801406同学的评价:队友十分开朗和善,在开始商量设计时,没有任何障碍,很快两个人就可以进入状态。在进行原型设计时还会考虑到后面编程的实现,思考的很长远。对待合作的态度十分积极,对于出现意见分歧需要商量时也会很及时地回复,相比于我之前会把完成作业的时间集中在一个靠后的时间段,也正是队友的这份积极,带动着我每天都会花时间在作业的思考和完成上,不会显得那么仓促。队友在美感的设计上也拟补了我的不足,对于原型设计的背景、配色以及布局的设计上会提出优于我的方案,也让我感觉到了结对完成作业的高效。队友的学习态度也很好,对于从未使用过的原型设计工具也在合作过程中一起从无到有地学习。总而言之,和这位同学的结对过程十分愉快。
041801406的感受: 第一次进行这种形式的作业,体会是结对作业确实降低了一个人的开发量,并且可以更加专心的研究自己所负责的方向,确实是提高了开发效率.但是同时也给每个人增加了一个任务,那就是与结对的队友进行交流.总的进行下来,还是可以体会到结对编程相比单打独斗的优势的,在设计和优化时,有个人一起帮忙,可以照顾到许多自己一个人注意不到的方方面面.
对 221801410的评价: 这个同学是个老学霸了.所以在开发时他总能主动接下许多困难的内容, 交流起来也是十分流畅,整个过程并不会十分枯燥无味,两个人几乎是在边谈天边工作的环境进行任务. 对于这次的作业,他对于原型工具的使用是比较有经验的, 在最初选择工具时, 他首先提出要使用墨刀这个工具. 他的经验很好的帮助我完成了这个任务. 加上这个同学会仔细阅读作业的各项要求,整理分析,这一点恰恰是我做不到的,他的这种细心有利于我们更加完整的完成这个作业.