这个作业属于哪个课程 | 2023年福大-软件工程实践-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践——软件评测作业 |
这个作业的目标 | 对于软件的调研、测评、分析、建议与规划 |
其他参考文献 | 观研报告网 |
其他参考文献 | 中华人民共和国工业和信息化部 |
文章目录
第一部分 调研,评测
InsCode
1.1体验
介绍和使用软件: InsCode 的研发初衷是因为研发者收集了 30 天内在 CSDN 上的搜索热词,光是“安装”这个词就有很多人搜索。研发者自身在 AlphaGo 时代也有过这样的经历,当时研发者找了七篇相关的文章,花费很长时间才解决了安装Python环境的问题。不过现在有了 InsCode,就不再需要麻烦地安装一些东西,它可以缩小每个人从想法到产品实现之间的距离,让写代码像写文章一样简单。
在登录成功后跳转到InsCode的主界面,在主页的左边就是InsCode的主要功能,其中最重要的是“创建项目”,其他还有主页,我的项目,模板中心,社区,设置等功能。主页的中间随点击不同的功能而呈现不同的内容。整体的界面十分整洁,每个功能一目了然。
创建项目功能:点击创建项目按钮后会弹出创建项目的界面,包含项目的基本信息,标题,描述,项目标识,可见性,和模板。在选择模板的输入框中可以选择不同的模板进行创建。除了从零开始创建项目外,也可以从Git URL导入。在创建之后,就会在对应的 gitcode 中创建一个对应的项目,而这之后的操作都是基于这个项目的。
我们从平台提供的模板导入创建一个新的项目,在项目的左边是项目目前的包含的文件,当点击Run按钮后,项目就会执行,如果是web项目就会自动在页面右侧打开网页浏览器,如果是终端项目,右侧就会自动打开终端。我们可以在界面上直接对代码修改,然后运行程序,而修改的内容会自动提交到对应在gitcode的项目中。
在我的项目中我们可以发布自己的项目,这样平台上的其他用户就能够看见你的项目。
在主页,模板中心,社区中我么可以看到其他用户的发布的模板和项目,其中主页的是以模板发布的时间排序,也有热门模板,在模板中心有进行了简单分类,在社区中也有热门标签提供寻找。点击想要的项目后我们可以fork到自己的仓库,可以run在界面中运行。在相关项目中也有用户的留言。
优点:
· 线上项目的开发,省去编辑器的繁琐安装过程
· gitcode仓库管理项目节省电脑数据存储空间
· 软件界面整洁,功能定位清晰
· CSDN中活跃的用户较多,每天有许多有趣实用的模板和项目发布
· 其他用户的项目也提供线上运行的功能,可以快速体验,不需要下载
缺点:
·项目的发布自由,导致一些无内容的作品发布
改进:发布作品和模板是每个用户的自由和权力,大概无法做到禁止用户发布模板和作品,但是或许我们在热门标签外可以添加精选内容模块,其中作品或模板由专业技术人员挑选。
·模板和作品更新后社区的重复显示,每当一个模板或作品更新内容后,在社区的中会出现更新后的新发布,但是这两个发布信息都指向同一个模板或作品。
改进:去除更新前的通过模板或作品的发布信息,只保留最新模板或作品的信息。
采访另一个用户:
软件工程专业学生,是Inscode的潜在用户。
Q1:你之前使用过Inscode吗?
A1:没有
Q2:使用后能够满足你的基本需求吗?
A2:有吧
Q3:使用软件的过程中会遇到的问题和亮点吗?
A3:界面清晰,能够在线运行其他作品。不清楚如何创建简单的程序,例如Java
Q4:你觉得需要改进的地方有哪些?
A4:希望可以多些其他语言
1.2BUG
测试环境
运行浏览器:Microsoft Edge
版本 111.0.1661.62 (正式版本) (64 位)
运行操作系统:Windows 11
严重程度(从低到高) | 详细描述 |
---|---|
★ | 不仔细观察,无法发现,基本不影响使用 |
★★ | 轻度系统故障,会影响使用,但是可以通过其他渠道使用功能 |
★★★ | 中度系统故障,导致该功能完全无法使用 |
★★★★ | 严重系统故障,容易导致用户信息泄露 |
★★★★★ | 致命性系统故障,可能会造成网页瘫痪 |
1.3结论
Inscode是最近新开发的在线编译软件,虽然现在的用户使用人数并不是很多,但是相关人员也在一直投入资金和人力来推广和宣传这个软件。Inscode功能定位清晰,有与传统编译器相似的编译功能,用户能够快速上手。有良好的评论功能,方便用户之间的交流。
总体评价:十分推荐。
IT屋
2.1体验
介绍和使用软件: IT屋-程序员软件开发技术分享社区 是一个面向程序员、计算机爱好者技术分享社区,为程序员、计算机爱好者提供百万权威知识库检索、在线开发工具、技术教程库、视频教程下载等功能,以便快速定位并解决问题,提升开发技术水平和提高工作效率。
进入主页面后可以看见导航栏,明白了这个软件的功能有问答库,菜鸟教程和在线工具。
主页面的显示内容是对导航栏功能的部分展开,其中的菜鸟教程包含分类导航栏。
主页面除菜鸟教程外,还有问答库的最新问答,按照问题进行了不同的分类,在每个分类框中用问题标题显示。
在导航栏中要进入问答库必须从下拉框中选择问题所在的分类才能进入相关的问答库。
在问题库功能中和首页的最新问答模块相似,添加了部分问题描述和发表日期。点击想要的问答内容后进入相关的问答界面。问题界面一般具有相同的格式,问题描述+推荐答案
整体的内容精炼,没有过多的内容。
菜鸟教程功能:在首部有各种分类标签,通过点击标签能够进入不同分类界面,在底下有各标签分类的部分内容。
进入想要的菜鸟教程后,在左侧模块有各教学单元的分类,可以点击单元标签能够到达对应 的教学单元。
最后的功能是在线工具,通过导航栏进入在线工具后的界面与通过导航栏进入菜鸟教程后的界面相似,这里就不在进行过多的介绍,直接进入其中一个在线工具,这里显示的Java在线测试。工具界面主要有三部分,代码输入,工具选择,内容输出。
代码输入部分可以填入相关的代码,也可以进行简单的修改,因为是文本内容。
下图是输出内容。
优点
·含有大量的问答库内容,教程内容,和在线工具能够满足大部分的需求
·界面整体工整,各部分都有进行相应的类,给用户提供了很大的便利
缺点
·菜鸟教程给个教程的图标以灰白色为主基调,对于并没有具体想要学习课程的用户来说可能会降低用户学习的热情。
改进:通过观察有些图标明明有具体的色调可是依然将它变为灰白色,可能是为了整体颜色的统一,但是我仍希望能够保持图标的多样性,考虑到有的课程本身并没有图标,可以采用用将课程名做成简单图标。
·在问答库的具体问答界面中,右侧有相应分类的其他问答,但是各问答都是由标题构成,颜色都为绿色,且之间并没有明确的分隔,导致阅读困难。
改进:第一种方法将相邻问答用不同字体颜色或背景颜色区分;第二种方法:相邻问答之间包含空行或明显分割线。
采访另一个用户:
软件工程专业学生,是It屋的潜在用户。
Q1:你之前使用过It屋吗?
A1:没有,但是看到过菜鸟课程
Q2:使用后能够满足你的基本需求吗?
A2:有
Q3:使用软件的过程中会遇到的问题和亮点吗?
A3:有丰富的课程方便学习
Q4:你觉得需要改进的地方有哪些?
A4:希望可以优化下界面外观
2.2BUG
测试环境
运行浏览器:Microsoft Edge
版本 111.0.1661.62 (正式版本) (64 位)
运行操作系统:Windows 11
严重程度(从低到高) | 详细描述 |
---|---|
★ | 不仔细观察,无法发现,基本不影响使用 |
★★ | 轻度系统故障,会影响使用,但是可以通过其他渠道使用功能 |
★★★ | 中度系统故障,导致该功能完全无法使用 |
★★★★ | 严重系统故障,容易导致用户信息泄露 |
★★★★★ | 致命性系统故障,可能会造成网页瘫痪 |
bug1 - 搜索框多种问题
可复现性: 100%
Bug具体情况描述
搜索框内不区分字母大小写,小写字母可以查询到对应的大小写内容,但是大写字母并不能够查询得到,并且搜索框不支持中文搜索,在具体的问答中它会自动填入搜索框,可见软件原本打算实现完备的搜索功能。
Bug分析
BUG等级1: L4
原因分析: 如果搜索词中含有大写字母和中文,会被过滤掉。
可能导致的后果: 具体问答和课程均无法查找,导致用户体验快速下降。
bug的改进:重新设计搜索算法,顾及各种情况并做出限制
2.3结论
对于新手入门和学习来说,IT屋可以说是一个非常友好的网站,其排版清晰简洁,我点击进入问答界面,可以非常一目了然的上手这个功能,对于模块、频道的划分也是比较细致的,但是无法搜索具体问答导致问答库几乎作废,我们不可能从大致分类中找到自己想要的问答。
总体评价:除问答库库以外都十分推荐。
Ideone
3.1体验
介绍和使用软件:相信大家一定有遇到过电脑上没有ide软件,无法愉快的敲代码的情况,曾经的我也是这样,到了现在,有一个非常良心的网站,能完美解决我们的问题,他就是——ideone
这个网站可谓是“麻雀虽小,五脏俱全”,你看他表面是一个平平无奇,十分简陋,但是他却支持四十多种语言!可以说是我们用得到的常用语言,他都是有的!
写代码只需要点击左上角的“newcode”就可以开始愉快的编辑代码了
进入主页面后就是idone的主要功能–在线代码编辑器,我们可以在中间输入框中填入自己的代码或模板或范例。在输入框的下方有一排功能按钮,首先第一个按钮可以选择代码的编译语言,有先将语言按流行与否进行简单的分类,后又按字母表顺序排列。方便用户选择需要的编辑语言,总共支持四十种以上的语言,可以说是十分的强大。其他按钮分别是特殊输入,代码可见度。
点击“run”按钮后就可以运行输入框中的代码,如果代码中存在语法错误,在下面的输入框中会提示相关的错误信息,方便用户进行修改。如果代码没有错误,将在“output”和最下方“stdout”的后面显示代码结果,如果存在输入语句必须提前在“input”框中输入将要输入的代码。点击“edit”按钮后可再次编辑代码。
除主要的在线编译器功能外,ideone还有其他的辅助功能,首先是范例功能,在这个界面中ideone提供了所有支持语言的一些基本范例,用户可以参考或复制代码进行测试。
还有最近的代码。在这里你可以找到一些公共可执行的代码。每个文档之前又对应的语言分类。
优点:
· 支持大多数语言,为用户提供强大的支持
· 界面简洁,方便用户快速上手使用
缺点:
· 注册用户有一些麻烦,可能要用google captcha之类的业务,对国内用户不方便
· 语言风格不统一,大部分是使用英语但是不清楚为什么有部分是繁体中文
改进:统一使用同一种语言或者添加界面语言选择菜单
· 最近的代码“recent code”中并没有表明这些代码的作用和功能,只有点击进去靠自己阅读才能了解
改进:在显示界面中添加代码的简单介绍,让用户快速了解代码的作用
· recent code中没有进行分类,让用户需要花费大量时间进行查找
改进:添加关键字搜索框或按照语言进行分类。这里如果已经完善上一个缺点,那么推荐使用搜索框进行搜索
采访另一个用户:
软件工程专业学生,是Ideone的潜在用户。
Q1:你之前使用过Ideone吗?
A1:没有
Q2:使用后能够满足你的基本需求吗?
A2:有
Q3:使用软件的过程中会遇到的问题和亮点吗?
A3:竟然支持那么多语言
Q4:你觉得需要改进的地方有哪些?
A4:提交的代码很多,但是不知道有什么用
3.2BUG
测试环境
运行浏览器:Microsoft Edge
版本 111.0.1661.62 (正式版本) (64 位)
运行操作系统:Windows 11
严重程度(从低到高) | 详细描述 |
---|---|
★ | 不仔细观察,无法发现,基本不影响使用 |
★★ | 轻度系统故障,会影响使用,但是可以通过其他渠道使用功能 |
★★★ | 中度系统故障,导致该功能完全无法使用 |
★★★★ | 严重系统故障,容易导致用户信息泄露 |
★★★★★ | 致命性系统故障,可能会造成网页瘫痪 |
bug1 - 多条输入命令报错
可复现性: 100%
Bug具体情况描述:当代码中存在多条输入指令时报错
Bug分析
BUG等级1: L3
原因分析: 如果搜索词中含有大写字母和中文,会被过滤掉。
可能导致的后果: 部分代码运行时会报错,无法满足用户需求
bug的改进:对input框的不同行输入进行分割,依次判断输入内容
3.3结论
对比前两款软件,ideone的功能简单,但强大。如果只是为了编译的话还是值得一试的
总体评价:好,不错
第二部分 分析
开发时间估计
2.1.1 开发背景假设
首先做出以下的必要假设
团队人数:6人
每日的投入时间:时间充沛/且有一定的效率。
团队协作默契度:默契程度较高,分工明确。
成员的专业背景:CS相关专业毕业生,基础较为扎实,对于前后端知识都有一定的了解,并且至少有其擅长的一门方向:PM/后端/前端/测试/数据库等。有一个UI大佬专业技术上的支持(算做第七人)。团队个人平均能力水平:中等。
项目开发流程 | 天数 |
---|---|
需求分析与设计 | 15 |
原型设计 | 30 |
程序编码 | 90 |
软件测试 | 30 |
运行维护 | 15 |
总计 | 180 |
同类产品对比排名
对于一个产品的评价,我认为主要分为是否满足用户需求、是否高效稳定bug少、UI精美、使用人性化、 用户量、附加功能这五个方面来评定。
满足用户需求:满足用户需求是摆在第一位的,软件的开发是以用户的需求为出发点,并以用户的需求来完善和改进软件。能否满足用户的基本需求首先保证了最低限度的用户满意度。
高效、稳定、bug少:产品的响应速度是否可以高效率的得到用户想要的结果,也是增加用户黏性的一个需要考虑的方面。
UI精美、使用是否人性化:精美的视觉感受,良好的用户交互体验,可以很大程度上的加快用户了解这个产品的速度,降低用户误操作的可能性。精美的ui界面也能提高用户的体验度,舒适度,进一步提高用户的保留率。
用户量:用户量是衡量一个问答产品的重要指标,因为问答产品也是一个追求时效性的产品,即使你的功能做的再完美,但是没有用户,那么这个产品也是失败的。
附加功能;除了主要的功能外,软件也要添加额外的附加功能,用以显示自己独特的优势,来和其他同类软件进行区别
功能 | 排名 |
---|---|
满足用户需求 | Ideone > IT屋 > InsCode |
高效、稳定、bug少 | InsCode > Ideone> IT屋 |
UI精美、使用是否人性化 | InsCode > IT屋 > Ideone |
用户量 | IT屋,Ideone > InsCode |
附加功能 | IT屋 > InsCode > Ideone |
软件工程方面的建议
对于Inscode:
现在Inscode的可执行模板还比较不完善,首先因该完善各种流行语言,之后再补充其他语言。
对于IT屋,Ideone::对于这两个软件都希望能够完善代码编辑时的提示功能,提供代码运行时的可交互面板。
BUG存在的原因分析
产品名称 | BUG内容 | 原因分析 |
---|---|---|
InsCode | ||
IT屋 | 搜索框 | 1、开发人员粗心大意,观察问答界面的搜索框的自动填入,可以发现开发人员原本打算实现相关功能 |
ideone | 多条输入语句报错 | 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试。测试没有满足特殊情况 |
第三部分 建议和规划
市场概况
目前软件业务保持较快增长,软件的需求不断扩大。
首先在线软件编译器的主要用户是软件的开发人员,那么所有的软件开发人员都有可能成为在线软件编辑器的使用用户。
市场现状
市场上的产品:
以下是我搜集的一些比较典型的问答网站以及简介:
网站名称 | 简介 |
---|---|
InsCode | 让你的灵感快速落地!InsCode 是一个无需安装的编程、协作和分享社区。 |
IT屋 | IT屋-程序员软件开发技术分享社区 是一个面向程序员、计算机爱好者技术分享社区,为程序员、计算机爱好者提供百万权威知识库检索、在线开发工具、技术教程库、视频教程下载等 |
ideone | Ideone,一款在线的编译器和调试工具,它可以让你来编译,运行,测试和代码,支持多达40多个编程语言,包括 C++, Java, JavaScript, Perl, PHP, Python and Ruby。 |
Lightly | 新一代的HTML+CSS+JavaScript IDE支持HTML项目的开发,在线编辑Web源码,并预览页面效果;支持客户端 & Cloud IDE 两种模式,打开即用 |
TitanIDE | TitanIDE站在无数巨人的肩膀上,补齐全云端开发最后一公里,力图在“安全、高效、体验”这三个维度取得平衡。最少只需一台虚拟机,十分钟即可安装好,开启您的全云端开发之旅! |
产品定位以及优势/劣势:
上述产品的基本定位是为广大IT人员提供在线代码编辑器,为IT人员省去安装各种代码编辑器的繁琐步骤,使IT人员能够立刻进行代码的编辑,获得更多的时间。
产品名称 | 优势 | 劣势 |
---|---|---|
InsCode | 支持代码内容的提示 | 新建网站知名度低 |
IT屋 | 附加内容多 | 检索失效 |
ideone | 支持语言多 | 无分类 |
Lightly | 自动构建开发环境 | |
TitanIDE | 远程协同开发 | 速度受到限制 |
竞争关系:
InsCode,IT屋,ideone,Lightly,TitanIDE都主打在线代码编程是同一类竞争对手。
产品规划
功能以及NABCD分
功能描述:在模板和作品界面添加bug反馈,bug修复建议,bug修复情况。来帮助发布者完善自己的作品,提高作品的质量。
分析 | |
---|---|
N(Need,需求) | 在用户发布模板或者作后其他的用户可能会进行下载,下载运行后可能会发现一些bug,但是发布者本身并未发现 |
A(Approach,做法) | 在模板和作品界面的评论区中开设类似的bug反馈评论区,规定发布评论的格式bug描述和修复建议,修复情况。其中修复情况有发布者修改 |
B(Benefit,好处) | 大量的用户下载,提高bug发现率,提高作品的质量 |
C(Competitors,竞争) | 暂时无具体开拓bug反馈,可能存在评论发表,但发布者有可能主页不到 |
D(Delivery,推广) | 前期需要和企业协商沟通协调一致,一方面是在自己的网站上进行新功能的宣传,另一方面借助企业的平台,将自己的产品宣传出去。 |
角色配置
美工:1人
前端开发:2人
后端开发:2人
产品测试:1人
16周的详细计划
周数 | 规划 |
---|---|
1-2 | 集体开会,制定需求分析,学习相关技术,制定原型图 |
3-4 | 各个岗位人员确定使用的技术框架并对开发环境进行熟悉,美工开始制作原型图和UI设计 |
5-9 | 前端工程师开始工作,与美工组前后进行 算法工程师开始研究语法更换的算法 后端工程师开始设计数据库,使其至少满足第三范式要求 |
10 | 前后端接口的连接,测试人员进行软件测试 |
11-12 | 开发组根据测试结果不断迭代优化产品,算法工程师也继续优化算法,研究更加高效率进行语法更换的方法 |
13 | 软件测试 |
14 | 迭代优化 |
15 | 测试,确保软件没有bug后,添加新模块功能,测试版上线 |
16 | 正式发布上线 |
参考文献: