这个作业属于哪个课程 | <2023年福大-软件工程实践-W班> |
---|---|
这个作业要求在哪里 | <软件工程实践——软件评测作业> |
这个作业的目标 | 通过各种案例分析软件Bug,评测软件性能,思辨产品开发价值,总结软件开发流程与思路,熟悉软件工程。 |
其他参考文献 | 《构建之法》 《软件工程 案例分析作业–邹欣》 更多参考文献见于文末 |
Bug量化标准
等级 | 划分标准 |
---|---|
Blocker(崩溃) | 阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较少出现,一旦出现应立即中止当前版本测试)。 |
Critical(严重) | 系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序接口错误,数值计算统计错误等(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试)。 |
Major(一般) | 功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间长、查询时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等(该问题实际测试中存在最多,合理安排解决BUG,解决率关系版本的优化程度) |
Minor(次要) | 界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置不正确,用户体验感受不好,可以优化性能的方案等(此类问题在测试初期较多,优先程度较低;在测试后期出现较少,应及时处理) |
参考链接: Bug等级划分标准
第一部分 调研,评测
InsCode
官网介绍:
InsCode是一个无需安装的编程、协作、创建项目、分享、学习和建立联系的开发者社区。无需下载安装,直接在浏览器中编码,随时随地享受编程的乐趣。
体验
软件使用
-
主页: 点击官网链接, 进入主页界面, 如未登录, 主页将呈现下方图1的效果,界面背景的星空会有动态流动的效果,富有科幻感;底部的轮播图将进行轮播滚动,点击右上角的注册/登录按钮可以进行相关操作。登录完毕后,将跳转至下方图2页面,主页界面总体而言较为简洁, 在不失科技感的同时能做到大方美观,能够一目了然的看到各种操作所在的位置, 对初次使用者较为友好。
通过主页上方的搜索框,能够主动搜索自己感兴趣的相关项目
-
热门: 主页中的热门板块,可以查看最近被较多人关注的相关项目,并进行收藏
-
创建项目: 点击左侧栏的创建,能够进入创建项目页面, 在该页面中能够通过选择模板, 来快速搭建自己所需的项目框架, 使用起来较为简便, 通过观察发现其对前端相关的模板支持较为丰富,但缺少了对主流的后端语言框架的模板的支持,如Java、C++等主流后端语言相关框架模板的支持。项目生成过程较慢,但页面有动态的等待动画,能够缓和用户情绪。
-
项目页面: 创建完项目, 能够生成项目页面, 点击中间绿色的Run按钮,能够运行项目, 左侧侧边栏能够浏览项目文件,能够对文件或文件夹进行增删改查的操作, 右侧侧边栏能够输入命令行参数, 预览项目界面,并提供了拆分终端、隐藏终端、终止终端的功能。
-
我的项目: 点击我的项目, 跳转到我的项目界面,在该界面中能够浏览打开自己创建的所有项目,但每次打开项目时都将加载一段时间;同时能够浏览动态与星标界面,查看自己收藏的他人项目。点击发布作品,能够将自己的项目发布到社区当中
-
模板中心: 展示了目前可用的项目模板,包括了:网站、AI、游戏、图形等常用的框架模板
优缺点分析
- 优点
- 可以简单快捷的构建出自己的项目框架, 自己无需下载本地的IDE并配置各种各样的环境, 简化了开发流程。要知道学习一门新技术的时候,安装环境往往是最劝退的一步,在我三年的学习生涯中,曾无数次被安装环境劝退过,我想使用了该网站,能够在一定程度上持续培养软件开发的兴趣。
- 查看热门模板,促进代码交流。该网站提供了热门项目查看,能够运行查看自己感兴趣的项目。
- 与CSDN共用账号,方便CSDN用户一站式跳转使用,无需重新登录。
- 界面简洁美观,页面功能便于使用查找。对于初学者十分友好,整个流程的操作十分自然,操作功能一目了然的展示在了界面上。
- 网站帮忙保管项目,不会占用本地的存储空间
- 缺点
- 初次构建项目时与本地第一次构建时速度差距不大,但之后每次重新打开项目都要进行一次长时间的重载,这点与本地开发相比是相对弱势的方面
- 目前支持的模板仅包括前端、AI、图形等方面的内容,包含模板太少,主流的后端框架还缺乏支持,这点不止日后是否会改进。
- 网站目前用户较少,项目代码之间的交流感觉较为贫乏,不过这点随着网站功能的完善与网站自身的宣传,应该能有所缓解
改进意见
- 能够添加更多类型的模板以供用户使用, 用户能够自定义自己的模板, 以便对自己的已开发的项目能够进行重复使用, 减少开发时间
- 提高项目构建性能, 优化项目加载时间, 时间就是金钱, 用户往往不喜欢等待过久
- 保持简约的风格, 希望在以后的版本迭代中, 能够保持现有的简约风格, 能够方便初次使用者的使用
- 能够对热门展示的项目做更为细致化的分类, 方便用户找到自己所要开发领域的相关项目
- 能够更加支持项目的定制化, 能够让用户选择所要开发项目使用的工具、语言、第三方包的版本。如我在构建vue项目时,能够选择vue2 或是 vue3开发
用户采访
采访对象: 高中同学, 计算机专业
使用产品栏目: 项目创建、社区讨论
问题与亮点: 可以快速的创建项目,但社区目前讨论度不高
改进点: 能增加更多模板
BUG
- Bug可复现性
可复现性:必然发生 - Bug描述
当把页面放大到500%时,导航栏界面的添加与留言按钮会下滑出导航栏
InsCodeBug
- Bug分析
Bug严重性:次要
可能的成因:在制作响应式布局时,未考虑页面过于放大时的界面布局 - Bug修改建议:
虽然功能上并无太大影响,也鲜有人会将页面如此放大,但考虑到网站完备性,还是建议将这种尺寸的响应式布局考虑进去,进行修改。
结论
InsCode作为一款在线的代码编辑器, 提供了多种项目的在线开发环境, 尽管目前处于测试阶段, 用户量并不算多, 但能看出其界面制作与功能制作都是下了十足的功夫的, 相信在未来的版本迭代中, 能够添加更多实用的模板, 完善社区功能。
评价: 非常推荐,值得从事计算机行业的相关开发者动手尝试体验一下
IT屋-程序员软件开发技术分享社区
官网介绍:
IT屋-程序员软件开发技术分享社区 是一个面向程序员、计算机爱好者技术分享社区,为程序员、计算机爱好者提供百万权威知识库检索、在线开发工具、技术教程库、视频教程下载等功能,以便快速定位并解决问题,提升开发技术水平和提高工作效率。
体验
软件使用
- 主页: 点击官网链接进入主页, 首先映入眼帘的就是各种类型的语言教程, 网站整体以白色为背景、黑色字体、灰绿搭配,部分教程的图片显灰色,给人的初步印象有种死气的感觉,因为灰色在前端中一般指代了不可点击、不可使用的意思。网页排版较为整体, 采用了响应式设计, 在改变页面不同尺寸时可以改变布局,网站的教程内容较为全面,覆盖了互联网中各领域较为热门的语言、框架、开发工具教程。
在点击导航栏某一具体教程时,能够跳转显示某个语言具体的教程内容,底部会显示最新问答,但点击不同教程时底部的问答并不会根据类别而变化,都是显示同一个内容
底部存在热门标签,点击热门标签可以进入与标签名一致的搜索内容页面
- 在线工具: 点击导航栏在线工具,进入刚页面,便弹出了广告,网站的正中央也是由广告组成的Tab栏,给人观感并不太好,容易发生误触。同时由于在线工具较多, 有时不方便查找自己所想使用的在线工具。除了代码在线工具,还提供了密码生成器、颜色取色器、编码器等一些小工具。
该网站提供了种类丰富的代码编辑器,也提供了部分的默认模板(但模板过于简陋差不多就几行), 同时缺少代码提示, 对新手程序员不友好。
- 搜索: 点击右上角的搜索框,输入内容可以进入搜索页面,搜索页面较为整洁,但搜索出来的内容良莠不齐,如下搜索vue时,首先出现的三行英文条,在其也存在着大量意义不明的英文条,点击这些英文条会莫名重新跳转至首页
点击进入某一具体条目, 进入教程界面, 同样充斥着广告, 同时内容并不能完整显示, 只有当点击查看全文关注微信公众号后, 才可查看完整的教程内容
优缺点分析
- 优点
- 提供了丰富的语言、框架教程,覆盖了互联网开发的大部分内容,阅读完这些教程,能够做到该语言的基本入门
- 在线工具丰富,提供了多种语言的在线开发工具与一些时间日期转化的小工具, 适合做一些小测试
- 缺点
- 界面风格较为死板, 于我个人而言,不太喜欢这种灰绿搭配的感觉
- 问答界面、编辑界面甚至在线开发工具中充斥着大量的广告, 容易误触, 虽说网站需要广告资助得以生存, 但将广告置于正中央,实在有违用户体验
- 问答内容不完整, 需要关注公众号才能访问完整内容, 步骤繁琐, 令人失去阅读欲望
- 在线编辑工具过于简陋, 模板提供太过简单, 同时前端这种的开发工具缺失实时页面展示, 每次都需点击运行才能看到所开发的页面
- 缺少代码提示与代码补全的功能, 如果对于一些项目开发, 不如使用功能较为完备的IDE工具
- 搜索问答时, 会弹出意义不明的英文, 点击英文条会重新跳转回主页
改进意见
- 改善页面风格, 能够体现出活力感, 而不是这种死灰的感觉
- 能够优化广告投入的位置, 不影响用户的观看体验
- 完善代码编辑功能, 能够进行代码提示、代码补全
- 能够直接查看问答内容,无需额外步骤
用户采访
采访对象: 高中同学,计算机专业
使用产品栏目: 教程与在线编辑器
问题与亮点: 教程数目较多,页面广告影响体验
改进点: 能够减少广告数量
BUG
- 测试环境
操作系统: Windows 10 家庭中文版 版本号:21H2
浏览器: Microsoft Edge 版本 111.0.1661.62 (正式版本) (64 位)
- Bug可复现性
可复现性:必然发生 - Bug描述
搜索结果展示页面中,当你点击部分的词条,会莫名跳转至首页当中去
IT屋Bug
- Bug分析
Bug严重性:严重
可能的成因: 注意到页面渲染时,查看页面源码,不同的链接指向的页面是不一样的,但点击相关词条时却回退了首页,推测可能是数据库数据丢失,导致页面渲染失效,系统重新回退到首页
Bug修改建议: 能够将错误的链接删除,不再渲染或者使其能够正确跳转至相应页面中
结论
IT屋提供了对多种平台框架语言的简易学习,同时配备了简易的在线编辑器以供使用, 但页面整体不是很美观, 也充斥着各种广告, 在想查询问题的完整内容时,还需关注微信公众号, 步骤繁琐, 适合新手简单的入门学习。
评价: 简单进行语言入门时一般推荐, 其余时候如查找问题则非常不推荐
Product Hunt-The best new products in tech.
官网介绍:
Product Hunt是一个每天都在挑选最好的新产品的网站。发现最新的移动应用程序,网站,和技术产品。
体验
软件使用
- 主页: 呈现内容较为丰富,首页便展示出了问答栏,由于网站注册需要推特、谷歌、苹果、脸书等账号进行登录注册,遂跳过登录步骤。
网页上方是导航条,主题部分为推送的相关产品,可以通过下拉框进行内容筛选, 右侧方提供了即将推出的产品、一些故事、工作、以及讨论等内容
- 产品: 展示了即将推出的产品、热门的产品,可以根据相应的主题寻找对应类型的产品
- 社区: 里面充斥了各种大牛分享的相关经验,对软件开发的一些思考与讨论
- 市场: 提供了各种各样产品的折扣信息,对各式各样的工具进行了相关介绍,让用户能够充分了解产品特性与背景
- 工作: 提供了丰富的就业招聘信息
优缺点分析
- 优点
- 页面内容丰富,整体风格美观大方
- 信息全面,包含了产品、工作、讨论等一系列东西,产品还包含了待发布的产品,有利于用户提前了解相关信息,以及一些产品的宣发
- 具有人性化的设计,页面内容筛选、页面展示、高亮显示都十分的完备友好
- 问题询问时,介绍了问题提问应该有的格式规则,同时也会引导用户先查询类似问题,再做查询
- 缺点
无
改进意见
- 通过观察发现,网站评论回复并不算多,可以采取某种激励方式,鼓励用户进行评论
- 可以支持不同国籍的电话号码登录方式,而非使用挂梯子登录
用户采访
采访对象: 大学同学, 软件工程专业
使用产品栏目: 工作推荐、产品推荐
问题与亮点: 网页设计清晰,产品推荐丰富,但不支持国内登录
改进点: 能够增加国内登录的功能
BUG
暂未找到
结论
ProductHunt类似于一个聊天社区, 在这里面提供了丰富的软件产品介绍、项目经验开发总结、工作推荐,正如其官网介绍的该网站是一个每天都在挑选最好的新产品的网站,努力发现最新的移动应用程序,网站,和技术产品,如果想要某些方面的技术产品,可以在该网站上碰碰运气。
评价: 非常推荐
第二部分 分析
开发背景
团队人数6人左右,计算机大学毕业生,并有专业UI支持
开发时间估计
步骤 | 所需时间 |
---|---|
项目需求书 | 撰写项目需求书, 设立完成指标, 10天 |
界面原型UI设计 | 根据需求规格说明书,进行原型UI设计,20天 |
主页搭建 | 进行主页模块的搭建, 5天 |
登录注册模块 | 进行登录注册功能的实现,包含了界面制作与数据交换,5天 |
问答社区 | 提供用户进行交流的平台,包括了问题发布、评论、回复,7天 |
问答分类 | 提供了分类功能以及问题tag标签,7天 |
设置 | 能够对网站风格,字体大小进行相关设置,5天 |
在线编辑器制作 | 网站的核心功能,制作最为简易的编辑器,需要考虑各式各样的情况,60天 |
界面与界面功能验收 | 对界面进行验收,3天 |
网站测试 | 进行相关单元测试、白盒、黑盒测试,5天 |
网站部署 | 进行网站的部署,3天 |
总计 | 前后端分离开发增加效率,在考虑各式各样的Bug因素存在的情况下,总体开发时间大概需要5个月的时间 |
同类产品对比排名
总分(100) | InsCode | IT屋 | ProductHunt |
---|---|---|---|
页面设计(20分) | 18 | 10 | 18 |
功能使用(30分) | 28 | 20 | 25 |
导航(15分) | 10 | 10 | 11 |
用户使用量(15分) | 8 | 3 | 10 |
体验感受(20分) | 18 | 8 | 16 |
总分 | 82 | 51 | 80 |
排名 | 1 | 3 | 2 |
软件工程方面的建议
- InsCode: 能够在上线前完成更加充分的系统测试, 完善系统功能, 能够添加更多的模板功能, 总体而言存在的Bug都是些小瑕疵,但尽管没有软件能够做到十全十美, 我们仍要朝着完美的目标前行
- IT屋: 能够更加注重用户的使用感受, 在开发时能做好页面的美观工作, 虽然这是一个以教学目的为主导的网站, 但俗话说得好:“人靠衣装, 马靠鞍”, 一个风格美化的网站往往可以吸引到更多的用户使用。希望能在社区现有基础上,增强社区氛围,而不是仅仅让其成为一本“网上电子书”给用户翻阅
- Product Hunt: 能够考虑非本国地区其他用户的使用感受, 支持其他国家的手机号注册登录, 其网站总体而言做的较为优秀。在做到美观的同时也做到了易用。
BUG存在的原因分析
InsCode:
项目处于初期开发测试阶段, 功能测试还未完善
对用户需求掌握不好
程序员粗心大意
IT屋:
具体的设计质量不高, 测试过于敷衍潦草, 或是网站缺乏维护, 在刚开始的设计环境可能就存在问题
由于是免费性质的教学网站, 缺乏资金, 可能对网站完备性要求不高, 不然一些过于显眼的Bug却没有及时去修复
Product Hunt
测试开发过程未检测出来, 程序员的粗心大意往往是Bug出现的原因
也有可能是前期设计的时候未考虑某种情况的发生而导致的Bug
第三部分 建议和规划
市场概况
计算机是当今的热门学科, 信息化的时代, 计算机能够解放人类的双手, 给人们的生活带来了便利, 对于想要便捷开发的程序员来说, 一款能够在线编辑的测试平台能够大大方便开发流程, 所以我认为InsCode的市场规模是很巨大的。
直接的用户: 想要进行软件开发测试的程序员, 在线代码运行对于新生程序员或是老手程序员来说都是充满诱惑力的。
间接的用户: 对于将来想要加入计算机领域的学生、社会人士。
市场现状
在线编辑器其实不是什么新鲜概念了, 现如今有许多在线编辑器的产品, 如"IT屋"、”tech.io/snippet“、“anycodes”、“Online Compiler and IDE”等,其中像菜鸟教学中的在线编辑器主要是用于简单的学习使用,其余大部分的在线编辑器的使用目的是用来简单的程序运行测试与在线学习使用的。而InsCode在使用过程中,发现了其对项目开发支持的能力是十分优秀的,在间距了代码提示与代码补全功能的同时,对项目搭建也一并简化,有望在未来崭露头角。
产品关系与领域所处阶段
国内的w3cschool与菜鸟教程, 都兼具了在线代码编辑, 但其主要承担了教学过程中的简单程序测试的任务, 并不承担项目开发的功能, 其在线编辑器都较为简单, 这两个网站属于竞品关系。从日常使用中,百度教学时,都是菜鸟教程率先展示出来,其流量也更大一些。
像InsCode 、Online Compiler and IDE、 anycodes 都提供了代码在线编辑功能, Inscode与其余这两款相比将其作为项目在线开发平台具有明显的游戏, 如果只是进行几行的代码测试输出功能, 在其他这两个平台进行测试更为便捷些,省去了项目生成时间。
总的来说,目前市场上大多数的在线开发工具都是面向单程序简单测试功能的, 这些工具彼此构成了主要的竞争关系, 他们所做的拓展也是支持更多语言进行在线开发,而InsCode面向了项目进行开发,对各种项目的开发做出了极大支持,能够直接通过模板生成并运行项目,并在此基础上进行项目开发,大大减少了开发项目时令人头痛的环境配置环节,减轻了本地配置压力。同时其社区功能也与其他的在线编辑器做出了区别,人们可以共享自己所创建的在线项目,尽管处于测试阶段,但我相信随着CSDN带来的流量加持,在未来的发展中,我认为其领域的不断成长的。
市场与产品生态
- 核心用户群
核心用户包括但不限于:计算机专业的大学生、对计算机技术富有兴趣想要学习的人、需要完成某些计算机任务的人、软件项目需要快速开发的程序员。这些用户大多都是对计算机技术感兴趣并有所开发经验,年龄处于20~35岁居多的与计算机领域有所相关的人。
表面需求:能够进行线上的便捷开发
核心需求:能够不再进行本地繁琐易出错的环境的搭建,能够进行一步到胃,直接进行代码编写,在线上编辑器进行流程开发,并将其项目能够打包部署于服务器中。 - 用户联系
进行计算机领域开发的程序员,可以构成程序员领域的在线开发交流平台,存在利用其相互作用二次构成特定用户生态的可能性 - 产品联系
可以对某个领域做专门的在线平台开发网站, 做到更细致、更专业、更流畅的网站体验,同时可以细化用户群体,单独的领域讨论单独的事情,做到一码事归一码事的来进行问题的解决。如果可以做到像JetBrain公司那样以相同类似的代码框架制作一系列知名的IDE,如"Pycharm"、“IDEA”,这将是巨大的成功,我认为存在利用各个产品特性之间的相互关系二次构成产品生态的可能性。
产品规划
新功能:代码片段抽取为模板
NABCD分析
N(需求):能够保存完成特定功能的一部分代码,也将其作为模板命名保存,可以将其插入到现有代码中,也可以将其他人分享的代码片段整合到自己的代码当中。
A(做法):将自己开发的代码选中一部分进行保存到代码片段库中,也可以将别人分享的代码片段下载到自己的代码库中,在使用时只要点击相应的代码片段便能直截了当的复用
B(好处):能够简化程序的开发流程,对于可以复用但不方便抽取成方法或类的代码进行横向抽取成片段的形式进行复用,类似于Spring框架中的AOP思想,进行横向代码片段抽取。
C(竞争):目前市场上关于代码抽取功能的在线平台暂时没有
D(推广):通过CSDN广厚的流量进行宣传、推广
角色配置
前端2人、后端2人、美工1人、测试1人
详细规划
时间 | 计划 |
---|---|
第1周 | 撰写需求分析书,同时进行原型设计 |
第2周 | 美工完善原型设计,前后端学习所需技术,搭建构建环境 |
第3周 | 前端根据原型设计开发页面,后端根据项目说明书编写后台API接口 |
第4周-第13周 | 前后端进行分离开发,测试人员对项目功能进行相应的单元测试 |
第14周 | 进行前后端交互,测试前后端交互功能测试 |
第15周 | 进行软件alpha测试 |
第16周 | 进行软件beta测试, 同时项目进行部署上线 |
参考文献
构建之法
软件工程 案例分析作业–邹欣
Bug等级划分标准