BUAA2020软工作业(五)——软件案例分析

时间:2021-11-14 10:03:43
项目 内容
这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健)
这个作业的要求在哪里 软件案例分析作业
我在这个课程的目标是 进一步提高自己的编码能力,工程能力
这个作业在哪个具体方面帮助我实现目标 学习其他软件的优点和不足,并吸取经验
其他参考文献 《构建之法——现代软件工程》第二版

一、写在前面

本次作业我选择了微软公司的两个代码编辑器:Visual Studio、VS Code来做评测。为什么选择这两款软件呢?是因为这两款软件非常热门,一个是Windows上最强大的编译器,一个是一款便捷好用的跨平台编辑器。

Visual Studio(简称VS)是美国微软公司的开发工具包系列产品,是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等。通俗的讲,是一款编译器。

VS Code,表面上看就是在VS后面加了个Code,但是它和VS的本质截然不同。VS Code是美国微软公司的一个项目:运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。通俗地讲,VS Code是一款编辑器,也就是说它的本质是用来写代码的,而不是做调试和开发的。

但是,和其他文本编辑器(Atom,Sublime Text等)类似,VS Code也有丰富的插件库。通过这些插件的配置,我们也可以在VS Code中实现代码的编译运行调试功能。

二、调研,评测

1. Visual Studio

Visual Studio(简称VS)是美国微软公司的开发工具包系列产品,是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等。通俗的讲,是一款编译器。

使用VS运行一个demo的截图:

BUAA2020软工作业(五)——软件案例分析

和相关的集成开发环境(CodeBlocks,Clion)相似,直接在代码编辑好后一键运行即可。图中可以看到VS是用的独立的控制台进行运行。

数据量

VS软件很大,使用基本功能大概就需要几个G的空间,是因为它集成了很多功能,有着很完备的调试系统和测试系统。

界面

VS的默认界面看起来很乱,尤其是调试的时候,可能是因为功能多的缘故。但是我认为功能多和界面美观二者不冲突。这方面可以对比JB公司的Clion。我在日常中绝大部分时间使用Clion,不仅界面美观,而且个人感觉调试功能不输VS。

如图,VS的调试界面:

BUAA2020软工作业(五)——软件案例分析

如图,Clion的调试界面:

BUAA2020软工作业(五)——软件案例分析

可以看到Clion在调试时会把各个变量的信息打在变量出现的响应位置,看起来更加清晰。而且Clion有自带的console,在运行程序的时候不会再弹出一个控制台,也改善了使用体验。这就是为什么我一直喜欢用Clion的原因。

功能和准确度

功能方面,VS最强大的编译器的称号实至名归,功能丰富程度方面是任何其他IDE不能比的。

关于VS的几个bug:

  1. VS的代码静态检查延迟非常高,有时它会提示我们缺少了某个头文件,需要我们手动添加,但是当添加了以后VS要过很长时间才会取消这个提示。在我们的结对作业中,我就感受到了这种高延迟的不便,如图:

BUAA2020软工作业(五)——软件案例分析

在我添加了这个UILine头文件后,这个vector里面的UILine还是会报错,只有切换一下文件才会变成正常格式。这里并不是我的电脑比较卡,我的mac有16G内存,属于性能比较高的那种了。所以VS在代码静态检查的效率方面还有待优化。

  1. VS的Live Share插件可以说是非常难用了,有以下几个特点:首先延迟非常高,链接上去大概要2-3分钟,而且有可能连上去也看不到对方的文件,而且有的时候写着写着代码突然就断连了,这样之前写的东西都白费了,不知道是不是需要代理服务器的原因,但是使用起来非常不方便就是了。而且有这么个神奇的现象:刚进共享窗口的时候,参加者的视角会随着分享者的滚动而滚动,也就是说你的鼠标滚轮是没有用的,分享者的视角滚动也会影响你。这个现象只能通过手动切换到另一个文件再切换回来才能解决。

BUAA2020软工作业(五)——软件案例分析

2. Visual Studio Code

VS Code,表面上看就是在VS后面加了个Code,但是它和VS的本质截然不同。VS Code是美国微软公司的一个项目:运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。通俗地讲,VS Code是一款编辑器,也就是说它的本质是用来写代码的,而不是做调试和开发的。

但是,和其他文本编辑器(Atom,Sumlime Text等)类似,VS Code也有丰富的插件库。通过这些插件的配置,我们也可以在VS Code中实现代码的编译运行调试功能。下面是我用VS Code的C/C++插件编译运行一个C程序demo的图片:

BUAA2020软工作业(五)——软件案例分析

数据量

和VS比起来,VS Code就算是轻蝇量级的了,整个软件只有几百MB,插件也非常小,并且对所有系统都支持(VS只能在Windows上用)。

界面

从上面图片可以看到VS的UI十分干净整洁,使用起来方便,没有VS的花里胡哨的功能,是我比较喜欢的编辑器的类型。

功能和准确度

VS Code只是一款编辑器,所以功能也不是特别丰富,在这方面是比不过VS的。由于平时我使用的不是特别多,所以也没有发现什么bug或是使用不方便的地方。

三、分析

以下问题只针对VS和其中发现的bug来谈。

1. 使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。

既然有专业UI支持,那么我们只考虑后端开发问题。首先VS的功能十分强大,目前我使用了大概两个月的时间,个人估计只使用了其中不到1/3的功能,包括代码编写,调试和单元测试等。因为之前写过类C文法编译器,以我个人的经验来看,对于一种语言,写一款内置编译工具大概就需要一个多月的时间,还不能说写的有多好。再加上调试工具,测试框架,以及对于计算机大学毕业生而言相关新知识的学习,我感觉实现最基础的功能就得用一年的时间。其他的功能例如代码分析,静态检查等也需要很久的时间才能开发出来,对于一种语言,开发时间至少在三年以上,何况VS还集成了多种语言。所以说Windows上的最强IDE的称号VS实至名归,需要很多资深开发专家组成团队取开发,想要一个6人的大学毕业生团队开发出来几乎是不可能的事情。

2. 分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?

优点:VS的优点就是功能非常全面,可以用来做几乎所有的开发,这里我们和Jetbrains公司的软件进行对比,JB公司对于每一种语言都设计了一款对应的IDE,所以说综合性不是很好,VS一个软件包含了所有的功能,我们只需要有选择性地安装即可。

缺点:VS的缺点也是功能太全面了,对于大部分用户来说,一些功能几乎是用不到的,但在安装的时候也会被安装进去,这就显得VS的软件十分庞大,所以对于大部分用户来说会转向VS Code或者Clion(本人Clion玩家)。这就造成了软件普及型不是特别好。

如果要我排名的话,Clion > VS Code > VS。

3. 从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。

开发一个VS Lite版,像JetBrains公司那样对于每种语言针对性地实现一个软件,此外,UI也要能简则简,这样可以很大程度上减小软件体积,增加用户数量。

四、建议和规划

1. 这个软件市场有多大?潜在的用户有多少?

VS是这个世界上最出名的IDE,所以市场规模是世界性的,潜在用户包括大中小软件开发企业的工程师。但是应该没有太多学生使用,因为它太专业了,在我了解的范围内,大多数同学偏爱VS Code。

2. 目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在哪里?

  • Eclipse:免费开源的Java编辑器和IDE,有很好的插件机制,支持各种各样的扩展和插件。最初是一个Java IDE。现在扩展到支C/C ++,Java、Peri、PHP、Python、Ruby以及更多的语言。
  • Code:: Blocks:免费开源的*软件,是一款支持高度定制跨平台IDE,并坚持所有平台上执行始终如一地的效果。对于经常在不同平台切换的开发人员而言,非常方便。它支持三种语言C、C ++和Fortran语言。优点是体积小,小型开发和学习足够用了。缺点是功能不完备,并且UI界面太丑。
  • Xcode:Xcode是Apple出品的Mac OS X下的集成开发环境。内置一系列的工具集用于为iPad,iPhone和Mac的应用开发。Xcode是一个单窗体界面,在这个界面中控件可以很容易地与实现代码进行连接。支持AppleScript、C/C ++、Java、Swift 和Objective-C。优点是没有竞争对手,开发ios和mac os应用必备,比较容易市场化。缺点是对语言和windows应用开发支持的少。
  • JetBrains:JB公司旗下有Clion,Pycharm,Idea等多款应用,每个应用支持一种语言。优点是对于一种语言的开发者来说不需要装太多的东西,体积小,并且UI界面美观,比较受青年开发者的喜爱。缺点是集成性不够好,不能一个软件使用多种语言。

3. 作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?

目前VS的核心用户是资深软件开发工程师,年龄30岁以上,学历本科以上,专业是软件开发,收入年薪20万以上。

作为项目经理,我会开发一个Lite安装模式,略去大部分的不常用功能进行安装,保证正常使用。同时我会优化UI界面,使VS更年轻化。这样的话学生党以及对UI美观程度要求比较高的年轻用户也会选择进行VS使用。这样可以拓展用户群体,使VS在市场上有更好的发展前景。