敏杰开题——软工团队项目选择与NABCD分析
这是一篇软件工程课程博客
Q | A |
---|---|
这个作业属于哪个课程 | 2020春季计算机学院软件工程(罗杰 任健) |
这个作业的要求在哪里 | 团队项目选择 |
我们在这个课程的目标是 | 团队协作实践敏捷开发 |
这个作业在哪个具体方面帮助我们实现目标 | 选定题目、梳理需求 |
本组为自选课题:知识路书(暂定名)
Need
很多人在泛读文献时常常会自行整理笔记或博客,将某个研究方向的发展过程或某个特定问题的解决过程作出一个概括性介绍。这个工作的极简形式是几行潦草的笔记,终极形式则是一篇文献综述。
比如这篇博客简短地总结了(那个年代)style transfer的发展过程,这篇文章则简单梳理了后rcnn时代目标检测的研究脉络
据我所知,几乎每一个研究人员都学习过如何写综述,因为它是了解某个领域研究实质、整顿思路而催化灵感的过程。因此即使作为综述的简化形式,这种总结式的文章依然能有效帮助我们找寻某个问题或某个问题的答案。
然而我们注意到如下事实:
- 以博客文章或笔记的形式对已有工作进行梳理,只能以顺序的方式介绍每一篇论文、每一个相关工作,因为“一条线”的书写顺序是符合人脑思维习惯的。但很不幸,研究发展的过程往往是树状的,常常有好的论文可以引出多条分支,因此这样线性地讲故事很难体现科研工作间的承接关系,很难直观展现“谁解决了谁”和“谁推翻了谁”
- 这样的文章更多是写给自己的笔记性质的学习材料,因此一篇中规中矩的小论文未免太耗时耗力了。
- 就呈现效果而言,夹杂学术概念的大量文字很难突出重点,经常变得晦涩难懂,不是知识记录与分享的最佳方式
于是我们的结论是:在这件重要的工作上,我们的思维过程缺少好的、快的呈现形式,难以直观、高效地表现知识脉络。这就是我们想要解决的问题。
实际上思维导图或许正是我们需要的东西——树状地具象化思维关系,画几个随性的圈圈就能非常直观地展现概念间的跳跃与顺承。可惜思维导图并不是专门为文献阅读所设计的,因此常见的思维导图工具(如XMind等)依然不能让我们高效地呈现自己的学术见解。它们大而全,但我们需要小而美。因此我们受思维导图启发,希望开发一款应用软件,能够快速导入并绘制出文献(或概念)间的层次关系,并让用户可以基于此在浏览器中高效完成自己的交互式笔记。
我们预期它可以像拉力赛时赋予驾驶员方向的road map一样,为广大科研者照亮路况,因此我们称其为知识路书。
具体来说,为了解决这个需求我们希望其具备如下功能:
- 简单的文献管理
- 用户可以本地上传文献.bib格式数据将文献导入
- 用户可以借助GUI工具手动整理文献间的引用关系
- 用户可以标注文献已读/未读
- 【extra】用户可以借助设备管理,将文献关联到本机路径并调用外部阅览器打开文献阅读
- 【extra】借助字段嗅探或学术搜索引擎,自动关联文献间的引用关系
- 单篇文献笔记
- 用户可以为每一篇文献作出笔记梳理
- 【extra】单个作者/团队标注
- 用户可以为关注的作者与团队建立标注,并关联其发表的工作
- 【extra】单篇知识随笔
- 用户可以编写题目自由的随笔
- 多篇文献路书(编辑模式)
- 用户可以将文献和知识随笔引入一篇路书,每篇文献、随笔分别对应一个独立节点
- 文献间可以根据引用关系自动在路书中绘制引用路线图
- 用户可以在文献和文献、文献和随笔间连接强、弱关系线路
- 多篇文献路书(阅览模式)
- 用户可以直观查看每个文献对应的文献笔记
- 用户可以生成阅览链接,将路书在站内分享
- 【extra】用户可以将路书以html或其他可交互文档的形式发布
其中标注【extra】的功能为我们认为对提升用户体验有帮助,但较难实现或实行性价比较低的功能,因此它们的实现优先级次于其他功能。
Approach
综合考虑跨平台能力、交互效果与开发难度,我们决定以web应用的形式展开这个项目。为了便于分工合作,我们自然地选择了前后端分离的技术路线。
前端:计划基于vue.js框架及相关组件库实现,UI组件库选用较成熟的View UI(原iView),其中较难实现的绘图部分我们已经检索到了如下开源实现或参考代码:
- vue-mindmap(vue组件库)
- https://github.com/Mindmapp/mindmapp(angular实现)
- https://github.com/mofas/mindMap(angular实现,基于D3js)
并准备在此基础上完成满足需求的二次开发
后端:计划基于django+rest-framework实现,借助这个框架我们可以快速搭建restful api,将开发重心移至前端
UI设计:原型阶段整体设计保留View UI提供的类antd风格,待核心功能完善后尝试配合功能效果定制扁平化或拟态化风格的界面
我们的目标用户,显然是和我们一样有文献阅读与梳理需求的科研工作者,尤其是需要频繁接触新领域的年轻科研人员,如硕士生、博士生。
在商业模式的选择上,由于这个项目是以解决我们自身需求为导向提出的,相比于盈利我们更看重其使用体验,并且由于目标受众群体较小也不足以支撑起足够鲁棒的盈利模式,因此我们考虑将其作为开源项目维护,希望依赖强大的开源社区将其打磨为一款出色的软件产品。
Benefit
用户可以借助我们的产品更好地进行知识梳理,优化、简化文献阅读流程,直观地记录与展示自己的阅读工作。
Competitors
思维导图竞品
XMIND :
- 深受欢迎的专业思维导图绘制工具,支持十分完善的绘制功能
- 优点:
- 多平台支持,有良好的移动端适配
- 功能强大,支持多种结点连接模式,支持多媒体内容插入
- 良好的自动排版算法
- 界面美观且提供多种设计模板
- 缺点:
- 很多功能需要付费且价格昂贵,不适于收入较少的学生群体
- 纯粹的知识导图编辑软件,没有文献管理等专为科研场景提供的功能
- 优点:
mindmeister:类似XMIND
文献管理竞品
mendeley:
- 轻量的文献管理工具,自带用户社区与文献推荐
- 优点:
- 配有用户社区,可以查看其他用户对某篇文献的评论与笔记
- 自带的PDF阅读器可以标记并高亮文献内容、记录贴士。所有编辑都可以同步记录至个人账户
- 每周会发送文献推荐邮件
- 缺点
- 只能以列表形式呈现所管理的文献,当管理的文献数目较多时难以快速找到某篇特定文献,同时也没有办法体现文献间的引用关系
- 优点:
电子笔记竞品
oneNote:
- Microsoft开发的数字笔记产品,也是很多人目前使用频率很高的论文笔记工具。
- 优点:
- 多平台适用;
- 支持手写和键入等多种方式;
- 为不同使用场景做了功能优化。如拍照时可以自动识别PPT区域并在拍照后自动将该区域拉伸形变至适合屏幕的形状
- 缺点:
- 无法类似展现文献知识脉络;
- 不支持Markdown或LaTeX笔记;
- 不支持插入编程语言。
- 定位:
- 面向一般用户的专业数字笔记工具
jupyter notebook:
- jupyter notebook是一个交互式笔记本,支持运行 40 多种编程语言。
- 优点:
- 支持Markdown笔记及多种后端编程语言(Python以外的后端需要插件或定制);
- 支持插入编程代码并运行;
- 支持安装插件进行功能扩展
- 缺点:
- 对于论文笔记而言,无法展现文献之间的知识脉络;
- 需要在本地运行,文件保存在本地;
- 定位:
- 面向开发者的代码演示与轻量IDE
notion:
- notion是一款结合文档、知识库以及任务管理功能的全能协作工具。
- 优点:
- 支持Markdown笔记;
- 有效支持团队协作:例如有看板任务管理、日历、OKRs、会议记录等功能;
- 缺点:
- 用户系统较简陋,每次登陆时都需要繁琐地邮箱验证,体验较差
- 无法展现文献之间的知识脉络;
- 主要为团队协作开发。对于科研论文整理而言,有很多不必要的功能(会稍显臃肿)。
- 定位:
- 内容驱动的个人工作流
其他相关产品
citespace:
- 可视化文献挖掘工具,通过查阅文献数据库自动分析、挖掘学术热点
- 优点:
- 支持多种聚类算法与聚类形式,用户可以灵活定制关注的学术方向
- 缺点:
- 较难理解使用,有一定的学习门槛
- 基于jdk6开发,目前缺少有力的维护,因此逐渐出现各种兼容性问题
- 优点:
Delivery
最终发布一个带有可部署服务程序的web应用,可以在部署配置后为用户提供个人文献梳理的相关功能。
我们准备参考Overleaf和Gitlab的发布形式:既提供官方站点,使个人用户可以开袋即食而免去部署的繁琐步骤,帮助迅速建立用户社区;也提供必要的部署工具,使潜在的团体用户(高校、企业等)可以自行部署并灵活定制
在推广方式的选择上,由于我们的目标用户群体在高校圈内富集,可以借助推广邮件、代理人推荐等方式定向投送。
电梯演说:
嗨,哥们儿,
你平时读论文的时候会划拉两笔吗?我们最近有个项目专门做文献脉络梳理和内容呈现,想象一下你能通过很简单的编辑就构建一个描述论文发展的树状图谱——对,类似你熟悉的思维导图,但它专门为文献阅读者的习惯做了细节优化,比如公式、代码和任何图片、音视频都可以以你熟悉的latex或markdown导入。下次组会试试看用我们的知识路书给老板做汇报,保证你成为全组最靓的仔。感兴趣的话上GitHub搜一下我们的开源项目:知识路书,欢迎使用,更期待你参与我们的项目!
用户量预估
ALPHA:预计用户量:50
BETA:预计用户量:300
RC:预计用户量:500
敏杰开题——软工团队项目选择与NABCD分析的更多相关文章
- [2019BUAA软工]团队项目选择
Team V1 项目分析 写在前面 项目 内容 这个作业属于哪个课程 BUAA2019软件工程 这个作业的要求在哪里 团队项目选择 参考链接 如何提出靠谱的项目建议 NABCD 我们在这个课程的目标是 ...
- “妈妈再也不用担心我忘交作业了!”——记2020BUAA软工团队项目选择
写在前面 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 团队项目选择 项目简介 项目名称:北航学生资源整合和作业提醒平台 项目内容: 设计实现一 ...
- BUAA2020软工团队beta得分总表
BUAA2020软工团队beta得分总表 [TOC] 零.团队博客目录及beta阶段各部分博客地址 团队博客 计划与设计博客 测试报告博客 发布声明博客 事后分析博客 敏 杰 开 发♂ https:/ ...
- 软工团队 - UML设计
软工团队 - UML设计 分工 对于分工我们没有不是按"自己负责部分的核心模块做练习"(每个人对每个图的某一模块来依次做完四个UML)的原因,是在于画这些图并不是都能彻底分成各个& ...
- 软工团队 - 预则立&&他山之石
软工团队 - 预则立&&他山之石 团队任务计划 时间 人员 任务 10.23-10.29 张昭锡 初拟Android代码规范 李永盛 初拟PHP代码规范 刘晨瑶 初拟Git代码规范 刘 ...
- 软工团队项目之团队展示&选题(OnTime——S.L.N)
软工团队项目之团队展示&选题(OnTime——S.L.N) 一.团队展示 队名:『S.L.N』即Seigelion——乃“攻城狮”之意. 队员学号: 团队项目描述:(项目名称:OnTime) ...
- 软工团队作业--Scrum冲刺集合贴
软工团队作业--Scrum冲刺集合贴 团队 团队名称:广东靓仔六强选手 团队成员: 黄清山 黄梓浩 钟俊豪 周立 邓富荣 郑焕 博客链接 Scrum 冲刺 第一篇 Scrum 冲刺 第二篇 Scrum ...
- [敏捷软工团队博客]Beta阶段项目展示
团队成员简介和个人博客地址 头像 姓名 博客园名称 自我介绍 PM 测试 前端 后端 dzx 秃头院的大闸蟹 大闸蟹是1706菜市场里无菜可卖的底层水货.大闸蟹喜欢音乐(但可惜不会),喜欢lol(可惜 ...
- [敏捷软工团队博客]The Agiles 团队介绍&团队采访
项目 内容 课程:北航-2020-春-敏捷软工 博客园班级博客 作业要求 团队作业-团队介绍和采访 团队名称来源 The Agile is The Agile. 敏捷就是敏捷.我们只是敏捷的践行者罢了 ...
随机推荐
- P1014_Cantor表 (JAVA语言)
题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/11/1 , 1/21/2 , 1/31/3 , 1/41/4, 1/51/ ...
- Day2:Windows常用快捷键与基本的Dos命令
Windows常用快捷键 必须掌握: Ctrl+C:复制 Ctrl+V:粘贴 Ctrl+Z:撤销 Ctrl+S:保存 Win键+R:运行(run) alt+F4:关闭窗口/页面 Ctrl+A:全选 C ...
- springboot集成swagger实战(基础版)
1. 前言说明 本文主要介绍springboot整合swagger的全过程,从开始的swagger到Knife4j的进阶之路:Knife4j是swagger-bootstarp-ui的升级版,包括一些 ...
- 003-Java中的变量和数据类型
@ 目录 一.变量 1.什么变量 2.变量的三要素 3.变量的命名规范 4.变量的分类 5.变量的作用域 6.变量的注意事项 二.数据类型 1.什么是数据类型 2.数据类型有什么用 3.数据类型的分类 ...
- SqlServer游标的创建与使用
前言 大家都对SqlServer视图.存储过程.触发器的创建与使用有一定的了解了,我们来看下什么是游标,怎么使用,什么时候用. SqlServer视图的创建与使用 SqlServer存储过程的创建与使 ...
- 201871010109-胡欢欢-实验一-软件工程的准备(初识github及《现代软件工程-构建之法》)
项目 内容 课程班级博客链接 2021年春软件工程课程班(2018级计算机科学与技术) 这个作业要求链接链接 实验一软件工程准备 我的课程学习目标 了解github的基本使用,学习markdown编辑 ...
- 华为联运游戏或应用审核驳回:HMS Core升级提示语言类型错误
问题描述 最近项目组应用集成华为的HMS Core SDK相关能力后,发布地区选择中国大陆,提交审核,华为审核驳回:在低于2.5.3版本的华为移动服务手机上启动时或调出支付时拉起升级提示为英文,正确的 ...
- ret2dl64
ret2dl64 ret2dl64 与ret2dl32不同,ret2dl64需要知道libc. 检查保护: IDA看一看 read_got 被置为0,强制你使用ret2dlresolve. 我们先伪造 ...
- SHA256sum系列命令检测文件完整性
1 sha256sum sha256sum是一个检测文件完整性的命令,一般下载的文件都会附带一个哈希值,使用sha256sum计算下载文件的哈希值再与目标哈希值比较即可确定文件是否完整,类似的命令还有 ...
- Spring Boot demo系列(十):Redis缓存
1 概述 本文演示了如何在Spring Boot中将Redis作为缓存使用,具体的内容包括: 环境搭建 项目搭建 测试 2 环境 Redis MySQL MyBatis Plus 3 Redis安装 ...