软件工程——问题清单

问题1:

视频中:软件=程序+数据+文档。
书中:软件=程序+软件工程。
而软件工程是将系统化,规划化,可定量的方法应用到软件的开发,运行和维护中。
其中软件工程里面有各种模式,方法。文档是算在软件工程里面的吗?又比如单元测试里面的数据。那么是不是数据+文档=软件工程。这2个公式是可以这样理解的?还是分开理解的,就是这2个公式就是2个公式,不是混在一起的公式。因为每个人有不同的理解而表达什么是软件的这个公式只是一种便于理解的表达形式。

答: 个人认为所谓的公式都是让人便于去理解的。软件工程里面需要一些文档,也需要一些数据,程序里面也需要一些数据,就比如说测试。这些都是去告诉我们怎么去理解软件和软件工程。

问题2:

软件产品存在“零缺陷”的情况吗?
这个“零缺陷”是指一个软件产品没有任何情况下的BUG,还是只要满足用户需求情况下能够正常运行无Bug呢?

答: 个人认为软件不存在零缺陷的。毕竟人无完人,软件不可能没有缺点,没有BUG,只是BUG尽可能的少。当然如果是特别简单的程序,只有几个判断的可能会有“零缺陷”吧。

问题3:

学习中,学习了什么是软件,什么是软件工程,软件的本质,软件开发的挑战,软件基本要素,软件基本策略,产品质量维度,Wasserman规范等等。虽然学习了这么多东西,但是学完后感觉脑海里还是很混乱。本章的重点是不是就是让我们知道什么是软件工程?和为什么要学习软件工程?和学习这软件工程有什么好处?

答: 学习软件工程是让我们有更加清晰的尽可能的去用每一个步骤方法去做好一个软件。

问题4:

编程规范里面讲到了要编写自文档化的代码。什么是自文档化?是指可以阅读的代码而且不是外部文档支持的代码吗?

答: 1)唯一能完整并正确地描述代码的文档是代码本身。
2)编写可以阅读的代码,其本身简单易懂。

问题5:

视频中是用python为例讲到了编程规范,那么JAVA的编程规范又有哪些?我百度了一下网上也有一些说的规范,但是都是片面的。视频中的规范也试用于其他语言吗?

答: 有些规范是通用的。比如标识符的命名等。

问题6:

视频中给出了JAVA的一些代码静态分析工具,但是没有JAVA的代码性能分析工具,有没有方便易用的JAVA代码性能分析工具?网上也有很多,但是不知道具体哪个好用。

答: 可以试试Checkstyle。我直接在idea里面下载了阿里巴巴的检查代码插件可以直接使用。
下面是安装配置链接(由DCW同学提供):
https://www.cnblogs.com/chang1024/p/12469959.html

问题7:

在团队中,代码审查是个人审查还是团队一起讨论审查,又或者是指定人去审查的?

答:

问题8:

团队项目中自己需要对自己的代码负责,那么所需要做的单元测试算不算是代码审查?

答:

问题9:

结对编程中讲到不是所有人都适合结对编程,那么到底有哪些人不适合,其中讲到了参加多个项目的人员和领航,是否还有其他人群的情况?

答:

问题10:

测试题中出现了全局数据结构,单元测试里面有局部数据结构,百度后,里面有些题目说全局数据结构出现在集成测试中。那么到底什么是局部数据结构?什么是全局数据结构?有什么例子能够让我更便于去理解吗?又什么是集成测试?

答:

问题11:

视频中讲到不要盲目的追求100%的测试用例通过率。那么怎么才算是不盲目呢?是指尽量做到100%覆盖,实在做不到想不到的就不追求吗?不钻牛角尖吗?

答:

问题12:

可以这样理解:黑盒测试是对程序的输入输出的测试,白盒测试是对程序中各种方法,判断条件的测试吗?

答:

问题13:

软件项目管理中提到了对风险进行控制,我百度后知道风险大致有:①产品规模风险②商业影响风险③客户相关风险④过程风险。而第二节讲到的模型是不是可以用来解决过程风险的吗?那么其他风险怎么去解决?

答:

问题14:

从它们的流程来看,原型化模型是对瀑布模型的完善吗?

答:

问题15:

可转换模型中的形式化转换是怎么转换的?到底什么是形式化转换,有没有实例来更容易去理解?

答:

问题16:

敏捷开发的“敏捷”体现在哪里?

答:

问题17:

敏捷开发中提到了迭代开发,是不是上节提到的迭代式开发模型?

答:

问题18:

敏捷开发方法里面重点里讲到了Scrum和XP极限编程方法,但是只重点讲了scrum方法,那么极限编程方法呢?

答:

你可能感兴趣的:(软件工程——问题清单)