课程: 软件工程1916|W(福州大学)
作业要求: 结对第一次—原型设计(文献摘要热词统计)
结对成员:131601207 陈序展、221600440 郑晓彪
本次作业目标:阅读《构建之法》,针对小樱了解顶会论文研究热点的需求以结对的形式进行软件的需求分析以及原型设计,初步体验两人合作的需求分析和原型设计过程
原型设计:顶会热词统计系统
附件:结对第一次—原型设计(文献摘要热词统计).PDF
基于NABCD模型的需求分析
1. N(Need,需求)
碍于时间紧促,原型制作工具使用笨拙,在基本分析设计了基本需求的界面和功能的基础上,一些附加需求的分析和设计都有待完善
基本需求:
小樱是一名大三的学生,一直痴迷于吃鸡类游戏,某日听闻同宿舍的小狼刚和导师去参加了CVPR会议,内心羡慕不已,便下定决心痛改前非、努力钻研,希望能在毕业前完成一篇站在时代前沿的优秀论文。但令人苦恼的是,他不知道近几年顶会的热门领域和研究方向,根据论文list去一篇一篇查找总结效率又着实太低,于是求助于“软工实践互助爱心组织”,希望我们能帮助他设计一个平台解决现阶段的需求。希望此平台至少具备以下功能:
- 用户可给定论文列表
- 通过论文列表,爬取论文的题目、摘要、关键词、原文链接;
- 可对论文列表进行增删改操作(今年、近两年、近三年);
- 对爬取的信息进行结构化处理,分析top10个热门领域或热门研究方向;
- 可对论文属性(oral、spotlight、poster)进行筛选及分析;
- 形成如关键词图谱之类直观的查看方式;
- 可进行论文检索,当用户输入论文编号、题目、关键词等基本信息,分析返回相关的paper、source code、homepage等信息;
- 可对多年间、不同顶会的热词呈现热度走势对比(这里将范畴限定在计算机视觉的三大顶会CVPR、ICCV、ECCV内)。
- 可进行数据统计,例如每个国家录用文章的分析、每个学校录用文章的分析、哪个学校哪方面的研究方向比较强等。
附加需求:
- 增加了用户登录、注册的功能,网站需要有私人操作
- 可在线导出参考文献格式
- 用户可收藏及分享感兴趣的论文
- 用户可以对相关作者进行关注,以便了解到该作者的最新成果
2. A(Approach,做法)
做了需求分析后,我们绘制了思维导图,将需求对应的功能放置到了不同的页面中去
- 登录页/注册页
- 提供用户登录注册功能
- 三大顶会介绍轮播
- 检索主页
- 简单检索:根据用户输入检索顶会论文
- 高级检索:支持用户的多输入检索
- 批量检索:支持用户批量论文统计分析
- 三大顶会logo、简介
- 检索结果页
- 论文信息列表:呈现检索的论文列表结果,有摘要、排序两种查看方式,可排序
- 顶会热词分析:点击进入顶会热词分析页,可根据选择会议范围、年份范围呈现对应的热度走势折线图
- 左侧数据统计栏:分为国家、学校,对录用的文章数量进行统计,其中学校下又分具体研究方向,对学校研究方向进行统计
- 论文详情页
- 显示较详细的论文信息
- 提供pdf下载
- 批量搜索页
- 论文列表的输入、导入、导出
- 爬取论文信息:对输入或导入的论文列表爬取其中的标题,关键词,摘要,原文地址
- 论文信息处理:
- 对爬取结果可筛选oral、spotlight、poster三种属性
- 可筛选“近一年”、“近两年”、“近三年”三种年限的论文
- 点击“TOP10”按钮进入论文列表内容热词的分析页面,分别以图谱、柱状图、折线图、扇形图的形式呈现
3. B(Benefit,好处)
- 基于web端实现,具有跨平台的特性,一次开发即可满足多端,开发成本低,可以即时更新,保证所有用户访问的版本一致,且用户使用成本低
- 对于论文数据的分析提供了诸如关键词图谱、柱状图、折线图等直观的表现形式,便于用户查看
- 可以批量导入论文,方便用户一次进行多篇论文的检索,同时增加了对于论文列表的动态增删改处理以及根据年份的筛选功能
- 因为我们目前的搜索只针对计算机视觉领域的三大顶会CVPR、ICCV、ECCV,所以搜索结果更具有精确性
4. C(Competitors,竞争)
学术搜索是一个十分具有发展前景的领域,在学术搜索方面,目前市面上有中国知网,百度学术,万方智搜等一些学术搜索平台,相比于这些学术搜索平台,我们的平台所具有的优势和劣势如下:
-
优势
1、目前的学术搜索平台并不支持批量检索的功能,而我们的平台支持批量检索的功能,便于用户一次进行多篇论文的检索,提高了用户的检索效率
2、目前只针对于计算机视觉领域的三大顶会CVPR、ICCV、ECCV,所以搜索结果更具有专业性、精确匹配性
3、界面更加美观,易于用户使用操作
4、对于检索结果,提供了诸如关键词图谱、柱状分析图、折线分析图、饼状分析图等直观的表现形式,利于用户使用
5、顶会热词提供了顶会近年来TOP10热词,便于用户了解当前的学术趋势 -
劣势
1、相比于其他学术搜索平台,我们的数据库较小,检索内容有限
2、UI界面人机交互性不足,缺乏美感
3、功能分配尚需改进
5. D(Delivery,推广)
- 线上推广
- 通过付费的搜索引擎推广网站
- 联系一些网站管理人员添加网站友情链接
- 通过贴吧,微信朋友圈,微博,QQ等获取关注...
- 线下推广
- 在校园周边进行推广
原型设计
原型设计工具:墨刀
登录注册页:
主页:
检索结果页:
点击“顶会热词”查看顶会热词统计分析
批量搜索页:
点击“TOP10”进入批量论文分析
结对过程
结对照片
遇到的困难及解决方法
困难描述
1、在一开始对于需求有些地方不理解,如对论文列表进行增删改操作后面有个备注今年、近两年、近三年是什么意思
2、我们对需求在原型设计中的权重安排,对功能在界面上的安排一直难以取舍
3、由于我们都是第一次接触原型设计这个概念,也是第一次使用原型设计工具——墨刀,因此一开始对于墨刀的使用有些不熟悉
解决尝试
1、通过讨论,认为今年、近两年、近三年这三个条件可以作为筛选项,对论文爬取结果列表进行筛选
2、商量重要需求和一般需求,对重要需求,其功能在原型设计时可能要另外加页面,而一些一般需求只需要有所表示即可。如本次原型设计中的热词分析部分和论文批量处理部分,我们都安排了另外的页面;而对国家、学校以及学校研究方向的统计分析,我们缩放到检索结果页中的一个侧边栏,让用户能在搜索时看到数据就好了
3、通过查看教程,实际使用,不断提高使用墨刀进行原型设计的能力
是否解决
1、已解决
2、已解决
3、已解决
有何收获
通过阅读《构建之法》一书和这次实际结对完成作业,对于结对编程的概念有所理解,并通过实践加深了理解,也对原型设计的理念有所了解。同时掌握原型设计工具——墨刀的基本使用方法。
- 131601207 陈序展
我是在软件工程的第一节课上第一次听到结对编程这个“新名词”的,第一时间我就通过百度搜索,了解了结对编程的基本概念,很快地就找定了自己的队友,后来通过阅读《构建之法》4.5节的内容,对于结对编程的定义有了进一步的理解。在这次的原型设计的过程中,因为总体设计的时间比较长,所以我与队友之间“领航员”与“驾驶员”的角色时常互换,在实际的设计过程中,我深刻的体会了这种合作方式的好处,在我进行具体设计的时候,队友总可以提出一些我想不到的好点子优化我的设计,而在队友进行设计的时候,我也可以提出一些新的想法,不断地优化我们的设计。当然我们在实际的设计过程中也发现了一些问题,比如一开始我们可能对一些具体功能只有一些基本的设想,并没有制定好详细的设计方案,导致在设计的过程中,我们的设计一改再改,浪费了许多时间,这是我们需要总结并改进的方面。总体来说,我们的结对过程还是比较良好的,我们都很积极主动的参与任务,并没有产生大的分歧,互相都可以积极的听取对方的建议。当然,除了收获了对于结对编程的实际体验,加深了对于结对编程的理解,我也在实际设计的过程中,掌握了原型设计工具——墨刀的基本使用方法。
- 221600440 郑晓彪
通过本次对“小樱”需求的分析以及文献摘要热词统计原型设计的实践,我体会了两人合作,虽然时间只有短短五天,但是每天想着小樱的需求,想着原型怎么分配功能,怎么做的好看、合理,两个人提出了很多想法也参考了别人的做法。这么多想法的碰撞很难不和队友产生矛盾,很幸运,和结对伙伴的结对过程还算顺利。就如书中提到的结对过程是一个互相督促的过程,驾驶员和领航员的角色是要时常互换的。因为我们都很难一眼看透用户需求,很难一下想到大部分功能,而且长时间紧张工作会使我们的观察力和判断力下降,所以整个过程,我和队友都是相互分享,有不同的想法就多思考,多参考,相互帮助,最后商量出统一的方法来,我想这在之后团队更多人的合作里是更为重要的。不过虽然过程比较顺利,但是我也发现了在这过程中自己的问题:
1、在看到需求的时候对功能设计的思维不够发散,可能是眼界和设计实践的局限所致
2、参考越多自己越不知道做什么,这也想加,那也想改的,很头疼
所以,我也很感谢队友,在结对过程中能提出我的问题,提出他的想法。
效能分析和PSP
效能分析:
根据《构建之法》2.2节的内容,效能分析是对于程序代码的分析,由于我们的平台目前还停留于原型设计阶段,并没有进行效能分析
PSP:
PSP是卡耐基梅隆大学(CMU)的专家们针对软件工程师所提出的一套模型:Personal Software Process (PSP, 个人开发流程,或称个体软件过程)
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
• Estimate | • 估计这个任务需要多少时间 | 20 | 20 |
Development | 开发 | ||
• Analysis | • 需求分析 (包括学习新技术) | 120 | 180 |
• Design Spec | • 生成设计文档 | 60 | 80 |
• Design Review | • 设计复审 | 30 | 30 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
• Design | • 具体设计 | 450 | 540 |
• Coding | • 具体编码 | 0 | 0 |
• Code Review | • 代码复审 | 0 | 0 |
• Test | • 测试(自我测试,修改代码,提交修改) | 30 | 20 |
Reporting | 报告 | ||
• Test Report | • 测试报告 | 20 | 10 |
• Size Measurement | • 计算工作量 | 20 | 20 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 30 |
合计 | 850 | 930 |