这个作业属于哪个课程 | 2023年福大-软件工程实践-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践——软件测评作业 |
这个作业的目标 | 1、完成软件调研评测 2、软件分析 3、针对软件提出建议和规划 |
其他参考文献 | 软件工程 案例分析作业、软件分析与用户需求调查 |
1 BUG可量化的指标
严重程度(从低到高) | 详细描述 |
---|---|
☆ | 轻度影响用户体验,但基本不影响功能的使用 |
☆☆ | 中度影响用户体验,会影响功能的使用但可以通过别的地方使用该功能 |
☆☆☆ | 严重影响用户体验,功能完全无法使用 |
2 InsCode
2.1 基本功能介绍和使用
功能描述:inscode是一个在线的编程学习平台,提供了多种编程语言的编译器和代码编辑器,支持编写、运行和调试代码。该平台也提供了多种在线教程和示例代码,帮助用户学习编程语言和算法。此外,inscode还提供了社交功能,允许用户互相交流和分享代码。
代码模板:
社交功能:
2.2 优点
1)inscode是一个在线编译器网站,用户无需安装任何的编译环境,即可实现项目的编译
2)inscode为用户提供了不同编程语言的模板,让用户可以通过模板学习编程语言和算法。
3)inscode允许用户互相交流和分享代码,提供了社交功能,方便用户学习和交流。
4)inscode是国内网站、纯中文界面,有利于英语不好的编程人员
2.3 BUG
- 测试环境:操作系统:Windows 10+浏览器:Chrome 111.0.5563.147
2.3.1 对于项目创建的bug
可复现性:100%必然发生
前言:在inscode中想要创建一个项目可以通过两种方式进行创建,一种是选择合适的模板,另一种是从gitcode中调入。例如:我想要创建一个java项目,此时我有两种选择,一种是选择模板进行创建,另一种就是从我的或者其他人的gitcode中进行导入。但此时如果选择前者就会出现一个bug。
复现步骤:
当我通过首页左上角的创建项目按钮进行模板选择时,会发现找不到java语言的模板。
但此时如果选择网页顶部的搜索模板中搜索模板却可以找到java模板并通过该模板进行创建项目。
分析:
我认为该种情况的可能是搜索功能的模板与创建项目的模板不是相同的数据库表,导致在搜索功能中可以找到的模板在创建项目时却无法找到。
改进建议:
我的改进建议是可以定期将创建项目下的模板与实际模板进行匹配,将创建项目下缺少的模板添加进去,以免以后类似问题的发生。
严重性:☆☆
2.4 缺点
2.4.1 对于社区标签的小缺点
前言:在inscode中有提供社区功能,主要用于供用户进行代码的分享与交流,该页面提供标签选择功能,可以通过选择标签看到自己想要看见的他人分享的代码。例如:我现在想要学习一下前端的代码,我点入社区页面后即可通过右侧的标签,选择前端后,社区界面就只会出现带有前端标签的代码。
如果我更加精准的选择一个我想要看的项目,即通过选择多个标签进行锁定时,会发现inscode并未提供多个标签同时选择的功能。
改进建议:
我的改进建议是可以将社区页面标签选择那块改为多选按钮,让用户可以不再局限于单选,可以更加精准的找到想要的东西。再有就是,可以多设几个可能用的比较多的标签,尽量让标签覆盖到社区里的每条分享。
2.4.2 对于网页页面的一些小缺点
例1:页面顶部搜索框右侧出现一个ctrl和k的白色方框,但却未给出任何的提示,对于大多数用户会表示不知道这个是做什么用的。然后我找了一圈也没有发现该网页有任何一个关于可以给不知道网页的某些功能的用户提供帮助的按钮。所以这个方框的出现我至今也不知道是用来做什么的。
改进建议:
我的改进建议是像大多数网页一样设置一个帮助界面,让用户可以通过该界面了解到一些不太清楚的功能。除此之外还可以在设置一个反馈按钮,因为用户数量一旦多起来,会出现各种各样的问题,但却无从反馈,开发者也就不知道问题的出现。所以给用户一个反馈通道我认为是十分必要的。
例2:对于页面左侧导航栏下方的云服务和博客区域,不知道为什么会出现一个类似于分享的小图标。以至于我第一次使用时以为这个是一个关于分享的功能,按下后才发现这应该是一个类似于去到该网页的按钮…
改进建议:
我的改进建议是要么将旁边的小图标去掉,要么就是找一个更加适合的小图标,以免用户产生误解。
2.5 用户采访
选择该用户的理由:该同学也是计算机类专业,有使用过类似在线编译器网站。
2.6 结论
类别 | 描述 | 评分(每项满分25分) |
---|---|---|
核心功能 | 对于网站的主要功能实现情况 | 23 |
细节 | 为用户考虑的细节 | 20 |
用户体验 | 用户使用功能时是否体验感良好 | 21 |
效能 | 速度等情况 | 23 |
总体来说,较为推荐。
3 Online Compiler and IDE
3.1 基本功能介绍和使用
功能描述:Ideone是一个在线编程和代码分享平台,用户可以在Ideone上选择多种编程语言,包括C、C++、Java、Python、Perl等等。然后,用户可以编写代码,将其上传到平台,编译并运行它。平台还提供了代码调试和错误修复的功能。除此之外,Ideone还允许用户将他们的代码分享给其他人,以便其他人可以学习、修改或参考该代码。
可以选择多种编译器:
可查看其他人的代码:
3.2 优点
1)免费: 用户不需要支付任何费用就可以使用平台上的所有功能。
2)支持多语言: 用户可以根据自己的需要选择合适的语言进行编程。
3)在线编译和运行: 用户不需要安装任何编译器或运行环境就可以直接在网站上编写、编译和运行代码。
4)代码调试和错误修复: 平台还提供了代码调试和错误修复的功能,以帮助用户更轻松地诊断和解决代码中的问题。
3.3 BUG
- 测试环境:操作系统:Windows 10+浏览器:Chrome 111.0.5563.147
3.3.1 对于创建标签时的bug
可复现性:100%必然发生
前言,ideone网站提供了用户创建标签的功能,用户可以自定义创建标签,并使用在自己的项目上,以便用户通过标签查找自己的项目
复现步骤:
但在创建标签时,会出现按钮的”漂移“
分析:
我认为该情况的出现是由于测试人员没有做好多种情况的测试导致的。
改进建议:
我的改进建议是对该网站的该功能进行再次测试与调试,以免这种情况的发生
严重性:☆
3.3.2 笔记不显示的bug
可复现性:100%必然发生
前言:该网页对用户的代码库中添加了增加笔记的功能,满足用户对自己所写项目添加笔记的需求
复现步骤:
当用户对某个项目增加笔记后,再按下回车或者按下该页面下空白处后会导致仍然显示原本的默认文字。
分析:
我认为该情况的出现是由于开发人员没有对该功能设置好导致的,仅一味地实现了该功能,但未对功能进行完善。
改进建议:
我的改进建议是开发人员再次对该功能完整性进行一次评估。对于有笔记的位置显示笔记,无笔记的位置显示默认文字。
严重性: ☆☆
3.3.3 日期无法一行显示
可复现性:100%必然发生
复现步骤:
打开自己的代码仓库时会发现右侧项目的日期无法一行显示
分析:
我认为该情况的出现是由于测试人员没有做好测试导致的。
改进建议:
我的改进建议是对该组件的布局进行调整,使日期可以一行显示。
严重性: ☆
3.4 缺点
3.4.1 无法准确区分项目
前言:对于用户来讲,需要有一个可以区分项目的名称,例如:生成文件时会有文件名除了是用来操作系统进行文件区分外,更是用户用来区分文件的手段。
所以,在该网站也有区分项目的手段,即一个类似于项目名的名称,但该项目名是由网站随机生成的不重复的数字加字母的组合。并不是用户自己生成的,所以就无法让用户从众多项目中区分到哪个才是自己想要的项目。
改进建议:
我的改进建议是增加一个用户生成改项目名的功能,在数据库中表现为随机生成的项目名与用户生成的项目名一对一的关系。
3.5 用户采访
选择该用户的理由:该同学也是计算机类专业,有使用过类似在线编译器网站。
3.6 结论
类别 | 描述 | 评分(每项满分25分) |
---|---|---|
核心功能 | 对于网站的主要功能实现情况 | 23 |
细节 | 为用户考虑的细节 | 18 |
用户体验 | 用户使用功能时是否体验感良好 | 18 |
效能 | 速度等情况 | 20 |
总体来说,还算可以。
4 IT屋-程序员软件开发技术分享社区
4.1 基本功能介绍和使用
功能描述: 该网站是一个在线工具集合网站,提供了多种在线工具和实用小应用程序,方便用户进行各种计算和处理操作。
该网站将工具分为三类,分别是编译工具、数据工具和前端工具。便于人们查找与使用。
该网站除了基本的工具外,还提供了问答库和菜鸟教程,便于初学者的学习。
4.2 优点
1)集合多种在线工具:包括文本处理、加密解密、单位换算、代码转换、图片处理、随机数生成等等,可以满足用户各种计算和处理需求。
2)界面简洁。
3)免费使用,无需登录与注册。
4)有问答库,便于用户搜索学习。
4.3 BUG
- 测试环境:操作系统:Windows 10+浏览器:Chrome 111.0.5563.147
经过一系列的使用,并未发现什么bug。
4.4 缺点
4.4.1 问答库分类有限
前言:该网站对于问答库的模块分为有限个,便于用户对应的查看
但同样就会出现一个问题就是,如果用户想要查找的模块是原有的这些之外的,这样就无法满足用户的需求
改进建议:
我的改进建议是分出一个其他类,将不在以上模块的问答归在其他类中,满足用户的查看。
4.5 用户采访
4.6 结论
类别 | 描述 | 评分(每项满分25分) |
---|---|---|
核心功能 | 对于网站的主要功能实现情况 | 23 |
细节 | 为用户考虑的细节 | 22 |
用户体验 | 用户使用功能时是否体验感良好 | 22 |
效能 | 速度等情况 | 22 |
总体来说,较为推荐。
5 分析
5.1 预估开发时间
以上三款网站都是在线编译工具网站,如果是一个计算机毕业生的6人团队来做的话,我认为大概需要8个月到10个月。
时间 | 事情 |
---|---|
1-2个月 | 学习掌握新技术和新框架 |
1.5个月 | 需求分析(前中后期) |
1个月 | 原型设计等前期开发准备 |
2-3个月 | 实际编码 |
1个月 | 测试调试 |
0.5-1个月 | 部署上线等 |
理由: 由于团队都是刚毕业的大学生,所以需要前期给出大部分的时间进行学习新技术与新框架。然后由于该网站是个大型网站,所以对于需求分析和原型设计等也需要多一点时间。一个完美的软件永远离不开详细的测试,所以我对于测试调试留的时间也比较多。最后就是因为这个是一个不一定有合作过的新团队,所以要给一定的时间进行磨合之类的,所以最后的时间也会相对的久一点。
5.2 同类产品对比排名
网站名称 | 功能性 | 用户量 | 使用体验 | 开放性 | 平均分 |
---|---|---|---|---|---|
IT屋 | 9分 | 8分 | 9分 | 9分 | 8.75分 |
ideone | 8分 | 8分 | 8分 | 8分 | 8分 |
inscode | 8分 | 9分 | 9分 | 9分 | 8.75分 |
三者排名:IT屋与inscode并列第一,ideone第二
5.3 软件团队可提高的方面
我认为以上软件团队可提高的方面是软件测试方面,对软件每个功能进行详细的测试可以提高用户体验感。其次是用户反馈方面,多多关注用户的反馈是每个软件团队可以提高软件的一个好的方法。
5.4 BUG出现的可能性
对于每个bug出现的可能性在每个bug的地方都有提到,这边做一个总结。
1)测试不到位
2)对用户需求不了解
3)数据库问题
4)具体功能的设计不到位
6 建议和规划
6.1 市场概况
主要面向群体: 在线编译器网站的主要面向群体是程序员和开发人员等技术人员群体。
潜在用户: 潜在用户是一些正在学习编程的人员。
市场: 随着计算机行业的不断发展,学习编程的人越来越多,但由于配置环境的复杂度,所以在线编译器网站只会越来越流行。
6.2 市场现状
市场已有的产品:inscode、ideone、IT屋、CodePen等。
定位: 为开发人员提供一个方便快捷的方式来编写、运行和共享代码。
优势: 在线编写:可以直接在网页上编写代码,不需要下载或安装任何软件;支持多种编程语言;可以通过直接共享链接的方式将代码与他人分享。
劣势: 编译速度较慢,无法获取本地项目。
关系: 虽然都是在线编译器网站,但我认为他们之间并没有直接的竞争关系。例如:codepen主要定位于前端开发,idecode主要定位于后端开发。每个不同的网站都有其特点,所以我认为并不是非常直接的竞品关系。
所处阶段: 该领域已算是处于一个较为成熟的阶段。
6.3 市场与产品生态
Q1:这个产品的核心用户群是什么样的人?典型用户是什么样的?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
核心用户群:开发人员和学生
典型用户: 学习编程或计算机相关专业的学生和开发人员,年龄在18-35之间,收入在10k左右,表面需求为不用安装环境即可编译,潜在需求为编程学习、代码分享等。
Q2:产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性?
群体之间有一定的关系,例如:学生通过该网站来学习编程,开发人员利用该网站分享自己的代码与心得。
有利用其相互作用二次构成特定用户生态的可能性。例如:开发出针对特定人群的工具与服务,如学生的代码学习社区,开发人员的代码分享与记录仓库。
6.4 产品规划
Q1:你要在当前软件的基础上设计什么样的新功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新点在哪里?可以用NABCD分析。
我认为可以添加一个版本管理功能,就和gitcode上的类似,可以看自己之前编译过的版本。
Need(需求): 版本管理是软件开发中非常重要的一个环节,能够帮助开发人员更好地管理代码版本、协作开发以及追踪代码的变化历史,提高工作效率和代码质量。
Approach(方法): 版本管理功能可以通过与常用的版本控制系统集成来实现。例如,可以与 Git 等版本控制工具进行集成,让用户能够方便地进行版本控制和代码管理。
Benefit(好处): 新增的版本管理功能能够为用户提供更加完善和高效的代码管理和协作开发工具,让用户能够更好地管理代码版本、追踪代码的变化历史、协作开发和解决代码冲突等问题。
Competition(竞争): 版本管理功能是在线编译器网站中的重要竞争优势,能够让用户更加方便地管理代码版本和协作开发,提高用户对平台的满意度和忠诚度。
Delivery(推广): 可以通过向用户发送电子邮件、在网站上进行推广和介绍、发布视频教程等方式来推广版本管理功能。
Q2:如果你是项目经理,可以招聘6个人,并且有4个月的时间,你认为应该如何配置角色(开发,测试,美工等等) 才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
- 开发: 2 人,负责软件的设计、编码和测试等开发工作,确保软件符合需求和规格,并且具有良好的性能和可靠性。
- 测试: 1 人,负责软件的测试和验证,确保软件的功能和性能符合需求和规格,并且具有良好的稳定性和可维护性。
- UI美工: 1 人,负责软件的界面设计和用户体验,确保软件界面简洁、直观、易用,并具有良好的可访问性和可扩展性。
- 数据库管理员: 1 人,负责软件的数据库设计、管理和维护,确保软件的数据存储和查询能力具有良好的性能和可靠性,并且具有良好的安全性和可扩展性。
- 运维: 1 人,负责软件的部署、配置和运维,确保软件的稳定性和可用性,并及时处理和解决软件运行过程中的问题和异常。
Q3:请为你的团队设计16个周期每周的详细规划。
时间 | 工作内容 |
---|---|
第1-4周 | 需求分析,调研,分配任务 |
第5-8周 | 实际编码,含单元测试、代码审核等 |
第9-12周 | 测试与调试 |
第13-14周 | 部署上线 |
第15-16周 | 运维与维护,处理用户反馈的问题等 |