软件工程实践——软件评测作业
作业基本信息
软工实践 | 2023年春季软件工程实践-W班 |
---|---|
作业要求 | 软件工程实践——软件评测作业 |
作业目标 | 对指定的几款软件进行调研评测,分析软件的质量并提出建议与规划,体会软件工程的思想和原则 |
其他参考文献 | 《构建之法》 |
文章目录
第一部分 调研与评测
1. InsCode
1.1 使用体验
产品介绍
InsCode是一个编程/协作/发布工具。不用下载编译器,可以快速生成所需模板,在线跑项目代码。所见即所得,同时配备了InsCode博客社区和云服务。
基本使用
-
1.账号登入方面
和CSDN账号关联,使用过CSDN有账号可以直接自动导入账号信息,不用手动登录,这点体验还不错。
-
2.创建项目:
InsCode 导入项目的方式有两种,一种是从平台提供的模板导入,另一种是导入Github 的项目。
使用模板:在点击选择模板后,可以选择自己需要的项目模板,目前 InsCode 支持大部分主流语言(但是没有java项目,markdown项目好像不是很有必要),模板右侧的标题、描述、项目标识和可见性,分别对应了项目的名称、描述、URL和项目可见性。创建之后会自动同步到gitCode中。
选择GitURL导入需要在github中添加提供的SSH密钥
-
在线演示修改代码功能
在InsCode 的项目配置文件中编写对应的入口文件等信息。点击页面上的Run按钮,项目就会执行,如果是web项目就会自动在页面右侧打开网页浏览器,如果是个终端项目,就会在右侧自动打开的是个终端,输出了对应的内容。 这个在线编码平台也有代码提示功能,和正常的编译器一样。
在页面上直接对代码修改,然后运行程序,而你修改的内容会
自动提交
到对应在 gitcode 的项目中。 -
发布作品和社区交流
可以把自己的项目发布在社区中展示
在社区页面,可以看到社区精选的项目,可以直接在项目上运行,也可以 Fork 下来学习。
优缺点分析:
InsCode在线编译的功能方便快捷,直接打开网页就可以使用,省去了配置编译环境的麻烦;同时提供了多种编程语言的支持,覆盖了大部分开发语言。总的来说这款产品易于使用,产品界面还算整洁,提供了多种项目模板满足不同需求。第一个不足之处是创建项目的速度比较慢
,降低了体验感,其次UI界面
还有许多大大小小的问题(详见BUG部分),显得不够专业,可以在UI上再多多打磨;此外可以提供在线编译工具的使用教程,说明如何运行项目,在哪里设置文件入口等等,这样对一些IT新手用户更加友好;最后还需要做的是完善社区环境,打造社区生态
,提供更多可参考的有用资料,用户在使用这款产品时才能更称心如意。
用户采访:(见第一部分文尾)
1.2 BUG
写在开头:
本文中所有测评的测试环境: 111.0版本goole chrome浏览器,windows 10 操作系统
BUG1: 创建项目时点击创建项目按钮后还能对项目内容进行修改(必然发生)
BUG2:发布作品功能,点击发布到仓库提示参数错误,但是还在一直加载需要手动把页面叉掉来停止。4月4号还可以创建java项目,4月5号就突然没有Java项目这个选项了。这应该是提示参数错误的原因。但是提示错误后应该直接结束这个进程,一直在加载需要手动停止有点奇怪。(偶然发生)
BUG3:一个UI Bug,右上角通知按钮和头像按钮界面重叠。(必然发生)
BUG4:主页头像部分布局不固定(必然发生)
BUG5:登录功能,使用CSDN账号登录是先进入到CSDN网站,点击浏览器后退才能进入InsCode页面。此外提供的几个登录方式只有微信和CSDN账号可用,其他的百度账号,微博账号等都不支持(既然不支持干嘛展示出来 )
Bug6:InsCode和CSDN账号同步登出,InsCode退出登录,CSDN也退出登录,正在写的博客直接没了。InsCode平台和CSDN网站不应该关联。(必然发生)
1.3 结论
推荐程度:一般。
UI体验普通,对于在线运行项目所见所得这个特点功能没有特别的需要,而作为一个代码管理仓库,相比于github等比较成熟的产品也没有提供一个可以让人选择的理由。
评价要求 | 评价内容 | 评价得分(10) |
---|---|---|
功能性 | 是否具备预期的功能或符合产品描述 | 6 |
稳定性 | 是否稳定,是否容易出现崩溃 | 6 |
易用性 | 是否易于使用,是否有一个友好的用户界面 | 7 |
可靠性 | 是否可靠,是否会出现逻辑错误或者数据丢失 | 6 |
安全性 | 是否安全,是否易受攻击或者数据泄露 | 6 |
性能 | 是否响应快速,是否容易出现顿挫或卡顿 | 6 |
兼容性 | 是否能够与其他系统或设备兼容 | 8 |
支持性 | 是否有一个完善的技术支持和帮助系统 | 8 |
2. IT屋
2.1使用体验
产品介绍:
IT屋-程序员软件开发技术分享社区是一个面向程序员、计算机爱好者技术分享社区,为程序员、计算机爱好者提供百万权威知识库检索、在线开发工具、技术教程库、视频教程下载等功能,以便快速定位并解决问题,提升开发技术水平和提高工作效率。
基本使用:
从导航栏可以看到IT屋网站有四大块内容:首页,问答库,菜鸟教程以及在线工具
- 首页
首页部分提供了网站中的所有教程,非常全面,涵盖了IT领域大部分入门知识。顶部使用导航标签简介明了地给用户提供教程选择,各个课程以卡片的形式排列,配色以灰色为主,使用绿色点睛,有一定的设计感,看起来非常舒服。
选择自己要学习的教程会来到相应的教程页,主体展示了相关教程,尾部有“最新问答板块”,可 以查阅相关技术文章。
选择某一具体教程跳转到教程详情页。页面采用左右布局,知识点导航布局在左侧合理美观,可以按需要进行学习。右上角还提供了一个搜索框便于检索。
- 问答库
首先鼠标悬浮在导航栏问答库处会跳出一级下拉框,可以选择问答内容对应的知识领域。
进入后是相关的所有技术文章,单文单行整齐排列。右上角同样提供搜索框可以按需检索。
问答内容详细页面,需要扫码登录解锁才能查看全文,比较麻烦。
- 菜鸟教程
导航栏点击菜鸟教程进入该页面,次级导航栏占据了一大块屏幕,绿底白字留了很多空白部分,视觉上不够美观。下方是对应的教程,选择某一教程就跳转到教程页。
- 在线工具
在线工具部分提供了三类工具,分别是编译工具,数据工具和前端工具
。编译工具支持Java、C++、C,Python、C#、PHP等37种开发语言在线编译测试。数据工具支持MS SQL Server、MySQL、Oracle,PostgreSQL等4种数据库在线SQL执行测试。前端工具支持HTML、CSS、JS、格式化、压缩、编码解码、颜色转换、进制转换、二维码生成等31种前端实用工具在线使用。
在线工具页面导航栏可能是因为广告加载问题没有显示,造成了大片空白区域。
提供的在线工具非常丰富,涵盖了几乎所有可能的需求
优缺点分析:IT屋网站作为一个IT知识分享网站,站内内容比较全面,每个教程的知识体系完备,非常适合相关人员自学。UI设计简洁明了,布局合理,美中不足的是穿插了一些广告(倒也无可厚非捏 )。不足的一点是问答库板块的搜索功能比较落后,不能根据用户提供的关键字灵活搜索提供相关问答贴子,比如搜索bean可以出现相关回答,搜索java bean就得不到任何结果,这样严重影响了问答贴子的曝光率,建议对站内搜索功能进行全优化。其次编译工具可以接入教程中,这样在参考教程的同时运行案例代码(参考菜鸟教程),更好地在网站上学习。
用户采访:(见第一部分文尾)
2.2 BUG
BUG1:问答库的搜索功能在输入搜索关键信息按下回车后,搜索信息消失,使用体验不是很好。(必然发生)
搜索功能应该保留用户提供的搜索关键字,提示对应的搜索内容已经展示。以CSDN搜索和百度为例。
2.3 结论
推荐程度:好,不错
评价要求 | 评价内容 | 评价得分(10) |
---|---|---|
功能性 | 是否具备预期的功能或符合产品描述 | 9 |
稳定性 | 是否稳定,是否容易出现崩溃 | 8 |
易用性 | 是否易于使用,是否有一个友好的用户界面 | 9 |
可靠性 | 是否可靠,是否会出现逻辑错误或者数据丢失 | 6 |
安全性 | 是否安全,是否易受攻击或者数据泄露 | 9 |
性能 | 是否响应快速,是否容易出现顿挫或卡顿 | 8 |
兼容性 | 是否能够与其他系统或设备兼容 | 6 |
支持性 | 是否有一个完善的技术支持和帮助系统 | 8 |
3. Online Compiler and IDE
3.1 使用体验
产品介绍:
Online Compiler and IDE Ideone是一个在线编译器和调试工具,可以用60多种编程语言编译源代码并在线执行。
基本使用
- 选择语言在线编译执行
- recent code板块查看别人在网站上运行的代码。
- 基本的注册登录和问题解决
提供邮箱注册进行账号管理
Q&A部分列举常见问题
优缺点分析:
功能单一但是也因此简单易用,没有其他花里胡哨的东西。缺点是只能运行单个文件,无法运行项目,且代码运行的耗时较长。
用户采访:(见第一部分文尾)
3.2 BUG
BUG1:在线编译运行速度慢,一个简单的demo跑了五六秒,虽然显示只运行了0.13s(必然发生)
3.3 结论
推荐程度:一般
评价要求 | 评价内容 | 评价得分(10) |
---|---|---|
功能性 | 是否具备预期的功能或符合产品描述 | 9 |
稳定性 | 是否稳定,是否容易出现崩溃 | 7 |
易用性 | 是否易于使用,是否有一个友好的用户界面 | 7 |
可靠性 | 是否可靠,是否会出现逻辑错误或者数据丢失 | 7 |
安全性 | 是否安全,是否易受攻击或者数据泄露 | 6 |
性能 | 是否响应快速,是否容易出现顿挫或卡顿 | 5 |
兼容性 | 是否能够与其他系统或设备兼容 | 6 |
支持性 | 是否有一个完善的技术支持和帮助系统 | 5 |
采访
第二部分 分析
1. 开发时间估计
条件:团队人数6人左右,计算机大学毕业生,并有专业UI支持
功能分析:
-
InsCode:
功能比较全面,兼有在线代码运行,社区问答和仓库管理功能。 -
IT屋:
资料齐全的IT知识自学网站,以静态的网页资源为主,问答库功能由团队自运营。提供在线编译工具。 -
Online Compiler and IDE:
在线编译器和调试工具,可以用60多种编程语言编译源代码并在线执行。可以查看服务器上其他用户的代码记录。
时间估计:
- InsCode:8个月
- IT屋:6个月
- Online Compiler and IDE:5个月
2. 同类产品对比排名
对上文中测评的三个功能类似的IT产品,从以下几个方面进行对比排名:
对比角度 | InsCode | IT屋 | Online Compiler and IDE |
---|---|---|---|
功能丰富程度 | 8 | 7 | 6 |
UI设计和用户友好程度 | 7 | 7 | 7 |
BUG对使用体验的影响 | 8 | 3 | 6 |
实用性(笔者个人视角) | 6 | 9 | 7 |
综合排名:IT屋>Online Compiler and IDE> InsCode
3. 软件工程方面的建议
- 对于InsCode:解决一系列 bug(详见第一部分InsCode BUG部分),提升用户的交互体验,完善社区生态,提供更多的相关使用资料。
- 对于IT屋:可以添加动态的问答功能,把在线编译工具植入教程中,可以一边浏览知识点一边运行代码而不用切换页面;优化注册登录流程和用户账号管理,提供官网而不是以关注公众号的形式来运营。
- 对于 Online Compiler and IDE:优化服务器,提高在线编译速度。尝试添加运行整个项目的功能。
4. BUG存在的原因分析
上述三个软件的BUG大致可以分为这几类:1.UI界面BUG,比如下拉菜单没有在合适的时间缩回;部分区域不固定等等。这种BUG的原因无非是程序员在编写代码时没有注意细节,项目没有进行细致的测试。2.在线工具编译运行速度问题,这个BUG InsCode和Online Compiler and IDE都有,可能是服务器的运载能力不够;3.功能不完善,比如IT屋的搜索功能不能保留搜索关键字;InsCode点击发布项目后还能对项目信息进行修改等等,这应该是代码的逻辑问题,需要再测试完善。
第三部分 建议与规划
1. 市场概况
本次作业测评的三款软件都是在线运行代码,提供IT知识的网站,涉及的相关人员基数是非常大的。随着新型基础设施建设持续推进,我国网络基础能力不断增强,万物互联基础不断夯实,工业互联网体系构建逐步完善,互联网应用用户规模保持稳定。在此背景下,对互联网从业人员的需求也是非常庞大的,据相关资料显示截止2021年我国互联网从业人员已达1677万人,这就给类似InsCode,IT屋等IT知识网站带来了极大的市场。直接用户
包括职业程序员,架构师等互联网从业者,间接用户
包括即将进入互联网行业的社会人员和一些对科技信息感兴趣的自学者。
2. 市场现状与产品生态
目前市场上的IT知识网站数量很多,处在一个市场平台期,比较熟悉的类似IT屋这样的知识网站有菜鸟教程,w3school等;互联网知识问答平台包括CSDN社区,博客园,51CTO等web端产品,以及一些以找工作为导向的leetcode,牛客网等等。相比于博客园,51CTO等技术论坛,InsCode社区融合了在线代码运行功能,同时依托CSDN和gitCode,提供给用户一个比较完整的应用链,这是这款产品的优势所在;IT屋和菜鸟教程等功能高度相似,互为竞品关系,因为IT屋缺少教程案例运行功能,相较于菜鸟教程等产品会缺少一些竞争力。
3. 产品规划
3.1 在当前软件基础上新增功能:
-
InsCode
1.针对每种项目模板配备创建项目的简单教程或者提供统一教程。在使用的过程中创建项目一部碰到一些困难,所以想要有这个功能来解决这个问题。2.发布项目功能新增一个项目描述文件,要求发布者在发布时填写,类似README文档。 -
IT屋
在教程部分添加在线编译功能。这个需求已在测评部分多次提到。 -
Online Compiler and IDE
优化编译器的运行效率,增加问答功能。Online Compiler and IDE的Recent Code板块因为没有提供关键字搜索,提供参考的代码需要用户一个个点击查阅参考,实际上弱化了这个板块的作用。
3.2 16个周期每周的详细规划
条件:团队成员6名,开发4名,测试1名,美工1名。
周期 | 工作内容 |
---|---|
第一周到第二周 | 根据团队每个人的技术栈进行分工。同时开始调研市场上其他同类产品,学习开发、测试和美工等专业知识 |
第三到第四周 | 讨论软件需求,开始撰写需求文档,团队之间进行相关技能的培训,讨论需要的前端美工设计 |
第五到第八周 | 开发人员开始进行软件主体的开发,测试人员需要在开发过程中对软件Bug进行反馈,美工人员开始进行美工设计 |
第九周 | 发布alpha版,大量收集用户对于软件的反馈需求,同时团队开会进行开发过程反思分析 |
第十周到十四周 | 结合用户需求,开发人员进行Beta版的迭代开发,测试人员需要在开发过程中对软件Bug进行反馈,美工人员优化美工设计 |
第十五周 | 发布Beta版,收集用户需求和反馈 第十六周:软件正式上线,试运营。 |