一、前言
- 课程名称:软件工程实践
- 作业要求:结对第一次—原型设计
- 结对学号:221600424 221600427
- 本次作业目标:学会使用NABCD模型了解客户需求,设计原型模型,提供大概的解决方案规划。
- PDF链接:PDF下载
二、需求分析(采用NABCD模型)
1.Need--需求
-
用户遇到的问题
1.总结论文研究方向的效率太低——需要一篇篇的打开论文观看,总结研究方向。
2.统计出一系列论文的研究领域的热门方向的工作量巨大——每查看一篇论文就得记下这篇论文的摘要,最后得做一系列论文的统计。
3.统计的数据分析比较复杂——如果能通过图表展示将更直观。 -
用户的需求
需要一个软件,能够帮助用户实现以下功能:
- 用户可给定论文列表,通过论文列表,爬取论文的题目、摘要、关键词、原文链接,可对论文列表进行增删改操作(今年、近两年、近三年);
- 对爬取的信息进行结构化处理,分析top10个热门领域或热门研究方向;可对论文属性(oral、spotlight、poster)进行筛选及分析;形成如关键词图谱之类直观的查看方式;
- 可进行论文检索,当用户输入论文编号、题目、关键词等基本信息,分析返回相关的paper、source code、homepage等信息;
- 可对多年间、不同顶会的热词呈现热度走势对比;
- 可进行数据统计,例如每个国家录用文章的分析、每个学校录用文章的分析、哪个学校哪方面的研究方向比较强等;
-
明确需求
-
用户如何给定论文列表?
用户给定的论文列表形式如下: -
可对已给定的论文列表进行哪些操作?
- 进行增、删、改
- 可进行筛选(通过年份)
- 可进行检索,返回相关paper、source code、homepage
-
需要统计分析论文列表的哪些信息?
- 获取论文的题目、摘要、关键词、原文链接
- 对论文属性分类分析,形成关键词图谱
- 分析top10个热门领域或热门研究方向
- 分析对比热词热度走势
- 根据国家或学校统计文章数和研究方向
-
论文范围
- 论文的会议范围为国际计算机视觉与模式识别会议(CVPR)、国际计算机视觉大会(ICCV)和欧洲计算机视觉国际会议(ECCV)
-
2.Approach--方案
- 设计一个基于Web平台的应用
- 用户如何输入论文列表?
- 可直接采用文本框输入,也可以通过导入文件(如txt、xls)形式
- 用户如何对已输入的论文列表进行操作?
- 设计网页上的一些交互按钮(增删改按钮),和一个下拉框(选择年份),一个搜索栏(单行文本框形式)搜索论文返回相关信息(表格)
- 如何展示统计分析的论文信息?
- 使用网络爬虫对每篇论文到相应网站上爬取,获取论文的题目、摘要、关键词、原文链接,结构化展示。
- 对关键词的热度进行排序,形成关键词图谱,并选取出top10的热门研究领域。
- 使用excel制作折线图展示逐年热词热度走势。
- 选择国家或学校(下拉框),展示相应的文章数和研究方向。
3.Benefit--好处
- 界面简洁,无需教程指导,即开即用。
- 功能完备,可满足用户的多种需求。
- 采用web端:具有轻便性,用户使用浏览器即可访问使用,而无需下载安装特定的APP。
4.Competitors--竞争
-
优势:
- 跨平台性,满足不同平台使用。
- 操作简易,功能完备。
-
劣势:
- 用户给定需求比较模糊。
- 论文数据获取困难。
- 开发人员水平有限。
5.Delivery--推广
- 可与校内的福大易班、教务通等教育平台合作,对在校的师生进行推广。
- 可通过一些微信公众号,以写文章介绍的形式进行推广。
- 可在一些学校的官方群进行分享推广。
三、原型设计
四、效能分析
PSP
PSP是卡耐基梅隆大学(CMU)的专家们针对软件工程师所提出的一套模型:Personal Software Process (PSP, 个人开发流程,或称个体软件过程)。
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 15 | 15 |
• Estimate | • 估计这个任务需要多少时间 | 570 | 590 |
Development | 开发 | 无 | 无 |
• Analysis | • 需求分析 (包括学习新技术) | 150 | 150 |
• Design Spec | • 生成设计文档 | 60 | 40 |
• Design Review | • 设计复审 | 30 | 40 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 无 | 无 |
• Design | • 具体设计 | 120 | 150 |
• Coding | • 具体编码 | 无 | 无 |
• Code Review | • 代码复审 | 无 | 无 |
• Test | • 测试(自我测试,修改代码,提交修改) | 无 | 无 |
Reporting | 报告 | 无 | 无 |
• Test Repor | • 测试报告 | 无 | 无 |
• Size Measurement | • 计算工作量 | 20 | 30 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 45 |
合计 | 425 | 470 |
五、结对总结
结对过程
同宿舍,一拍即合。
结对照片
遇到的困难
- 第一次做这样有工程性的项目,以往都是直接写代码,想到哪写到哪。
- 第一次做原型设计,对原型设计工具的使用不太熟悉,而且不太清楚要如何明确的展示出应用的功能。
解决办法
- 阅读了《构建之法》的第三、第八章,了解了NABCD模型,这有助于项目中的需求分析。但因为是第一次做具体的需求分析,可能做的还不够完善,我想这需要经验的累积才能克服。
- 通过观看墨刀的使用教程逐渐初步掌握了墨刀的使用,但功能只展示出最终大概的呈现效果。