这个作业属于哪个课程 | 2023年福大-软件工程实践-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践——软件评测作业 |
这个作业的目标 | 完成软件调研评测、软件分析、针对软件提出建议和规划 |
其他参考文献 | 邹欣老师发布的软件工程-案例分析作业 |
- Bug量化指标
严重性 | 说明 |
---|---|
★★★★★ | 致命性系统故障、致命性安全性漏洞、用户体验严重影响 |
★★★★ | 严重系统故障、服务器鉴权漏洞或重要数据泄露、用户体验差 |
★★★ | 中度系统故障、中度安全性漏洞、用户体验较差 |
★★ | 轻微系统故障、轻微安全性漏洞、用户体验影响较小 |
★ | 一般系统故障,基本无安全漏洞,对用户基本无影响 |
- 测试环境
浏览器:Microsoft Edge
操作系统:Windows 10
文章目录
第一部分 调研,评测
1. InsCode
1.1 使用体验
InsCode是一个无需安装的编程、协作和分享社区。
- 浏览体验
成功登录后进入主页,页面采取上方搜索导航栏,左侧功能导航栏,右侧内容栏的布局。
浏览推送作品,可点击执行,体验其他用户发布的项目,并能够在下方发表评论。
能够使用全屏模式提升体验感,并且可以查看代码。 - 功能体验
可以通过平台提供的模板创建项目,也可以从GitHub导入。
编辑器页面布局分为三栏,文件列表,代码部分,以及项目预览,并且可以调节每个部分的宽度,这个页面我个人觉得类似vscode,可以说是很方便使用了。
对于已更改的文件,会打上“M”标记,还能够查看更改。
点击“RUN”在预览窗口执行。
发布作品至社区。 - 优缺点分析及改进建议
优点:
整体界面简洁明了,便于使用,对于新用户还有新手指引,对用户使用友好。
无需安装,可以直接在网页上进行项目的运行展示以及修改编辑。
缺点与建议:
在内容栏部分无论是主页推送的作品,还是社区内的动态,以及模板,当页面下滑至下方并点击查看,再退回时,内容又重新回到了第一条,很影响用户阅读体验,每次退回就要重新从第一条往下翻找。建议将这块跳转做成能够回退到点击之前的位置,这样就能够从原来的地方接着往下浏览。
提供的模板虽然涵盖了比较热门、主流的语言环境等,但是还是比较少。尽管可以从github导入,但我认为平台本身应该提供较多的模板环境。个人认为也许是因为该产品刚上线,所以有些模板还在研发阶段,希望后续能容纳更多项目环境。
在查看项目时,无论是小窗还是全屏,点击查看文件,弹出的菜单栏会盖住底下的项目运行效果,点击文件时又能形成左右结构,个人认为这个覆盖比较影响使用。建议在查看这块做成当点击查看文件时,窗口分为左右两部分,而不是覆盖在上面,最好能够在查看文件代码时保留项目的预览,类似编辑器页面的布局,这样既能查看源码,又能预览效果,使用感更好。
不支持本地文件上传,对于演示项目的html和js文件我都是从本地文件中复制粘贴进去,如果本地文件较多,手动导入将十分的麻烦,当然也可以借助GitHub,将本地文件提交到远程仓库,再通过GitHub导入项目,但多一个本地导入的功能对于用户来说是否会更好一些呢。建议增加本地导入功能,提供多种使用方法。
预览无法实时同步,在编辑器中对代码进行修改后预览无法实时同步变化,每次都要手动刷新。建议完善预览功能,实现同步变化。
修改项目可见性没有更加快捷的方法,必须进入编辑器页面修改,过于繁琐。建议在可见性图标上增加点击修改可见性的功能,点击切换状态。
无法检测并显示语法错误,影响用户使用,比如说在制作网页时,在某处缺少“>”或标签等,运行时出错,但无法提供出错位置,用户需手动Debug。建议增加实时纠错以及运行报错等功能,方便用户使用。
1.2 Bug
-
作品发布问题
- 可复现性: 必然发生
- 具体复现步骤: 点击我的项目,点击页面中的发布作品,选择需要发布的项目,点击发布。
- 具体情况描述: 点击发布后页面报错参数错误。如果是进入项目的编辑器页面发布作品,则不会报错。
- 分析:
- 可能成因: 两处的代码不一致,可能是修改代码时将某一处遗漏或是调用出错。
- 严重性: 该Bug较为影响用户使用,导致每次发布作品都要绕一个弯进入编辑器页面来发布,并且将功能性错误暴露在用户面前,我认为这个Bug属于三星级。
- 预期及改进建议: 检查比对两部分的代码,查找造成差异与错误的原因,修正或重写相关事件函数,实现在我的项目页面也能成功发布作品。
-
消息清空问题
- 可复现性: 必然发生
- 具体复现步骤: 需要先发布作品至社区,等待审核通过后,点击全部已读,再点击清空消息。
- 具体情况描述: 点击完清空消息,消息并未被清空,仍显示在消息列表。
- 分析:
- 可能成因: 点击清空消息事件设置出错,将本该删除或隐藏的消息显示了出来。
- 严重性: 该Bug对用户的主要使用影响较小,不影响用户对于平台主推功能的使用,我认为这个Bug属于一星级。
- 预期及改进建议: 检查清空消息事件部分代码,梳理业务逻辑,修复该Bug,实现点击能成功清空消息列表。
-
放大无法操作问题
- 可复现性: 必然发生
- 具体复现步骤: 将屏幕放大至200%以上,点击导航栏,滚动鼠标。
- 具体情况描述: 滚动鼠标页面毫无反应,只能点击显示出来的部分导航栏,下方显示不出来的部分的功能无法使用。
- 分析:
- 可能成因: 页面布局设置问题,固定放大,缺少了滚动条滑动。
- 严重性: 该Bug对用户的使用影响较小~~(毕竟没有多少人会放大到200%以上吧)~~,我认为这个Bug属于一星级。
- 预期及改进建议: 重新设定页面布局,切换不同的浏览器、设备等来调试查看效果。
1.3 结论
- Inscode刚上线不久,许多功能都还在起步阶段,也许会存在许多不兼容的Bug等问题,但对于基础的环境还是可以的,如果能避开安装和配置环境等一系列十分麻烦的事情,直接在网页中编辑、运行项目,那么这个平台还是很方便的。我的评价是“d)好,不错”,还是比较推荐的,期待后续能够有更丰富更强大功能的集成环境。
2. IT屋-程序员软件开发技术分享社区
2.1 使用体验
- 浏览体验
成功跳转至网站后,页面大部分是广告。
教程、在线工具很多,也有问答区。
文章内置广告,查看全文需要扫码登录。
文字教程和一些广告。 - 功能体验
运行java程序,满屏的广告让我一开始没反应过来输出在下面,我还以为是没反应。
json格式转换工具,很实用。 - 优缺点分析及改进建议
优点:
除去广告部分,界面简洁,功能明显,易于区分和查找。
丰富的在线工具,覆盖面广,从前端到后端,以及数据库相关,都有涉猎。
缺点与建议:
广告太多了!!!十分影响用户体验!建议减少广告投放。
页面字体略小,影响浏览。建议将字号调大一点。
响应速度略慢,在使用json转换工具的时候,可能由于数据量较大,转换等了很久,页面也卡住了。建议对相关执行算法进行优化提速。
教程部分只有文字叙述和一些图片,有的时候可能不够直观和形象地进行表述,建议可以引入一些视频讲解。
2.2 Bug
-
无法输入问题
- 可复现性: 必然发生
- 具体复现步骤: 点击在线工具,选择C(GCC)在线工具,在printf()上方添加“int N;”和“scanf(“%d”,&N);”,点击运行。
- 具体情况描述: 页面响应很久,没有输出就结束了,即使在框内输入数字,也没有办法继续执行下去并且成功输出"Hello, world!"。
- 分析:
- 可能成因: 该在线工具在设计时没有考虑输入,仅仅考虑了输出。
- 严重性: 该Bug较为影响用户使用,导致使用该在线工具时,不能试运行有输入的程序,我认为这个Bug属于三星级。
- 预期及改进建议: 建议增加一个输入框,同时修改在线工具设计的业务逻辑,从输入框中读取输入,并将程序输出显示在输出框内。
-
问答库帖子时间问题
- 可复现性: 必然发生
- 具体复现步骤: 点击问答库,选择任意一个专题,随机点击任意一篇帖子。
- 具体情况描述: 无论选择哪个专题,最新的帖子时间都在2022年9月25日之前,并且帖子的查看量为0。
- 分析:
- 可能成因: 针对时间问题,可能是2022年9月25日之后没有再引进新的帖子
(为什么说是引进呢,因为我没有找到发表帖子的地方…),帖子查看量问题可能是因为计算访问量出错。 - 严重性: 该Bug轻微影响用户使用,导致问答库内的帖子无法与时俱进,一些问题的解决方式等较为古老,而查看量则不影响用户使用,我认为这个Bug属于二星级。
- 预期及改进建议: 建议引进最新的相关帖子,IT行业的发展本就日新月异,作为IT技术分享社区,其涵盖的解决问题的方法也应该更新,对于查看量可以检查修改相关的计算方法。
- 可能成因: 针对时间问题,可能是2022年9月25日之后没有再引进新的帖子
2.3 结论
- IT屋的大量在线工具是它的一个很好的点,方便了在编程过程中一些转换、设计的过程,从功能角度出发还是比较推荐的,但是从用户体验来说,整个网站包含了太多的广告,并且扫码关注公众号登录就给人一种非正规网站的感觉,形象上大打折扣。我的评价是“c)一般”,我认为IT屋所集成的在线工具和教程等,网上也可以有其他的网站替代,没有必要选择充满广告、体验不好的。
3. Online Compiler and IDE
3.1 使用体验
Ideone是一个在线编译器和调试工具,允许编译源代码并且可以在线执行的编程语言有60多种。
- 浏览体验
页面简洁,模块清晰,没有广告。 - 功能体验
提供程序范例来体验执行。
可以查看学习其他用户上传的代码。 - 优缺点分析及改进建议
优点:
界面简洁,涵盖的编程语言丰富。
提供了IDE小组件用于web开发功能扩展。
缺点与建议:
界面过于简洁,不够美观,页面字体略小,影响浏览。建议将字号调大一点,并且提高页面的美观度,对于用户来说也能提高一些印象分。
响应速度时快时慢,慢的时候挺让人抓狂的。建议提高响应速度,或者不要限制国内IP。
页面采用英语来显示,对英语不好的用户较不友好,虽然可以用浏览器翻译页面,但是翻译过来可能词不达意。建议增加网站语言切换功能。
3.2 Bug
- 注册验证码问题
- 可复现性: 必然发生
- 具体复现步骤: 点击首页右上角sign in,点击sign up跳转至注册页面,输入相关信息后点击create an account。
- 具体情况描述: 跳出报错红字显示“Please solve the captcha.”,页面翻译为“请解决验证码”。
- 分析:
- 可能成因: 该网站提供验证码相关代码出错,或者是不允许国内用户注册。
- 严重性: 该Bug较为影响用户使用,导致使用该网站时,不能拥有个人账户,也就无法将代码设置为private,用户所有在该网站进行编译运行的代码都将成为公开的,或者以链接形式分享的,我认为这个Bug属于三星级。
- 预期及改进建议: 建议完善注册验证码部分代码,或者不应该对用户群体进行限制。
3.3 结论
- 虽然Online Compiler and IDE(Ideone)能够编译源代码并且可以在线执行的编程语言有60多种,但是它的极简风UI以及非常慢的响应速度,十分影响用户的使用。我的评价是“c)一般”,在同类型的产品中,有更好的选择。
4. 用户采访
- 采访对象
本次采访的是同级计算机专业的同学,对于编程相关软件的使用需求还是比较大的。 - 用户评价
第一款:InsCode,第二款:IT屋-程序员软件开发技术分享社区,第三款:Online Compiler and IDE。
该同学反映使用校园网无法注册/登录InsCode,也无法新建项目等,对网页的访问存在一些问题,而我使用手机流量热点访问却没有问题,不知道是什么原因(一定是校园网的问题)。 - 总结
该同学更喜欢InsCode的界面,IT屋的功能更符合他的需要,而Online Compiler and IDE不仅界面不够美观,其功能也较为单一,但是在单个功能上做的比较好。
第二部分 分析
1. 开发时间估计
-
InsCode
主要功能是集成主流开发环境,使用户能够无需安装,直接在网页内运行项目,同时还能发布到社区,与其他用户交流讨论。
预计开发时间为12个月。 -
IT屋-程序员软件开发技术分享社区
主要功能是涵盖丰富的在线小工具和在线运行环境以及IT技术的教程,同时有问答库,提供相关领域的问题解决方案。
预计开发时间为10个月。 -
Online Compiler and IDE
主要功能是提供多种编程语言的编译运行环境在线运行以及代码分享的功能。
预计开发时间为9个月。
2. 同类产品对比排名
-
由于接触同类产品较少,本次作业测评所涵盖的三个产品都涉及了在线开发环境,所以直接对三款产品进行对比排名。
产品 功能 UI 用户量 体验感 总分 排名 InsCode 90 90 82 90 352 1 IT屋 88 86 86 82 342 2 Online Compiler and IDE 85 83 88 84 340 3 -
InsCode作为刚上线的产品,其用户量肯定不如另外两款,但它的功能是比较完善的,并且有特色,很实用,UI相比另外两款也是比较优秀的,在用户体验方面也没有太大的问题;IT屋虽然功能很多,但广告也很多,一定程度上降低了用户体验感,UI也比较一般;Online Compiler and IDE尽管覆盖的编程语言多,但功能过于单一,UI也比较简洁,但考虑国外市场,其用户量还是比较高的,不足的就是响应很慢。
3. 软件工程方面的建议
-
InsCode
作为一个刚起步的平台,希望能够先完善已有的基础功能,将现有的Bug解决,再尽可能地集成更多开发环境,就我个人来说,是第一次接触这类产品,我认为它的无需安装功能是一大亮点。在推广方面,我认为可以再用点心,加大推广力度,如果不是本次作业,我根本接触不到、了解不到InsCode,好的产品更应该推广,让更多的人体验它的好。 -
IT屋-程序员软件开发技术分享社区
需要多多注意用户体验,满屏的广告让人使用欲望下降,同时需要注意虽然涵盖了许多在线工具,但是对于每个工具还需要保证基础功能不出错,努力做到广而精。最好能够将页面再美化一些,UI设计看起来有些古早,整体散发着不专业的气息,给用户不好的印象。问答库部分需要与时俱进,引进新的帖子和解决方案等。 -
Online Compiler and IDE
不要限制自己的用户群体,建议增加语言适配的功能以及提升响应速度。尽量扩展更加丰富的功能,如果只是作为在线的编译运行平台,那么在同类型产品中将失去竞争力。同样的,页面设计也还需要优化,美观舒适的UI设计会一定程度上提高用户体验感。
4. BUG存在的原因分析
-
InsCode
- 作品发布问题: 我认为是开发人员粗心大意,导致这部分功能异常,同时测试也不够严谨,没能发现这个问题。发布作品可以说是比较重要的一个功能,但是却出现了问题,这是比较严重的Bug了。
- 消息清空问题: 我认为是开发人员粗心大意,导致清空消息没能实现,同时测试也不够严谨,也许是在测试时认为这是个小功能,所以遗漏了。
- 放大无法操作问题: 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试,导致无法发现布局存在的问题。
-
IT屋-程序员软件开发技术分享社区
- 无法输入问题: 我认为是具体的设计质量不高,对于编程而言,输入输出是十分基础的功能,但是却没能考虑到输入。
- 问答库帖子时间问题: 我认为这个问题的原因可能是具体的设计质量不高,也可能是其他原因,比如说也许是开发团队放弃了这块内容的更新
(也可能是我异想天开…)。
-
Online Compiler and IDE
- 注册验证码问题: 我认为这个问题的原因可能是具体的设计质量不高,在验证码部分的代码或者业务逻辑等出现问题,又或者是开发团队本意就是不希望有国内用户(仅代表个人看法,如果有误,在这里先道歉,对不起!)。
第三部分 建议和规划
1. 市场概况
-
市场有多大?
2021年,我国软件和信息技术服务业运行态势良好,软件业务收入保持较快增长,盈利能力稳步提升,软件业务出口保持增长,从业人员规模不断扩大。软件业务收入保持较快增长。全国软件和信息技术服务业规模以上企业超4万家,累计完成软件业务收入94994亿元,同比增长17.7%,两年复合增长率为15.5%。
从业人员规模不断扩大,工资总额加快增长。2021年,我国软件业从业人员平均人数809万人,同比增长7.4%。从业人员工资总额同比增长15.0%,两年复合增长率为10.8%。
尽管我国软件从业人员平均人数高达809万人,但人才缺口依旧很大,IT专业人才呈现供不应求的局面。 -
直接用户
需要学习各种编程技术,但苦于安装环境的人。比如说当前计算机专业相关的大学生等。 -
潜在用户
预计往IT行业发展、对编程感兴趣的人。比如说以就业为目标需要快速上手的社会人士,还有以进入IT行业为职业规划的中小学生等。
2. 市场现状
-
目前市场已有的产品
因为本次作业测评的三款产品都属于编程方面的产品,所以对市面上具有类似功能的产品进行对比分析。-
InsCode
定位: 无需安装的编程、协作和分享社区
优势: 界面清爽简洁,集成了主流基础开发环境,无需安装可直接在网页内进行项目的开发和运行等,同时拥有社区,可以发布作品与其他用户交流分享,促进学习。
劣势: 模板种类不多,能提供的环境较少,同时一些功能性Bug的存在影响用户使用。推广力度不大,目前来说比较小众。 -
IT屋
定位: 程序员软件开发技术分享社区
优势: 丰富的实用小工具和多种编程语言在线编译运行环境,软件开发技术相关教程整合,同时设有问答库,为用户提供相关问题的解决方案。
劣势: 界面过于简洁,广告较多,用户体验不佳;小工具和运行环境部分存在功能Bug,无法很好地实现用户需要;文字教程较为生硬,且问答库帖子年代久远未更新,与新技术脱节。 -
Online Compiler and IDE
定位: 在线编译器和调试工具
优势: 能够编译执行60多种编程语言,提供编程范例及模板,并且能够分享和学习其他用户的代码。
劣势: 限制国内用户使用,无法成功注册,但基本功能还是可以使用的,国内IP访问响应速度时快时慢,界面过于简单,字体较小,使用方面不太舒适,无法推荐优秀代码,只能实时更新最近用户使用执行的代码,无论内容是什么。 -
Anycodes
定位: 在线编程学习软件
优势: 支持包括C语言、C++、Python、Java、Golang、Nodejs等在内的近50种运行时,拥有行业领先的多文档,实时纠错,智能补全,代码分享,流输入输出,以及基于人工智能的代码检测技术,可以让用户体验高效学习、极速练习的快感。同时配有WebIDE,多端支持,随时随地进行编程学习与项目开发。
劣势: 只提供了两种操作系统的云开发环境,并且使用云上编辑器依旧需要配置项目需要的相关环境及插件等。 -
Lightly
定位: 轻量且功能强大的集成开发工具
优势: 支持多种主流的编程语言,自动检测和生成开发环境,任何修改都能实时同步到云端,并支持邀请其它人线上协助Debug,共同协助开发。用户只需专注于编写代码,Lightly会帮助用户完成其他的任务,让写代码变得更简单。有博客专区,为用户提供开发技术相关使用教程。
劣势: 仅仅作为在线编程平台,功能过于单一,并且只包含了一些主流编程语言,覆盖面太小。
-
-
产品关系
我认为上述五种产品属于竞争关系,互为竞品,它们都有共同的功能——在线编程,也有不同的地方,比如说社区功能、博客帖子等。InsCode和Anycodes属于较为类似的两个产品,且较有竞争力,另外三款存在功能较为单一、使用体验不好等问题。InsCode是集成开发环境于网页内,无需安装和配置,比如说vuejs、nodejs等需要从终端进行操作配置的环境,并且能够进行交流分享等,而Anycodes虽然也集成了云上开发环境,但我个人认为就是将vscode这类IDE加入到网页内,具体使用和在桌面是一样的,只是更方便快捷,多端支持。 -
发展阶段
我认为这个领域目前处于成长阶段,虽然目前在线编程网站不算少,但具体实用程度参差不齐,并没有特别优秀的平台出现,如果InsCode能够完善功能,提供更多的模板,适应大量开发环境,那么对于编程和项目开发来说,将会是一个很大的突破。
3. 市场与产品生态
-
核心用户群
-
大学生
年龄: 18-25岁
专业: 计算机相关专业
爱好: 学习计算机技术
痛点: 作为电脑小白,对于安装各类编程软件配置环境等一窍不通,十分苦恼。
需求: 希望能有不需要自己安装配置环境的软件出现,打开就能使用、正确执行等。 -
对于IT行业感兴趣的人群
年龄: 14-35岁
专业: 不限
爱好: 对计算机相关技术感兴趣
痛点: 作为初学者,有时候并不能直接便利地开展编程,会在相关软件的使用上耽误时间,并且自学难度大。
需求: 希望能有一个现成的环境提供使用,自己只需考虑自己如何编写等,并且能和其他同样的自学人群进行交流讨论,相互促进。
-
-
用户群体关系
两类核心用户群体之间存在相交的部分,所以我认为用户群体之间是有一定关系的,它们都有一定的共同特征,比如说对计算机技术感兴趣,需要便利的学习工具等。通过不同用户群体之间的交流互助等,能够形成良好的学习、使用环境,促进平台的发展。 -
子产品关系
子产品之间也存在一定的关系。编程协作模块满足用户对于学习技术的软件需求,而社区交流部分则提供了咨询、提问、相互学习的功能,子产品之间相互促进,不断完善,形成更好的平台。
4. 产品规划
-
新功能及NABCD分析
新功能: 在编辑器页面提供检测并显示错误信息的功能,并且提供代码优化建议,比如说实现同样的函数功能如何编写更高效,去除冗余的、不必要的语句等。
N(Need): 对于初学者来说,编程语法并不是很熟悉,如果能在编写过程中发现错误,更能加深印象;并且如果只能通过运行来看效果的话,一旦出错,初学者也较难发现,从而使学习效率打折扣,这是用户所不希望的。而对于有项目开发经验的用户来说,不能提供出错信息的话,项目较大时就更难发现出错的地方了。作为开发人员,都希望自己写出来的代码能更高效简洁易懂。
A(Approach): 可以在页面下方划分一块区域来显示,也可隐藏该区域,点击某一条错误信息可使该部分代码高亮显示,代码优化建议可来自大数据推荐或结合Chatgpt等。
B(Benefit): 对初学者学习编程提供有效助力,帮助用户发现自己代码里的错误,节省不必要浪费的时间,同时提供更好的编写方法,帮助用户提升个人编程、项目开发水平。
C(Competitors): 检测并显示错误信息对于一些PC端软件比如说IDEA等是已经实现了的功能,在这方面开发新功能属于是弥补自身不足,但是结合InsCode本身的功能基础,则更有竞争力了。并且提供代码优化建议目前似乎还没有哪个平台或者软件有这样的功能。
D(Delivery): 可以结合、借助当下的热点——Chatgpt来推广我们的产品;开放给特定人群测试该功能,比如说高校相关专业大学生,借助他们的力量来完善我们的产品,同时也通过他们来宣传。 -
配置角色
该功能主要是算法和后端的设计。岗位 人数 前端人员 1名 算法设计人员 2名 后端人员 2名 测试人员 1名 -
16周规划
周期 规划 第1、2周 团队开会讨论,确定采用的技术,分配工作并开始原型图制作 第3、4周 学习、熟悉相关技术,修改完善原型图 第5、6、7、8周 设计算法、功能业务逻辑,前端页面设计 第9、10周 初步完成功能实现 第11、12周 测试人员进行测试,反馈给对应成员修改完善 第13、14周 优化算法、代码设计 第15周 测试人员测试,同时开放给特定人群试用测试,开发人员同步修改更新 第16周 修复完善,正式发布上线