1、阅读《构建之法》第3章和第8章的内容,并在下方做业里体现出阅读后的成果。特别是第8章中的NABCD模型。
2、结对合做,阅读下方的客户描述的现实困扰,以共同发布一份博客随笔的形式,设计一套方案,向客户推销。描述大体方案,以向客户证实你正确理解了客户的需求、提供给客户可行的优化的使用建议,给出原型模型,并提供大概的解决方案预期规划。
3、最终客户将以评论的方式给出接纳与否或修改完善的建议。html
小樱是一名大三的学生,一直痴迷于吃鸡类游戏,某日听闻同宿舍的小狼刚和导师去参加了CVPR会议,心里羡慕不已,便下定决心痛改前非、努力钻研,但愿能在毕业前完成一篇站在时代前沿的优秀论文。但使人苦恼的是,他不知道近几年顶会的热门领域和研究方向,根据论文list去一篇一篇查找总结效率又着实过低,因而求助于“软工实践互助爱心组织”,但愿咱们能帮助他设计一个平台解决现阶段的需求。但愿此平台至少具有如下功能:python
顶会背景:mysql
特别说明:以上是本次做业的基础要求,但愿同窗们能够在知足总的设计思路和用户需求不变的前提下,尽可能发挥本身的想象能力,帮小樱设计出一个比较满意的平台。android
用户的需求点ios
核心需求:
(1)目前基本只有国外网站能够获取顶会论文,用户但愿能够拥有一个中文平台,解决阅读障碍;(ICCV: http://www.informatik.uni-trier.de/~ley/db/conf/iccv/index.html)
(2)用户但愿该平台不管是在手机端或者电脑端,均可以较方便的使用;
(3)能够进行论文检索,而且增长更多人性化的搜索方式,例如按年份或者按主题搜索以及组合搜索(如:年份+顶会名称+论文主题);
(4)用户给定论文列表,软件自动爬取论文的题目、摘要、关键词、原文连接;
(5)用户能够对论文列表进行增删改查等操做;
(6)经过论文属性(oral、spotlight、poster)进行筛选及热点分析,造成关键词图谱;
(7)可对多年间、不一样顶会的热词呈现热度走势对比;
(8)可进行数据统计,例如每一个国家录用文章的分析、每一个学校录用文章的分析、哪一个学校哪方面的研究方向比较强等;sql
扩展需求:
(9)在顶会期间,实时推送会议的热点新闻;
(10)用户但愿能够拥有帐号功能,在登陆帐号的前提下,能够享受对已下载的论文进行云备份,查看本身的浏览记录,收藏喜欢的论文,关注其余感兴趣的用户等实用操做;
(11)用户但愿平台能够提供与某论文的其余读者进行交流的功能,以及信息交流,资源共享;数据库
针对需求(1)与需求(2):
经过使用最新的uni-app技术,轻松实现编写一套代码,可编译到iOS、Android、H五、小程序等多个平台。小程序
针对需求(3),需求(4),需求(5)与需求(9):
针对付费论文,咱们尊重做者的版权,仅提供论文连接与查看论文的属性,不支持下载功能;针对免费的论文,咱们在提供原文连接外,经过使用python爬虫框架scapy和代理IP池,用户将论文列表按照规定的格式列好并存储成文件上传至平台,咱们对用户所需的论文主流论文网站进行了爬取,爬取成功的论文信息和连接集中保存在数据库中。并在后端实现对论文列表的增删改查功能,支持批量处理,多种查找方式更好保证用户准确查找到须要的论文,避免对搜索结果进行额外的筛选。爬取会天天在已设置好的时刻自动开始,保证用户不错过每一条新的热点资讯。后端
针对需求(6),需求(7)与需求(8):
爬虫得到的数据存储在mysql数据库后,搭建hadoop与spark这两个数据处理平台,使用sqoop等工具将sql数据库中的数据转入HBase,再经过使用主流的英语分词器爬到的数据进行分词和过滤常见的无用的词以及符号,对分好的词使用LDA模型进行文档主题的生成,以后使用SparkStreaming进行主题词频统计,最后可使用matplotlib+python画出可视化交互式图表展现信息。微信
针对需求(10)与需求(11):
后端使用数据库技术以用户帐号为主键存储用户信息,同时使用云技术实现同步功能。为论文开设一个评论或者笔记功能,方便论文读者的交流。也能够开发一个相似社区的板块,用于用户进行信息交流,资源共享。
(1)用户没必要经过一个个网站去翻论文,咱们的应用自动把全部的论文进行了集中爬取,用户能够直接检索;
(2)用户没必要担忧难以把握热点,经过天然语言分析和大数据技术处理,咱们把每一年的热点都进行了概括和整理,同时提供了走势图和关键词图谱;
(3)用户没必要担忧阅读英文论文会有困难,咱们集成了英文翻译功能,提供中英对照,逐句翻译以及单词查询;
(4)经过使用uni-app技术,能够实现iOS、Android、H五、小程序等多个平台流畅使用,同时更新和维护都会更快更同步;
(5)云存储功能,收藏夹功能方便了用户在不一样机器上的使用体验,评论与社区功能也能够为用户提升额外的交流方式;
考虑到咱们的产品主要面向的是研究计算机前沿技术的部分人群,所以在宣传上咱们但愿减小没必要要的宣传,尽量将产品精准的推广到目标用户群。
(1)前期先在班级内试用,根据同窗的反馈完善产品的不足,经过参与比赛,提升产品的知名度。
(2)在产品质量较稳定后,能够经过同窗们口头推荐,数计学院QQ群,学院媒体的微信公众号,在数计学子活动较频繁的地区进行海报宣传,将用户扩大至整个学院。
(3)根据更多用户的反馈,不断完善优化本身的产品后,最后能够经过与相邻高校合做,将产品推广到校外,同时借助网络渠道,在全国各大高校板块以及计算机讨论板块宣传本身的产品,欢迎你们的使用与建议。
困难:
一、 因为使用墨刀的次数很少,致使上手时操做不熟练,像是没找到怎么修改圆角,下降了效率。还有发现状态栏和图片之间老是有一条白线影响观感,可是没找到解决方法。
二、 在讨论NABCD模型的时候,耗费了较多的时间在上面,这主要是以往较少从用户角度进行基于NABCD的模型的分析。
三、 时间上的紧张,在有限的时间内出了完成这项做业外,还要复习考研,私事。所以想要较好的完成做业难度较大。
解决
一、 经过两人的不段摸索,在完成任务的同时也慢慢的熟悉了墨刀的基本操做。
二、 尽管以往经验较少,可是在和队友的讨论当中仍是迸发出了许多有趣的点子。
三、 时间老是有限的,能作的就是尽量充分利用时间。队友间的相互理解与承担也让这项做业有条不紊的进行着。
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 20 |
• Estimate | • 估计这个任务须要多少时间 | 30 | 20 |
Development | 开发 | 300 | 370 |
• Analysis | • 需求分析 (包括学习新技术) | 90 | 90 |
• Design Spec | • 生成设计文档 | 60 | 30 |
• Design Review | • 设计复审 | 30 | 10 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 0 | 0 |
• Design | • 具体设计 | 120 | 240 |
• Coding | • 具体编码 | 0 | 0 |
• Code Review | • 代码复审 | 0 | 0 |
• Test | • 测试(自我测试,修改代码,提交修改) | 0 | 0 |
Reporting | 报告 | 50 | 40 |
• Test Repor | • 测试报告 | 0 | 0 |
• Size Measurement | • 计算工做量 | 20 | 10 |
• Postmortem & Process Improvement Plan |
• 过后总结, 并提出过程改进计划 | 30 | 30 |
All | 合计 | 380 | 430 |
关于此次做业,结对两人受益颇多:
(1)清晰地认识到,在开发过程当中,代码毫不是最重要的一个环节。开发过程前期的NABCD需求分析也是及其重要的。全面的分析可让后面的设计更有目的性和效率。
(2)大三后各类事情让时间变得紧张起来,但正是在这种环境锻炼;了咱们的适应能力,去努力利用时间,合理分配精力在不一样的事情上。
(3)一个团队里,优秀的队友是极其重要的。不只仅是在能力上能够解决开发中遇到的难题,更多的是在搭档的过程当中,互相激励对方,一块儿完成任务。