软件案例分析
项目 | 内容 |
---|---|
课程 | 软件工程 |
作业 | 软件案例分析 |
我在这个课程的目标是 | 开发出足够好的软件 |
这个作业在哪个具体方面帮我实现目标 | 分析软件优劣的能力 |
第一部分 调研,评测(软件的bug,功能评测,黑箱测试,第8章用户调研,12章软件的用户体验)(必答)
分析的软件是Visual Studio、VS Code。
调研
Visual Studio是一个集成开发环境,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、数据库集成、服务器设置等。
visual studio code是一个轻量级的源代码编辑器,主要针对文件而不是项目。
使用截图
--Visual Studio
--vs code
功能性bug
--Visual Studio
- 代码补全功能不方便。vs中出现如下图所示的补全提示不能通过enter键自动补全(候选项为蓝色边框)。
需要候选项全部变蓝才可以,如下所示。到达这一步需要使用键盘中的箭头上下选择或者鼠标选中,笔者认为选中这一步有些多余,应该在上图的状态就能补全,否则会误导用户直接敲击enter反而变成换行。
- 调试按钮的位置。
调试中会反复按“逐语句”按钮,它位于顶部状态栏,很小容易点错;调试信息位于底部,经常要点开查看类的成员状态。于是调试的时候一上一下比较费劲。
- 调试断点的位置。
第一次使用断点时,我凭直觉认为断点在黄色箭头所指区域。实际在更外围,而且断点的背景颜色和窗口状态栏一致(发灰色),会让用户以为是窗口边框。
- vs2019某一版本,生成的单元测试项目无法#include "CppUnitTest.h",我在完成作业的时候遇到这个问题,重新下载目前最新版以后这个问题被修复了。这个问题是Microsoft.Cpp.UnitTest.props这一文件位置的错误造成的。
使用这个产品的过程,解决了用户的问题么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
visual studio和vs code能满足开发者的需求。
我认为visual studio产品对用户体验思考的很细致,是IDE界的翘楚,只是有些小地方显得考虑过度。另外,功能强大带来的一个弊端是运行起来非常慢,容易卡死。
visual studio的优点是代码自动调整格式,节省了程序员调整格式花费的大量时间。visual studio也有特别丰富的拓展模块,从代码分析插件,到ui设计模块一应俱全。
vs code也有一些visual studio不能取代的功能,比如它的可移植性更好,可以在linux和ios上使用。vs code还有连接远程服务器的插件,比使用xshell方便很多。
对产品有什么改进意见?
visual studio的ui可以根据用户的操作习惯做一些优化。使用过程中,我觉得visual studio的编译器报错不够准确,体现在错误信息名称比较宽泛,以及错误定位不准。我把代码从自己的vs复制到别的编译器,或者vs其他版本,会出现不同的报错,反而给我更准确的错误提示,为我找bug提供了很多线索。
给这个软件下一个评价:
我非常推荐visual studio和vs code,它作为一个明星产品持续接受着使用者的检验,长久以来吸纳各方的意见,更新迭代的速度很快。
具体评分
类别 | 描述 | visual studio评分(10) | vs code评分(10) |
---|---|---|---|
核心功能 | 功能设计和质量。 | 10 | 9 |
细节 | 有什么为用户考虑的细节? | 8 | 8 |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | 10 | 10 |
辅助功能 | 一些辅助功能如皮肤等 | 10 | 10 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 10 | 9 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 7 | 9 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 9 | 9 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 9 | 9 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 8 | 9 |
上手难度 | visual studio面对项目的开发方式增加了上手难度。 | 7 | 8 |
第二部分 分析(参考8.6节对工作的估计,和14.1节软件工程的质量)
使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。(必答)
visual studio
visual studio是一个支持了软件开发过程几乎所有需要的集成开发环境,我认为6人团队是不可能完成旗鼓相当水平的产品的。visual studio是一个持续版本迭代的产品,需要花费大量时间设计项目结构,书写文档,来为后期的需求提供增量开发的接口。实现一个拥有基本功能和美观界面的普通IDE,我估计至少需要一个6人团队五年时间。在此基础上实现扩展功能,完善细节,打磨成拥有核心竞争力的出色IDE还需要几年。但市场的机会稍纵即逝,开发VS需要更庞大的团队。
vs code
通过调研vs code真正的开发团队是二十多人,他们专注于核心功能的开发,为用户提供简介流畅的体验,丰富的功能由第三方插件提供,因此vs code的框架还比较简单。我估计6人团队需要两年时间来开发。
分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?(必答)
我比较熟悉的世界顶级IDE有以下这些,我觉得VS可以排在首位。它的优点是支持的编程语言最多,不给用户名称上的暗示。而且VS有一个强大的开发团队在持续迭代,很关注用户体验。一旦习惯了VS的格式自动修改,再用其他IDE就会觉得麻烦。
-
微软 Visual Studio(VS)
VS支持创建各种类型的程序,包括从桌面应用、Web应用、移动APP、到视频游戏。它支持多达36种不同的编程语言。 -
NetBeans
NetBeans是一个免费开源的Java集成的开发环境软件,主要用于Java开发。适
-
PyCharm
PyCharm是著名的PythonIDE,有知名的IDE开发商JetBrains出品。
-
IntelliJ IDEA
由Jet Brains出品的另外一款IDE。主要用于JAVA开发,集成了广泛的工具,可以用于Web和安卓移动应用程序开发。
-
Eclipse
被广泛应用的免费开源的Java编辑器和IDE。可以灵活的适用于初学者和专业人。
你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?
对于ui的问题,可能是VS团队对用户偏好掌握的不好。开发者和使用者有时候是两个不同的视角,比如那个代码补全的功能,在IDE检测出候选单词的时候,用户也有可能敲enter就是需要换行而不是补齐,所以设计的时候等用户选中才能补齐。但我在使用中绝大多数都需要补齐,再选一下有些磕绊。
对于那个Microsoft.Cpp.UnitTest.props文件位置出错导致单元测试项目无法#include "CppUnitTest.h"的问题,应该是开发人员粗心了。
第三部分 建议和规划(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
首先,市场有多大?潜在的用户有多少?
我查看了全世界软件开发人员的数量:
埃文斯数据公司(Evans Data Corporation) 2019最新的统计数据(原文)显示,2018年全球共有2300万软件开发人员,预计到2019年底这个数字将达到2640万,到2023年达到2770万。
这些人(软件开发从业者)都是潜在用户,应该大多数都接触过VS,但使用频率不一定最高。除了从业者,还有计算机相关专业的学生教师,其他行业也需要跨界开发的人。我认为潜在用户超过了千万。
作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
核心用户群是从事软件开发的人,貌似使用.net和c类语言的人最多。
大部分学历在本科以上,也有其他学历的编程爱好者。年龄在20-45岁,计算机、软件工程专业为主,爱好编程(或许二次元?),男性比例远超于女性,收入较高。
表面需求是找到一款好用的IDE,有符合审美的ui。编程学习者比较重视轻便性,易用性,从业者重视功能性,插件丰富性等等。潜在需求是在IDE上高效、正确地完成任务,减少环境配置带来的问题。
如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
1-2周:
需求分析,框架设计(2人)开发(4人)
3-10周:
开发(4人)美工(2人)
11-16周:
开发(2人)测试(2人)美工(2人)
我认为前两周要明确开发的方向,设计好需要实现的功能,代码框架和前后端的接口。然后前、后端一起开工用8周时间开发。美工严重影响用户体验,因此一直安排两人把关。最后6周,测试人员开始测试,前后端对接,修改bug,优化美工。