这个作业属于哪个课程 | 2023 软件工程实践 W 班 |
---|---|
这个作业要求在哪里 | 软件工程实践——软件评测作业 |
这个作业的目标 | 案例分析,评测,思辨,总结 |
其他参考文献 | 邹欣老师的案例分析作业 |
文章目录
前言
Bug量化标准
星级 | 描述 |
---|---|
☆☆☆☆ | 导致系统奔溃,服务器宕机,数据库被破坏,致命性的安全漏洞,基础功能严重错误 |
☆☆☆ | 主要体现基础功能逻辑出错,数据不正常,页面超时。服务器鉴权漏洞或重要数据泄露 |
☆☆ | 重复多余的功能,页面排版混乱提示信息不全,用户体验差,优化方案 |
☆ | 凡以上未提及但是不影响正常使用的情形 |
第一部分 调研,评测
1、InsCode
1.1 体验
介绍:
InsCode 是一个无需安装的编程、协作和分享社区,给我们提供了一个在线运行项目代码的平台,无需搭建语言环境就可以运行代码。
网站首页&&个人首页:
网站首页:
个人首页:
评价:
- 网站页面风格是笔者喜欢的类型,浓浓的科技元素很戳我。点击导航栏右上方的【注册/登录】按钮或是页面中的任一个【创建项目】按钮后,将会跳转到的InsCode的个人首页,很不错。
- 个人首页这个界面外观设计得中规中矩,还是比较简洁美观的。网页可以一直下滑读取内容,就是没有回到顶部的按钮。研究了一会,发现要点击左侧导航栏的【主页】才能回到顶部
改进建议:
对于个人首页界面,可以在页面右下角加上一个【回到顶部】按钮。
1.2 BUG
Bug描述:
个人主页修改昵称或头像社区无法同步/个人主页与社区昵称或头像不一致
下图为 InsCode 个人主页(用户登录后的页面),可以看到笔者的昵称为yuyuyuting。
当笔者点击左边侧栏的博客后,跳转到 InsCode 的社区页面。但是,当笔者点击右上角的头像后发现,笔者的昵称是hytcode。
笔者随便打开一篇文章,进行评论,发现显示的还是一个月前的昵称hytcode。
笔者又打开csdn网站,进入个人中心,看到昵称是yuyuyuting。奇怪的是,笔者明明在一个月前就已经把昵称从hytcode修改成了yuyuyuting。当时修改之后特意去 csdn 和 gitcode 看了,昵称都变成了yuyuyuting,按理说数据库应该更新了,但现在InsCode社区显示的笔者昵称居然是之前的,而且和InsCode个人主页上显示的昵称不一致。
- Bug发生时的测试环境:
Windows 10 家庭中文版
浏览器版本 Microsoft Edge 111.0.1661.62 (正式版本) (64 位) - Bug的可复现性及具体复现步骤:
• 可复现性:必然发生。
• 复现步骤:
笔者多次尝试将头像或昵称进行修改,网站提示更新成功,但InsCode社区均未能同步。
将这个问题和舍友讨论之后,舍友将头像尝试着将头像进行了更改。同样,InsCode社区未能同步。
- Bug分析:
• 可能原因:
前端接口转发错误
后端是否有考虑到用户更新信息时同步到社区
• 严重性:☆☆☆
1.3 结论
类别 | 描述 | 评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分) |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 9 |
细节 | 有什么为用户考虑的细节? | 8 |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | 8 |
辅助功能 | 一些辅助功能如皮肤等 | 6 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 9 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 8 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 8 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 9 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 8 |
效用性 | 问答的质量,是否存在大量灌水回答/提问,平均回复率和回复速度 | 7 |
总分 | 满分100分 | 80 |
我对InsCode的评价是推荐。
2、IT屋
2.1 体验
介绍:
IT屋是一个程序员软件开发技术分享社区,里面有问答社区和很多免费的教程,还提供了在线编译执行代码的平台。
首页:
评价:
- 排版有点丑,虽然功能按钮相当直观
- 热门标签要滑到网页最底部才能看到,用户体验有点差
改进建议:
- 将热门标签栏目放到网页右侧
- 多收录一些IT相关内容
在线工具页面:
评价:
- 打开这个页面首先看到的居然是大篇幅的广告,而且网页底部也是大块的广告,用户体验相当差。
- 点击导航栏右侧的网站logo——IT1352,会跳转到网站首页,个人认为这个跳转功能有些多余了。
改进建议:
删去多余的广告和网站logo的跳转事件。
在线工具的使用:
对 在线工具 页面的 HTML/CSS/JS工具 进行了使用,分别使用了网站提供的默认模板和笔者自己的一个HTML/CSS/JS小项目。
-
默认模板
-
个人项目
评价:
- 编译运行速度不错
- 广告占用篇幅过多,在使用时会时不时弹出广告
- 默认模板旁的搜索框没有提示
- 点击执行后,不能自动跳转到运行成功后的画面,需要用户自己下拉网页
- 只能执行一次,如果想再次执行,需要刷新网页,但刷新网页的同时,代码也会消失
改进建议:
- 删去多余广告【当然,网站开发人员也要吃饭,要求开发人员为爱发电有点强人所难了,删去(不是),建议给页面上方的广告栏的隐藏按钮再添加一个事件,用户点击隐藏按钮后网页内容能自动填充原先的广告区域】
- 点击执行后,自动跳转到运行成功后的画面
- 使用缓存机制,刷新网页的同时代码就不会消失
- 点击搜索框后加上提示,如CSDN的做法,用户点击搜索框后会显示隐藏的下拉表单,里面有搜索发现和搜索历史。可以加上一个隐藏下拉表单,里面放一些常用的CSS/JS模板链接
CSDN搜索框
关闭广告后广告栏还在原来的位置
2.2 BUG
Bug描述:
搜索框只能搜索小写字母,中文,大写字母等均不能搜索
笔者在搜索框输入java,可以成功搜索。之后输入JAVA,提示“未找到相关资源"。搜索词条中含有中文也无法成功搜索,即使是从网站教程上复制粘贴过来的词条也不行。
情形1:
情形2:
- Bug发生时的测试环境:
Windows 10 家庭中文版
浏览器版本 Microsoft Edge 111.0.1661.62 (正式版本) (64 位) - Bug的可复现性及具体复现步骤:
• 可复现性:必然发生。
• 复现步骤:
情形1:
情形2:
- Bug分析:
• 可能原因:
搜索框代码逻辑错误
• 严重性:☆☆☆☆☆
2.3 结论
类别 | 描述 | 评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分) |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 7 |
细节 | 有什么为用户考虑的细节? | 6 |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | -3 |
辅助功能 | 一些辅助功能如皮肤等 | 4 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 7 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 9 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 8 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 6 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 6 |
效用性 | 问答的质量,是否存在大量灌水回答/提问,平均回复率和回复速度 | 5 |
总分 | 满分100分 | 55 |
我对IT屋的评价是不推荐。
3、Online compiler and IDE
3.1 体验
介绍:
引用官网的介绍——Ideone是一个在线编译器和调试工具,允许您编译源代码并以60多种编程语言在线执行。
samples页面:
这个页面提供了多种语言的小项目,笔者点击了Python,跳转到了Python项目的页面,点击fork后,这个项目自动添加到了我的项目里(my codes页面可以看到)。笔者又测试了download功能,点击download后,项目文件成功下载。总的来说,fork和download这两个功能确实很方便。
评价:
- 编译运行速度不错
- 包含的语言技术挺全面的
- 网页上方的 go to : c c++ python … 这个模块,我刚开始以为只是一段普通的文本,研究了一会儿(胡乱点了一通后)才知道是一个个跳转链接
- 排版有点丑陋,而且项目较多,往下滑的时候go to : c c++ python … 这个模块会不见,想查看其他语言的项目得往上滑到顶部
改进建议:
- 页面右下角可以加上一个回到顶部按钮
- go to : c c++ python … 这个模块制作成标签云,放在网页右侧(自己之前做的论坛网站就是这个设计,还是很喜欢这个样式,如下图)
其他页面:
recent codes 页面 :
my account 页面:
评价:
- 创建账号需要搭建外网VPN,笔者翻墙搞了半天才成功创建账号
- 下滑网页时导航栏会消失
- 没有返回顶部按钮,用户下拉网页多次后,想要回到顶部需要自己拖动右侧滚动条
改进建议:
- 页面右下角可以加上一个回到顶部按钮
- 将导航栏固定在顶部(吸顶效果),不随页面滑动而消失
3.2 BUG
Bug描述:
my codes 页面列表项无法跳转
笔者想查看某个项目,点击了半天都无法跳转到项目详细页面,最后是点击项目的日期才跳转成功的。
-
Bug发生时的测试环境:
Windows 10 家庭中文版
浏览器版本 Microsoft Edge 111.0.1661.62 (正式版本) (64 位) -
Bug的可复现性及具体复现步骤:
• 可复现性:必然发生。
• 复现步骤:
-
Bug分析:
• 可能原因:
没有给列表项添加跳转事件
• 严重性:☆☆☆
3.3 结论
类别 | 描述 | 评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分) |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 7 |
细节 | 有什么为用户考虑的细节? | 6 |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | 6 |
辅助功能 | 一些辅助功能如皮肤等 | 6 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 7 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 9 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 8 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 6 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 6 |
效用性 | 问答的质量,是否存在大量灌水回答/提问,平均回复率和回复速度 | 5 |
总分 | 满分100分 | 64 |
我对ideone(Online compiler and IDE)的评价是一般。
第二部分 分析
1、开发时间估计
- 假设开发团队人数为7人左右,并且都为计算机相关专业学生,人员分配和完成此软件的所有功能所估计的开发时间如下:
项目人员分配 | 所需人数 |
---|---|
原型设计 | 1人 |
UI设计 | 1人 |
前端设计 | 1人 |
后端设计 | 2人 |
数据库设计 | 1人 |
测试 | 2人 |
项目开发流程 | 所需时间 |
---|---|
需求分析与设计 | 7天 |
原型设计 | 10天 |
数据库设计 | 10天 |
程序编码 | 120天 |
软件测试 | 15天 |
运行维护 | 10天 |
总计 | 172天 |
2、同类产品对比排名
下表中Ideone指Online compiler and IDE
维度 | 排名状况 |
---|---|
项目编译运行速度 | InsCode> IT屋 >Ideone |
网站访问速度 | IT屋 ≈ InsCode> Ideone |
页面跳转速度 | InsCode> IT屋 ≈Ideone |
网页排版 | InsCode> IT屋 ≈Ideone |
用户体验 | InsCode> IT屋 ≈Ideone |
包含的语言/IT技术种类 | IT屋 >InsCode> Ideone |
问答质量 | InsCode> IT屋 ≈Ideone |
综合排名
产品 | 排名 |
---|---|
InsCode | 1 |
Ideone | 2 |
IT屋 | 3 |
3、软件工程方面的建议
- 对于InsCode:
- 可以添加一个新手导航,毕竟功能挺多,用户上手有点难。
- 对于IT屋:
正如网站logo所说, IT屋-程序员软件开发技术分享社区。既然产品定位是社区,却连问答栏目都没有,实在没有社区氛围,让人不禁疑惑是不是产品定位出了问题。建议加入用户登录,发帖,评论等功能,打造一个充满活力的社区氛围。 - 对于Ideone:
Ideone产品定位是一个在线编译器和调试工具,语言包含的挺全面的。建议页面排版修改一下。
4、BUG存在的原因分析
- InsCode:
- 开发人员忽略了社区和个人主页的信息同步功能或是接口设计错误
- 未进行充分测试就上线产品,以至于未发现bug
- IT屋:
- 搜索框的代码逻辑有误,开发过程中未考虑到中文,大写字母等情况
- 未对一些边界情况进行测试就上线产品
- 产品疏于维护
- Ideone:
- 开发人员忽略了列表项的跳转功能,只给日期添加跳转功能这个设计确实拉跨。
- 未进行充分测试就上线产品,以至于未发现bug
- 产品疏于维护
第三部分 建议和规划
1、市场概况
- Q1:首先市场有多大?
目前来说,IT行业在国内还是挺热门的,作为一个在线编译代码网站,在IT大热的形势下,产品前景广阔。
- Q2:其次直接的用户有多少?潜在的用户又有多少?
直接用户:现在从事it行业的人、it专业相关的大学生
潜在用户:其他专业的大学生,转行到IT行业的人,对编程感兴趣的初高中生
2、市场现状
- Q1:目前市场上有什么样的产品了?
目前市场上已有的产品有:InsCode、IT屋、Ideone
-
Q2:上述产品的定位、优势与劣势在哪里?
InsCode:
劣势在于用户难上手,优势在于拥有csdn大规模的用户基数。IT屋:
劣势在于搜索框实现逻辑有误,严重影响使用,优势在于简单易上手。Ideone:
劣势在于用户难上手,外国网站访问速度慢,优势在于小项目挺多,适合IT入门练手学习。 -
Q3:上述产品之间呈现什么样的关系,哪些为竞品关系?以及竞争中的各方态势如何?
- 我认为这三个产品主要是竞争关系,但是他们之间有重合的部分(都具有在线编译功能,无需配置项目环境),也有相对不是那么重合的地方(InsCode有问答社区功能),其各自的侧重点还是略微有点区别。但是总体还是呈现竞争关系。
- 目前我认为InsCode在这3个产品中最好。
3、市场与产品生态
- Q1:这个产品的核心用户群是什么样的人?典型用户是什么样的?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
核心的用户人群:在企业工作的程序员、IT相关专业的学生、转行人员
典型用户:
性别 | 男性 |
---|---|
学历 | 本科及以上学历 |
行业 | 从事It相关的行业 |
年龄 | 20-28岁 |
收入 | 月薪10000+ |
表面需求 | 在线编辑运行项目、发布问题 |
潜在需求 | 与行业大佬交流、学习大佬的开源项目、提升技术 |
性别 | 女性 |
---|---|
学历 | 本科及以上学历 |
行业 | 从事It相关的行业 |
年龄 | 20-28岁 |
收入 | 月薪7k+ |
表面需求 | 在线编辑运行项目、发布问题 |
潜在需求 | 与行业大佬交流、提升技术 |
- Q2:产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性?
我认为产品的用户群体之间存在一定的关系,他们之间都是有一些重合的特征,比如说都对计算机某模块技术较感兴趣,可以利用其相互作用二次构成特定用户生态。
这几个产品都有一个共同的地方:在线编译代码。每个产品的侧重点不同,将这些产品进行二次构成,相信将会打造出一个很好的在线代码编译平台和充满活力的交流社区。
- Q3:产品的子产品,以及其他相关产品之间是否存在一定的关系?是否有利用各个产品特性之间的相互关系二次构成产品生态的可能性?
以InsCode为例,它并不仅仅只有在线编译功能,他还有一些开源项目、社区、博客功能,如果在线编译功能做的好的话,是可以增加用户使用整个产品的可能性,进而起来一个子产品之间引流的关系。
4、产品规划
- Q1:你要在当前软件的基础上设计什么样的新功能?
对于InsCode流量较小的情形,我建议在社区中加入一个打赏机制,对于好的作品,用户可以进行打赏。 - Q2:为何要做这个功能,而不是其他功能?
CSDN就有这个打赏机制,个人认为这个功能有利于提高用户依赖性。 - Q3:为什么用户会用你的产品/功能?你的创新点在哪里?可以用NABCD分析。
NABCD分类 | 具体分析 |
---|---|
Need (需求) | 用户发表博客/文章,希望能获取一定收入 |
Approach (做法) | 在现有的博客评论模块加上打赏按钮 |
Benefit (好处) | 利于增加用户黏性,提升用户发文的积极性 |
Compatitors (竞争) | 现有的在线编译运行代码网站,它们提供的产品和我们在某种程度上类似 |
Delivery (推广) | 继承平台现有用户,设置新用户激励,吸引新用户,网站投放广告 |
- Q4:如果你是项目经理,可以招聘6个人,并且有4个月的时间,你认为应该如何配置角色(开发,测试,美工等等) 才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
角色 | 人数 |
---|---|
前端设计 | 1人 |
后端设计 | 2人 |
数据库设计 | 1人 |
测试 | 2人 |
- Q5:请为你的团队设计16个周期每周的详细规划。
周数 | 任务 |
---|---|
1 | 需求分析 |
2 | 原型设计 |
3 | 数据库设计 |
4-8 | 编码开发 |
10 | 测试 |
11-12 | 修改测试问题、性能优化 |
13 | 内测征收用户意见 |
14-15 | 细化用户意见,取可取修改 |
16 | 发布正式版本 |