这个作业属于哪个课程 | 2021春软件工程实践|S班 |
---|---|
这个作业要求在哪里 | 软件评测 |
这个作业的目标 | 通过分析、评测一类软件产品,进行思辨、总结,学好软件工程,帮助我们在实践中做得更好 |
其他参考文献 | 知乎、《构建之法》、CSDN、简书、北航优秀作业 |
目录
-
第一部分 调研,评测
-
CODE.CHINA
-
体验
- 介绍和使用软件
- 优缺点分析
- 对产品有什么改进意见
-
BUG
- Bug严重性量化指标
- Bug 1 描述:在commit界面切换分支时,页面直接跳转404
- Bug 2 描述:最多star排序不起作用
-
结论
-
-
GitHub
-
-
BUG:图标加载失败
-
-
-
Gitee
-
- 【进阶】采访另一个用户
-
BUG:搜索结果不够精确
-
-
-
-
第二部分 分析
-
开发时间估计
-
同类产品对比排名
-
软件工程方面的建议
-
BUG存在的原因分析
-
-
第三部分 规划和建议
-
市场概况
-
市场现状
-
市场与产品生态
-
产品规划
-
第一部分 调研,评测
CODE.CHINA是CSDN推出的开源代码托管平台,具备 GitLab 最先进的技术,并充分考虑中国用户的使用习惯。
-
由于CODE.CHINA本身的功能是很丰富强大的,因此在此我只介绍其部分核心功能的使用。
我们可以在CODE.CHINA查看他人开源的项目,查看他人优秀的代码,并可以选择进行克隆到本地运行项目。
可以选择直接下载源码,也可以通过SSH、HTTPS进行代码克隆。CODE.CHINA的一个核心功能就行进行个人代码托管,这对程序员的开发是很友好的,可以通过代码托管来进行版本控制、团队合作,若本地代码因为某些原因消失了,就可以选择从远程在此克隆到本地,及时地进行代码的恢复,又或者在团队合作的代码不小心被他人覆盖了,可以选择版本回退,恢复到未被覆盖之前的样子。
首先是点击创建项目,进行个人项目的创建,可以选择创建空白项目、从模板创建项目、从外部导入项目(Github等平台)。
选择创建空白项目后,可以设置项目的名称,项目描述,并且可以把该项目设为私有或者是公开的。点击新建项目,项目就创建成功了。 可以在其Web IDE进行文件的编辑和提交。 然后就可以在项目的代码界面看到相应的文件了。 在实际开发时,可以选择创建新的分支,在分支上进行代码的开发,最后在一同合并到主分支master上。 在开发时,可以把项目具体化,分割成一个个小的任务,通过提issue的方式,指定相关开发人员进行开发,解决issue。 同时还可以查看代码的各个分支的提交信息,具体查看每次提交的确切提交时间,提交作者,具体修改了什么内容,便于进行代码的版本控制。 同时可以在项目设置里,邀请其他项目成员一同进行该项目的开发,通过团队合作开发、完成该项目。 还可以Fork他人的项目,在他人的项目的基础上且不影响原始项目的情况下,进行项目的开发。在开发结束之后,还可以选择发起pull request,将自己的分支请求合并到原来Fork的项目分支上。 优点:
基于GitLab开发,充分考虑中国用户的使用习惯
由CSDN团队开发,结合CSDN社区,对CSDN用户友好,CSDN用户可以快捷登录
对新手友好,网站有一系列Git、Markdown教程,易于新人上手使用
缺点:
平台推出不足一年,存在一定程度上的bug(详情可见下文提到的Bug)
平台活跃度不足,开源项目不够多,如在ERP主题下,居然没有一个开源项目,且目前开源项目中的多数项目是从其他托管平台上镜像的
第三方插件支持较少,在IDEA中找不到与CODE.CHINA相关的插件
中英文混杂,没有统一的标准,如下图
-
Bug等级 描述 1级 致命性bug,由正常操作造成系统崩溃、死机,导致系统重要数据泄露,数据库崩溃,数据丢失 2级 严重性bug,系统部分重要功能没有实现或不起作用,用户重要数据没有加密传输 3级 一般性bug,次要功能没有实现或实现不完全,数据查询时间过长,查询结果不正确,或数据显示不正常 4级 小bug,不影响功能的使用,页面文字错误,页面排版不够合理,影响用户体验 -
Bug发生时的测试环境
操作系统:Windows 10 家庭中文版
浏览器环境:Google Chrome 版本 90.0.4430.72(正式版本) (64 位)
发生时间段:正常使用网站时
前因后果:在项目提交界面想切换分支,查看其他分支的提交,结果页面跳转404界面
-
Bug的可复现性及具体复现步骤
可复现性:必然发生
复现步骤:
- 选择一个项目,如 sonic-pi,点击提交进入查看代码提交界面。
- 选择其他分支,并点击切换,页面直接跳转404。
-
Bug具体情况描述
经过上述步骤后,页面跳转404。然后在代码界面选择dev分支后,进入查看提交界面是正常访问的,同样,此时选择切换分支后,页面跳转404。具体如下图: -
Bug分析
-
Bug可能的成因:跳转的url不存在,直接访问就报错了,应选择向后端发起请求得到界面。
404的url:https://codechina.csdn.net/mirrors/sonic-pi-net/sonic-pi/-/commits/dev/spm=1033.2243.3001.5873
正确访问的url:https://codechina.csdn.net/mirrors/sonic-pi-net/sonic-pi/-/commits/dev?spm=1033.2243.3001.5873
二者相差在一个是"/spm",一个是"?spm","?spm"应该是访问后端的写法。
- Bug的严重性:2级
- 系统功能:重要功能不起作用
- 安全性:重要数据没有泄露
- 用户体验:差劲,无法在查看提交界面切换分支,查看其他分支提交界面需要返回主界面切换分支
- 对于Bug的预期及改进建议
- 预期:能够正常切换分支跳转各分支的查看提交界面
- 改进建议:访问的url改为向后端发起Get请求得到的界面
-
-
【进阶】Bug 反馈
该Bug已反馈至CODE.CHINA官方Issue区,反馈issue为issues297
截止博客发布日期前,已得到官方开发者的回复,且被官方开发者标记为bug。目前,Bug已被修复。
-
-
- 点击项目,选择浏览项目,点击最多Star。
-
-
- 可能的原因:根据Star进行排序的函数不起作用
- Bug的严重性:3级
- 系统功能:次要功能实现不完全,数据显示结果不正确
- 用户体验:一般,无法查看项目的Star排名
-
- 预期:可以显示正确的项目的Star排名
- 改进建议:检查相关排序函数是否起作用,是否是根据Star数进行排序
-
该Bug已反馈至CODE.CHINA官方Issue区,反馈issue为issues300
截止博客发布日期前,已得到官方开发者的回复
-
-
GitHub是全球最大,最先进的开发平台,数以百万计的开发人员和公司在GitHub上构建,发行和维护他们的软件。
-
全球最大的代码托管平台,功能完善,bug较少
代码仓库数量多,质量高
用户活跃度高,很多大公司在平台上开源自己的一些项目代码
有配套的桌面应用,IDEA、Vscode等编译器支持Github
平台为全英文,一开始使用时对非英文母语用户不友好。
平台服务器部署在国外,国内用户时常因为网络问题无法登上该平台
建议GitHub能够考虑中国用户习惯,支持切换中文,进行一定的本土化。
将服务器放置在离中国开发者更近的地方,以提高中国用户访问GitHub的响应速度。
-
BUG :图标加载失败
-
-
-
-
- Bug可能的成因:无法访问图标所在的url。
- Bug的严重性:4级
- 系统功能:系统功能正常可用
- 用户体验:一般,无法查看topic图标,页面有点不美观
-
- 预期:能够正常显示topic图标
- 改进建议:将图标地址替换为可以正常访问的url
-
-
好,不错。
评分:85(满分100)。打这个分数是因为GitHub本身很完善,有许多丰富、优质的内容,扣的分是因为不支持切换中文,对新手不友好。且因为网络问题导致的用户体验不好,我时常在pull或push代码时遇到"time out"的报错,访问平台有时加载许久都加载不出来,用户体验很差。
Gitee 是开源中国推出的基于Git的代码托管服务。目前已经有注册开发者 600 万,托管超过 1500 万代码仓库。
-
平台完善,仓库数量、质量较高
充分考虑国内用户使用习惯
有许多学习教程,对新手友好
有高校版,针对高校学生的使用进行优化缺点:
上传文件有较大的限制,一个小时内只能上传20个文件
开源项目的数量、质量仍然不够
采访对象为2018级数计学院在校生,目前就读于软件工程专业,需求是进行个人代码的托管,代码存储备份至云端。
以下是采访截图:
-
-
-
可复现性:特定条件下发生
特定条件:搜索框输入Java
搜索框输入java,点击搜索,查看搜索结果
-
- 经过复现步骤,结果呈现为JavaScript相关的内容
-
- Bug可能的成因:搜索算法不够精确。
-
- 用户体验:差劲,无法查看搜索Java的相关结果,需要点击旁边的编程语言选项对搜索结果进行限制
-
- 预期:能够正常显示Java搜索结果
- 改进建议:改进搜索匹配算法
-
-
非常推荐。
评分:90(满分100),Gitee是国内相对比较成熟的代码托管平台,由于其的成熟度,以及平台访问速度,针对高校学生的优化,我给出了90的高分,扣分是因为其开源仓库的数量和质量仍然不足。
第二部分 分析
-
-
-
-
-
-
-
-
Bug1:测试把关不严,没有注意到相关方面的测试,所以导致查看提交界面切换分支时跳转404
Bug2:对用户需求掌握不好
-
-
-
第三部分 建议和规划
-
-
市场有多大
全球开源热度持续攀升,热门领域开源项目涌现,越来越多组织、公司加入开源的队伍,而代码托管平台正是开源项目进行托管的好地方。可以说,从事软件相关行业的都是代码托管平台的直接用户或者是潜在用户。软件开发者热衷于在平台上开源自己的项目,同时也热衷于学习、使用他人的开源项目。
比如GitHub,目前有超过65000000的开发者在平台分享自己的代码,超过3000000的组织入驻,平台上有超过200000000的代码仓库,这是一个非常庞大的数目,且这个数目每年以惊人的速度在增长着。
同时,市场是面向全球的,全球的开发者在平台上开源自己的项目,可见市场的庞大。 -
直接用户
埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640 万,到 2023 年达到 2770 万。这些软件开发人员就是代码托管平台的直接用户。 -
潜在用户
即将从事软件开发、或者准备学习软件开发的人员都是平台的潜在用户。
-
-
-
目前市场上的产品
- 全球最流行的代码托管平台:GitHub
- 开源中国旗下的代码托管平台:Gitee(码云)
- 基于git的仓库管理程序:GitLab
- CSDN旗下的代码托管平台:CODE.CHINA
-
上述产品的定位、优势、劣势
产品 定位 优势 劣势 面向全球开发者 社区资源庞大,有数量巨多的优质开源项目 访问服务器响应速度较慢 Gitee(码云) 主要面向国内开发者 有许多开源项目,有企业版、高校版 开源项目的数量、质量还不足 GitLab 主要面向企业等专业人员 可自建代码托管平台 目前面向国内开发者 充分考虑国内用户习惯 平台还不够成熟 -
上述产品间的关系
其中Github、Gitee、CODE.CHINA在个人用户方面上互为竞品,竞争力:Github > Gitee >> CODE.CHINA
Gitee企业版、GitLab在面向企业方面互为竞品,竞争力:GitLab > Gitee企业版
-
-
-
产品的核心用户群
软件开发人员 -
典型用户
用户 学历 年龄 专业 爱好 职业 收入 表面需求 潜在需求 张三 本科在读 21 软件工程 跑步 学生 暂无 需要一个用于软件工程代码提交的产品 需要一个容易上手的个人代码托管平台 李四 本科毕业 26 计算机科学 听音乐 公司软件开发小组组员 1w+/月 需要能够查看前沿技术地平台 该平台资源整个庞大,有相关前沿技术的开源项目 王五 硕士毕业 30 电子信息 阅读 软件开发小组长 2w+/月 需要一个用于项目开发的代码托管平台 该平台能高效地进行软件开发,能够管理团队进行开发 -
产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性?
用户二、用户三是从用户一所处阶段成长而来的,用户三是从用户二所处阶段成长而来的。
有如Gitee有面向大众的、面向高校、面向企业的不同版本,涵盖了三个用户的所需。
-
产品的子产品,以及其他相关产品之间是否存在一定的关系?是否有利用各个产品特性之间的相互关系二次构成产品生态的可能性
Gitee、Github、CODE.CHINA,在个人代码托管方面互相竞争,Gitee高校版能够吸引用户使用个人版,之后还能吸引用户使用企业版,构成了一个良好的生态。
-
-
-
新功能
- 新增私聊功能
- 需求:有时想联系开源项目的开发者,发现只能在项目项目下留言或者发邮件,效率低
- 用户使用理由:有时有些项目开发者没有留下自己的邮箱,无法联系到,且有些私密的话语需要同开发者交流,在项目下评论留言会被其他人看见,所以需要私信开发者
- 创新的地方:目前的代码托管平台都没有集成私聊的功能
-
角色配置
- 美工:1人
- 前端开发:2人
- 后端开发:2人
- 测试人员:1人
-
16个周期每周的详细规划
周数 规划 1 需求分析,进行原型设计 2 确定使用的开发工具、技术 3 前、后端学习开发工具的使用,产品经理学习项目管理工具使用 4 前、后端学习相关技术,测试人员学习相关测试工具、技术 5 进行系统设计 6 进行数据库设计 7 前端:私聊界面的搭建,后端:开发框架搭建 8 前端:消息提示的搭建,后端:实现发送、接收消息功能 9 前端:拉黑、举报组件搭建,后端:拉黑、举报功能实现 10 前后端接口对接,调试 11 经测试后发布Alpha版本,进行Alpha测试 12 前端:美观界面,后端:实现允许高并发 13 经测试后发布Beta版本,进行Beta测试 14 使用postman模拟进行压力测试 15 功能整合到原平台上 16 经测试后上线正式版本
-