软件案例分析

项目 内容
课程 软件工程
作业 软件案例分析
我在这个课程的目标是 开发出足够好的软件
这个作业在哪个具体方面帮我实现目标 分析软件优劣的能力

第一部分 调研,评测(软件的bug,功能评测,黑箱测试,第8章用户调研,12章软件的用户体验)(必答)

分析的软件是Visual Studio、VS Code。

调研

Visual Studio是一个集成开发环境,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、数据库集成、服务器设置等。
visual studio code是一个轻量级的源代码编辑器,主要针对文件而不是项目。

使用截图

--Visual Studio

--vs code

功能性bug

--Visual Studio

  1. 代码补全功能不方便。vs中出现如下图所示的补全提示不能通过enter键自动补全(候选项为蓝色边框)。

需要候选项全部变蓝才可以,如下所示。到达这一步需要使用键盘中的箭头上下选择或者鼠标选中,笔者认为选中这一步有些多余,应该在上图的状态就能补全,否则会误导用户直接敲击enter反而变成换行。

  1. 调试按钮的位置。

调试中会反复按“逐语句”按钮,它位于顶部状态栏,很小容易点错;调试信息位于底部,经常要点开查看类的成员状态。于是调试的时候一上一下比较费劲。

  1. 调试断点的位置。

第一次使用断点时,我凭直觉认为断点在黄色箭头所指区域。实际在更外围,而且断点的背景颜色和窗口状态栏一致(发灰色),会让用户以为是窗口边框。

  1. 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就会觉得麻烦。

  1. 微软 Visual Studio(VS)
    VS支持创建各种类型的程序,包括从桌面应用、Web应用、移动APP、到视频游戏。它支持多达36种不同的编程语言。

  2. NetBeans

    NetBeans是一个免费开源的Java集成的开发环境软件,主要用于Java开发。适

  3. PyCharm

    PyCharm是著名的PythonIDE,有知名的IDE开发商JetBrains出品。

  4. IntelliJ IDEA

    由Jet Brains出品的另外一款IDE。主要用于JAVA开发,集成了广泛的工具,可以用于Web和安卓移动应用程序开发。

  5. 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,优化美工。

posted @ 2020-03-25 22:21  盐块QAQ  阅读(362)  评论(2编辑  收藏  举报