软件工程——问题清单
Q:视频中:软件=程序+数据+文档。书中:软件=程序+软件工程。而软件工程是将系统化,规划化,可定量的方法应用到软件的开发,运行和维护中。其中软件工程里面有各种模式,方法。文档是算在软件工程里面的吗?又比如单元测试里面的数据。那么是不是数据+文档=软件工程。这2个公式是可以这样理解的?还是分开理解的,就是这2个公式就是2个公式,不是混在一起的公式。因为每个人有不同的理解而表达什么是软件的这个公式只是一种便于理解的表达形式。
A:个人认为所谓的公式都是让人便于去理解的。软件工程里面需要一些文档,也需要一些数据,程序里面也需要一些数据,就比如说测试。这些都是去告诉我们怎么去理解软件和软件工程。
Q:软件产品存在“零缺陷”的情况吗?这个“零缺陷”是指一个软件产品没有任何情况下的BUG,还是只要满足用户需求情况下能够正常运行无Bug呢?
A: 个人认为软件不存在零缺陷的。毕竟人无完人,软件不可能没有缺点,没有BUG,只是BUG尽可能的少。当然如果是特别简单的程序,只有几个判断的可能会有“零缺陷”吧。
Q:学习中,学习了什么是软件,什么是软件工程,软件的本质,软件开发的挑战,软件基本要素,软件基本策略,产品质量维度,Wasserman规范等等。虽然学习了这么多东西,但是学完后感觉脑海里还是很混乱。本章的重点是不是就是让我们知道什么是软件工程?和为什么要学习软件工程?和学习这软件工程有什么好处?
A: 学习软件工程是让我们有更加清晰的尽可能的去用每一个步骤方法去做好一个软件。
Q:编程规范里面讲到了要编写自文档化的代码。什么是自文档化?是指可以阅读的代码而且不是外部文档支持的代码吗?
A:
- 唯一能完整并正确地描述代码的文档是代码本身。
- 编写可以阅读的代码,其本身简单易懂。
Q:视频中是用python为例讲到了编程规范,那么JAVA的编程规范又有哪些?我百度了一下网上也有一些说的规范,但是都是片面的。视频中的规范也试用于其他语言吗?
A: 有些规范是通用的。比如标识符的命名等。
Q:视频中给出了JAVA的一些代码静态分析工具,但是没有JAVA的代码性能分析工具,有没有方便易用的JAVA代码性能分析工具?网上也有很多,但是不知道具体哪个好用。
A: 可以试试Checkstyle。我直接在idea里面下载了阿里巴巴的检查代码插件可以直接使用。
下面是安装配置链接(由DCW同学提供):
https://www.cnblogs.com/chang1024/p/12469959.html
Q:在团队中,代码审查是个人审查还是团队一起讨论审查,又或者是指定人去审查的?
A:
Q:团队项目中自己需要对自己的代码负责,那么所需要做的单元测试算不算是代码审查?
A:
Q:结对编程中讲到不是所有人都适合结对编程,那么到底有哪些人不适合,其中讲到了参加多个项目的人员和领航,是否还有其他人群的情况?
A:
Q:测试题中出现了全局数据结构,单元测试里面有局部数据结构,百度后,里面有些题目说全局数据结构出现在集成测试中。那么到底什么是局部数据结构?什么是全局数据结构?有什么例子能够让我更便于去理解吗?又什么是集成测试?
A:
Q:视频中讲到不要盲目的追求100%的测试用例通过率。那么怎么才算是不盲目呢?是指尽量做到100%覆盖,实在做不到想不到的就不追求吗?不钻牛角尖吗?
A:
Q:可以这样理解:黑盒测试是对程序的输入输出的测试,白盒测试是对程序中各种方法,判断条件的测试吗?
A:
Q:软件项目管理中提到了对风险进行控制,我百度后知道风险大致有:①产品规模风险②商业影响风险③客户相关风险④过程风险。而第二节讲到的模型是不是可以用来解决过程风险的吗?那么其他风险怎么去解决?
A:
Q:从它们的流程来看,原型化模型是对瀑布模型的完善吗?
A:
Q:可转换模型中的形式化转换是怎么转换的?到底什么是形式化转换,有没有实例来更容易去理解?
A:
Q:敏捷开发的“敏捷”体现在哪里?
A:
Q:敏捷开发中提到了迭代开发,是不是上节提到的迭代式开发模型?
A:
Q:敏捷开发方法里面重点里讲到了Scrum和XP极限编程方法,但是只重点讲了scrum方法,那么极限编程方法呢?
A:
Q:视频中讲解到开发团队组织模式有3种,那么敏捷开发和这3种有什么关系?
A:
Q:项目沟通管理中讲到了项目启动会议,项目计划会议,项目阶段进展会议,项目组工作例会,但是怎么没有讲到项目技术评审会议?
A:
Q:软件项目估算中讲到了4种方法,每个方法还有各种公式,感觉很复杂,估算不应该是不确定,抽象的,大致估计出来的吗?
A:
Q:配置管理提到的版本和平常我们认知的版本一样吗?有什么区别?
A:
Q: github上就可以实现上传文件和创建分支,commit,和提交合并分支。是不是用github更方便点?毕竟git还需要记很多命令。
A:
Q:用户故事到底是什么?干什么用的?为了更清楚知道用户的需求吗?用户故事类型具体是什么?
A:
Q:视频中讲解了许多跟需求分析相关的,还有很多分类,但是需求分析不就是对用户提出的需求进行分析吗?为什么看完视频感觉还复杂了?
A:
Q:关于结对编程的,到底什么是结对编程?我有2种理解:①2个人一起编程,分工合作,互相讨论,互相监督。②2个人其中一人编程,另外一人负责看队友编程,互相讨论。结对编程是属于其中的哪一个呢?
A:
Q:视频中提到了A/B测试,什么是A/B测试?
A: