这个作业属于哪个课程 | <软件工程23年春季> |
---|---|
这个作业要求在哪里 | <软件工程实践作业----软件评测> |
这个作业的目标 |
|
其他参考文献 | 《构建之法》 |
Bug严重性量化标准
严重性 | 说明 |
---|---|
★★★★★ | 致命性系统故障 ,可能会造成网页瘫痪或用户安全问题 |
★★★★ | 严重系统故障 ,错误的波及面广,影响到其他重要功能正常实现 |
★★★ | 中度系统故障 ,功能无法正常使用,且没有其他办法解决 |
★★ | 轻度系统故障 ,会影响使用,但是可以通过其他渠道解决 |
★ | 基本不影响使用 ,但是可能不够人性化,缺乏易用性与友好性 |
一、第一部分—调研评测
1. InsCode
简介: Inscode是一个开源的代码共享社区,提供了多种编程语言的代码库,让开发人员可以快速访问和分享代码。Inscode致力于为开发者提供更好的编程体验,让开发者能够更快速地开发应用程序。👉进入InsCode
1.1 体验
1.1.1 介绍和使用软件
- 首页界面
分为上方搜索导航栏、左侧功能导肮栏、中间主页三个部分。
- 上方搜索导航栏:点击上方的搜索框可以搜索,点击🔔管理通知、公告,点击头像管理用户信息,点击➕号创建项目。
- 左侧功能导肮栏:点击主页、我的项目、模板中心、社区、设置跳转到对应功能页;还可以创建项目,下方有友链。
- 主页:主页列表显示了我的项目、社区热门、关注等部分,点击查看全部,可以跳转到对应详情页。
- 项目编辑
- 点击首页中的创建项目,进入项目编辑器。在项目编辑器中可以对项目进行编辑,管理源代码,运行调试等一系列操作。
- 点击发布作品可以将项目发布到社区中。
- 我的项目
- 在我的项目页中,可以对自己的头像与封面进行设置,如果需要修改更多,可以点击编辑跳转到设置页。
- 在此页面可以对项目进行基本的管理(编辑、fork、删除、发布),也可以查看自己的动态与星标。
- 模板中心
可以使用模板快速开始您的下一个项目。
- 社区
- 社区中可以浏览其他人发布的作品,可以通过标签与热门/最新进行筛选。
- 点击进入详情页,可以查看作品详细内容,并对内容进行评价、fork、分享、星标、举报、关注等一系列操作。
- 设置
可以在设置页进行基本信息(昵称、简介)的修改,SSH公钥与Git的配置。
1.1.2 优缺点分析
- 优点:
- 作为一个开源的代码共享社区,界面简洁美观,颜值高!没有冗余的元素,引导也很贴心。
- 在网页端与移动端的体验基本一致(除了项目页),可以满足多端用户的需求。
- 网页端对项目的管理较之GitCode要方便许多,WebIDE方便快捷,还有丰富的模板库快速上手项目。
- 社交元素更符合当下主流社交平台的设计,更能够促进社区用户间的交流。
- 缺点:
- 现在的用户基数还较少,优质的开源项目较少。
- 许多功能还不完善,需要改进,比如:
- 搜索功能,没有基本提示
- 用户头像与封面没法具体编辑图片
- 除了外观与WebIDE很少有亮点。
1.1.3 改进意见
- 可以添加奖励机制,来提高用户参与积极性,同时对于一些比较低质量的内容的审核希望严格一些。
- 可以添加分页功能,如果内容列表一直滑到底部,用户可能不太能直接找到自己想要看的内容。
- 可以对标签和筛选功能进一步优化,让用户能够多标签筛选,并且按需筛选。
- 可以对类似内容进行整合,比如分区,同时用户这边也可以对内容分类。
1.2 BUG
-
BUG1:昵称长度没有长度限制与基本验证
-
测试环境:win11 + Firefox 111.0.1(64位)
-
可复现性及具体复现步骤:必然发生
-
具体情况描述:在
设置
中修改昵称,由于没有长度限制和基本验证,用户可以将昵称写的很长,昵称问题涉及到了许多页面(项目页
中布局乱了,没法点击到新建文件等按钮;影响社区
美观),波及面较广,且存在安全隐患问题(注入攻击)。 -
BUG分析:
严重性
:★★★★可能成因
:网站尚处测试阶段,许多功能没有完善,没考虑不限长昵称对其他页面的影响;也有可能已经发现了,只是暂时不做处理。改进意见
:对用户昵称与其他输入进行严格的长度限制与基本验证。比如:①对用户昵称设置最小和最大长度限制;②使用正则表达式验证命名规则;③禁用特殊字符:避免用户输入恶意代码或脚本;④过滤敏感词汇:避免用户输入不良和敏感内容,并提示用户修改。
-
-
BUG2:我的项目页对项目管理的“刷新”问题
- 测试环境:win11 + Firefox 111.0.1(64位)
- 可复现性及具体复现步骤:必然发生
- 具体情况描述:在我的项目中存在着“刷新”问题,当我对
GitCode
里的InsCode项目进行删除
或公开性修改
时,InsCode中的我的项目页
中没有显示更改,导致在InsCode中进行删除
与发布
时出现问题。上述两功能失效,且无法通过其他渠道解决。 - BUG分析:
严重性
:★★★可能成因
:初步判定为刷新问题,后来在刷新浏览器,清除cookie后没有解决。认为可能是:①GitCode 集成问题:由于 GitCode 和 InsCode 之间的集成出现问题,导致对 GitCode 中的项目进行删除或修改时,这些更改没有正确地反映在 InsCode 中。②数据同步问题:可能是由于数据同步问题导致的, GitCode 和 InsCode 之间没有及时同步数据。改进意见
:①对 GitCode 和 InsCode 之间的集成配置进行优化;②定期更新 GitCode 和 InsCode 间的项目同步;③报错时给出具体的问题描述与解决方法。(只是程序错误
太过笼统,用户不知道如何解决)
1.3 结论
综上所述,我的评价是:c) 一般
,网站的设计很不错,但是仍有许多不足之处没有解决,社区也不够活跃,考虑到这个社区还是处于测试阶段,还有改进空间,还是保有一点期待的。
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
|
|
|
|
| |
|
|
| |
|
|
|
|
|
|
|
2. IT屋
简介: IT屋是一个IT技术类文章分享社区,旨在为开发者和技术爱好者提供有关编程、网络、安全、数据库、云计算等方面的文章、教程和资源。👉进入IT屋
2.1 体验
2.1.1 介绍和使用软件
- 首页界面
分为上方搜索导航栏、中间主页两大部分。
- 上方搜索导航栏:点击上方的搜索框可以搜索,也可点击首页、问答库、菜鸟教程、在线工具跳转到对应页面。
- 主页:主页列表从上到下显示了菜鸟教程、最新问答、热门标签等部分,其中菜鸟教程部分可以点击筛选标签进行简单筛选。
- 详情页
下图主要演示了教程详情页、问答库详情页、工具详情页。
2.1.2 优缺点分析
-
优点:
- IT屋有许多文章和资源,内容涵盖各个领域,开发者可以找到所需的技术文章和资源。
- 还提供了实时更新的技术资讯,让用户可以及时了解和掌握最新的技术动态。
- 具有许多在线工具。
-
缺点:
- 广告较多:IT屋广告较多,对用户的阅读体验造成干扰。
- 文章质量参差不齐:有些文章内容质量较低,存在一些错误和不准确的信息。
- 需要关注公众号才能查看更多,麻烦,用户体验差!
2.1.3 改进意见
- 界面可以再美化一点,去除冗余的广告元素,提高用户体验。
- 问答库可以提供问答区域,而不该只是给出一个问题的解决方案。
- 页面速度可以优化一下,没有什么内容,但是打开有的页面速度很慢。
2.2 BUG
- BUG:空内容文章点击后跳回首页
-
测试环境:win11 + Firefox 111.0.1(64位)
-
可复现性及具体复现步骤:特定条件发生(文章为空时)
-
具体情况描述:点击空内容的文章后会跳回首页,而不是进入文章详情页。
-
BUG分析:
严重性
:★★★可能成因
:①文章被删除或下架了。②文章还未编辑完成。③网站系统出现故障或漏洞。改进意见
:①加强对文章内容的审核管理,避免空内容文章或低质量文章出现。②定期更新网站内容,检查网站漏洞。
-
2.3 结论
综上所述,我的评价是:a) 非常不推荐
,界面简陋不说,广告和公众号都很影响用户体验了,如果有需要查教程的话,我想我更愿意去用其他教程网站。
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
|
|
|
|
| |
|
|
| |
|
|
|
|
|
|
|
3. ideone
简介: ideone是一个在线代码编辑器和编译器,旨在为编程爱好者和开发人员提供一个方便的在线编程环境。👉进入ideone
3.1 体验
3.1.1 介绍和使用软件
- 首页界面(new code)
首页分为上方导航栏、中间代码区两大部分。
- 上方导航栏:点击new code、my codes、范例、recent codes、my account跳转到对应页面。
- 代码区:代码区部分可以进行代码编辑与运行、设置时间限制、添加笔记、添加标签、设置公开性等一系列操作。
- my codes页
my codes页主要显示了自己编写的一些代码,可以对其进行基本管理(修改可见性、增删标签、删除代码、筛选代码)
- 范例页
范例页主要是一些写好的范例,可以点击执行这些代码。
- recent codes
可以在最近代码页中寻找灵感,执行一些最近运行成功的代码。
- my account
用户页分为设置页与编辑器页两大部分。
- 在设置页中,可以执行查看用户信息、设置语言时区、更改密码、管理代码与标签等一系列操作。
- 在编辑器页中,可以对编辑器进行如下图的一系列设置。
3.1.2 优缺点分析
-
优点:
- 方便易用:ideone非常简单易用,用户可以轻松地输入代码、编译代码并运行代码;它还支持多种语言,如C++、Java、Python等,可以满足不同用户的需求。
- 在线存储:ideone将用户的代码保存在云端,用户可以随时随地访问和编辑。
- 多种输出方式:IDEOne支持多种输出方式,如控制台输出、文件输出等。
-
缺点:
- ideone有时会出现卡顿、崩溃等问题,影响用户的编程体验。
- ideone只能运行代码文件,不能运行整个项目。
- ideone的广告和界面较为过时了。
- ideone的写代码体验也不够优秀,没有基本提示。
3.1.3 改进意见
- 界面可以再美化一点,让ideone对用户更友好易用,去除冗余的广告元素,提高用户体验。
- 可以加强稳定性、优化网站速度。
- 加强代码编辑体验,比如加强代码提示,更多的帮助信息。
- 可以增加一些功能,来吸引更多用户,比如协同编辑,社区交流。
3.2 BUG
并未发现明显功能性bug
3.3 结论
综上所述,我的评价是:b) 不推荐
,除了广告与界面问题,感觉这个在线代码编辑器的recent codes页也很意义不明,没有对代码简单介绍,用户如何知道要看那个代码来找灵感,在线代码编辑这个功能感觉也很鸡肋。
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
|
|
|
|
| |
|
|
| |
|
|
|
|
|
|
|
4.用户采访
- 采访对象:W同学是我结对作业的搭档,也是软件工程专业的。
- 理由:感觉W同学对前端技术了解得比较多;结对时,W同学也有许多独到的见解,所以此次采访选择他作为对象,而采访的内容是InsCode的使用体验。
二、第二部分—分析
1. 开发时间估计(InsCode)
- 背景:开发团队6人左右,计算机大学毕业生,有专业UI支持
工作项目 | 时间估计 |
---|---|
需求分析 & 会议讨论 | 7天 |
生成产品原型 & 原型审核 | 14天 |
概要设计 & 数据库的设计 | 14天 |
团队协作编程 & 文档生成 | 90天 |
软件测试Alpha版本 & 优化Alpha | 30天 |
完成Beta版本 | 14天 |
运行维护 | 14天 |
总计 | 183天 |
2. 同类产品对比排名
- 此次测评主要从
UI设计
、稳定性
、主要功能
、用户体验
四个方面作为评测标准。分别评测三个网站(InsCode、ideone和IT屋)在四个方面的表现,并给出了总分和排名。
网站 | UI设计(20) | 稳定性(20) | 主要功能(40) | 用户体验(20) | 总分(100) | rank |
---|---|---|---|---|---|---|
InsCode | 20 | 18 | 35 | 18 | 91 | 1 |
ideone | 10 | 10 | 30 | 12 | 62 | 2 |
IT屋 | 10 | 15 | 30 | 5 | 60 | 3 |
3. 软件工程方面的建议
基于先前对InsCode的分析,发现我们团队还可以优化的一些点(包括bug修改)如下:
- InsCode:
- 功能添加:奖励机制,分页功能,内容分类等。
- 功能优化:严格审核,标签与筛选优化。
- 问题修正:修正不合法或无限制的用户输入问题,修正GitCode与InsCode集成问题。
4. BUG存在的原因分析
- 个人认为像输入限制这种基本问题,经过alpha测试还没有解决,是很不应该的。当然也不排除开发人员已发现但暂不处理的情况:软件还处于早期开发阶段,可能会存在各种未知的问题和bug。开发人员可能是打算优先解决一些重要的问题和bug,而对于输入限制和验证这种看起来较为次要的问题可能没有给予足够的关注。
- 而对于GitCode与InsCode的集成问题,我觉得要么是我的配置有问题,要么就是GitCode与InsCode集成测试没做到位,明明是本家的东西,却还是有集成问题,实在让人觉得很奇怪。
三、第三部分—建议和规划
1. 市场概况
- 市场规模:
近年来,我国软件行业运行态势良好,软件业务收入保持高速增长,占我国GDP的比重日益提高,软件企业盈利能力稳步提升。
2013-2020年,中国软件业从业人数占总就业人数比例呈上升趋势。2020年,中国软件行业从业人员达到了704.7万人,占总就业人数比例达到0.94%,人才向软件业转移趋势明显。
2021年1-10月,我国软件业从业人员平均人数811万人,并且中国软件业人数还将稳步增长。
从上面的数据中可以看出,截至目前为止,我国软件和信息技术服务业发展前景广阔,市场规模庞大,自然会有不少初学者需要学习软件开发,而像InsCode这样的开源的代码共享社区,对于这些用户来说还是很有吸引力的。 - 用户分析:
- 直接用户:
- 开发者:InsCode提供的代码托管、项目管理和团队协作等功能,可以帮助开发者更方便地管理和协作项目。
- 学生:InsCode提供了各种编程语言的代码模板与项目,方便学生积累项目经验。
- 潜在用户:
- 技术大牛:乐于分享技术的大牛可以InsCode网站上分享自己的代码和经验,为其他用户提供帮助和指导。
- 技术培训机构:对于一些技术培训机构来说,inscode网站提供的模板和项目管理等功能,可以为他们的教学提供帮助和支持。
- 直接用户:
2. 市场现状
-
2.1 目前市场上有什么样的产品了?
-
Codepen:Codepen是一个基于Web的前端开发和设计社区,它提供了一个在线代码编辑器,允许用户创建和共享Web前端项目。👉点击进入Codepen
-
Repl.it:Repl.it是一个在线代码编辑器和托管平台,支持多种编程语言,如Python、Java、JavaScript等。它可以让开发人员快速创建和分享代码,还提供了实时协作和集成部署等功能。👉点击进入Repl.it
-
StackBlitz: StackBlitz是一个基于浏览器的在线IDE,可用于Angular、React和Vue等框架的开发。它提供了实时协作、预览和调试功能。 👉点击进入StackBlitz
-
-
2.2 上述产品的定位、优势与劣势在哪里?
- Codepen:
- 定位: 前端开发社区和编辑器
- 优势:可以分享和交流前端技术;
- 劣势:功能相对局限,局限于前端。
- Repl.it:
- 定位: 在线的多语言编程环境
- 优势:
① 轻量级:Repl.it 的编辑器和环境非常轻量级,开启速度很快,适合进行简单的编程操作。
②支持多种语言:Repl.it 支持多种语言和框架,用户可以选择自己熟悉的语言进行开发 - 劣势:功能不够强大,在一些功能和需求方面可能不能满足用户。
- StackBlitz:
- 定位: 在线的基于浏览器的 IDE,支持多种语言和框架
- 优势:
① 全功能 IDE:StackBlitz 的编辑器和环境非常强大,支持多种语言和框架
② 集成了很多工具和库:StackBlitz 集成了很多常用的工具和库,用户可以直接引用 - 劣势:使用门槛较高需要一定的技术基础才能够使用
- Codepen:
-
2.3 上述产品之间呈现什么样的关系,哪些为竞品关系?以及竞争中的各方态势如何?
- CodePen、StackBlitz、Repl.it三个产品之间存在竞争关系,都提供在线代码编辑和分享的功能。
- 各方态势:
- CodePen和StackBlitz的用户群体较为明确,功能和定位更加专业化,具有一定的用户黏性和社交属性;
- Repl.it则定位比较广泛,可以满足不同领域的开发需求,但相应的也意味着竞争面更广,用户黏性可能较低。
- 总而言之,CodePen在社交互动方面较强,但在线开发的体验可能不如StackBlitz和Repl.it,而StackBlitz则有较为完整的开发环境,但对于非Web开发者来说可能有一定的门槛。
-
2.4 这个领域正处于 (萌芽 / 成长 / 风口 / 平台 / 下降)阶段
- 结合之前对市场规模的数据与分析,我认为这个领域处于成长阶段。此外,随着云计算和移动互联网技术的普及,越来越多的开发者需要在线协作和远程开发的能力。因此,可以预见,在线编程环境将在未来继续保持稳健的增长趋势。
3. 市场与产品生态
- 3.1 核心用户群是什么样的人?典型用户是什么样的?
- 核心用户群:主要包括有
编程基础的开发者
和学习编程的初学者
- 典型用户:
- 核心用户群:主要包括有
属性 | 特征信息 |
---|---|
学历 | 大专及以上学历 |
年龄 | 16至24 |
专业 | 不做限定,有一定编程基础者 |
爱好 | 热爱编程、对编程有浓厚兴趣 |
收入 | 不做限定 |
表面需求 | 初学编程、提升编程技能 |
潜在需要 | 探索编程领域、开发自己的项目、找到自己的编程方向 |
属性 | 特征 |
---|---|
学历 | 本科及以上 |
年龄 | 25至40岁 |
专业 | 计算机相关专业或者有编程经验的非专业人士 |
爱好 | 对编程有浓厚兴趣,喜欢探究新技术 |
收入 | 月收入5k-20k |
表面需求 | 需要快速进行编码实践和解决问题,提高开发效率和质量 |
潜在需求 | 希望通过编程实践不断提升技能和水平,获得更好的职业发展 |
- 3.2 产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性?
- Inscode的核心用户群是计算机相关专业的在校学生,典型用户群体也大多是以程序员、教育工作者为主,因此在一定程度上可以看出这些产品的用户群体有一定关系与重合的。
- 个人认为用户群体间相互作用构成特定用户生态的可能性是存在的,比如之前所说的教育机构使用产品进行学生教学;同时,可以通过用户群体之间的交流和互动来推动产品功能的更新和迭代,吸引更多的用户加入到生态系统中。
- 3.3 产品的子产品,以及其他相关产品之间是否存在一定的关系?是否有利用各个产品特性之间的相互关系二次构成产品生态的可能性?
- 是有一定关系的, InsCode与GitCode就存在这样的关系,GitCode与InsCode之间的项目管理是可以共通的,同时二者之间可以相互取长补短,InsCode可以弥补GitCode社交属性不足的缺点,而GitCode可以为InsCode提供更多的用户数量与优质项目,这样就可以构成一个很好的产品生态。
4. 产品规划
- 4.1 你要在当前软件的基础上设计什么样的新功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新点在哪里?
根据之前对InsCode的改进建议,我认为可以在当前的基础上设计一些激励机制。
理由:
①现在InsCode这个社区的人数还较少,想要有更多的用户,就要其增加吸引力,比如:奖励机制,早批入驻的用户有活动奖励;同时为了提高社区项目质量,奖励机制也能起到一定推动作用,促进用户产出优质项目。
②通过奖励,让用户感受到自己的努力和贡献得到了认可和回报,用户自然就会乐意使用。
创新点:
①创新点我觉得可以从根据用户的需求和行为习惯来设计不同的奖励方式出发,提高奖励机制的针对性和有效性。
②可以设置排行榜和等级制度,让用户通过社交竞争来获得更多的奖励,从而促进用户的活跃度和互动性。
NABCD | 内容 |
---|---|
N(需求) | 用户需要一种激励机制,来增加他们对软件的使用欲望和粘性。 |
A(方法) | 设计奖励,鼓励用户使用软件并完成一些特定任务,例如完成教程、参与社区讨论、参与社区比赛、分享教程等。 |
B(好处) | 用户通过完成任务可以获得奖励,例如积分、勋章、等级提升等。这些奖励可以让用户感到成就感和满足感,同时也可以增加用户的粘性。 |
C(竞争) | 目前市场上的一些竞品产品已经具备了奖励机制的功能:①CodePen会举办一些比赛和挑战活动,以激励用户创作更好的代码作品;②Repl.it提供了一个称为“Repl.it Coins”的虚拟货币系统,用户可以通过在平台上编写和共享代码来获得这些货币;所以我们需要设计一种更加有吸引力和创新的奖励机制( |
D(推广) | 新功能将通过更新软件版本进行发布,同时也需要在社交媒体上宣传新功能的上线,如b站,csdn等主流社交平台或社区,并在社区中主动引导用户使用新功能。 |
-
4.2 如果你是项目经理,可以招聘6个人,并且有4个月的时间,你认为应该如何配置角色(开发,测试,美工等等) 才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
项目团队配置:
1 位美工,2 位前端开发工程师,2 位后端开发工程师,1 位测试工程师。
团队16周详细规划:
时间(周) | 工作内容 |
---|---|
1 | 需求分析 & 会议讨论 |
2-3 | 原型设计 & 原型审核 |
4-5 | 概要设计 &数据库设计 |
6-9 | 前后端开发功能 & 测试人员开始准备进行部分测试工作 |
10 | 测试人员测试结束 & 优化处理测试中问题 & 验收alpha版本 |
11-12 | 基于alpha版本优化 & 准备发布beta版本的部署工作 & 发布beta版本 |
13 | 公开测试收集用户意见 |
14-15 | 基于用户意见进行优化,准备正式上线 |
16 | 对产品进行实际上线的运行维护 |