项目 内容
这个作业属于哪个课程 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的截图:

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

数据量

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

界面

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

如图,VS的调试界面:

如图,Clion的调试界面:

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

功能和准确度

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

关于VS的几个bug:

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

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

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

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的图片:

数据量

和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在市场上有更好的发展前景。

BUAA2020软工作业(五)——软件案例分析的更多相关文章

  1. BUAA2020软工作业——提问回顾与个人总结

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方 ...

  2. BUAA2020软工作业(四)——结对项目

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 结对项目作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力,团队协作能力 这个作业在哪 ...

  3. BUAA2020软工作业(二)——对软件工程的初步理解

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方面帮助 ...

  4. [福大软工] W班 软件产品案例分析

    作业要求 https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/1300 评分细则 第一部分 调研,评测 (3 ...

  5. BUAA2020软工作业(三)——个人项目

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人项目作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方面帮助 ...

  6. BUAA2020软工作业(一)——谈谈我和计算机的缘分

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 第一次作业-热身! 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方 ...

  7. BUAA软件工程_软件案例分析

    写在前面 项目 内容 所属课程 2020春季计算机学院软件工程(罗杰 任健) (北航) 作业要求 软件案例分析 课程目标 培养软件开发能力 本作业对实现目标的具体作用 对案例进行分析以学习软件开发的经 ...

  8. 2020BUAA软工个人博客作业-软件案例分析

    2020BUAA软工个人博客作业-软件案例分析 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分 ...

  9. [软工作业]-软件案例分析-CSDN

    [软工作业]-软件案例分析-CSDN(app) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...

随机推荐

  1. Activiti 学习(二)—— Activiti 流程定义和部署

    概述 在这一节,我们将创建一个 Activit 工作流,并启动这个流程,主要包含以下几个步骤: 定义流程,按照 BPMN 的规范,使用流程定义工具,用流程符号把整个流程描述出来 部署流程,把画好的流程 ...

  2. Asp.net MVC Vue Axios无刷新请求数据和响应数据

    Model层Region.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; ...

  3. MYSQL order by 排序的一个小问题探究

    小问题发现: select * from `sql` where id=1 order by (select 1 union select 2) 正常返回结果 mysql> select * f ...

  4. Hearthbuddy跳过ConfigurationWindow窗口

    Hearthbuddy版本为按照上一条博客修复后的版本. 打开Hearthbuddy后会弹出一个这样的窗口: 这个界面没有什么用,而且也没有人对此进行任何修改. 由于之前折腾版早就已经把这个界面跳过了 ...

  5. Django学习day15BBS项目开发3.0

    每日测验 """ 今日考题 1.django admin作用及用法 2.media配置如何实现,基于该配置能够做到什么以及需要注意什么 3.阐述博客园为何支持用户自定义个 ...

  6. Git报错-refusing to merge unrelated histories

    执行git pull 时报错: 出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库.假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了 ...

  7. Hadoop-3.1.3安装

    0.创建用户并付权限 sudo useradd iwbdsudo passwd iwbd 配置iwbd用户具有root权限 修改/etc/sudoers文件,找到下面一行(91行),在root下面添加 ...

  8. 一个完整的SEO优化方案

    一个完整的SEO优化方案主要由四个小组组成: 一.前端/页编人员 二.内容编辑人员 三.推广人员 四.数据分析人员 接下来,我们就对这四个小组分配工作. 首先,前端/页编人员主要负责站内优化,主要从四 ...

  9. centos7安装部署SVN

      SVN介绍 SVN是个自由.开源的版本控制系统,绝大多数开源软件都使用SVN作为代码版本管理软件. SVN的官方网站http://subversion.apache.org/.目前SVN在开源社区 ...

  10. 双击tomcat8w.exe出现指定的服务未安装

    进入tomcat bin 目录下 打开cmd 输入命令 service.bat install   进行服务安装. 双击tomcat8w.exe 就可以打开了.