项目 内容
这个作业属于那个课程 班级博客
这个作业的要求在哪里 作业要求
我在这个课程的目标是 学习掌握软件工程的相关知识
这个作业在哪个具体方面帮我实现目标 通过对具体软件案例的分析学习软件工程

调研评测

软件提要

调研对象

  • Visual Studio
  • Visual Studio Code

基本功能

VS
  1. 代码编辑
  2. 项目管理
  3. 编译及调试
  4. 代码分析
  5. 插件增强
  6. 远程协作
VS Code
  1. 代码编辑
  2. 文件浏览器
  3. 终端集成
  4. 调试器(通用接口)
  5. 插件增强
    • 代码编辑增强如:代码导航、代码跳转等
    • 项目管理、编译及生成
    • 远程协作

使用过程

VS

新建项目后新建cpp文件然后编辑;VS具有强大的代码导航和项目管理功能,其调试能力也是相当强大,加上性能分析工具,以及友好的文档,VS对于Windows开发的用户,解决了Windows开发的很多问题。

VS Code

打开文件夹后新建cpp文件然后编辑;通过插件扩展,VSCode也可以具备代码提示、代码导航和代码跳转等IDE才具备的功能,启动快速,插件强大,界面现代,代码编辑功能强大,因为插件集成的方便,对于前端开发用户和小型项目开发用户非常友好,解决了这些用户的问题。

功能性bug

由于最近使用VS较多,所以我以下列举的Bug都是在我的电脑上,VS发生的复现过数次的Bug:

  1. IntelliSense

    在先打开cpp文件未打开其包含的头文件时,代码提示工作不正常,现象是include文件找不到,即在自己include的自己的头文件下面都是红色波浪线,以及使用的头文件中的各种函数变量也是如此。

  2. Compiling

    预编译系统工作不正常,我用VS生成默认的项目后编译,在编译时每次都提示“project-name.pch”找不到,但是我在项目文件夹下是能找到这个文件的,我上网查找解决办法,更改项目编译设置依旧无法解决这个问题,所以每次我都必须关闭项目的预编译头。

  3. LiveShare

    在我共享我的VS的LiveShare链接给我的结对伙伴后,伙伴也能编辑,但是当我编辑时,在很短的时间内,大约我编辑10-20秒,我的VS就会崩溃(卡死)然后自动重启,这个问题只在我的电脑上出现,我使用伙伴的链接后没有遇到这样的问题。

改进意见

我觉得VS需要改进的就是注意细节,其集成功能众多,十分强大,但是各种细节的缺乏,使得不仅代码编辑的体验不佳(IntelliSense),也使得代码编译的体验不佳,无法使用项目的预编译头等等。

评价

我非常推荐VSCode,因为我们学生的一般写代码的需求VSCode就可以很好得满足,而VS体积庞大,在我的电脑上还有众多Bug,但因为其功能还是强大,所以我评价其好,不错。

结论

尽管我在VS上遇到了种种问题,但是我并不清楚我遇到的是否是很广泛的问题,VS依然是“宇宙最强IDE”,其功能是无比的强大,不然何以那么多的开发者都使用呢?对于VSCode,其通过扩展来集成特定语言服务的编辑器语言解耦的模式非常好,其提出的LSP(Language Server Protocol)语言服务器协议,也是得到广泛运用,为编程语言与编辑器或IDE的结合提供了更好的方式,其开箱易用性非常强,所以得到很多用户的拥趸。

定量分析(VS)

类别 描述 评分/10
核心功能 代码编辑、项目管理、编译和调试等 9
细节 代码编辑器部分缺乏细节处理,很粗犷 7
用户体验 在单纯的代码编辑得体验上不佳 7
辅助功能 LiveShare(实时协作)等辅助功能 8
差异化功能 支持C#开发,专业版集成了代码分析等工具 6
软件的效能 项目管理和调试功能强大 8
软件的适应性 局限于Windows,不是跨平台软件 7
成长性 功能已经相当完备,额外得成长性局限于支持别的平台和语言 6
用户有控制权 系统状态有反馈,各种操作有输出信息,错误提示详尽 9

分析

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

我估计:

  • VS可能需要6个人花50年的时间才能复现其基本功能
  • VSCode可能需要6个人花5年的时间才能复现其基本功能

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

我估计:

  • 在Windows端的C++和C#开发,VS在同类产品中一定是第一。
  • 在前端的开发工具中,VSCode在同类产品中排第一。

你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?可以从下面的可能性中选取几个:

  • 测试缺乏特殊的配置或环境下测试
  • 历史代码的积累,有些Bug难以发现

建议和规划

首先,市场有多大?潜在的用户有多少?

对于VS,目前其市场是所有使用Windows的开发者,潜在用户可能涵盖2000万以上;而VSCode是跨平台的,所以其面向的市场是全体的项目开发者,潜在用户可能是5000万以上。

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

产品(C++ IDE) 优势 劣势
VS 功能完备强大 代码补全不好
QT Creator 跨平台,集成QT,便于QT开发 功能比起其他的有所局限
C Lion 跨平台,Jet Brains家族风格编辑界面十分美观 付费
Code Blocks 跨平台,开源,项目可配置性强 配置复杂,界面不现代
Dev C++ 体积小,易安装,开箱即用 仅支持Windows,且项目管理不佳

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

核心用户群是开发者;由于程序开发易入门,所以面向的用户的学历、年龄、专业等都没有限制;用户对IDE或代码编辑器的表面需求就是各种代码编辑功能、基本的项目管理功能和编译调试的功能,潜在需求大部分都开发完毕了,只是各个软件的支持程度不同,比如代码协作。

如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。

如果不是对美工要求较高的应用软件了话,相比我会配置3个开发,2个测试,1个美工;要做什么用Gantt图说明吧:

gantt
dateFormat MM-DD
title 项目交付计划
section 里程碑 0.1
数据库设计 : p1, 08-15, 3d
详细设计 : p2, after p1, 4d
section 里程碑 0.2
后端开发 : p3, 08-22, 49d
前端开发 : p4, 09-12, 49d
section 里程碑 0.3
功能测试 : p6, after p4, 21d
上线 : p7, after p6, 7d
交付 : p8, after p7, 7d

BUAA_2020_软件工程_软件案例分析作业的更多相关文章

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

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

  2. BUAA软件工程:软件案例分析

    BUAA软件工程:软件案例分析 Author:17373015 乔玺华 项目 内容 这个作业属于哪个课程 2020计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件案例分析博客作业 我在这个 ...

  3. “深度评测官”——记2020BUAA软工软件案例分析作业

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 完成一次完整的软件开发经历并以博客的方式记录开发 ...

  4. BUAA_2020_软件工程_个人博客作业

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 了解软件工程的技术,掌握工程化开发的能力 这个作业在哪个具体方 ...

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

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

  6. 【BUAA软工】软件案例分析

    项目 内容 课程:2020春季软件工程课程博客作业(罗杰,任健) 博客园班级链接 作业:BUAA软件工程结对编程项目作业 作业要求 课程目标 学习大规模软件开发的技巧与方法,锻炼开发能力 作业目标 个 ...

  7. BUAA软件工程个人作业-软件案例分析

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

  8. 2021S软件工程——案例分析作业

    2021S软件工程--案例分析作业 18231169 黄思为 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 案例分析作业 我在这个课程的目标是 了解并熟悉 ...

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

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

随机推荐

  1. FileWriter文件文件字符输出流写入存储数据

    1.FileWriter文件字符输出流-写入-存储数据 其中,流关闭之后再调用会报IOException; 其中,与文件字符输入流-写出-读取数据 和 字节输出流-写入-存储数据 不同的是,要先flu ...

  2. Tomcat部署与优化

    目录: 一.Tomcat概述 二.Tomcat 服务部署 三.Tomcat 虚拟主机配置 四.Tomcat 优化 一.Tomcat概述 Tomcat是Java语言开发的,Tomcat服务器是-个免费的 ...

  3. 三剑客之awk 逐行读取

    目录: 一.awk工作原理 二.按行输出文本 三.按字段输出文本 四.通过管道,双引号调用shall命令 五.CPU使用率 六.使用awk 统计 httpd 访问日志中每个客户端IP的出现次数 一.a ...

  4. Emit优化反射(属性的设置与获取)

    在频繁的通过反射来设置和获取属性的值时是比较耗时的,本章通过Emit技术优化反射来提高获取和设置属性值的效率 一.实现代码: /// <summary> /// 设置器委托 /// < ...

  5. scrum项目冲刺_day01总结

    摘要:今日完成任务. 1.app基本框架页面正在进行 2.图像识别正在进行 总任务: 一.appUI页面 二.首页功能: 1.图像识别功能 2.语音识别功能 3.垃圾搜索功能 4.相关新闻爬取 三.我 ...

  6. Groovy系列(2)- Groovy与Java的不同之处

    Groovy与Java的不同之处 默认 imports 所有这些包和类都是默认导入的,不必使用显式import语句来使用它们 java.io.* java.lang.* java.math.BigDe ...

  7. Charles的breakpoint功能

    修改请求报文 比如,前端已经控制了输入内容,而我们需要验证接口是否做了校验,这时候怎么测试? 可以通过charles抓包,修改请求报文,修改为在页面上无法输入的内容,发出去然后看后台怎么处理. 修改返 ...

  8. Consul+Ocelot+Polly在.NetCore中使用(.NET5)-Ocelot+Polly缓存、限流、熔断、降级

    相关文章 Consul+Ocelot+Polly在.NetCore中使用(.NET5)-Consul服务注册,服务发现 Consul+Ocelot+Polly在.NetCore中使用(.NET5)-网 ...

  9. 案例分享 | dubbo 2.7.12 bug导致线上故障

    本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star.搜索关注微信公众号"捉虫大师",后端技术分享,架构设计.性能优化.源码阅读. ...

  10. P4001-[ICPC-Beijing 2006]狼抓兔子【对偶图】

    正题 题目链接:https://www.luogu.com.cn/problem/P4001 题目大意 给出一个类似于 的网格图,求起点到终点的最小割. 解题思路 最小割直接跑网络流,然后发现\(di ...