软件工程实践——软件评测作业

这个作业属于哪个课程2023年福大-软件工程实践-W班
这个作业要求在哪里软件工程实践——软件评测作业
这个作业的目标完成一篇评测博客
其他参考文献《构建之法》、CSDN、博客园、简书、知乎

前言

0.1 作业要求

邹欣老师的案例分析作业要求

0.2 Bug量化标准

Bug等级描述
界面显示异常,不影响用户使用产品
☆☆系统功能异常,操作无法达到预期效果,影响用户使用产品
☆☆☆严重系统故障、服务器鉴权漏洞或重要数据泄露、用户体验较差
☆☆☆☆致命性系统故障、致命性安全性漏洞、用户体验严重影响

第一部分 调研,评测

1.1 InsCode

1.1.1 体验

一、介绍

(1)首页
  首页简洁明了,提供了创建项目入口以及个人项目的快捷访问方式,方便用户快速地开始作业。同时提供了热门板块,用户能够通过该板块了解热门的项目并fork下来,在此模板的基础上进行修改,完成自己的项目。
在这里插入图片描述
(2)创建项目
  有从git url导入和从模板创建两种创建项目的方式。
在这里插入图片描述
(3)运行项目
  InsCode能够在线运行项目代码,省去了下载到本地以及配置环境的步骤,使用户能够方便直观的看到项目的效果。
在这里插入图片描述
(4)我的项目
  通过该界面用户能够查看自己创建的项目、动态、星标项目,同时能够选择发布作品。
在这里插入图片描述
(5)模板中心
  展示各种热门模板
在这里插入图片描述

(6)社区
  通过社区用户能够看到其他用户发布的动态,了解更多的信息
在这里插入图片描述
(7)设置
  能够通过设置界面修改昵称、用户名以及个人简介。设置SSH公钥以及git。
在这里插入图片描述

二、优缺点分析

优点:
(1)UI美观,用户使用体验好。
(2)能够在线运行项目代码,省去了下载到本地以及配置环境的步骤,使用户能够方便直观的看到项目的效果,从而获得更好的浏览体验。
(3)提供了许多热门的模板供用户选用,加快开发速度。
(4)有代码提示。
缺点:
(1)inscode项目无法直接导出,需要到gitcode导出。
(2)只支持部分语言,具有局限性。
(3)用户量不多,社区不够活跃,优质项目较少。

三、改进意见

问题描述:
  在inscode创建项目时会自动在gitcode里创建对应的仓库,那么如果我想把gitcode仓库的代码导入到inscode里自动运行却仍需要手动导入并不能直接同步,导致gitcode中会有一个多余的仓库,使用体验不好。
意见:
  将gitcode中的仓库集成到inscode中,提供选择gitcode仓库的选项


问题描述:
  在通过git url导入项目时,若未选择“语言”,点击“导入项目”错误提示信息为“请选择模板”,存在二义性(这与另一种项目创建方式“从模板创建”存在歧义),可能会误导用户认为通过git url导入功能存在异常,影响正常使用。
在这里插入图片描述意见:
  将报错信息改为“请选择语言”。

1.1.2 BUG

1.1.2.1 BUG1
(1) Bug发生时的测试环境

操作系统:Win11
浏览器:Microsoft Edge 113.0.1774.3 (正式版本) dev (64 位)
发生时间段:2023/04/07 0:57

(2)Bug的可复现性及具体复现步骤

Bug的可复现性:100%
具体复现步骤:在搜索框中输入形如“*/*”内容,进行搜索

(3)Bug具体情况描述

在搜索框中输入形如“*/*”内容时页面出现“404”报错
在这里插入图片描述

(4)Bug分析

输入:ss/s
结果:404
分析:观察url发现,执行搜索操作时程序将搜索框中的内容拼接在“search/”后,当输入形如“*/*”的搜索内容时,拼接后的内容无法识别为一个api,而是识别为一个静态资源,但服务器中并不存在该资源,因此返回404。
在这里插入图片描述
Bug的严重性:☆☆
1)系统功能:并未实现预想中的搜索效果。
2)安全性:存在注入风险。
3)用户体验:返回结果为404,并不符合用户预期结果,影响使用,用户体验不好。

Bug改进
1)预期:不应该返回404,而是应当与其他搜索无结果的情况相同。
2)改进措施:对“/”进行转义或转换为十六进制ascii码。

1.1.2.2 BUG2
(1) Bug发生时的测试环境

操作系统:Win11
浏览器:Microsoft Edge 113.0.1774.3 (正式版本) dev (64 位)
发生时间段:2023/04/07 18:05

(2)Bug的可复现性及具体复现步骤

Bug的可复现性:80%
具体复现步骤:在搜索框中执行多次搜索操作

(3)Bug具体情况描述

在搜索框中执行多次搜索操作后失去搜索响应
在这里插入图片描述

(4)Bug分析

输入:多次搜索操作
结果:搜索功能失效
分析:不清楚原因
Bug的严重性:☆☆
1)系统功能:并未实现预想中的搜索效果。
2)安全性:未发现
3)用户体验:搜索功能失效,影响使用,用户体验不好。

1.1.3 结论

d) 好,不错

类别描述评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分)
功能核心功能分析三个核心功能,功能设计和质量。6
细节有什么为用户考虑的细节?4
用户体验当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 6
辅助功能 一些辅助功能如皮肤等 4
差异化功能 这个软件独特的功能. 它对用户的吸引力有多大? 6
软件的效能 占用内存, 启动速度, 内存泄漏情况 4
体验软件的适应性 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 4
成长性 记住用户的选择, 适应用户的特点,用户越用越方便 4
用户有控制权 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 6

1.2 IT屋

1.2.1 体验

一、介绍

(1)全部工具
  提供各种在线工具如编译工具、数据工具、前端工具等

在这里插入图片描述
(2)编译工具
  提供各种语言的在线编译工具
在这里插入图片描述
(3)数据工具
  能够执行数据库代码
在这里插入图片描述

(4)前端工具
  能够运行前端代码,并且提供一些前端工具
在这里插入图片描述
(5)在线运行Java代码
在这里插入图片描述

二、优缺点分析

优点:
(1)能够在线运行各编程语言代码以及sql语句。
(2)部分语言提供了可运行代码的基本框架。
(3)支持语言较多,同时伴有教程模块,适合初学上手一门语言。
缺点:
(1)UI不美观。
(2)仅支持单文件运行,用处不大。
(3)无社区支持,无示例代码。
(4)无代码提示。

三、改进意见

问题描述:
  编写代码时没有代码提示,与本地IDE编写感受相差较大。
意见:
  添加代码提示功能。

1.2.2 BUG

1.1.2.1 BUG1
(1) Bug发生时的测试环境

操作系统:Win11
浏览器:Microsoft Edge 113.0.1774.3 (正式版本) dev (64 位)
发生时间段:2023/04/06 20:12

(2)Bug的可复现性及具体复现步骤

Bug的可复现性:100%
具体复现步骤:在搜索框中输入“/”,“.”或“\”,进行搜索。

(3)Bug具体情况描述

在搜索框中输入“/”,“.”或“\”页面都会出现“System.NullReferenceException: 未将对象引用设置到对象的实例”报错
在这里插入图片描述

(4)Bug分析

输入:/
结果:出现“System.NullReferenceException: 未将对象引用设置到对象的实例”报错。
分析:不清楚是什么原因
Bug的严重性:☆☆
1)系统功能:并未实现预想中的搜索效果。
2)安全性:服务器资源安全存在漏洞
3)用户体验:返回结果并不符合用户预期结果,跳转到报错页面,无法正常返回,影响使用,用户体验不好。

Bug改进
1)预期:不应该返回报错界面,而是应当与其他搜索无结果的情况相同。
2)改进措施:对“.”,“\”,“/”转换为十六进制ascii码。

1.2.3 结论

c) 一般

类别描述评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分)
功能核心功能分析三个核心功能,功能设计和质量。5
细节有什么为用户考虑的细节?3
用户体验当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 -3
辅助功能 一些辅助功能如皮肤等 1
差异化功能 这个软件独特的功能. 它对用户的吸引力有多大? 4
软件的效能 占用内存, 启动速度, 内存泄漏情况 4
体验软件的适应性 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 4
成长性 记住用户的选择, 适应用户的特点,用户越用越方便 -3
用户有控制权 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 4

1.3 Online Compiler and IDE

1.3.1 体验

一、介绍

(1)首页
  首页即为编译器界面,能够选择语言,编辑代码运行。
在这里插入图片描述
(2)我的代码
  运行后的代码会记录在我的代码中,供下次查看。
在这里插入图片描述
(3)范例
  可以下载或fork代码
在这里插入图片描述
(4)最近代码
  查看平台最近的提交运行代码
在这里插入图片描述

二、优缺点分析

优点:
(1)能够在线运行各编程语言代码,支持语言丰富。
(2)部分语言提供了可运行代码的基本框架。
(3)各语言均有范例代码
缺点:
(1)UI不美观。
(2)仅支持单文件运行,用处不大。
(3)无代码提示。
(4)界面没做响应式布局。

三、改进意见

问题描述:
  编写代码时没有代码提示,与本地IDE编写感受相差较大。
意见:
  添加代码提示功能。

1.3.2 BUG

未发现Bug

1.3.3 结论

c) 一般

类别描述评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分)
功能核心功能分析三个核心功能,功能设计和质量。5
细节有什么为用户考虑的细节?4
用户体验当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 5
辅助功能 一些辅助功能如皮肤等 1
差异化功能 这个软件独特的功能. 它对用户的吸引力有多大? 4
软件的效能 占用内存, 启动速度, 内存泄漏情况 4
体验软件的适应性 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 1
成长性 记住用户的选择, 适应用户的特点,用户越用越方便 4
用户有控制权 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 4

1.4 用户采访

采访对象背景:软件工程专业大三学生
选择原因:有丰富的项目经验,有使用过类似的在线编译器工具。
使用产品:InsCode
在这里插入图片描述

第二部分 分析

2.1 开发时间估计

2.1.1 Inscode

项目进度估计时间 (周)
需求分析/市场调研4
原型设计2
UI界面设计2
概要设计和数据库设计1
编码实现和测试10
发布和部署5
总计24

2.1.2 IT屋

项目进度估计时间 (周)
需求分析/市场调研4
原型设计1
UI界面设计1
概要设计和数据库设计1
编码实现和测试6
发布和部署3
总计16

2.1.3 Online Compiler and IDE

项目进度估计时间 (周)
需求分析/市场调研4
原型设计1
UI界面设计1
概要设计和数据库设计1
编码实现和测试7
发布和部署3
总计17

2.2 同类产品对比排名

市面上的同类型产品还有online gdb,godbolt等

网站核心功能得分(50)使用体验得分(50)总分(100)排名
InsCode4545901
IT屋4035755
Online Compiler and IDE4040803
online gdb4040803
godbolt4540852

上述产品各有侧重。

InsCode
优势:

  • InsCode能够在线运行整个项目这一功能是当前市面上其他产品所不具有的,是其核心竞争力所在。
  • 依托于CSDN在计算机专业学生及从业人员中的影响力,能够迅速提高知名度,提高市场占有率。

劣势:

  • 代码仓库依托于GitCode,而GitCode的用户量与公信力对标其同类产品Github有较大的差距。

IT屋
优势:

  • 集成知名It教程平台《菜鸟教程》,作为其示例代码演示的在线编译器具有较大优势。

劣势:

  • 页面不美观,单作为一款在线编译器来看的话并没有什么突出的亮点,甚至有所不足,使用体验不佳。

Online Compiler and IDE
优势:

  • 支持语言较多,有丰富的范例代码。

劣势:

  • 界面较不美观,无代码提示,用户体验不佳。

2.3 软件工程方面的建议

InsCode
建议:

  • 将InsCode集成到GitCode中,能通过GitCode仓库直接导入为InsCode项目并运行
  • 在通过Git Url导入项目时增加选择分支的功能
  • 增加对更多语言的支持,提供更多语言模板
  • 加强对社区消息的过滤

IT屋
建议:

  • 将在线编译器集成到菜鸟教程中(菜鸟教程中在线编译的代码不可编辑)
  • 优化UI设计
  • 添加代码提示功能,提高用户使用体验

Online Compiler and IDE
建议:

  • 增加范例代码
  • 优化UI设计
  • 添加代码提示功能,提高用户使用体验

2.4 BUG存在的原因分析

  我认为InsCode以及IT屋的搜索会出现上述Bug的主要原因是开发人员在设计接口时未考虑到对“/”输入的处理。

第三部分 建议和规划

3.1 市场概况

3.1.1 市场规模

  在线编译器是软件开发领域的一项重要工具,它可以帮助程序员和学生在互联网上进行编程和测试。根据市场研究机构的报告,全球在线编译器市场规模正在不断扩大,预计未来几年内将保持稳定增长。
  从IT行业从业人数来看,2011年-2020年期间,IT行业从业人数每年都在不断的增加。由2011年的344万人,增长到了2020年的705万人。其中2018年-2019年人数增加了37万人,2019年到2020年人数增加了23万人。IT行业火热,成为了比较热门的职业之一。
在这里插入图片描述

3.1.2 用户

(1)直接用户

  • 学生:在线编译器可以帮助学生更方便地进行编程实验、练习和作业,提高学习效率和质量。
  • 程序员:在线编译器可以帮助程序员在互联网上进行代码测试和调试,避免本地环境出现的问题,提高编码效率。
  • 开发人员:在线编译器可以为开发人员提供一些便利功能,如代码版本管理、团队协作等,提高开发效率和质量。

(2)潜在用户

  • 初学者和爱好者:在线编译器可以降低编程的门槛,为初学者和爱好者提供一种更加轻松的学习方式。

3.2 市场现状

(1)市面产品

  • online gdb:支持gdb在线调试、支持控制台输入、支持多种语言、支持多文件编辑。
  • wandbox:支持多语言、支持选择编译器版本、支持选择编辑器类型,例如可以选择你熟悉的vim或emacs
  • godbolt:实时查看C/C++代码的汇编代码,而不用使用gdb,objdump等工具反汇编
  • CodePen:一个代码片段分享社区,支持 HTML、CSS 和 JavaScript 的在线编辑和展示。
  • JSFiddle:一个专门针对前端开发者的在线编辑器,提供 HTML、CSS 和 JavaScript 的在线编辑和测试功能。
  • Repl.it:一个集成了多种编程语言的在线编程工具,支持 Python、JavaScript、Java、C++ 等编程语言。

(2)定位、优势与劣势
  上述产品的定位为在线编译器

优势:

  • 环境无限制:无需安装任何编程软件,不受操作系统的限制,方便用户进行编程工作。
  • 即时反馈:在线编译器可以实时编译和运行代码,用户能够及时看到代码运行结果,方便用户进行代码调试和测试。
  • 多用户协作:支持多用户同时使用,多人可以同时进行代码编辑和协作,方便团队协作和项目管理。
  • 数据安全:用户的代码和数据都储存在云端,不用担心本地数据丢失或设备损坏的情况。

劣势:

  • 离线无法使用
  • 受网络速度限制
  • 功能受限:在线编译器的功能和插件会受到一定限制

(3)关系
  上述产品中wandboxRepl.it存在竞品关系,两者功能相近,用户群体有较大重叠。

(4)领域市场所处阶段

  在线编译器领域处于成长风口阶段
  随着互联网技术的不断发展和普及,越来越多的人开始利用在线编译器进行编程和学习。在线编译器在许多方面都比传统的本地编译器更具优势,如便捷性、灵活性、协作性等等,这使得在线编译器得到了广泛的认可和使用。

3.3 市场与产品生态

(1)核心用户群

  • 程序员:作为在线编译器的主要用户,他们的学历可能涵盖本科、硕士及以上,年龄在20岁及以上,专业领域则包括计算机科学、软件工程等。他们有较强的编程技能和需求,需要进行代码的编写、调试和测试,使用在线编译器能够提高工作效率和编程质量。
  • 学生群体:包括高中生、大学生及职业教育等。随着计算机课程的推广,编程教育越来越普及,学生们需要使用在线编译器完成编程任务和作业。
  • 教育机构:他们需要提供在线编译器给学生使用。

(2)用户群体间关系
  教育机构和学生群体间存在交集,学生可能在教育机构中学习。

3.4 产品规划

3.4.1 功能拓展及NABCD分析

我会在InsCode当前功能的基础上设计添加通过导入GitCode仓库创建项目以及“各模板使用教程”功能

分析环节分析
N(Need,需求)①在使用中发现在InsCode中创建项目时会在GitCode中创建一个仓库用于存放代码,若用户想将GitCode仓库中的代码通过InsCode运行时仍需通过git url导入,导致GitCode中会出现一个重复的仓库。使用体验不佳。
②作为InsCode的最大亮点,通过模板创建项目后缺乏运行项目的基础的教程,例如在通过模板创建项目后,并没有关于“.inscode”文件作用的讲解,用户不清楚应当如何设置入口文件,影响用户上手InsCode。
A(Approach,方法)①在GitCode中添加通过InsCode运行项目的功能,同时在InsCode中添加从GitCode仓库导入项目的选项。
②在用户通过模板创建项目时增加询问用户是否需要新手引导的选项
B(Benefit,好处)①避免GitCode中出现重复不必要的仓库,方便用户对代码仓库的管理,同时使得InsCode和GitCode相互引流,构建良好用户生态。
②大大降低用户上手难度,优化新手用户体验,利于产品的推广传播。
C(Competiton,竞争)①相比于其他在线编译器,有了GitCode的支持,使得InsCode的项目有了更好的在线协作能力以及版本控制管理功能。
②通过完善新手指引功能,能够更好发挥其在线运行项目的亮点,具有极高的竞争力。
D(Delivery,推广)通过CSDN在国内的强大影响力,通过举办比赛或开展集训营等方式,推广InsCode的使用。

3.4.2 角色配置

产品1名,前端2名,后端2名,测试1名

3.4.3 详细规划

周数开发阶段目标任务
1需求分析确定应用需求和功能客户需求调研、功能设计
2界面设计设计应用界面界面设计、交互设计
3数据库设计设计应用数据库数据库设计、数据模型建立
4技术选型选定开发技术和工具技术选型、环境搭建
5、6前端开发开发前端页面页面布局、功能实现
7、8后端开发开发后端接口接口设计、数据库连接
9测试进行单元测试和集成测试测试用例编写、测试环境搭建
10前端优化优化前端性能代码重构、性能测试
11后端优化优化后端性能代码重构、性能测试
12安全审查审查应用的安全性安全漏洞检查、修复
13问题修复修复应用问题问题排查、代码修复
14部署上线部署应用到线上环境线上环境搭建、应用部署
15应用测试进行线上测试线上测试用例编写、测试环境搭建
16交付验收交付应用并验收交付应用、验收测试结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值